Top-Down Analysis for Bottom-Up Development

Component-based software engineering (CBSE) is the construction of software systems from software components. Software components are independently deployable units of executable code that can be assembled into a system based on their externally visible properties, which are made available to system developers via the components interface specifications. Software components provide a means for large-scale reuse of intellectual property as well as coding, testing, and analysis effort. Benefits expected from developing an industry in CBSE include: reduced system development and maintenance costs, reduced time-to-market, and the availability of a marketplace of components that are bought and sold in massive quantities much like any other product. Component-based systems are constructed from a blend of locally developed and commercially available pieces enabling incremental development of complex systems. However, the full potential for software component reuse and a component marketplace can only be realized if tools and techniques are available to support the development and maintenance of these systems [2]. In this paper we address the specific problem of creating analytic assets, i.e. assets that summarize information about components that is required for compositional analysis. As a first step toward being able to create the analytic assets needed for component-based systems, we describe our in identifying and packaging analytic assets for program procedures for use in compositional program analysis.

[1]  Robert E. Tarjan,et al.  A fast algorithm for finding dominators in a flowgraph , 1979, TOPL.

[2]  George S. Avrunin,et al.  Data flow analysis for checking properties of concurrent Java programs , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[3]  Alexander L. Wolf,et al.  A formal, language-independent, and compositional approach to interprocedural control dependence analysis , 2000 .

[4]  Rajiv Gupta,et al.  A practical framework for demand-driven interprocedural data flow analysis , 1997, TOPL.

[5]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[6]  Saurabh Sinha,et al.  Analysis and Testing of Programs with Exception Handling Constructs , 2000, IEEE Trans. Software Eng..

[7]  Barbara G. Ryder,et al.  Interprocedural Def-Use Associations for C Systems with Single Level Pointers , 1994, IEEE Trans. Software Eng..

[8]  Paola Inverardi,et al.  Static checking of system behaviors using derived component assumptions , 2000, TSEM.

[9]  Dimitra Giannakopoulou,et al.  Analysing the behaviour of distributed software architectures: a case study , 1997, Proceedings of the Sixth IEEE Computer Society Workshop on Future Trends of Distributed Computing Systems.

[10]  Gregg Rothermel,et al.  System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[11]  Lori A. Clarke,et al.  A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance , 1990, IEEE Trans. Software Eng..

[12]  Joseph P. Loyall,et al.  Using dependence analysis to support the software maintenance process , 1993, 1993 Conference on Software Maintenance.

[13]  Mary Jean Harrold,et al.  Reuse-driven interprocedural slicing , 1998, Proceedings of the 20th International Conference on Software Engineering.

[14]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[15]  Gregg Rothermel,et al.  Computation of interprocedural control dependence , 1998, ISSTA '98.

[16]  Alexander L. Wolf,et al.  Architecture-Level Dependence Analysis for Software Systems , 2001, Int. J. Softw. Eng. Knowl. Eng..

[17]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[18]  Robert T. Monroe,et al.  Acme: an architecture description interchange language , 2010, CASCON.

[19]  David Garlan,et al.  Formal modeling and analysis of the HLA component integration standard , 1998, SIGSOFT '98/FSE-6.

[21]  David C. Luckham,et al.  An Event-Based Architecture Definition Language , 1995, IEEE Trans. Software Eng..

[22]  Dirk Grunwald,et al.  Data flow equations for explicitly parallel programs , 1993, PPOPP '93.

[23]  James C. Corbett,et al.  A Formal Study of Slicing for Multi-threaded Programs with JVM Concurrency Primitives , 1999, SAS.

[24]  Keshav Pingali,et al.  A framework for generalized control dependence , 1996, PLDI '96.

[25]  John Cocke,et al.  A program data flow analysis procedure , 1976, CACM.

[26]  M. Saksena,et al.  A Practitioner's Handbook for Real-time Analysis-guide to Rate Monotonic Analysis for Real Time Systems. Symbolic Model Checking for Event-driven Real-time Systems. Acm Toplas , 2007 .

[27]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[28]  David Garlan,et al.  Architecture-Based Performance Analysis , 1998 .