Skip to main content

A contract-based approach to describe and deploy non-functional adaptations in software architectures


This paper presents a comprehensive approach to describe, deploy and adapt component-based applications having dynamic non-functional requirements. The approach is centered on high-level contracts associated to architectural descriptions, which allow the non-functional requirements to be handled separately during the system, design process. This helps to achieve separation of concerns facilitating the reuse of modules that implement the application in other systems. Besides specifying non-functional requirements, contracts are used at runtime to guide configuration adaptations required to enforce these requirements. The infrastructure required to manage the contracts follows an architectural pattern, which can be directly mapped to specific components included in a supporting reflective middleware. This allows designers to write a contract and to follow standard recipes to insert the extra code required to its enforcement in the supporting middleware.


  1. [1]_S. Ansaloni. An Architectural Pattern to Describe and Implement QoS Contracts. Masters Dissertation, Instituto de Computação, UFF, May 2003.

  2. [2]_A. M. Barroso, J. Leite and O. Loques. Treating Uncertainty in Distributed Scheduling.Journal of Systems and Software, Elsevier, Vol. 63/2 pp. 51–58, November 2002.

    Article  Google Scholar 

  3. [3]_L. Bergmans, and M. Aksit. Composing Crosscutting Concerns Using Composition Filters.Communications of the ACM, Vol. 44, N. 10, pp. 51–57, October 2001.

    Article  Google Scholar 

  4. [4]_A. Beugnard, J.-M. Jézéquel, N. Plouzeau, and D. Watkins. Making Components Contract Aware.IEEE Computer, Vol. 32, N. 7, pp. 38–45, July 1999.

    Google Scholar 

  5. [5]_A. Borg, and A. Wellings. A Real-Time RM I Framework for the RTSJ. InProceedings of the 15th Euromicro Conference on Real-Time Systems, Porto, Portugal, July 2003.

  6. [6]_C. Braga and A. Sztajnberg. Towards a Rewriting Semantics to a Software Architecture Description Language.Electronic Notes in Theoretical Computer Science, Elsevier, Vol. 95, pp. 148–168, May 2004.

    Article  Google Scholar 

  7. [7]_Carvalho, S. T, Lisbôa, J. and Loques, O. A Design Pattern for Software Architecture Configuration. 2nd Latin American Conference on Pattern Languages of Programming, Itaipava, RJ, Brazil, August 2002.

  8. [8]_W. Cazzola, A. Savigni and A. Sosio. Architectural Reflection: Concepts, Design, and Evaluation. Technical Report RI-DSI 234-99, DSI, University degli Studi di Milano, May 1999.

  9. [9]_J. K. Cross and D. Schmidt. Quality Connector: A Pattern Language for Provisioning and Managing Quality-Constrained Services in Distributed Real-Time and Embedded Systems.9th Conference on Pattern Language of Programs, Monticello, II, U.S.A., September 2002.

  10. [10]_R. C. Cerqueira. A Methodology to Describe and Implement Contracts for Services with Differentiated Quality in Distributed Architectures. Masters Dissertation, Instituto de Computação, UFF, 2002.

  11. [11]_R. C. Cerqueira, R., S. Ansaloni, O. Loques, and A. Sztajnberg. Deploying Non-Functional Aspects by Contract.2nd Workshop on Reflective and Adaptive Middleware, Middleware 2003 Companion, pp.90–94, Rio de Janeiro, Brasil, June 2003.

  12. [12]_T. Elrad, A. Aksit, G. Kiczales, K. J. Lieberherr and H. Ossher. Discussing Aspects of AO P.Communications of the ACM, Vol. 44, N. 10, pp. 33–38, 2001.

    Article  Google Scholar 

  13. [13]_S. Frolund and J. Koistinen. Quality-of-Service Specifications in Distributed Object Systems.IEE Distributed Systems Engineering, N. 5, pp. 179–202, UK, 1998

    Article  Google Scholar 

  14. [14]_D. Garlan, B. R. Schmerl and J. Chang. Using Gauges for Architecture-Based Monitoring and Adaptation.Working Conference on Complex and Dynamic Systems Architecture, Brisbane, Austrlia, December 2001.

  15. [15]_I. Georgiadis, J. Magee and J. Kramer. Self-Organizing Software Architectures for Distributed Systems.Proceedings of the first Workshop on Self-healing Systems (WOSS’02), pp. 33–38, Charleston, SC, U.S.A., November 2002.

  16. [16]_F. Kon, F. Costa, G. Blair and R. H. Campbell. The Case for Reflective Middleware.Communications of the ACM, Vol. 45, N. 6, pp. 33–38, June 2002.

    Article  Google Scholar 

  17. [17]_O. Loques, R. A. Botafogo and J. C. B. Leite. A Configuration Approach for Distributed Object-Oriented System Customization. InProceedings of the Third IEEE Workshop on Object-Oriented Real-Time Dependable Systems, pp. 185–189, Newport Beach, California, U.S.A., February 1997.

  18. [18]_O. Loques, A. Sztajnberg, J. Leite and M. Lobosco. On the Integration of Configuration and Meta-Level Programming Approaches.In Reflection and Software Engineering, LNCS, Vol. 1826, pp. 191–210, Springer-Verlag, Heidelberg, Germany, June 2000.

    Google Scholar 

  19. [19]_O. Loques and A. Sztajnberg. Customizing Component-Based Architectures by Contract.In 2nd International Working Conference on Component Deployment (CD 2004), LNCS, V. 3083, pp. 18–34, Springer-Verlag, Edinburgh, Scotland, UK, May 2004.

    Google Scholar 

  20. [20]_J. P. Loyall, P. Rubel, M. Atighetchi, R. Schantz and J. Zinky. Emerging Patterns in Adaptive, Distributed Real-Time, Embedded Middleware.9th Conference on Pattern Language of Programs, Monticello, II, U.S.A., September 2002.

  21. [21]_J. A. D. Pace and M. R. Campo. Analyzing the Role of Aspects in Software Design.Communications of the ACM, Vol. 44, N. 10, pp. 66–73, October 2001.

    Article  Google Scholar 

  22. [22]_A. Popovici, A. Frei, and G. Alonso. A Proactive Middleware Platform for Mobile Computing. InMiddleware 2003 Proceedings, LNCS 2672, pp. 454–473, Springer-Verlag, Rio de Janeiro, Brasil, June 2003.

    Google Scholar 

  23. [23]_F. Siqueira and V. Cahill. Quartz: A QoS Architecture for Open Systems. InProceedings of the 180 Simpósio Brasileiro de Redes de Computadores, pp. 553–568, Belo Horizonte, MG, Brasil, May 2000.

  24. [24]_G. T. Sullivan. Aspect-Oriented Programming Using Reflection and Metaobject Protocols.Communications of the ACM, Vol. 44, N. 10, pp. 95–97, October 2001.

    Article  Google Scholar 

  25. [25]_A. Sztajnberg and O. Loques. Bringing QoS to the Architectural Level.ECO OP 2000 Workshop on QoS on Distributed Object Systems, Cannes France, June 2000.

  26. [26]_A. Sztajnberg and O. Loques. Software Connectors Performance Evaluation. InCadernos do IME — Série Informática, Rio de Janeiro (UERJ), V. 14, pp. 7–18, 2003.

  27. [27]_A. Tripathi. Challenges Designing Next-Generation Middleware Systems.Communications of the ACM, pp. 39–42, Vol. 45, N. 6, June 2002.

    Article  Google Scholar 

  28. [28]_R. West and K. Schwan. Quality Events: A Flexible Mechanism for Quality of Service Management.Seventh IEEE Real-Time Technology and Applications Symposium (RTAS ’01), pp. 95–104, Taipei, Taiwan, May–June 2001.

  29. [29]_R. Wolski. Spring, T. Neil and J. Hayes. The Network Weather Service: A Distributed Resource Performance Forecasting Service for Metacomputing.Future Generation Computer Systems, Vol. 15, N. 5–6, pp. 757–768, 1999.

    Article  Google Scholar 

  30. [30]_V. Zandy and B. Miller. Reliable Network Connections. InProceedings of the 8th annual international conference on Mobile computing and networking (MOBICOM’02), pp.95–106, Atlanta, Georgia, September 2002.

Download references

Author information



Rights and permissions

Reprints and Permissions

About this article

Cite this article

Loques, O., Sztajnberg, A., Curty, R. et al. A contract-based approach to describe and deploy non-functional adaptations in software architectures. J Braz Comp Soc 10, 5–20 (2004).

Download citation


  • contracts
  • non-functional requirements
  • software architectures
  • dynamic configuration adaptation
  • separation of concerns
  • middleware