Analyzing Class and Crosscutting Modularity with Design Structure Matrixes

  • Márcio de Medeiros Ribeiro UFPE
  • Marcos Dósea UFPE
  • Rodrigo Bonifácio UFPE
  • Alberto Costa Neto UFPE
  • Paulo Borba UFPE
  • Sérgio Soares UPE

Abstract


Modularization of crosscutting concerns is the main benefit provided by Aspect-Oriented constructs. However, it does not address class modularity adequately. In order to assess both class and crosscutting modularity of AO systems, we use Design Structure Matrixes (DSMs) to analyze three different versions (OO, AO, and AO using design rules) of a real software application. We observed that, in the last version, coupling between classes and aspects is reduced, yielding a more modular design, specially when considering semantic dependencies between them. In addition, we apply new design parameters that represent a more realistic software development process.

References

AJDT (2007). Getting started with AJDT. http://www.eclipse.org/ajdt/gettingstarted.php.

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).
Published
2007-10-15
RIBEIRO, Márcio de Medeiros; DÓSEA, Marcos; BONIFÁCIO, Rodrigo; COSTA NETO, Alberto; BORBA, Paulo; SOARES, Sérgio. Analyzing Class and Crosscutting Modularity with Design Structure Matrixes. In: BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES), 21. , 2007, João Pessoa. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2007 . p. 167-181. ISSN 2833-0633. DOI: https://doi.org/10.5753/sbes.2007.21305.