Enhancing Dependability Through Flexible Adaptation to Changing Requirements

  • Michel Wermelinger
  • Georgios Koutsoukos
  • Hugo Lourenço
  • Richard Avillez
  • João Gouveia
  • Luís Andrade
  • José Luiz Fiadeiro
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3069)


This paper describes an architectural approach that facilitates the dynamic adaptation of systems to changing domain rules. The approach relies on “coordination contracts”, a modelling and implementation primitive we have developed for run-time reconfiguration. Our framework includes an engine that, whenever a service is called, checks the domain rules that are applicable and configures the response of the service before proceeding with the call.

This approach enhances dependability in two essential ways: on the one hand, it guarantees that system execution is always consistent with the domain logic because service response is configured automatically (i.e., without any need for programmer intervention); on the other hand, it makes it possible for changes to be incorporated into existing domain rules, and from new rules to be created, with little effort, because coordination contracts can be superposed dynamically without having to change neither the client nor the service code.

Our approach is illustrated through a case study in financial systems, an area in which dependability arises mainly in the guise of business concerns like adherence to agreed policies and conditions negotiated on a case-by-case basis. We report on an information system that ATX Software developed for a company specialised in recovering bad credit. We show in particular how, by using this framework, we have devised a way of generating rule-dependent SQL code for batch-oriented services.


Processing Service Business Rule Rule Type Service Instance Loan Contract 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Wermelinger, M., Koutsoukos, G., Avillez, R., Gouveia, J., Andrade, L., Fiadeiro, J.L.: Using coordination contracts for flexible adaptation to changing business rules. In: Proc. of the 6th Intl. Workshop on the Principles of Software Evolution, pp. 115–120. IEEE Computer Society Press, Los Alamitos (2003)CrossRefGoogle Scholar
  2. 2.
    Andrade, L., Fiadeiro, J.L., Gouveia, J., Koutsoukos, G.: Separating computation, coordination and configuration. Journal of Software Maintenance and Evolution: Research and Practice 14, 353–369 (2002)zbMATHCrossRefGoogle Scholar
  3. 3.
    Gouveia, J., Koutsoukos, G., Wermelinger, M., Andrade, L., Fiadeiro, J.L.: The coordination development environment. In: Kutsche, R.-D., Weber, H. (eds.) FASE 2002. LNCS, vol. 2306, pp. 323–326. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  4. 4.
    Gouveia, J., Koutsoukos, G., Andrade, L., Fiadeiro, J.L.: Tool support for coordination-based software evolution. In: Proc. TOOLS 38, pp. 184–196. IEEE Computer Society Press, Los Alamitos (2001)Google Scholar
  5. 5.
    Avizienis, A., Laprie, J.C., Randell, B.: Fundamental concepts of dependability. In: 3rd Information Survivability Workshop, Software Engineering Institute (2000)Google Scholar
  6. 6.
    Wermelinger, M., Koutsoukos, G., Fiadeiro, J., Andrade, L., Gouveia, J.: Evolving and using coordinated systems. In: Proc. of the 5th Intl. Workshop on Principles of Software Evolution, pp. 43–46. ACM, New York (2002)Google Scholar
  7. 7.
    Moazami-Goudarzi, K.: Consistency Preserving Dynamic Reconfiguration of Distributed Systems. PhD thesis, Imperial College London (1999)Google Scholar
  8. 8.
    Lano, K., Fiadeiro, J.L., Andrade, L.: Software Design Using Java 2. Palgrave Macmillan (2002)Google Scholar
  9. 9.
    Gelernter, D., Carriero, N.: Coordination languages and their significance. Communications of the ACM 35, 97–107 (1992)CrossRefGoogle Scholar
  10. 10.
    Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes 17, 40–52 (1992)CrossRefGoogle Scholar
  11. 11.
    Magee, J., Kramer, J.: Dynamic structure in software architectures. In: Proceedings of the Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 3–14. ACM Press, New York (1996)CrossRefGoogle Scholar
  12. 12.
    Kramer, J.: Configuration programming—a framework for the development of distributable systems. In: International Conference on Computer Systems and Software Engineering, Israel, IEEE, Los Alamitos (1990)Google Scholar
  13. 13.
    Endler, M., Wei, J.: Programming generic dynamic reconfigurations for distributed applications. In: Proceedings of the First International Workshop on Configurable Distributed Systems, IEE, pp. 68–79 (1992)Google Scholar
  14. 14.
    Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering 26, 70–93 (2000)CrossRefGoogle Scholar
  15. 15.
    Monroe, R.T.: Capturing software architecture design expertise with Armani. Technical Report CMU-CS-98-163, School of Computer Science, Carnegie Mellon University (1998)Google Scholar
  16. 16.
    Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide. Addison-Wesley, Reading (1998)Google Scholar
  17. 17.
    Kilov, H., Ross, J.: Information Modeling: an Object-oriented Approach. Prentice-Hall, Englewood Cliffs (1994)zbMATHGoogle Scholar
  18. 18.
    Notkin, D., Garlan, D., Griswold, W., Sullivan, K.: Adding implicit invocation to languages: Three approaches. In: Nishio, S., Yonezawa, A. (eds.) ISOTAS 1993. LNCS, vol. 742, pp. 489–510. Springer, Heidelberg (1993)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Michel Wermelinger
    • 1
  • Georgios Koutsoukos
    • 2
  • Hugo Lourenço
    • 2
  • Richard Avillez
    • 2
  • João Gouveia
    • 2
  • Luís Andrade
    • 2
  • José Luiz Fiadeiro
    • 3
  1. 1.Dep. de InformáticaUniv. Nova de LisboaCaparicaPortugal
  2. 2.ATX Software SALinda-a-VelhaPortugal
  3. 3.Dep. of Computer ScienceUniv. of LeicesterLeicesterUK

Personalised recommendations