Abstract
Self-adaptability is a feature that has been proposed to deal with the increasing management and maintenance efforts required by large software systems. However this feature is not enough to deal with the longevity usually these systems exhibit. Although self-adaptive systems allow the adaptation or reorganization of the system structure, they generally do not allow introducing unforeseen changes at runtime. This issue is tackled by dynamic evolution. However, its support in distributed contexts, like self-organizing systems, is challenging: these systems have a degree of autonomy which requires asynchronous management. This paper proposes the use of asynchronous dynamic evolution, where both types and instances evolve dynamically at different rates, while preserving: (i) type-conformance of instances, and (ii) the order of type evolutions. This paper describes the semantics for supporting the asynchronous evolution of architectural types (ie. types that define a software architecture). The semantics is illustrated with PRISMA architecture specifications and is formalized by using typed graph transformations.
This work has been partially supported by the Spanish Department of Science and Technology under the National Program for Research, Development and Innovation project MULTIPLE (TIN2009-13838), and by the Conselleria d’Educació i Ciència (Generalitat Valenciana) under the contract BFPI06/227.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
AGG: Attributed Graph Grammar System Tool, http://user.cs.tu-berlin.de/~gragra/agg/
Andersson, J., Comstedt, M., Ritzau, T.: Run-time support for dynamic Java architectures. In: ECOOP 1998 workshop on Object-Oriented Software Architectures (WOOSA 1998), Brussels (1998)
Andersson, J., De Lemos, R., Malek, S., Weyns, D.: Reflecting on Self-Adaptive Software Systems. In: ICSE workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2009), Vancouver, Canada (2009)
Atkinson, C., Kühne, T.: Model-Driven Development: A Metamodeling Foundation. IEEE Software 20(5), 36–41 (2003)
Bencomo, N., Blair, G.S., Flores-Cortés, C.A., Sawyer, P.: Reflective Component-based Technologies to Support Dynamic Variability. In: 2nd Int. Workshop on Variability Modelling of Software-Intensive Systems (VaMoS’08), Universität Duisburg-Essen, Germany (2008)
Beydeda, S., Book, M., Gruhn, V.: Model-Driven Software Development. Springer, Heidelberg (2005)
Bradbury, J.S., Cordy, J.R., Dingel, J., Wermelinger, M.: A Survey of Self-Management in Dynamic Software Architecture Specifications. In: Workshop on Self-Managed Systems (WOSS 2004), Newport Beach, CA (2004)
Bucchiarone, A., Melgratti, H., Gnesi, S., Bruni, R.: Modelling Dynamic Software Architectures using Typed Graph Grammars. In: Graph Transformations for Verification and Concurrency. ENTCS, vol. 213(1), pp. 39–53. Elsevier, Amsterdam (2007)
Cámara, J., Salaün, G., Canal, C.: Composition and Run-time Adaptation of Mismatching Behavioural Interfaces. J. of Universal Computer Science 14(13), 2182–2211 (2008)
Canal, C., Pimentel, E., Troya, J.M.: Specification and Refinement of Dynamic Software Architectures. In: Working IFIP Conference on Software Architecture (WICSA 1999), San Antonio, Texas, USA (1999)
Cazzola, W., Ghoneim, A., Saake, G.: Software Evolution through Dynamic Adaptation of Its OO Design. In: Ryan, M.D., Meyer, J.-J.C., Ehrich, H.-D. (eds.) Objects, Agents, and Features. LNCS, vol. 2975, pp. 67–80. Springer, Heidelberg (2004)
Cheng, S., Garlan, D., Schmerl, B.R.: Making Self-Adaptation an Engineering Reality. In: Babaoğlu, Ö., Jelasity, M., Montresor, A., Fetzer, C., Leonardi, S., van Moorsel, A., van Steen, M. (eds.) SELF-STAR 2004. LNCS, vol. 3460, pp. 158–173. Springer, Heidelberg (2005)
Costa-Soria, C., Hervás-Muñoz, D., Pérez, J., Carsí, J.A.: A Reflective Approach for Supporting the Dynamic Evolution of Component Types. In: 14th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS 2009). Potsdam, Germany (2009)
Costa-Soria, C., Pérez, J., Carsí, J.A.: An Aspect-Oriented Approach for Supporting Autonomic Reconfiguration of Software Architectures. In: 2nd Workshop on Autonomic and SELF-adaptive Systems (WASELF 2009), San Sebastián, Spain (2009)
Cuesta, C.E., Romay, P., de la Fuente, P., Barrio-Solórzano, M.: Reflection-Based, Aspect-Oriented Software Architecture. In: Oquendo, F., Warboys, B.C., Morrison, R. (eds.) EWSA 2004. LNCS, vol. 3047, pp. 43–56. Springer, Heidelberg (2004)
De Lucia, A., Deufemia, V., Gravino, C., Risi, M.: Behavioral Pattern Identification through Visual Language Parsing and Code Instrumentation. In: 13th European Conference on Software Maintenance and Reengineering (CSMR 2009), Kaiserslautern, Germany (2009)
Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Fundamentals of Algebraic Graph Transformation (Monographs in Theoretical Computer Science. An EATCS Series). Springer, Heidelberg (2006)
Engels, G., Heckel, R., Küster, J.M., Groenewegen, L.: Consistency-Preserving Model Evolution through Transformations. In: Jézéquel, J.-M., Hußmann, H., Cook, S. (eds.) UML 2002. LNCS, vol. 2460, pp. 212–227. Springer, Heidelberg (2002)
Engels, G., Heckel, R., Küster, J.M.: Rule-Based Specification of Behavioral Consistency Based on the UML Meta-model. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, pp. 272–286. Springer, Heidelberg (2001)
Fabry, R.S.: How to design a system in which modules can be changed on the fly. In: 2nd International Conference on Software Engineering (ICSE 1976), San Francisco, California, USA (1976)
Heckel, R.: Graph Transformation in a Nutshell. In: School on Foundations of Visual Modelling Techniques (FoVMT 2004). ENTCS, vol. 148(1), pp. 187–198. Elsevier, Amsterdam (2006)
Hirsch, D., Inverardi, P., Montanari, U.: Graph grammars and constraint solving for software architecture styles. In: 3rd Int. Software Architecture Workshop (ISAW-3). ACM Press, New York (1998)
Kephart, J.O., Chess, D.M.: The Vision of Autonomic Computing. IEEE Computer 36(1), 41–51 (2003)
Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: ICSE - Future of Software Engineering (FOSE 2007). IEEE, Los Alamitos (2007)
Kramer, J., Magee, J.: The Evolving Philosophers Problem: Dynamic Change Management. IEEE Transactions on Software Engineering 16(11), 1293–1306 (1990)
Malabarba, S., Pandey, R., Gragg, J., Barr, E., Barnes, J.F.: Runtime support for type-safe dynamic Java classes. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 337–361. Springer, Heidelberg (2000)
McKinley, P.K., Sadjadi, S.M., Kasten, E.P., Cheng, B.H.C.: Composing Adaptive Software. IEEE Computer 37(7), 56–64 (2004)
Medvidovic, N., Taylor, R.N.: A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering 26(1), 70–93 (2000)
Mens, T., Wermelinger, M.: Separation of concerns for software evolution. J. of Software Maintenance and Evolution 14(5), 311–315 (2002)
Milner, R.: The Polyadic π-Calculus: A Tutorial. Laboratory for Foundations of Computer Science Department, University of Edinburgh (1993)
Nicoara, A., Alonso, G., Roscoe, T.: Controlled, Systematic, and Efficient Code Replacement for Running Java Programs. SIGOPS Operating Systems Review 42(4), 233–246 (2008)
Oreizy, P., Gorlick, M., Taylor, R.N., et al.: An Architecture-Based Approach to Self-Adaptive Software. IEEE Intelligent Systems 14(3), 54–62 (1999)
Pérez, J., Ali, N., Carsí, J.A., Ramos, I., et al.: Integrating aspects in software architectures: PRISMA applied to robotic tele-operated systems. Information & Software Technology 50(9-10), 969–990 (2008)
Pérez, J., Ali, N., Carsí, J.A., Ramos, I.: Designing Software Architectures with an Aspect-Oriented Architecture Description Language. In: Gorton, I., Heineman, G.T., Crnković, I., Schmidt, H.W., Stafford, J.A., Szyperski, C., Wallnau, K. (eds.) CBSE 2006. LNCS, vol. 4063, pp. 123–138. Springer, Heidelberg (2006)
Pérez, J.: PRISMA: Aspect-Oriented Software Architectures. PhD Thesis, Universidad Politécnica de Valencia (2006)
Perry, D.E., Wolf, A.L.: Foundations for the Study of Software Architecture. SIGSOFT Software Engineering Notes 17(4), 40–52 (1992)
Ritzau, T., Andersson, J.: Dynamic Deployment of Java Applications. In: Java for Embedded Systems, London (2000)
Rogers, A., Jennings, N.R., Farinelli, A.: Self-Organising Sensors for Wide Area Surveillance using the Max-Sum Algorithm. In: WICSA/ECSA Workshop on Self-Organizing Architectures (SOAR 2009), Cambridge, UK (2009)
Rombach, H.D.: Design for Maintenance - Use of Engineering Principles and Product Line Technology. In: 13th European Conf. on Software Maintenance and Reengineering (CSMR 2009), Kaiserslautern, Germany (2009)
Segal, M.E., Frieder, O.: On-the-Fly Program Modification: Systems for Dynamic Updating. IEEE Software 10(2), 53–65 (1993)
Serugendo, G.D.M., Gleizes, M.P., Karageorgos, A.: Self-organisation and emergence in MAS: An Overview. Informatica (Slovenia) 30, 45–54 (2006)
Software Engineering Institute: Ultra-Large-Scale Systems: Software Challenge of the Future. Technical Report, Carnegie Mellon University, Pittsburgh, USA (2006)
Stirling, C.: Modal and Temporal Logics. In: Handbook of Logic in Computer Science, vol. II. Clarendon Press, Oxford (1992)
Taylor, R.N., Medvidovic, N., Dashofy, E.M.: Software Architecture: Foundations, Theory and Practice. Wiley, Chichester (2009)
Thao, C., Munson, E.V., Nguyen, T.N.: Software Configuration Management for Product Derivation in Software Product Families. In: 15th Int. Conf. on Engineering of Computer Based Systems (ECBS 2008), Belfast, Northern Ireland (2008)
Vandewoude, Y., Berbers, Y.: Component state mapping for runtime evolution. In: Int. Conf. on Programming Languages and Compilers, Las Vegas, Nevada, USA (2005)
Vandewoude, Y., Ebraert, P., et al.: Tranquillity: A low Disruptive Alternative to Quiescence for Ensuring Safe Dynamic Updates. IEEE Transactions on Software Engineering 33(12), 856–868 (2007)
Wang, Q., Shen, J., Wang, X., Mei, H.: A Component-Based Approach to Online Software Evolution. Journal of Software Maintenance and Evolution 18(3), 181–205 (2006)
Wermelinger, M., Lopes, A., Fiadeiro, J.L.: A graph based architectural (re)configuration language. SIGSOFT Software Engineering Notes 26(5), 21–32 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Costa-Soria, C., Heckel, R. (2010). Modelling the Asynchronous Dynamic Evolution of Architectural Types. In: Weyns, D., Malek, S., de Lemos, R., Andersson, J. (eds) Self-Organizing Architectures. SOAR 2009. Lecture Notes in Computer Science, vol 6090. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14412-7_10
Download citation
DOI: https://doi.org/10.1007/978-3-642-14412-7_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-14411-0
Online ISBN: 978-3-642-14412-7
eBook Packages: Computer ScienceComputer Science (R0)