Skip to main content

Formulations and formalisms in software architecture

  • Chapter
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1000))

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. G. Berry and G. Boudol. The chemical abstract machine. Theoretical Computer Science, (96):217–248, 1992.

    Article  Google Scholar 

  5. Grady Booch. Object-oriented development. IEEE Transactions on Software Engineering, SE-12(2):211–221, February 1986.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. DeLorme Mapping Company. WWW page describing MapExpert product, 1995. URL: http://www.delorme.com/catalog/mex.htm.

    Google Scholar 

  9. Proceedings of the Workshop on Domain-Specific Software Architectures, Hidden Vallen, PA, July 1990. Software Engineering Institute.

    Google Scholar 

  10. Marek Fridrich and William Older. Helix: The architecture of the XMS distributed file system. IEEE Software, 2(3):21–29, May 1985.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Design. Addison-Wesley, 1994.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. David Garlan, Frances Newberry Paulisch, and Walter F. Tichy, editors. Summary of the Dagstuhl Workshop on Software Architecture, Schloss Dagstuhl, Germany, February 1995.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. C.A.R. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.

    Google Scholar 

  19. 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.

    Google Scholar 

  20. 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).

    Google Scholar 

  21. 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.

    Google Scholar 

  22. 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.

    Google Scholar 

  23. Mark A. Linton. Distributed management of a software database. IEEE Software, 4(6):70–76, November 1987.

    Google Scholar 

  24. 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.

    Google Scholar 

  25. 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.

    Google Scholar 

  26. R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes. Journal of Information and Computation, 100:1–77, 1992.

    Article  Google Scholar 

  27. 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.

    Google Scholar 

  28. H. Penny Nii. Blackboard systems Parts 1 & 2. AI Magazine, 7 nos 3 (pp.38–53) and 4 (pp. 62–69), 1986.

    Google Scholar 

  29. Mark C. Paulk. The ARC Network: A case study. IEEE Software, 2(3):61–69, May 1985.

    Google Scholar 

  30. 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.

    Google Scholar 

  31. 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.

    Article  Google Scholar 

  32. Raj Reddy. Foundations and grand challenges of artificial intelligence. AI Magazine, 9(4):9–21, Winter 1988. 1988 presidential address, AAAI.

    Google Scholar 

  33. 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.

    Google Scholar 

  34. 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.

    Google Scholar 

  35. 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.

    Google Scholar 

  36. 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.

    Google Scholar 

  37. 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.

    Google Scholar 

  38. 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.

    Google Scholar 

  39. Herbert A. Simon. Human experts and knowledge-based systems, November 9–12 1987.

    Google Scholar 

  40. J.M. Spivey. The Z Notation: A Reference Manual. Prentice Hall, 1989.

    Google Scholar 

  41. Allan Terry et al. Overview of Teknowledge's domain-specific software architecture program. ACM SIGSOFT Software Engineering Notes, 19(4):68–76, October 1994.

    Article  Google Scholar 

  42. Will Tracz. Collected overview reports from the DSSA project. Loral Federal Systems — Owego, October 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jan van Leeuwen

Rights and permissions

Reprints 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

Publish with us

Policies and ethics