Abstract:
Done well, separation of concerns can provide many software engineering benefits, including reduced complexity, improved reusability, and simpler evolution. The choice of boundaries for separate concerns depends on both requirements on the system and on the kind(s) of decomposition and composition a given formalism supports. The predominant methodologies and formalisms available, however, support only orthogonal separations of concerns, along single dimensions of composition and decomposition. These characteristics lead to a number of well-known and difficult problems. This paper describes a new paradigm for modeling and implementing software artifacts, one that permits separation of overlapping concerns along multiple dimensions of composition and decomposition. This approach addresses numerous problems throughout the software lifecycle in achieving wellengineered, evolvable, flexible software artifacts and traceability across artifacts. Keywords Hypermodules; hyperslices; software...
Citations
|
3853
|
Design Patterns: Elements of Reusable Object-Oriented Software
– Gamma, Helm, et al.
- 1995
|
|
1446
|
The Java Language Specification
– Gosling, Joy, et al.
|
|
1078
|
Aspect-oriented programming
– Kiczales, Lamping, et al.
- 1997
|
|
972
|
Program slicing
– Weiser
- 1984
|
|
852
|
On the Criteria to be Used in Decomposing Systems into Modules
– Parnas
- 1972
|
|
707
|
The Unified Modeling Language Reference Manual
– Rumbaugh, Jacobson, et al.
- 1998
|
|
421
|
C.: Objects, Components and Frameworks with UML: The Catalysis Approach
– D’Souza, Wills
- 1998
|
|
343
|
Subject-oriented programming (a critique of pure objects
– Harrison, Ossher
- 1993
|
|
241
|
A.: A Framework for Expressing the Relationships Between Multiple Views in Requirements Specifications
– Nuseibeh, Kramer, et al.
- 1994
|
|
208
|
Connecting tools using message passing in the field environment
– Reiss
- 1990
|
|
137
|
D: A Language Framework for Distributed Programming
– Lopes
- 1997
|
|
128
|
Using role components to implement collaborationbased designs
– VanHilst, Notkin
- 1996
|
|
118
|
Adaptive plug-and-play components for evolutionary software development
– Mezini, Lieberherr
- 1998
|
|
108
|
Specifying reusable components using contracts
– Holland
- 1992
|
|
95
|
Toward megaprogramming
– Wiederhold, Wegner, et al.
- 1992
|
|
47
|
Issues encountered in building a flexible software development environment: Lessons from the Arcadia project
– Kadia
- 1992
|
|
37
|
Mediators: Easing the Design and Evolution of Integrated Systems
– Sullivan
- 1994
|
|
27
|
System design by composing structures of interacting objects
– Andersen, Reenskaug
|
|
21
|
Operation-level composition: A case in (join) point
– Ossher, Tarr
- 1998
|
|
18
|
SubjectOriented Programming: Supporting Decentralized Development of Objects
– Ossher, Harrison, et al.
- 1994
|
|
15
|
Specifying Subject-Oriented Composition
– Ossher, Kaplan, et al.
- 1996
|
|
11
|
Feature Engineering
– Turner, Fuggetta, et al.
- 1998
|
|
2
|
Online material on adaptive programming, demeter/java, and APPCs. http://www.ccs.neu.edu/research/demeter
– Group
- 1998
|
|
2
|
Specifying subject-oriented composition. TAPOS
– Ossher, Kaplan, et al.
- 1996
|
|
1
|
Aspect-oriented programming tutorial notes
– Kiczales, Lopes
- 1998
|
|
1
|
Adding Implicit Invocagtion to Languages: Three Approaches
– Notkin, Garlan, et al.
- 1993
|