Abstract
The ability of reconfiguring software architectures in order to adapt them to new requirements or a changing environment has been of growing interest, but there is still not much formal work in the area. Most existing approaches deal with run-time changes in a deficient way. The language to express computations is often at a very low level of specification, and the integration of two different formalisms for the computations and reconfigurations require sometimes substantial changes. To address these problems, we propose a uniform algebraic approach with the following characteristics.
-
1.
Components are written in a high-level program design language with the usual notion of state.
-
2.
The approach combines two existing frameworks— one to specify architectures, the other to rewrite labelled graphs—just through small additions to either of them.
-
3.
It deals with certain typical problems such as guaranteeing that new components are introduced in the correct state (possibly transferred from the old components they replace).
-
4.
It shows the relationships between reconfigurations and computations while keeping them separate, because the approach provides a semantics to a given architecture through the algebraic construction of an equivalent program, whose computations can be mirrored at the architectural level.
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, R. Douence, and D. Garlan. Specifying and analyzing dynamic software architectures. In Fundamental Approaches to Software Engineering, volume 1382 of LNCS, pages 21–37. Springer-Verlag, 1998.
C. Canal, E. Pimentel, and J. M. Troya. Specification and refinement of dynamic software architectures. In P. Donohoe, editor, Software Architecture, pages 107–125. Kluwer Academic Publishers, 1999.
K. M. Chandy and J. Misra. Parallel Program Design—A Foundation. Addison-Wesley, 1988.
M. Clavel, S. Eker, P. Lincoln, and J. Meseguer. Principles of Maude. In Proceedings of the First International Workshop on Rewriting Logic, volume 4 of Electronic Notes in Theoretical Computer Science, pages 65–89. Elsevier, 1996.
A. Corradini, U. Montanari, F. Rossi, H. Ehrig, R. Heckel, and M. Löwe. Algebraic approaches to graph transformation, part I: Basic concepts and double pushout approach. Technical Report TR-96-17, University of Pisa, Mar. 1996.
Description of EDCS technology clusters. ACM SIGSOFT Software Engineering Notes, 22(5):33–42, Sept. 1997.
M. Endler. A language for implementing generic dynamic reconfigurations of distributed programs. In Proceedings of the 12th Brazilian Symposium on Computer Networks, pages 175–187, 1994.
J. L. Fiadeiro and A. Lopes. Semantics of architectural connectors. In Proceedings of TAPSOFT’97, volume 1214 of LNCS, pages 505–519. Springer-Verlag, 1997.
J. L. Fiadeiro and T. Maibaum. Interconnecting formalisms: Supporting modularity, reuse and incrementality. In SIGSOFT’95: Third Symposium on Foundations of Software Engineering, pages 72–80. ACM Press, 1995.
J. L. Fiadeiro and T. Maibaum. A mathematical toolbox for the software architect. In Proceedings of the 8th International Workshop on Software Specification and Design, pages 46–55. IEEE Computer Society Press, 1996.
J. L. Fiadeiro and T. Maibaum. Categorial semantics of parallel program design. Science of Computer Programming, 28:111–138, 1997.
J. L. Fiadeiro, M. Wermelinger, and J. Meseguer. Semantics of transient connectors in rewriting logic. Position Paper for the First Working International Conference on Software Architecture, Feb. 1999.
N. Francez and I. Forman. Interacting Processes. Addison-Wesley, 1996.
A. Habel, R. Heckel, and G. Taentzer. Graph grammars with negative application conditions. Fundamenta Informaticae, 26(3-4), 1996.
D. Hirsch, P. Inverardi, and U. Montanari. Modelling software architectures and styles with graph grammars and constraint solving. In P. Donohoe, editor, Software Architecture, pages 127–143. Kluwer Academic Publishers, 1999.
J. Kramer and J. Magee. The evolving philosophers problem: Dynamic change management. IEEE Transactions on Software Engineering, 16(11):1293–1306, Nov. 1990.
J. Kramer and J. Magee. Analysing dynamic change in software architectures: A case study. In Proceedings of the Fourth International Conference on Configurable Distributed Systems, pages 91–100. IEEE Computer Society Press, 1998.
A. Lopes and J. L. Fiadeiro. Using explicit state do describe architectures. In Proceedings of Fundamental Approaches to Software Engineering, number 1577 in LNCS, pages 144–160. Springer-Verlag, 1999.
M. Löwe. Algebraic approach to graph transformation based on single pushout derivations. Technical Report 90/5, Technische Universität Berlin, 1990.
J. Magee and J. Kramer. Dynamic structure in software architectures. In Proceedings of the Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages 3–14. ACM Press, 1996.
P. J. McCann and G.-C. Roman. Compositional programming abstractions for mobile computing. IEEE Transactions on Software Engineering, 24(2), Feb. 1998.
N. Medvidovic. ADLs and dynamic architecture changes. In Joint Proceedings of the SIGSOFT’96 Workshops, pages 24–27. ACM Press, 1996.
N. Medvidovic. A classification and comparison framework for software architecture description languages. Technical Report UCI-ICS-97-02, Department of Information and Computer Science, University of California, Irvine, Feb. 1997.
D. L. Métayer. Describing software architecture styles using graph grammars. IEEE Transactions on Software Engineering, 24(7):521–553, July 1998.
J. C. Mitchell. Foundations for Programming Languages. MIT Press, 1996.
R. T. Monroe, D. Garlan, and D. Wile. Acme StrawManual, Nov. 1997.
P. Oreizy. Issues in the runtime modification of software architectures. Technical Report UCI-ICS-TR-96-35, Department of Information and Computer Science, University of California, Irvine, Aug. 1996.
D. E. Perry. State-of-the-art: Software architecture. In Proceedings of the 19th International Conference on Software Engineering, pages 590–591. ACM Press, 1997. Slides available from http://www.bell-labs.com/user/dep/work/swa/icse97.vg.ps.gz.
G.-C. Roman, P. J. McCann, and J. Y. Plun. Mobile UNITY: Reasoning and specification in mobile computing. ACM TOSEM, 6(3):250–282, July 1997.
R. Sedgewick. Algorithms. Addison-Wesley, second edition, 1988.
G. Taentzer, M. Goedicke, and T. Meyer. Dynamic change management by distributed graph transformation: Towards configurable distributed systems. In Proc. 6th Int. Workshop on Theory and Application of Graph Transformation, 1998.
M. Wermelinger. A hierarchic architecture model for dynamic reconfiguration. In Proceedings of the Second International Workshop on Software Engineering for Parallel and Distributed Systems, pages 243–254. IEEE Computer Society Press, 1997.
M. Wermelinger. Towards a chemical model for software architecture reconfiguration. IEE Proceedings— Software, 145(5):130–136, Oct. 1998.
M. Wermelinger and J. L. Fiadeiro. Connectors for mobile programs. IEEE Transactions on Software Engineering, 24(5):331–341, May 1998.
M. Wermelinger and J. L. Fiadeiro. Towards an algebra of architectural connectors: a case study on synchronization for mobility. In Proceedings of the Ninth International Workshop on Software Specification and Design, pages 135–142. IEEE Computer Society Press, 1998.
A. L. Wolf. Succeedings of the Second International Software Architecture Workshop. ACM SIGSOFT Software Engineering Notes, 22(1):42–56, Jan. 1997.
D. Wolz. Colimit Library for Graph Transformations and Algebraic Development Techniques. PhD thesis, Technische Universität Berlin, 1998.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wermelinger, M., Fiadeiro, J.L. (1999). Algebraic Software Architecture Reconfiguration. In: Nierstrasz, O., Lemoine, M. (eds) Software Engineering — ESEC/FSE ’99. ESEC SIGSOFT FSE 1999 1999. Lecture Notes in Computer Science, vol 1687. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48166-4_24
Download citation
DOI: https://doi.org/10.1007/3-540-48166-4_24
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66538-0
Online ISBN: 978-3-540-48166-9
eBook Packages: Springer Book Archive