ABSTRACT
We present an analysis of modularity in aspect oriented design using the theory of modular design developed by Baldwin and Clark [10]. We use the three major elements of that theory, namely: i) Design Structure Matrix (DSM), an analysis and modeling tool; ii) Modular Operators, units of variations for design evolution; and iii) Net Options Value (NOV), a quantitative approach to evaluate design. We study the design evolution of a Web Services application where we observe the effects of applying aspect oriented modularization.Based on our analysis we get to the following three main conclusions. First, on the structural part, it is possible to apply the DSM to aspect oriented modularizations in a straightforward manner, i.e. without modifications to DSMs basic model. This shows that aspects can, in fact, be treated as modules of design. Second, the evolution of a design into including aspect modules uses the modular operators proposed by Baldwin and Clark, with a variant of the Inversion operator. This variant captures taking redundant, scattered information hidden in modules and moving it down or keeping it at the same level in the design hierarchy. Third, when calculating and comparing NOVs of the different designs of our application, we obtained higher NOV for the design with aspects than for the design without aspects. This shows that, under this theory of modularity, certain aspect oriented modularizations can add value to the design.
- Tutorials and resources on DSM, DSM web site http://www.dsmweb.org.Google Scholar
- AspectJ project web site. http://www.aspectj.org.Google Scholar
- MapPoint Object Model, available from MSDN online http://msdn.microsoft.com/.Google Scholar
- Concern Manipulation Environment (CME), project web site http://www.eclipse.org/cme/.Google Scholar
- The Apache Foundation. Apache AXIS. http://ws.apache.org/axis/.Google Scholar
- MapPoint web services. http://www.mappoint.com.Google Scholar
- Spatialpoint. http://www.spatialpoint.com.Google Scholar
- Sun Microsystems. Java Servlet Specifiation. http://java.sun.com/products/servlet/.Google Scholar
- Sun Microsystems. J2EE, Java 2 Enterprise Edition Specification. http://java.sun.com/j2ee/.Google Scholar
- C. Y. Baldwin and K. B. Clark. Design Rules vol I, The Power of Modularity. MIT Press, 2000. Google ScholarDigital Library
- M. Fowler. Inversion of control containers and the dependency injection pattern. http://www.martinfowler.com/articles/injection.html.Google Scholar
- M. Fowler. Module assembly. IEEE Software, 21 (2), March 2004. Google ScholarDigital Library
- M. Fowler, K. Beck, J. Brant, O. Opdyke, and D. Roberts. Refactoring: improving the design of existing code. Object Technology Series. Addison-Wesley, 1999. Google ScholarDigital Library
- W. H. Harrison and H. L. Ossher. Member-group relationships among objects. Technical Report IBM Technical Report RC22048, April 2002.Google Scholar
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Akşit and S. Matsuoka, editors, 11th Europeen Conf. Object-Oriented Programming, volume 1241 of LNCS, pages 220--242. Springer Verlag, 1997.Google Scholar
- K. Lieberherr, D. Lorenz, and M. Mezini. Programming with Aspectual Components. Technical Report NU-CCS-99-01, College of Computer Science, Northeastern University, Boston, MA, March 1999.Google Scholar
- H. Masuhara and G. Kiczales. Modeling crosscutting in aspect-oriented mechanisms. In ECOOP 2003-Object-Oriented Programming 17th European Conference, pages 2-28. Springer-Verlag, July 2003.Google ScholarCross Ref
- N. Medvidovic and R. N. Taylor. A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng., 26(1):70--93, 2000. Google ScholarDigital Library
- D. L. Parnas. On the criteria to be used in decomposing systems into modules. Commun. ACM, 15(12):1053--1058, 1972. Google ScholarDigital Library
- D. L. Parnas. On a "Buzzword": Hierarchical structure. In Software pioneers: contributions to software engineering, pages 429-440. Springer-Verlag New York, Inc., 2002. Google ScholarDigital Library
- D. E. Perry and A. L. Wolf. Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes, 17(4):40--52, 1992. Google ScholarDigital Library
- M. P. Robillard and G. C. Murphy. Concern graphs: finding and describing concerns using structural program dependencies. In Proceedings of the 24th International Conference on Software Engineering (ICSE-02), pages 406--416, New York, May 19-25 2002. ACM Press. Google ScholarDigital Library
- D. Sharman and A. Yassine. Characterizing complex product architectures. Systems Engineering Journal, 7(1), 2004. Google ScholarDigital Library
- M. Shaw and D. Garlan. Software architecture: perspectives on an emerging discipline. Prentice-Hall, Inc., 1996. Google ScholarDigital Library
- K. J. Sullivan, W. G. Griswold, Y. Cai, and B. Hallen. The structure and value of modularity in software design. In Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering, pages 99-108. ACM Press, 2001. Google ScholarDigital Library
- W3C. SOAP (Simple Object Access Protocol) version 1.2 specification. http://www.w3.org/TR/soap12.Google Scholar
- W3C. Web services description language (WSDL). http://www.w3.org/TR/wsdl.Google Scholar
Index Terms
- An analysis of modularity in aspect oriented design
Recommendations
Assessing aspect modularizations using design structure matrix and net option value
Transactions on Aspect-Oriented Software Development IThe design structure matrix (DSM) methodology and the net option value (NOV) model have been used before to show how aspects can add value to a design. Following an in-depth analysis of that study, this paper demonstrates how aspects can be beneficial as ...
Aspect-oriented programming
ESEC/FSE-9: Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineeringAspect-oriented programming (AOP) is a technique for improving separation of concerns in software design and implementation. AOP works by providing explicit mechanisms for capturing the structure of crosscutting concerns. This tutorial shows how to use ...
Cooperative aspect-oriented programming
Aspect-oriented programming (AOP) seeks to improve software modularity via the separation of cross-cutting concerns. AOP proponents often advocate a development strategy where programmers write the main application (base code), ignoring cross-cutting ...
Comments