Formal Rules for Reliable Component-Based Architecture Evolution

  • Abderrahman MokniEmail author
  • Marianne Huchard
  • Christelle Urtado
  • Sylvain Vauttier
  • Huaxi (Yulin) Zhang
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8997)


Software architectures are the blueprint of software systems construction and evolution. During the overall software lifecycle, several changes of its architecture may be considered (e.g. including new software requirements, correcting bugs, enhancing software performance). To ensure a valid and reliable evolution, software architecture changes must be captured, verified and validated at an early stage of the software evolution process. In this paper, we address this issue by proposing a set of evolution rules for software architectures in a manner that preserves consistency and coherence between abstraction levels. The rules are specified in the B formal language and applied to a three-level Adl that covers the three steps of software development: specification, implementation and deployment. To validate our rules, the approach is tested on a running example of Home Automation Software.


Software architecture evolution Component reuse Consistency checking Coherence checking Evolution rules Formal models Abstraction level B formal language 


  1. 1.
    Lientz, B.P., Swanson, E.B., Tompkins, G.E.: Characteristics of application software maintenance. Commun. ACM 21(6), 466–471 (1978)CrossRefGoogle Scholar
  2. 2.
    Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes 17(4), 40–52 (1992)CrossRefGoogle Scholar
  3. 3.
    de Silva, L., Balasubramaniam, D.: Controlling software architecture erosion: a survey. J. Syst. Softw. 85(1), 132–151 (2012)CrossRefGoogle Scholar
  4. 4.
    Zhang, H.Y., Urtado, C., Vauttier, S.: Architecture-centric component-based development needs a three-level ADL. In: Babar, M.A., Gorton, I. (eds.) ECSA 2010. LNCS, vol. 6285, pp. 295–310. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  5. 5.
    Zhang, H.Y., Zhang, L., Urtado, C., Vauttier, S., Huchard, M.: A three-level component model in component-based software development. In: Proceedings of the 11th GPCE, pp. 70–79. ACM, Dresden, September 2012Google Scholar
  6. 6.
    Abrial, J.R.: The B-book: Assigning Programs to Meanings. Cambridge University Press, New York (1996)CrossRefzbMATHGoogle Scholar
  7. 7.
    Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE TSE 26(1), 70–93 (2000)Google Scholar
  8. 8.
    Medvidovic, N.: ADLs and dynamic architecture changes. In: Joint Proceedings of the Second International Software Architecture Workshop and International Workshop on Multiple Perspectives in Software Development on SIGSOFT 1996 Workshops, pp. 24–27. ACM, New York (1996)Google Scholar
  9. 9.
    Allen, R., Garlan, D.: A formal basis for architectural connection. ACM TOSEM 6(3), 213–249 (1997)CrossRefGoogle Scholar
  10. 10.
    Luckham, D.C., Kenney, J.J., Augustin, L.M., Vera, J., Bryan, D., Mann, W.: Specification and analysis of system architecture using rapide. IEEE TSE 21, 336–355 (1995)Google Scholar
  11. 11.
    Garlan, D., Monroe, R., Wile, D.: ACME: an architecture description interchange language. In: Proceedings of CASCON. IBM Press (1997)Google Scholar
  12. 12.
    Magee, J., Kramer, J.: Dynamic structure in software architectures. ACM SIGSOFT Softw. Eng. Notes 21(6), 3–14 (1996)CrossRefGoogle Scholar
  13. 13.
    Oquendo, F.: Pi-ADL: an architecture description language based on the higher-order typed pi-calculus for specifying dynamic and mobile software architectures. SIGSOFT Softw. Eng. Notes 29(3), 1–14 (2004)CrossRefGoogle Scholar
  14. 14.
    Shaw, M., Garlan, D.: Formulations and formalisms in software architecture. In: van Leeuwen, J. (ed.) Computer Science Today. LNCS, vol. 1000, pp. 307–323. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  15. 15.
    Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)CrossRefzbMATHMathSciNetGoogle Scholar
  16. 16.
    Joolia, A., Batista, T., Coulson, G., Gomes, A.T.A.: Mapping ADL specifications to an efficient and reconfigurable runtime component platform. In: Proceedings of the 5th WICSA, pp. 131–140. IEEE, Washington (2005)Google Scholar
  17. 17.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes. I. Inf. Comput. 100(1), 1–40 (1992)CrossRefzbMATHMathSciNetGoogle Scholar
  18. 18.
    Mokni, A., Huchard, M., Urtado, C., Vauttier, S., Zhang, H.Y.: Towards automating the coherence verification of multi-level architecture descriptions. In: Proceedings of the 9th ICSEA, Nice, October 2014Google Scholar
  19. 19.
    Taylor, R., Medvidovic, N., Dashofy, E.: Software Architecture: Foundations, Theory, and Practice. Wiley, Chichester (2009)Google Scholar
  20. 20.
    Leuschel, M., Butler, M.: ProB: an automated analysis toolset for the B method. Int. J. Softw. Tools Technol. Transfer 10(2), 185–203 (2008)CrossRefGoogle Scholar
  21. 21.
    Barnes, J., Garlan, D., Schmerl, B.: Evolution styles: foundations and models for software architecture evolution. Softw. Syst. Model. 13(2), 649–678 (2014)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Abderrahman Mokni
    • 1
    Email author
  • Marianne Huchard
    • 2
  • Christelle Urtado
    • 1
  • Sylvain Vauttier
    • 1
  • Huaxi (Yulin) Zhang
    • 3
  1. 1.LGI2PEcole Nationale Supérieure des Mines AlèsNîmesFrance
  2. 2.LIRMMCNRS and Université de Montpellier 2MontpellierFrance
  3. 3.Laboratoire MISUniversité de Picardie Jules VerneAmiensFrance

Personalised recommendations