Abstract
We present a formal description of software architectures for software reuse to support a view of systematic software reuse as the plugging of components into an architecture. The components are object descriptions in the object calculus. Interconnection between the components is defined via synchronisation morphisms within a framework based on category theory. Component composition is defined via the pushout construction, giving the architecture as a “calculated” component, from which the architecture’s properties may be derived. We show that the architectures described are reusable in our Reuse Triplet that forms the motivation for our on-going work on systematic software reuse. This work provides further support for the suggestion that category theory provides the appropriate level of mathematical abstraction to describe software architectures.
The original version of this chapter was revised: The copyright line was incorrect. This has been corrected. The Erratum to this chapter is available at DOI: 10.1007/978-0-387-35563-4_35
The work in this paper was supported by various grants from EPSRC and was partially sponsored by the project ARTS (formal Approach to Real-Time Systems development) being carried out by The Laboratory of Formal Methods, Department of Informatics, Pontificia Universidade Catolica do Rio de Janeiro, Brazil, and its research associates, under contract to Equitel SA Equipamentos e Sistemas de Telecomunicacoes. The first author, while on study leave at Imperial College, London, was supported by the University of the West Indies (Mona), Kingston, Jamaica, under the UWI/IDB staff development programme.
Chapter PDF
Similar content being viewed by others
Key words
References
Abowd, Gregory; Allen, Robert and Garlan David (1993), Using Style to Understand Descriptions of Software Architecture, ACM SIGSOFT 93: Foundations of Software Engineering, Software Engineering Notes, 18(5). ACM Press
Alexander, Christopher; Ishikawa, Sarah; Silverstein Murray; Jacobson Max; Fiksdahl-King Ingrid and Angel, Shlomo (1977), A Pattern Language, Oxford University Press.
Allen Robert and Garlan David (1995), Formalizing Architectural Connection, First International Workshop on Architectures forSoftware Systems.
Biggerstaff, Ted and Charles Richter, Charles (March 1987), Reusability Framework, Assessment, and Directions, IEEE Software.
Bud, Timothy (1997), An Introduction to Object-Oriented Programming, Second Edition,Addison Wesley
Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter and Stal, Michael (1996), Pattern-Oriented Software Architecture A system of Patterns,John Wiley & Sons.
Fiadeiro, J and Maibaum, T (1991), Describing, Structuring and Implementing Objects, LNCS: Foundations of Object-Oriented Languages, Volume 489, (de Bakker, J. W.; W. P. de Roever, W. P. and Rozenberg, G, editors ), Springer-Verlag
Fiadeiro, J and Maibaum, T (1992), Temporal Theories as Modularisation Units for Concurrent System Specification, Formal Aspects of Computing, 4 (3).
Fiadeiro, J and Maibaum, T (1997), Categorical Semantics of Parallel Program Design, Science of Computer Programming, North Holland.
Fiadeiro, J. L and Lopez, A. (1997), Semantics of Architectural Connectors, TAPSOFT `97: Theory and Practice of Software Development, LNCS 1214, (Bidoit, Michel and Dauchet, Max, editors), pages 505–519, Springer-Verlag.
Fiadeiro, J. L.; Lopez, A. and Maibaum, T. (1997), Synthesising Interconnections, IFIP TC2 Working Conference on Algorithmic Languages and Calculi, (Smith, D. and Finance, J.-P., editors ), Chapman and Hall.
Fiadeiro, J and Maibaum, T (1995), Interconnecting Formalisms: Supporting Modularity, Reuse and Incrementality, Proceedings of the 3rd Symposium on Foundations of Software Engineering, (Kaiser, G.E., editor ), ACM Press.
Fiadeiro, J and Maibaum, T (1996), A Mathematical Toolbox for the Software Architect, Proceedings of the 8th International Workshop on Software Specification and Design, IEEE Press.
Gamma,Erich;Helm,Richard;Johnson,Ralph and Vlissides, John (1995),Design Patterns,Addison-Wesley.
Goguen, Joseph (1991), A Categorical Manifesto, Mathematical Structures in Computer Science, 1(1).
Goguen, J. A. (1992), Sheaf semantics for concurrent interacting objects, Mathematical Structures in Computer Science, 2(2), Pages 159 — 191.
Hoare, C.A.R.(1985), Communicating Sequential Processes,Prentice Hall.
Hoare, C.A.R. (1978), Communicating Sequential Processes, Communications of the ACM,21(8)
INMOS-Ltd (1988), Occam 2 Reference Manual,Prentice Hall
Krueger, Charles (1992), Software Reuse, ACM Computing Surveys, 24 (2).
Luckham,David C.; Kenney, John J.; Augustin,Larry M.; Vera, James; Doug, Bryan and Mann, Walter (1995), Specification and Analysis of System Architecture Using Rapide,IEEE Transactions on Software Engineering, Special Issue on Software Architecture, 21(4)
Luckham,David C. and Vera (1995), James, An Event-Based Architecture Definition Language, IEEE Transactions on Software Engineering, Special Issue on Software Architecture, 21 (9).
Magee,Jeff; Dulay, Naranker and Kramer, Jeff (1993), Structuring Parallel and Distributed programs,IEE Software Engineering Journal, 8(2).
Magee, Jeff Kramer, Jeff and Sloman, Morris (1989), Constructing Distributed Systems in Conic, IEEE Transactions on Software Engineering, 15(6)
Manna, Zohar and Pnueli, Amir (1992), Temporal Logic of Reactive and Concurrent Systems: Specification,Springer-Verlag.
Moriconi, Mark and Qian, Xiaolei (1994), Correctness and Composition of Software Architectures, ACM SIGSOFT `94: Symposium on Foundations of Software Engineering, Software Engineering Notes (Wile, David (ed.)).
Moriconi, Mark; Qian, Xiaolei and Riemenschneider, R. A. (1995), Correct Architecture Refinement, IEEE Transactions on Software Engineering, 21(4)
Mugisa, Ezra Kaahwa (1997), A Reuse Triplet for Systematic Software Reuse, Software Engineering Notes, 22(2)
Mugisa, Ezra Kaahwa (1998), An Approach to Systematic Software Reuse Based on Plugging Components into an Architecture, PhD thesis, University of London, in preparation. Object
Management Group (1996), The Common Object Request Broker:Architecture and Specification, Revision 2.0.
Perry, Douglas L.(1998), VHDL, Third Edition,McGraw-Hill.
Shaw, Mary (1995), Architectural Issues in Software Reuse: It’s Not Just the Functionality, It’s the Packaging, Proceedings of the Symposium on Software Reusability (SSR’95), (Samadzadeh, Mansur and Zand, Mansour (eds.) ), Software Engineering Notes.
Shaw, Mary (1995), Comparing Architectural Design Styles,IEEE Software, 12(6).
Shaw, Mary and Garlan, David (1995), Formulations and Formalisms in Software Architecture, Computer Science Today: Recent Trends and Developments. Lecture Notes in Computer Science 1000 ( Jan van Leeuwen (ed.) ), Springer-Verlag.
Shaw, Mary and Garlan, David (1996), Software Architecture: Perspectives on an emerging discipline,Prentice Hall.
Spivey, J. M. (1992), The Z Notation: A Reference Manual, Second Edition, Prentice Hall.
Srinivas, Y. V. and Jullig, Richard (1995), Specware(TM): Formal Support for Composing Software, Kestrel Institute Technical Report KES.U. 94. 5
Srinivas, Yellamraju V. and McDonald, James L. (1996), The Architecture of Specware, a Formal Software Development System, Kestrel Institute Technical Report KES.U. 96. 7
Terry, Allan; Hayes-Roth, Frederick and Erman, Lee (1994), Overview of Teknowledge’s Domain-Specific Software Architecture Program, Software Engineering Notes, 19 (4)
Tracz, Will (1995), Domain Specific Software Architecture, Software Engineering Notes, 20 (3)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 IFIP International Federation for Information Processing
About this chapter
Cite this chapter
Mugisa, E.K., Maibaum, T.S.E. (1999). A Framework for Describing Software Architectures for Reuse. In: Donohoe, P. (eds) Software Architecture. WICSA 1999. IFIP — The International Federation for Information Processing, vol 12. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-35563-4_14
Download citation
DOI: https://doi.org/10.1007/978-0-387-35563-4_14
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4757-6536-6
Online ISBN: 978-0-387-35563-4
eBook Packages: Springer Book Archive