|
ABSTRACT
Design for change is a well-known adagium in software engineering. We separate concerns, employ well-designed interfaces, and the like to ease evolution of the systems we build. We model and build in changeability through parameterization and variability points (as in product lines). These all concern places where we explicitly consider variability in our systems. We conjecture that it is helpful to also think of and explicitly model invariability, things in our systems and their environment that we assume will not change. We give examples from the literature and our own experience to illustrate how evolution can be seriously hampered because of tacit assumptions made. In particular, we show how we can explicitly model assumptions in an existing product family. From this, we derive a metamodel to document assumptions. Finally, we show how this type of modeling adds to our understanding of the architecture and the decisions that led to it.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. SEI Series in Software Engineering. Addison-Wesley, 2002.
|
| |
3
|
|
 |
4
|
Earl F. Ecklund, Jr. , Lois M. L. Delcambre , Michael J. Freiling, Change cases: use cases that identify future requirements, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.342-358, October 06-10, 1996, San Jose, California, United States
|
| |
5
|
A. Enders and D. Rombach. A Handbook of Software and Systems Engineering -- Empirical Observations, Laws and Theories. The Fraunhofer IESE Series on Software Engineering. Addison Wesley, 2003.
|
| |
6
|
Huw Evans , Malcolm Atkinson , Margaret Brown , Julie Cargill , Murray Crease , Steve Draper , Phil Gray , Richard Thomas, The pervasiveness of evolution in GRUMPS software, Software—Practice & Experience, v.33 n.2, p.99-120, 1 February 2003
[doi> 10.1002/spe.498]
|
| |
7
|
|
| |
8
|
|
| |
9
|
|
| |
10
|
K. Kang, S. Cohen, J. Hess, W. Novak, and S. Peterson. Feature-Oriented Domain Analysis Feasibility Study. Technical report, Software Engineering Institute, 1990.
|
| |
11
|
P. Lago and H. van Vliet. Observations from the Recovery of a Software Product Family. In Proceedings of the Software Product Lines Conference, Lecture Notes in Computer Science, pages 214--227, Boston, USA, Aug. 2004. Springer Verlag.
|
| |
12
|
|
| |
13
|
|
| |
14
|
|
| |
15
|
M. Lehman. Software Evolution -- Cause or Effect. Stevens Memorial Lecture, http://www.cs.mdx.ac.uk/staffpages/mml, 2003.
|
| |
16
|
M. Lehman and L. Belady, editors. Program Evolution. Number 27 in APIC Studies in Data Processing. Academic Press, 1985.
|
| |
17
|
|
| |
18
|
|
| |
19
|
Juha Savolainen , Juha Kuusela, Consistency Management of Product Line Requirements, Proceedings of the 5th IEEE International Symposium on Requirements Engineering, p.40-47, August 27-31, 2001
|
| |
20
|
S. Uchitel and D. Yankelevich. Enhancing Architectural Mismatch Detection with Assumptions. In In Proc. of the Eng. of Computer Based Systems (ECBS 2000), pages 138--147, Edinburgh, Scotland, Apr. 2000.
|
| |
21
|
T. Weiler. Modeling Architectural Variability for Software Product Lines. In J. van Gurp and J. Bosch, editors, Proceedings of the Workshop on Software Variability Management, pages 55--63, Gröningen, The Netherlands, Feb. 2003.
|
 |
22
|
Daniil Yakimovich , James M. Bieman , Victor R. Basili, Software architecture classification for estimating the cost of COTS integration, Proceedings of the 21st international conference on Software engineering, p.296-302, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302643]
|
|