Validating component compositions in software system generators

Generators synthesize software systems by composing components from reuse libraries. In general, not all syntactically correct compositions are semantically correct. We present domain independent algorithms for the GenVoca model of software generators to validate component compositions. Our work relies on attribute grammars and offers powerful debugging capabilities with explanation based error reporting. We illustrate our approach by showing how compositions are debugged by a GenVoca generator for container data structures.

[1]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[2]  Martin L. Griss,et al.  Hybrid domain-specific kits for a flexible software factory , 1994, SAC '94.

[3]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[4]  Dewayne E. Perry The inscape environment , 1989, ICSE '89.

[5]  Xiaolei Qian,et al.  Correctness and composition of software architectures , 1994, SIGSOFT '94.

[6]  Carsten Malischewski ComponentWare , 1995, Wirtsch..

[7]  Ira D. Baxter,et al.  Design maintenance systems , 1991, CACM.

[8]  Don Batory,et al.  Validating Component Compositions in Software System Generators 1 , 1995 .

[9]  Don S. Batory,et al.  The GenVoca model of software-system generators , 1994, IEEE Software.

[10]  Bruce Weide,et al.  Component-based software using RESOLVE , 1994, SOEN.

[11]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[12]  Peter Freeman,et al.  Tutorial, software reusability , 1987 .

[13]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

[14]  John S. Heidemann,et al.  File-system development with stackable layers , 1994, TOCS.

[15]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[16]  Don S. Batory,et al.  Modeling the storage architectures of commercial database systems , 1985, TODS.

[17]  Dennis J. Volper,et al.  Constraint Propagation in Software Libraries of Transformation Systems , 1992, Int. J. Softw. Eng. Knowl. Eng..

[18]  Ralph Johnson Documenting frameworks using patterns , 1992, OOPSLA 1992.

[19]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.

[20]  Don S. Batory,et al.  Scalable software libraries , 1993, SIGSOFT '93.

[21]  Larry L. Peterson,et al.  The x-Kernel: An Architecture for Implementing Network Protocols , 1991, IEEE Trans. Software Eng..

[22]  James Milne Neighbors,et al.  Software construction using components , 1980 .

[23]  Kanth Miriyala,et al.  An architecture-driven, business-specific, and component-based approach to software engineering , 1994, Proceedings of 1994 3rd International Conference on Software Reuse.

[24]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[25]  Will Tracz,et al.  LILEANNA: a parameterized programming language , 1993, [1993] Proceedings Advances in Software Reuse.

[26]  Julio Cesar Sampaio do Prado Leite,et al.  Draco-PUC: a technology assembly for domain oriented software development , 1994, Proceedings of 1994 3rd International Conference on Software Reuse.

[27]  Joseph A. Goguen,et al.  Reusing and Interconnecting Software Components , 1986, Computer.

[28]  Pierre Deransart,et al.  Attribute Grammars: Definitions, Systems and Bibliography , 1988 .

[29]  Joseph A. Goguen,et al.  Putting Theories Together to Make Specifications , 1977, IJCAI.

[30]  Ralph E. Johnson,et al.  Documenting frameworks using patterns , 1992, OOPSLA '92.

[31]  Joseph A. Goguen,et al.  Parameterized Programming , 1984, IEEE Transactions on Software Engineering.

[32]  Dewayne E. Perry,et al.  Software interconnection models , 1987, ICSE '87.

[33]  Joseph A. Goguen,et al.  Principles of parameterized programming , 1989 .

[34]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[35]  Marc H. Graham,et al.  The Domain-Specific Software Architecture Program , 1992 .

[36]  Ted J. Biggerstaff,et al.  The library scaling problem and the limits of concrete component reuse , 1994, Proceedings of 1994 3rd International Conference on Software Reuse.

[37]  D. Perry The Logic of Propagation in the Inscape Environment , 1989, Symposium on Testing, Analysis, and Verification.

[38]  Don S. Batory,et al.  GENESIS: An Extensible Database Management System , 1988, IEEE Trans. Software Eng..

[39]  Allen Goldberg,et al.  DTRE - A Semi-Automatic Transformation System , 1991 .

[40]  Don S. Batory,et al.  Implementing a Domain Model for Data Structures , 1992, Int. J. Softw. Eng. Knowl. Eng..

[41]  Sholom Cohen,et al.  Models for domains and architectures - A prescription for systematic software reuse , 1995 .

[42]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[43]  Don S. Batory,et al.  Reengineering a complex application using a scalable data structure compiler , 1994, SIGSOFT '94.

[44]  Vijayan Sugumaran,et al.  A prototype domain modeling environment for reusable software architectures , 1994, Proceedings of 1994 3rd International Conference on Software Reuse.