Towards a Dependency Constraint Language to Manage Software Architectures

  • Ricardo Terra
  • Marco Tulio de Oliveira Valente
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5292)


This paper presents a dependency constraint language that allows software architects to restrict the spectrum of dependencies that can be presented in a given software system. The ultimate goal is to provide designers with means to define acceptable and unacceptable dependencies according to the planned system architecture. Once defined, such restrictions will be automatically enforced by a tool, thus avoiding silent erosions in the architecture. The paper also presents first results of applying the language in a Web-based system.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aldrich, J., Chambers, C., Notkin, D.: ArchJava: connecting software architecture to implementation. In: 22nd International Conference on Software Engineering, pp. 187–197 (2002)Google Scholar
  2. 2.
    Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley, Reading (2002)Google Scholar
  3. 3.
    Garlan, D., Shaw, M.: Software Architecture Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)Google Scholar
  4. 4.
    Kazman, R., Carrière, S.J.: Playing detective: Reconstructing software architecture from available evidence. Automated Software Engineering 6(2), 107–138 (1999)CrossRefGoogle Scholar
  5. 5.
    Knodel, J., Muthig, D., Naab, M., Lindvall, M.: Static evaluation of software architectures. In: 10th European Conference on Software Maintenance and Reengineering, pp. 279–294 (2006)Google Scholar
  6. 6.
    Knodel, J., Popescu, D.: A comparison of static architecture compliance checking approaches. In: IEEE/IFIP Working Conference on Software Architecture, p. 12 (2007)Google Scholar
  7. 7.
    Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering 26(1), 70–93 (2000)CrossRefGoogle Scholar
  8. 8.
    Muller, H.A., Klashinsky, K.: Rigi a system for programming-in-the-large. In: International Conference on Software Engineering, pp. 80–87 (1988)Google Scholar
  9. 9.
    Murphy, G.C., Notkin, D., Sullivan, K.J.: Software reflexion models: Bridging the gap between source and high-level models. In: SIGSOFT Symposium on Foundations of Software Engineering, pp. 18–28 (1995)Google Scholar
  10. 10.
    Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. Software Engineering Notes 17(4), 40–52 (1992)CrossRefGoogle Scholar
  11. 11.
    Sangal, N., Jordan, E., Sinha, V., Jackson, D.: Using dependency models to manage complex software architecture. In: 20th Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 167–176 (2005)Google Scholar
  12. 12.
    Stafford, J.A., Wolf, A.L.: Architecture-level dependence analysis for software systems. International Journal of Software Engineering and Knowledge Engineering 11(4), 431–451 (2001)CrossRefGoogle Scholar
  13. 13.
    Yan, H., Garlan, D., Schmerl, B.R., Aldrich, J., Kazman, R.: DiscoTect: A system for discovering architectures from running systems. In: 26th International Conference on Software Engineering, pp. 470–479 (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Ricardo Terra
    • 1
  • Marco Tulio de Oliveira Valente
    • 1
  1. 1.Institute of Informatics, PUC MinasBrazil

Personalised recommendations