Journal of Computer Science and Technology

, Volume 32, Issue 5, pp 1025–1043 | Cite as

Visual Specification and Analysis of Contract-Based Software Architectures

  • Mert OzkayaEmail author
Regular Paper


XCD is a design-by-contract based architecture description language that supports modular specifications in terms of components and connectors (i.e., interaction protocols). XCD is supported by a translator that produces formal models in SPIN’s ProMeLa formal verification language, which can then be formally analysed using SPIN’s model checker. XCD is extended with a visual notation set called VXCD. VXCD extends UML’s component diagram and adapts it to XCD’s structure, contractual behaviour, and interaction protocol specifications. Visual VXCD specifications can be translated into textual XCD specifications for formal analysis. To illustrate VXCD, the well-known gas station system is used. The gas system is specified contractually using VXCD’s visual notation set and then formally analysed using SPIN’s model checker for a number of properties including deadlock and race-condition.


architectural language design-by-contract visual modelling language interaction protocol formal analysis 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Supplementary material

11390_2017_1779_MOESM1_ESM.pdf (319 kb)
ESM 1 (PDF 319 kb)


  1. [1]
    Clements P C, Garlan D, Little R, Nord R L, Stafford J A. Documenting software architectures: Views and beyond. In Proc. the 25th Int. Conf. Software Engineering, May 2003, pp.740-741.Google Scholar
  2. [2]
    Bass L, Clements P, Kazman R. Software Architecture in Practice (3rd edition). Addison-Wesley Professional, 2012.Google Scholar
  3. [3]
    Medvidovic N, Taylor R N. A classification and comparison framework for software architecture description languages. IEEE Trans. Software Engineering, 2000, 26(1): 70-93.CrossRefGoogle Scholar
  4. [4]
    Rumbaugh J, Jacobson I, Booch G. The Unified Modeling Language Reference Manual (2nd edition). Pearson Higher Education, 2004.Google Scholar
  5. [5]
    Ozkaya M, Kloukinas C. Are we there yet? Analyzing architecture description languages for formal analysis, usability, and realizability. In Proc. the 39th EUROMICRO Conf. Software Engineering and Advanced Applications, September 2013, pp.177-184.Google Scholar
  6. [6]
    Lago P, Malavolta I, Muccini H, Pelliccione P, Tang A. The road ahead for architectural languages. IEEE Software, 2015, 32(1): 98-105.CrossRefGoogle Scholar
  7. [7]
    Malavolta I, Lago P, Muccini H, Pelliccione P, Tang A. What industry needs from architectural languages: A survey. IEEE Trans. Software Engineering, 2013, 39(6): 869-891.CrossRefGoogle Scholar
  8. [8]
    Ozkaya M, Kloukinas C. Design-by-contract for reusable components and realizable architectures. In Proc. the 17th Int. ACM SIGSOFT Symp. Component-Based Software Engineering, June 30-July 4, 2014, pp.129-138.Google Scholar
  9. [9]
    Meyer B. Applying ‘design by contract’. Computer, 1992, 25(10): 40-51.CrossRefGoogle Scholar
  10. [10]
    Cheon Y, Leavens G T. A simple and practical approach to unit testing: The JML and JUnit way. In Proc. the 16th European Conf. Object-Oriented Programming, June 2002, pp.231-255.Google Scholar
  11. [11]
    Kiniry J R, Zimmerman D M. Secret ninja formal methods. In Proc. the 15th Int. Symp. Formal Methods, May 2008, pp.214-228.Google Scholar
  12. [12]
    Holzmann G J. The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, 2004.Google Scholar
  13. [13]
    Balmelli L. An overview of the systems modeling language for products and systems development. Journal of Object Technology, 2007, 6(6): 149-177.CrossRefGoogle Scholar
  14. [14]
    Allen R, Garlan D. A formal basis for architectural connection. ACM Trans. Software Engineering and Methodology, 1997, 6(3): 213-249.CrossRefGoogle Scholar
  15. [15]
    Magee J, Dulay N, Eisenbach S, Kramer J. Specifying distributed software architectures. In Proc. the 5th European Software Engineering Conf., September 1995, pp.137-153.Google Scholar
  16. [16]
    van Ommering R C, van der Linden F, Kramer J, Magee J. The koala component model for consumer electronics software. Computer, 2000, 33(3): 78-85.CrossRefGoogle Scholar
  17. [17]
    Feiler P H, Gluch D P, Hudak J J. The architecture analysis & design language (AADL): An introduction. Technical Note CMU/SEI-2006-TN-011, Carnegie Mellon University, 2006.Google Scholar
  18. [18]
    Hoare C A R. Communicating sequential processes. Communications of the ACM, 1978, 21(8): 666-677.CrossRefzbMATHGoogle Scholar
  19. [19]
    Milner R, Parrow J, Walker D. A calculus of mobile processes, I. Information and Computation, 1992, 100(1): 1-40.MathSciNetCrossRefzbMATHGoogle Scholar
  20. [20]
    Banach R. Review: Handbook of process algebra. Journal of Logic and Computation, 2003, 13(6): 959-962.CrossRefGoogle Scholar
  21. [21]
    Murata T. Petri nets: Properties, analysis and applications. Proc. the IEEE, 1989, 77(4): 541-580.CrossRefGoogle Scholar
  22. [22]
    Völzer H. An overview of BPMN 20 and its potential use. In Proc. the 2nd Int. Workshop on Business Process Modeling Notation, October 2010, pp.14-15.Google Scholar
  23. [23]
    Ali N, Ramos I, Solís C. Ambient-PRISMA: Ambients in mobile aspect-oriented software architecture. Journal of Systems and Software, 2010, 83(6): 937-958.CrossRefGoogle Scholar
  24. [24]
    Faucou S, Déplanche A M, Trinquet Y. An ADL centric approach for the formal design of real-time systems. In Proc. World Computer Congress IFIP TC-2 Workshop on Architecture Description Languages, August 2004, pp.67-82.Google Scholar
  25. [25]
    Poizat P, Royer J C. KORRIGAN: A formal ADL with full data types and a temporal glue. Technical Report N°88-2003, Laboratoire de Methodes Informatiques, 2003.Google Scholar
  26. [26]
    Oquendo F. πADL: An architecture description language based on the higher-order typed π-calculus for specifying dynamic and mobile software architectures. ACM SIGSOFT Software Engineering Notes, 2004, 29(3): 1-14.CrossRefGoogle Scholar
  27. [27]
    Yu Z H, Cai Y L, Wang R F, Han J Q. π-net ADL: An architecture description language for multi-agent systems. In Proc. the Int. Conf. Advances in Intelligent Computing, August 2005, pp.218-227.Google Scholar
  28. [28]
    Pérez J, Ali N, Carsí J A, Ramos I. Designing software architectures with an aspect-oriented architecture description language. In Proc. the 9th Int. Conf. Component-Based Software Engineering, June 29-July 1, 2006, pp.123-138.Google Scholar
  29. [29]
    Bjørk J, Hagalisletto A M. Challenges in simulating railway systems using Petri Nets. Technical Report, Department of Informatics, University of Oslo, 2005.Google Scholar
  30. [30]
    Liu F, Heiner M. Colored petri nets to model and simulate biological systems. In CEUR Workshop Proc., Donatelli S, Kleijn J, Machado R J, Fernandes J M (eds.), June 2012, pp.71-85.Google Scholar
  31. [31]
    Chatain T, Fabre E. Factorization properties of symbolic unfoldings of colored Petri Nets. In Proc. the 31st Int. Conf. Applications and Theory of Petri Nets, June 2010, pp.165-184.Google Scholar
  32. [32]
    Taylor R N, Medvidovic N, Dashofy E M. Software Architecture: Foundations, Theory, and Practice. Wiley, 2009.Google Scholar
  33. [33]
    Rademaker A, Braga C, Sztajnberg A. A rewriting semantics for a software architecture description language. Electronic Notes in Theoretical Computer Science, 2005, 130: 345-377.CrossRefzbMATHGoogle Scholar
  34. [34]
    Reussner R H, Schmidt HW, Poernomo I H. Reliability prediction for component-based software architectures. Journal of Systems and Software, 2003, 66(3): 241-252.CrossRefGoogle Scholar
  35. [35]
    Lau K, Tran C M. X-MAN: An MDE tool for component-based system development. In Proc. the 38th EUROMICRO Conf. Software Engineering and Advanced Applications, September 2012, pp.158-165.Google Scholar
  36. [36]
    Kelly S, Lyytinen K, Rossi M. MetaEdit+ A fully configurable multi-user and multitool CASE and CAME environment. In Seminal Contributions to Information Systems Engineering, Bubenko J, Krogstie J, Pastor O, Pernici B, Rolland C, Sølvberg A (eds.), Springer, 2013, pp.109-129.Google Scholar
  37. [37]
    Naumovich G, Avrunin G S, Clarke L A, Osterweil L J. Applying static analysis to software architectures. In Proc. the 6th European SOFTWARE ENGINEERING Conf. Held Jointly with the 5th ACM SIGSOFT Int. Symp. Foundations of Software Engineering, September 1997, pp.77-93.Google Scholar
  38. [38]
    Holzmann G J. An analysis of bitstate hashing. Formal Methods in System Design, 1998, 13(3): 289-307.MathSciNetCrossRefGoogle Scholar
  39. [39]
    Aldrich J, Chambers C, Notkin D. ArchJava: Connecting software architecture to implementation. In Proc. the 24th Int. Conf. Software Engineering, May 2002, pp.187-197.Google Scholar

Copyright information

© Springer Science+Business Media, LLC & Science Press, China 2017

Authors and Affiliations

  1. 1.Department of Computer EngineeringIstanbul Kemerburgaz UniversityIstanbulTurkey

Personalised recommendations