Remember Me
Or use your Academic/Social account:


Or use your Academic/Social account:


You have just completed your registration at OpenAire.

Before you can login to the site, you will need to activate your account. An e-mail will be sent to you with the proper instructions.


Please note that this site is currently undergoing Beta testing.
Any new content you create is not guaranteed to be present to the final version of the site upon release.

Thank you for your patience,
OpenAire Dev Team.

Close This Message


Verify Password:
Verify E-mail:
*All Fields Are Required.
Please Verify You Are Human:
fbtwitterlinkedinvimeoflicker grey 14rssslideshare1
Ozkaya, M.; Kloukinas, C. (2013)
Languages: English
Types: Unknown
Subjects: QA76
Design-by-Contract (DbC) gained wide familiarity among software developers for specifying software. It aids in documenting the behaviour of class methods as contracts between clients of the methods (pre-) and their suppliers (post-condition). This not only allows developers to document software behaviour precisely at such a high-level that can more easily be communicated, but also enables the formal verification of the behaviour. \ud \ud In this paper, we provide a comprehensive extension to DbC so that it can also be applied to the level of software architecture design. We illustrate this through our architecture description language XCD. Components in XCD have four different types of interfaces: provided and required interfaces of methods or emitter and consumer interfaces of events where methods/events are contractually specified. Contract specification is separated into functional and interaction contracts thus modularising the functional and interaction component behaviours. Furthermore, treating interaction protocols as connectors, XCD allows to specify connectors with interaction contracts that participating components adhere to. \ud \ud The formal semantics of XCD are defined using Finite State Process (FSP) thus enabling formal analysis of contractually specified software architectures for quality properties, e.g., deadlock.
  • The results below are discovered through our pilot algorithms. Let us know how we are doing!

    • [1] Alessandro Aldini, Marco Bernardo, and Flavio Corradini. A Process Algebraic Approach to Software Architecture Design. Springer, 2010.
    • [2] Robert Allen and David Garlan. A formal basis for architectural connection. ACM Trans. Softw. Eng. Methodol., 6(3):213-249, 1997.
    • [3] Antoine Beugnard, Jean-Marc Je´ze´quel, and Noe¨l Plouzeau. Making components contract aware. IEEE Computer, 32(7):38-45, 1999.
    • [4] Dines Bjørner and Cliff B. Jones, editors. The Vienna Development Method: The Meta-Language, volume 61 of Lecture Notes in Computer Science. Springer, 1978.
    • [5] Christiano Braga and Alexandre Sztajnberg. Towards a rewriting semantics for a software architecture description language. Electr. Notes Theor. Comput. Sci., 95:149-168, 2004.
    • [6] Lilian Burdy, Yoonsik Cheon, David R. Cok, Michael D. Ernst, Joseph R. Kiniry, Gary T. Leavens, K. Rustan M. Leino, and Erik Poll. An overview of JML tools and applications. STTT, 7(3):212-232, 2005.
    • [7] Carlos Canal, Ernesto Pimentel, and Jose´ M. Troya. Specification and refinement of dynamic software architectures. In Patrick Donohoe, editor, WICSA, volume 140 of IFIP Conference Proceedings, pages 107-126. Kluwer, 1999.
    • [8] Patrice Chalin, Joseph R. Kiniry, Gary T. Leavens, and Erik Poll. Beyond assertions: Advanced specification and verification with JML and ESC/Java2. In Frank S. de Boer, Marcello M. Bonsangue, Susanne Graf, and Willem P. de Roever, editors, FMCO, volume 4111 of Lecture Notes in Computer Science, pages 342-363. Springer, 2005.
    • [9] Yoonsik Cheon and Gary T. Leavens. A simple and practical approach to unit testing: The JML and JUnit way. In Boris Magnusson, editor, ECOOP, volume 2374 of Lecture Notes in Computer Science, pages 231-255. Springer, 2002.
    • [10] C. A. R. Hoare. An axiomatic basis for computer programming. Commun. ACM, 12(10):576-580, 1969.
    • [11] C. A. R. Hoare. Communicating sequential processes. Commun. ACM, 21(8):666-677, 1978.
    • [12] Vale´rie Issarny, Amel Bennaceur, and Ye´rom-David Bromberg. Middleware-layer connector synthesis: Beyond state of the art in middleware interoperability. In Marco Bernardo and Vale´rie Issarny, editors, SFM, volume 6659 of Lecture Notes in Computer Science, pages 217-255. Springer, 2011.
    • [13] David Janzen and Hossein Saiedian. Test-driven development: Concepts, taxonomy, and future direction. IEEE Computer, 38(9):43-50, 2005.
    • [14] Christos Kloukinas and Mert Ozkaya. Xcd - Modular, realizable software architectures. In Corina S. Pasareanu and Gwen Salau¨n, editors, FACS, volume 7684 of Lecture Notes in Computer Science, pages 152-169. Springer, 2012.
    • [15] Jeff Magee and Jeff Kramer. Dynamic structure in software architectures. In SIGSOFT FSE, pages 3-14, 1996.
    • [16] Jeff Magee and Jeff Kramer. Concurrency - state models and Java programs (2. ed.). Wiley, 2006.
    • [17] Jeff Magee, Jeff Kramer, and Dimitra Giannakopoulou. Analysing the behaviour of distributed software architectures: a case study. In FTDCS, pages 240-247. IEEE Computer Society, 1997.
    • [18] Ivano Malavolta, Patricia Lago, Henry Muccini, Patrizio Pelliccione, and Antony Tang. What industry needs from architectural languages: A survey. IEEE Transactions on Software Engineering, 99, 2012.
    • [19] E.M. Maximilien and L. Williams. Assessing test-driven development at IBM. In 25th Intl. Conf. on Software Engineering, pages 564-569, May 2003.
    • [20] Bertrand Meyer. Applying “Design by Contract”. IEEE Computer, 25(10):40-51, 1992.
    • [21] Bertrand Meyer, Jean-Marc Nerson, and Masanobu Matsuo. Eiffel: Object-oriented design for software engineering. In Howard K. Nichols and Dan Simpson, editors, ESEC, volume 289 of Lecture Notes in Computer Science, pages 221-229. Springer, 1987.
    • [22] Robin Milner, Joachim Parrow, and David Walker. A calculus of mobile processes, i. Inf. Comput., 100(1):1-40, 1992.
    • [23] OMG. Common object request broker architecture (CORBA) specification, version 3.3 - Part 3: CORBA component model. Specification formal/2012-11-16, OMG, November 2012. //omg.org/spec/CORBA/3. 3/.
    • [24] OSGi Alliance. OSGi core release 5. Specification, March 2012. // osgi.org/.
    • [25] Frantisek Plasil and Stanislav Visnovsky. Behavior protocols for software components. IEEE Trans. Software Eng., 28(11):1056-1076, 2002.
    • [26] Ralf Reussner, Iman Poernomo, and Heinz W. Schmidt. Reasoning about software architectures with contractually specified components. In Alejandra Cechich, Mario Piattini, and Antonio Vallecillo, editors, Component-Based Software Quality, volume 2693 of Lecture Notes in Computer Science, pages 287-325. Springer, 2003.
    • [27] Mary Shaw, Robert DeLine, Daniel V. Klein, Theodore L. Ross, David M. Young, and Gregory Zelesnik. Abstractions for software architecture and tools to support them. IEEE Trans. Software Eng., 21(4):314-335, 1995.
    • [28] Andre Luiz Camargos Tavares and Marco Tulio de Oliveira Valente. A gentle introduction to OSGi. ACM SIGSOFT Software Engineering Notes, 33(5), 2008.
    • [29] Rob C. van Ommering, Frank van der Linden, Jeff Kramer, and Jeff Magee. The koala component model for consumer electronics software. IEEE Computer, 33(3):78-85, 2000.
  • No related research data.
  • Discovered through pilot similarity algorithms. Send us your feedback.

Share - Bookmark

Download from

Funded by projects


Cite this article