Object oriented programming: an evolutionary approach
Object oriented programming: an evolutionary approach
Module interconnection languages
Journal of Systems and Software
MELDing data flow and object-oriented programming
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Tutorial, software reusability
Tutorial, software reusability
Controlling propagation of operations using attributes on relations
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Object-oriented analysis
Object oriented design with applications
Object oriented design with applications
Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Object-oriented software engineering
Object-oriented software engineering
Object-preserving class transformations
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Constraint-Based Automatic Test Data Generation
IEEE Transactions on Software Engineering
Designing object-oriented software
Designing object-oriented software
An introduction to object-oriented programming
An introduction to object-oriented programming
The design and implementation of hierarchical software systems with reusable components
ACM Transactions on Software Engineering and Methodology (TOSEM)
From objects to classes: algorithms for optimal objection-oriented design
Software Engineering Journal
The evolution of an object-oriented compiler framework
Software—Practice & Experience
Obstacles in object-oriented software development
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Essays on object-oriented software engineering (vol. 1)
Essays on object-oriented software engineering (vol. 1)
Adaptive object-oriented programming using graph-based customization
Communications of the ACM
Program development by stepwise refinement
Communications of the ACM
Object-Oriented Software Construction
Object-Oriented Software Construction
Introduction to Automata Theory, Languages and Computability
Introduction to Automata Theory, Languages and Computability
Data Models
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
Lithe: a language combining a flexible syntax and classes
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Assuring Good Style for Object-Oriented Programs
IEEE Software
Formal Foundations for Object-Oriented Data Modeling
IEEE Transactions on Knowledge and Data Engineering
Component Enhancement: An Adaptive Reusability Mechanism for Groups of Collaborating Classes
Proceedings of the IFIP 12th World Computer Congress on Algorithms, Software, Architecture - Information Processing '92, Volume 1 - Volume I
Implementational Reflection in Silica
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Incremental Class Dictionary Learning and Optimization
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
The Design of an Integrity Consistency Checker (ICC) for an Object-Oriented Database System
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
An Incremental Class Reorganization Approach
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Specifying Reusable Components Using Contracts
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Adaptive object-oriented programming using graph-based customization
Communications of the ACM
Composition of before/after metaclasses in SOM
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Efficient implementation of adaptive software
ACM Transactions on Programming Languages and Systems (TOPLAS)
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Evolution of Object Behavior Using Context Relations
IEEE Transactions on Software Engineering
An Automatic Class Generation Mechanism by Using Method Integration
IEEE Transactions on Software Engineering
Generation of visitor components that implement program transformations
SSR '01 Proceedings of the 2001 symposium on Software reusability: putting software reuse in context
A component-based approach to building formal analysis tools
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Research Frontiers in Object Technology
Information Systems Frontiers
Formal Foundations for Object-Oriented Data Modeling
IEEE Transactions on Knowledge and Data Engineering
IEEE Transactions on Software Engineering
Dynamic Relationships and Their Propagation and Concurrency Semantics in Object-Oriented Databases
NGIT '99 Proceedings of the 4th International Workshop on Next Generation Information Technologies and Systems
Controlling the Complexity of Software Designs
Proceedings of the 26th International Conference on Software Engineering
An online bibliography on schema evolution
ACM SIGMOD Record
Extended firewall for regression testing: an experience report
Journal of Software Maintenance and Evolution: Research and Practice
Software evolution via reusable architecture
ECBS'99 Proceedings of the 1999 IEEE conference on Engineering of computer-based systems
Hi-index | 0.02 |
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.