Analyzing Class and Crosscutting Modularity with Design Structure Matrixes
Resumo
Modularização de crosscutting concerns é o principal benefício pelas construções Orientada a Aspectos. Entretanto, tais construções não lidam adequadamente com a modularidade de classes. Com o objetivo de avaliar a modularidade crosscutting e de classes de sistemas OA, usamos Design Structure Matrixes (DSMs) para analisar três diferentes versões (OO, OA e OA usando regras de design) de uma aplicação de software real. Nós observamos que, na última versão, o acoplamento entre classes e aspectos foi reduzido, resultando em um design mais modular, especialmente quando consideramos dependências semânticas entre eles. Adicionalmente, usamos novos parâmetros de design, representando um processo de desenvolvimento de software mais realista.
Referências
Baldwin, C. Y. and Clark, K. B. (2000). Design Rules, Vol. 1: The Power of Modularity. The MIT Press.
Garcia, A., SantAnna, C., Figueiredo, E., Kulesza, U., Lucena, C., and von Staa, A. (2006). Modularizing Design Patterns with Aspects: A Quantitative Study. In LNCS Transactions on Aspect-Oriented Software Development I, pages 36–74. Springer.
Greenwood, P., Bartolomei, T., Figueiredo, E., Dosea, M., Garcia, A., Cacho, N., SantAnna, C., Soares, S., Borba, P., Kulesza, U., and Rashid, A. (2007). On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study. In Proceedings of the 21st European Conference on Object–Oriented Programming, ECOOP’07. to appear.
Griswold, W. G., Sullivan, K., Song, Y., Shonle, M., Tewari, N., Cai, Y., and Rajan, H. (2006). Modular Software Design with Crosscutting Interfaces. IEEE Software, 23(1):51–60.
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. G. (2001). Getting Started with AspectJ. Communications of the ACM, 44(10):59–65.
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., and Irwin, J. (1997). Aspect–Oriented Programming. In European Conference on Object–Oriented Programming, ECOOP’97, LNCS 1241, pages 220–242.
Kiczales, G. and Mezini, M. (2005). Aspect-Oriented Programming and Modular Reasoning. In Proceedings of the 27th International Conference on Software Engineering (ICSE 2005), pages 49–58. ACM Press.
Lea, D. (1999). Concurrent Programming in Java. Addison–Wesley, 2nd edition.
Lopes, C. V. and Bajracharya, S. K. (2006). Assessing Aspect Modularizations Using Design Structure Matrix and Net Option Value. In LNCS Transactions on Aspect-Oriented Software Development I, pages 1–35. Springer.
Meyer, B. (1992). Applying “design by contract”. Computer, 25(10):40–51.
Meyer, B. (1997). Object-Oriented Software Construction. Prentice-Hall, 2nd edition.
Neto, A. C., de Medeiros Ribeiro, M., Dosea, M., Bonifacio, R., Borba, P., and Soares, S. (2007). Semantic Dependencies and Modularity of Aspect-Oriented Software. In 1st Workshop on Assessment of Contemporary Modularization Techniques (ACoM’07), in conjunction with the 29th International Conference on Software Engineering (ICSE’07). to appear.
Parnas, D. L. (1972). On the criteria to be used in decomposing systems into modules. Commun. ACM, 15(12):1053–1058.
Santanna, C., Garcia, A., Chavez, C., Lucena, C., and von Staa, A. (2003). On the Reuse and Maintenance of Aspect-Oriented Software: A Assessment Framework. In Proc. of Brazilian Symposium on Software Engineering (SBES’03), pages 19–34.
Soares, S., Laureano, E., and Borba, P. (2002). Implementing distribution and persistence aspects with AspectJ. In 17th Annual ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, OOPSLA’2002, pages 174–190, Seattle, USA.
Sullivan, K., Griswold, W. G., Song, Y., Cai, Y., Shonle, M., Tewari, N., and Rajan, H. (2005). Information Hiding Interfaces for Aspect-Oriented Design. In Proceedings of the 10th European Software Engineering Conference held jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering (ESEC/FSE), pages 166–175, New York, NY, USA. ACM Press.
Zhao, J. (2004). Measuring Coupling in Aspect-Oriented Systems. In 10th International Software Metrics Symposium (Metrics’04).