A Case Study on Improving Maintainability and Evolvability using Architectural Constraints

  • Leonardo Humberto Guimarães Silva IFNMG
  • Ricardo Terra UFMG
  • Marco Túlio Valente UFMG
##plugins.pubIds.doi.readerDisplayName## https://doi.org/10.5753/sbqs.2011.15385

Resumen


Developers usually rely on patterns and best practices to increase the quality of their projects. However, as projects evolve, it is usual to observe deviations in the use of the patterns and best practices defined during the initial design of a system. This article aims to illustrate the application of a static, domain-specific, and declarative dependency constraint language, called DCL, to express architectural patterns and design principles that contribute to the maintainability and evolvability – and therefore to the internal quality – of a software system. We present in the paper several architectural constraints that demonstrate the benefits achieved by DCL in one motivating system and in five real-world, open-source object-oriented applications.

Citas

L. Bass, P. Clements, and R. Kazman. Software Architecture in Practice. Addison-Wesley, 2nd, edition, 2003.

P. Clements and M. Shaw. The golden age of software architecture revisited. IEEE Software, 26(4):70–72, 2009.

S. Ducasse and D. Pollet. Software architecture reconstruction: A process-oriented taxonomy. IEEE Transactions on Software Engineering, 35(4):573–591, 2009.

M. Eichberg, S. Kloppenburg, K. Klose, and M. Mezini. Defining and continuous checking of structural program dependencies. In 30th International Conference on Software Engineering (ICSE), pages 391–400, 2008.

M. Fowler. Patterns of Enterprise Application Architecture. Addison-Wesley, 2002.

E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object Oriented Software. Addison Wesley, 1994.

D. Garlan and M. Shaw. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996.

J. Gurp and J. Bosch. Design erosion: problems and causes. Journal of Systems and Software, 61(2):105–119, 2002.

D. Hou and H. J. Hoover. Using SCL to specify and check design intent in source code. IEEE Transactions on Software Engineering, 32(6):404–423, 2006.

D. Hou, H. J. Hoover, and P. Rudnicki. Specifying framework constraints with FCL. In Conference of the Centre for Advanced Studies on Collaborative Research (CASCON), pages 96–110, 2004.

J. Knodel, D. Muthig, M. Naab, and M. Lindvall. Static evaluation of software architectures.In 10th European Conference on Software Maintenance and Reengineering (CSMR), pages 279–294, 2006.

J. Knodel and D. Popescu. A comparison of static architecture compliance checking approaches. In 6th Working IEEE/IFIP Conference on Software Architecture (WICSA), page 12, 2007.

G. Murphy, D. Notkin, and K. Sullivan. Software reflexion models: Bridging the gap between source and high-level models. In 3rd Symposium on Foundations of Software Engineering (FSE), pages 18–28, 1995.

G. Murphy, D. Notkin, and K. Sullivan. Software reflexion models. IEEE Transactions on Soft ware Engineering, 27(4):364–380, 2001.

L. Passos, R. Terra, R. Diniz, M. T. Valente, and N. das Chagas Mendonca. Static architecture conformance checking – an illustrative overview. IEEE Software, 27(5):82–89, 2010

N. Sangal, E. Jordan, V. Sinha, and D. Jackson. Using dependency models to manage complex software architecture. In 20th Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 167–176, 2005.

R. Terra and M. T. Valente. Towards a dependency constraint language to manage software architectures. In Second European Conference on Software Architecture (ECSA), volume 5292 of Lecture Notes in Computer Science, pages 256–263. Springer, 2008.

R. Terra and M. T. Valente. Verificação estática de arquiteturas de software utilizando restricões de dependência. In II Simposio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS), pages 1–14, 2008.

R. Terra and M. T. Valente. Verificação est ática de arquiteturas de software utilizando restrições de dependência. In II Simposio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS), pages 1–14, 2008.

R. Terra and M. T. Valente. Definição de padrões arquiteturais e seu impacto em atividades de manutenção de software. In VII Workshop de Manutenção de Software Moderna (WMSWM), pages 1–8, 2010.
Publicado
06/06/2011
SILVA, Leonardo Humberto Guimarães; TERRA, Ricardo; VALENTE, Marco Túlio. A Case Study on Improving Maintainability and Evolvability using Architectural Constraints. In: ACTAS DEL SIMPOSIO BRASILEÑO DE CALIDAD DE SOFTWARE, 10. , 2011, Curitiba. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2011 . p. 25-39. DOI: https://doi.org/10.5753/sbqs.2011.15385.