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

Resumo


Os desenvolvedores geralmente contam com padrões e práticas recomendadas para aumentar a qualidade de seus projetos. No entanto, conforme os projetos evoluem, é comum observar desvios no uso dos padrões e melhores práticas definidas durante o projeto de um sistema. Este artigo tem como objetivo ilustrar a aplicação de um modelo estático, linguagem de restrição de dependência declarativa e específica de domínio, chamada DCL, para expressar padrões arquitetônicos e princípios de design que contribuem para o capacidade de manutenção e evolução - e, portanto, para a qualidade interna - de um software de sistema. Apresentamos no artigo várias restrições arquitetônicas que demonstrar os benefícios alcançados pela DCL em um sistema de motivação e em cinco aplicativos orientados a objetos de código-fonte aberto do mundo real.
Palavras-chave: Estudo de caso, capacidade de manutenção, restrições arquitetônicas

Referências

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: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 10. , 2011, Curitiba. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2011 . p. 25-39. DOI: https://doi.org/10.5753/sbqs.2011.15385.