PI: David H. Lorenz Co-PI's: Paul C. Attie, Dana H. Brooks Northeastern University

SoD: Design Locality: A Concept for Controlling the Design Complexity of Large Software Systems

Large software systems are extremely difficult to design correctly. This difficulty stems largely from the exponential number of ways in which components can interact. This project's objective is to develop a design methodology for constraining interaction in large complex software systems. The central idea is design locality: synthesis, verification and analysis are applied to small subsystems; local properties are verified for subsystems in isolation and then combined to deduce global properties.

Our approach is ``design for verifiability'': design a large system so that verification is tractable. A mixed methodology will be developed: top-down for design, bottom-up for analysis and verification. A well-designed system can be decomposed top-down into small subsystems while its global properties follow bottom-up from subsystem properties.

A goal is systems representation in "pairwise normal form": code that synchronizes a pair of components is cleanly separated from code that synchronizes other (even overlapping) pairs. Pairwise composition is a separation of concerns solution that facilitates modularity, modifiability, and maintenance, applicable to component assembly. Our test cases are aspect-oriented programming and the SCIRun software, which builds dataflow networks of components for integrated and interactive scientific computation and visualization.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
0609612
Program Officer
Sol J. Greenspan
Project Start
Project End
Budget Start
2005-08-31
Budget End
2008-11-30
Support Year
Fiscal Year
2006
Total Cost
$359,352
Indirect Cost
Name
University of Virginia
Department
Type
DUNS #
City
Charlottesville
State
VA
Country
United States
Zip Code
22904