Abstract
Software architecture is the level of software design that addresses the overall structure and properties of software systems. It provides a focus for certain aspects of design and development that are not appropriately addressed within the constituent modules. Architectural design depends heavily on accurate specifications of subsystems and their interactions. These specifications must cover a wide variety of properties, so the specification notations and associated methods must be selected or developed to match the properties of interest. Unfortunately, the available formal methods are only a partial match for architectural needs, which entail description of structure, packaging, environmental assumptions, representation, and performance as well as functionality. A prerequisite for devising or selecting a formal method is sound understanding of what needs to be formalized. For software architecture, much of this understanding is arising through progressive codification, which begins with real-world examples and creates progressively more precise models that eventually support formalization. This paper explores the progressive codification of software architecture: the relation between emerging models and the selection, development, and use of formal systems.
Preview
Unable to display preview. Download preview PDF.
References
Gregory Abowd, Robert Allen, and David Garlan. Using style to understand descriptions of software architecture. In Proceedings of SIGSOFT'93: Foundations of Software Engineering, Software Engineering Notes 18(5), pages 9–20. ACM Press, December 1993.
Robert Allen and David Garlan. A formal approach to software architectures. In Jan van Leeuwen, editor, Proceedings of IFIP'92. Elsevier Science Publishers B.V., September 1992.
Robert Allen and David Garlan. Formalizing architectural connection. In Proceedings of the Sixteenth International Conference on Software Engineering, pages 71–80, Sorrento, Italy, May 1994.
G. Berry and G. Boudol. The chemical abstract machine. Theoretical Computer Science, (96):217–248, 1992.
Grady Booch. Object-oriented development. IEEE Transactions on Software Engineering, SE-12(2):211–221, February 1986.
Pam Binns and Steve Vestal. Formal real-time architecture specification and analysis. In Tenth IEEE Workshop on Real-Time Operating Systems and Software, New York, NY, May 1993.
Paul Clements, Len Bass, Rick Kazman, and Gregory Abowd. Predicting software quality by architecture-level evaluation. In Proceedings of the Fifth International Conference on Software Quality, Austin, Texas, October 1995.
DeLorme Mapping Company. WWW page describing MapExpert product, 1995. URL: http://www.delorme.com/catalog/mex.htm.
Proceedings of the Workshop on Domain-Specific Software Architectures, Hidden Vallen, PA, July 1990. Software Engineering Institute.
Marek Fridrich and William Older. Helix: The architecture of the XMS distributed file system. IEEE Software, 2(3):21–29, May 1985.
David Garlan, Robert Allen, and John Ockerbloom. Exploiting style in architectural design environments. In Proceedings of SIGSOFT'94: Foundations of Software Engineering. ACM Press, December 1994.
David Garlan, Robert Allen, and John Ockerbloom. Architectural mismatch, or, why it's hard to build systems out of existing parts. In Proceedings of the 17th International Conference on Software Engineering, Seattle, Washington, April 1995.
David Garlan, editor. Proceedings of First International Workshop on Architectures for Software Systems, Seattle, WA, April 1995. Reissued as Carnegie Mellon University Technical Report CMU-CS-95-151.
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Design. Addison-Wesley, 1994.
David Garlan and David Notkin. Formalizing design spaces: Implicit invocation mechanisms. In S. Prehn, W.J. Toetenel (Eds.), VDM'91: Formal Software Development Methods, Conf. Contributions 4th Int. Symp. of VDM Europe, Lecture Notes in Computer Science, Vol. 551, Springer-Verlag, Berlin, pp. 31–44.
David Garlan, Frances Newberry Paulisch, and Walter F. Tichy, editors. Summary of the Dagstuhl Workshop on Software Architecture, Schloss Dagstuhl, Germany, February 1995.
David Garlan and Mary Shaw. An introduction to software architecture. In V. Ambriola and G. Tortora, editors, Advances in Software Engineering and Knowledge Engineering, pages 1–39, Singapore, 1993. World Scientific Publishing Company. Also appears as SCS and SEI technical reports: CMU-CS-94-166, CMU/SEI-94-TR-21, ESC-TR-94-021.
C.A.R. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.
Paola Inverardi and Alex Wolf. Formal specification and analysis of software architectures using the chemical, abstract machine model. IEEE Transactions on Software Engineering, Special Issue on Software Architecture, 21(4):373–386, April 1995.
Michael Jackson. Problems, methods and specialisation (a contribution to the special issue on software engineering in the year 2001). IEE Software Engineering Journal, November 1994. A shortened version of this paper also appears in IEEE Software, November 1994, 11(6).
David C. Luckham, Lary M. Augustin, John J. Kenney, James Veera, Doug Bryan, and Walter Mann. Specification and analysis of system architecture using Rapide. IEEE Transactions on Software Engineering, Special Issue on Software Architecture, 21(4):336–355, April 1995.
Thomas G. Lane. Studying software architecture through design spaces and rules. Technical Report CMU/SEI-90-TR-18 ESD-90-TR-219, Carnegie Mellon University, September 1990.
Mark A. Linton. Distributed management of a software database. IEEE Software, 4(6):70–76, November 1987.
John Mylopoulos, Lawrence Chung, and Brian Nixon. Representing and using nonfunctional requirements: A process-oriented approach. IEEE Transactions on Software Engineering, 18(6), June 1992.
Jeff Magee and Jeff Kramer. Modelling distributed software architectures. In Proceedings of the First International Workshop on Architectures for Software Systems. Reissued as Carnegie Mellon University Technical Report CMU-CS-95-151, April 1995.
R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes. Journal of Information and Computation, 100:1–77, 1992.
M. Moriconi, X. Qian, and R. Riemenschneider. Correct architecture refinement. IEEE Transactions on Software Engineering, Special Issue on Software Architecture, 21(4):356–372, April 1995.
H. Penny Nii. Blackboard systems Parts 1 & 2. AI Magazine, 7 nos 3 (pp.38–53) and 4 (pp. 62–69), 1986.
Mark C. Paulk. The ARC Network: A case study. IEEE Software, 2(3):61–69, May 1985.
Dewayne E. Perry. Software interconnection models. In Proceedings of the Ninth International Conference on Software Engineering, pages 61–68, Monterey, CA, March 1987. IEEE Computer Society Press.
Dewayne E. Perry and Alexander L. Wolf. Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes, 17(4):40–52, October 1992.
Raj Reddy. Foundations and grand challenges of artificial intelligence. AI Magazine, 9(4):9–21, Winter 1988. 1988 presidential address, AAAI.
Alfred Z. Spector et al. Camelot: A distributed transaction facility for Mach and the Internet—an interim report. Technical Report CMU-CS-87-129, Carnegie Mellon University, June 1987.
V. Seshadri et al. Semantic analysis in a concurrent compiler. In Proceedings of ACM SIGPLAN '88 Conference on Programming Language Design and Implementation. ACM SIGPLAN Notices, 1988.
Mary Shaw, Robert DeLine, Daniel V. Klein, Theodore L. Ross, David M. Young, and Gregory Zelesnik. Abstractions for software architecture and tools to support them. IEEE Transactions on Software Engineering, Special Issue on Software Architecture, 21(4):314–335, April 1995.
Mary Shaw. The impact of abstraction concerns on modern programming languages. In Proceedings of the IEEE Special Issue on Software Engineering, volume 68, pages 1119–1130, September 1980.
Mary Shaw. What can we specify? Questions in the domains of software specifications. In Proceedings of the Third International Workshop on Software Specification and Design, pages 214–215. IEEE Computer Society Press, August 1985.
Mary Shaw. Architectural issues in software reuse: It's not just the functionality, it's the packaging. In Proceedings of the Symposium on Software Reuse, April 1995.
Herbert A. Simon. Human experts and knowledge-based systems, November 9–12 1987.
J.M. Spivey. The Z Notation: A Reference Manual. Prentice Hall, 1989.
Allan Terry et al. Overview of Teknowledge's domain-specific software architecture program. ACM SIGSOFT Software Engineering Notes, 19(4):68–76, October 1994.
Will Tracz. Collected overview reports from the DSSA project. Loral Federal Systems — Owego, October 1994.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Shaw, M., Garlan, D. (1995). Formulations and formalisms in software architecture. In: van Leeuwen, J. (eds) Computer Science Today. Lecture Notes in Computer Science, vol 1000. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0015251
Download citation
DOI: https://doi.org/10.1007/BFb0015251
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60105-0
Online ISBN: 978-3-540-49435-5
eBook Packages: Springer Book Archive