Object-oriented software evolution
- 1 April 1993
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 19 (4) , 313-343
- https://doi.org/10.1109/32.223802
Abstract
The authors review propagation patterns for describing object-oriented software at a higher level of abstraction than one used by today's programming languages. A propagation pattern defines a family of programs from which one can select a member by giving a class dictionary graph that details the structure of behavior through part-of and inheritance relationships between classes. Three concepts are introduced: evolution histories, growth-plans and a propagation-directive calculus. Evolution histories describe a sequence of development phases of an object-oriented program, each phase being executable and therefore testable. To keep the programs flexible and short, they are described in terms of propagation patterns. Each phase of an evolution history is tested in small steps that are constrained by class dictionary graphs belonging to a growth-plan. Propagation directives are useful for describing both propagation patterns and growth-plans and are therefore endowed with sufficient expressiveness by being given a formal calculus applicable to object-oriented programming in general. A propagation directive is a succinct description of a family of submodels for a given family of data models.Keywords
This publication has 26 references indexed in Scilit:
- Implementational reflection in SilicaPublished by Springer Nature ,2006
- The design of an Integrity Consistency Checker (ICC) for an object oriented database systemPublished by Springer Nature ,2006
- Formal foundations for object-oriented data modelingIEEE Transactions on Knowledge and Data Engineering, 1993
- The evolution of an object‐oriented compiler frameworkSoftware: Practice and Experience, 1992
- Constraint-based automatic test data generationIEEE Transactions on Software Engineering, 1991
- Contracts: specifying behavioral compositions in object-oriented systemsPublished by Association for Computing Machinery (ACM) ,1990
- Object-oriented programming with class dictionariesHigher-Order and Symbolic Computation, 1988
- Controlling propagation of operations using attributes on relationsPublished by Association for Computing Machinery (ACM) ,1988
- Module interconnection languagesJournal of Systems and Software, 1986
- Designing Software for Ease of Extension and ContractionIEEE Transactions on Software Engineering, 1979