Abstract
Progress in the science of programming is reflected by the evolution of programming languages. We propose that the next step in this evolution is a more comprehensive kind of programs: To redefine the way programs are perceived and, consequently, to redefine what constitutes the activity of programming. Rather than treating architectural specifications as separate, we argue that they need be treated as part of the program. Thus, a program is specified through two tightly integrated representations:
-
1.
Intentional tier: A generic (“abstract”) representation of design and architectural properties (constraints) of the program which, in conformance with the principle of least constraint [15], is phrased in generic terms.
-
2.
Extensional tier: The second specification layer which consists of the traditional source code. As software evolves continuously, our approach stresses the relevance of the design and architectural specifications throughout the evolution of a program.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
R. Allen, D. Garlan. “A Formal Basis For Architectural Connection.” ACM Transactions on Software Engineering and Methodology, Vol. 6, No. 3, July 1997, pp. 213–249.
J. Coker (1997). “Keeping Objects In Sync.” In: Java Developer Connection, http://java.sun.com
J. Bosch. “Relations as Object Model Components.” Journal of Programming Languages, Vol. 4, No. 1, 1996, pp. 39–61.
E. R. Comer. 1997. “Alternative Software Life Cycle Models.” In Software Engineering, Dorfman, Merlin; Thayer, Richard, pp. 404–414. Piscataway, NJ: IEEE Computer Society Press.
J. Coplien, D. Schmidt, eds. (1995). Pattern Languages of Program Design. Reading, MA: Addison-Wesley.
A. H. Eden. “LePUS: A Formal Specification Language of Object Oriented Design and Architecture.” 2002 NSF Design, Service, and Manufacturing Grantees and Research Conference, Jan. 7–10, 2002, San Juan, Puerto Rico.
A. H. Eden, Y. Hirshfeld. “Principles in Formal Specification of Object Oriented Architectures.” CASCON 2001, November 5–8, 2001. Toronto, Canada.
A. H. Eden (2002). “LePUS: A Visual Formalism for Object-Oriented Architectures.” The 6th World Conference on Integrated Design and Process Technology, Pasadena, California, June 26–30, 2002.
E. Gamma, R. Helm, R. Johnson, J. Vlissides (1994). Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley.
D. Garlan, M. Shaw (1993). “An Introduction to Software Architecture.” In V. Ambriola, G. Tortora, eds., Advances in Software Engineering and Knowledge Engineering, Vol. 2, pp. 1–39. New Jersey: World Scientific Publishing Company.
W. W. Gibbs (1994). “Software’s Chronic Crisis.” Scientific American, Vol. 271, No. 3, pp. 86–95.
D. C. Luckham, J. J. Kenney, L. M. Augustin, J. Vera, D. Bryan, W. Mann. “Specification and Analysis of System Architecture Using Rapide.” IEEE Transactions on Software Engineering, Special Issue on Software Architecture, Vol. 21, No. 4, pp. 336–355, April 1995.
N. Medvidovic, R. N. Taylor (1997). “A Framework for Classifying and Comparing Architecture Description Languages”. In Proceedings of the Sixth European Software Engineering Conference, together with Fifth ACM SIGSOFT Symposium on the Foundations of Software Engineering, Zurich, Switzerland, September 22–25, 1997, pp. 60–76.
MegaLang Institute. “Fundamentals of JFC/Swing, Part II”. http://java.sun.com
M. O’Cinnéide, P. Nixon. “A Methodology for the Automated Introduction of Design Patterns.” Proceedings of the IEEE International Conference on Software Maintenance, 30 August–3 September, 1999.
D. E. Perry, A. L. Wolf (1992). “Foundation for the Study of Software Architecture”. ACM SIGSOFT Software Engineering Notes, 17 (4), pp. 40–52.
W. W. Royce (1970). “Managing the Development of Large Software Systems: Concepts and Techniques.” 1970 WESCON Technical Papers, Vol. 14, Western Electronic Show and Convention.
M. Shaw, D. Garlan (1995). “Formulations and Formalisms in Software Architecture,” chap. in Computer Science Today, Lecture Notes in Computer Science Vol. 1000. Berlin: Springer-Verlag.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Eden, A.H., Jahnke, J. (2002). Coordinating Software Evolution via Two-Tier Programming. In: Arbab, F., Talcott, C. (eds) Coordination Models and Languages. COORDINATION 2002. Lecture Notes in Computer Science, vol 2315. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46000-4_16
Download citation
DOI: https://doi.org/10.1007/3-540-46000-4_16
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43410-8
Online ISBN: 978-3-540-46000-8
eBook Packages: Springer Book Archive