Abstract
The 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 well as detrimental. The structural transformations involved in aspect modularizations are carefully analyzed in the context of DSMs. This analysis exposes the unique reversion effect on dependencies that aspect modules are known for. To capture that effect within the NOV model, we extend its original set of six modular operators with an additional reversion operator. Using a design case study, its NOV worksheet and NOV experiments’ curves are presented to show a simulation of the evolutionary patterns of modules, including aspect modules. These patterns show how subtle dependencies, or the lack of them, bring down, or up, the value of an existing design. Based on the observations made in this case study, preliminary design guidelines for aspects are formulated.
This work has been supported in part by the National Science Foundation’s grant no. CCF-0347902.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Tutorials and resources on DSM (2005), http://www.dsmweb.org (Cited 20 September 2005)
Lattix Web site (2005), http://www.lattix.com (Cited 20 September 2005)
AspectJ project Web site (2005), http://www.aspectj.org (Cited 20 September 2005)
MapPoint Object Model (2005), http://msdn.microsoft.com (Cited 20 September 2005)
Concern Manipulation Environment (CME) (2005), http://www.eclipse.org/cme (Cited 20 September 2005)
AspectWerkz (2005), http://aspectwerkz.codehaus.org (Cited 20 September 2005)
The Apache Foundation. Apache AXIS (2005), http://ws.apache.org/axis (Cited 20 September 2005)
MapPoint Web services (2005), http://www.mappoint.com (Cited 20 September 2005)
Spatialpoint (2005), http://www.spatialpoint.com (Cited 20 September 2005)
Sun Microsystems. Java Servlet Specifiation (2005), http://java.sun.com/products/servlet (Cited 20 September 2005)
Sun Microsystems. J2EE, Java 2 Enterprise Edition Specification (2005), http://java.sun.com/j2ee (Cited 20 September 2005)
Bajracharya, S.K., Ngo, T.C., Lopes, C.V.: On using net options value as a value based design framework. In: EDSER 2005: Proceedings of the Seventh International Workshop on Economics-Driven Software Engineering Research, pp. 1–3. ACM, New York (2005)
Baldwin, C.Y., Clark, K.B.: Design Rules. In: The Power of Modularity, vol. I, MIT Press, Cambridge (2000)
Blundell, J.K., Hines, M.L., Stach, J.: The measurement of software design quality. Ann. Softw. Eng. 4, 235–255 (1997)
Browning, T.R.: Applying the design structure matrix to system decomposition and integration problems: a review and new directions. IEEE Transactions on Engineering Management 48, 292–306 (2001)
Cai, Y., Sullivan, K.J.: A value-oriented theory of modularity in design. In: Proceedings of the 7th International Workshop on Economics-Driven Software Engineering Research (EDSER) at ICSE 2005 (2005)
Fenton, N., Pfleeger, S.L.: Software Metrics, A Rigorous and Practical Approach, 2nd edn. PWS, Boston (1997)
Fowler, M.: Inversion of control containers and the dependency injection pattern, http://www.martinfowler.com/articles/injection.html
Fowler, M.: Module assembly. IEEE Software 21(2), 65–67 (2004)
Fowler, M., Beck, K., Brant, J., Opdyke, O., Roberts, D.: Refactoring: improving the design of existing code. Object Technology Series. Addison-Wesley, Reading (1999)
Harrison, W.H., Ossher, H.L.: Member-group relationships among objects. IBM Technical Report RC22048 (2002)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: Proceedings of the 27th International Conference on Software Engineering, pp. 49–58. ACM, New York (2005)
Lieberherr, K., Lorenz, D., Mezini, M.: Programming with Aspectual Components. Technical Report NU-CCS-99-01, College of Computer Science, Northeastern University, Boston, MA (1999)
Lopes, C.V.: On the nature of aspects: Principles of aspect-oriented design. ACM Transactions of Software Engineering (under Review)
Lopes, C.V., Bajracharya, S.K.: An analysis of modularity in aspect oriented design. In: AOSD 2005: Proceedings of the 4th International Conference on Aspect-Oriented Software Development, pp. 15–26. ACM, New York (2005)
Lopes, C.V., Ngo, T.C.: The Aspect markup language and its support of Aspect plugins. ISR Technical Report UCI-ISR-04-8 (2004)
MacCormack, A., Rusnak, J., Baldwin, C.: Exploring the structure of complex software designs: An empirical study of open source and proprietary code. Harvard Business School Working Paper Number 05-016 (2004)
Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 2–28. Springer, Heidelberg (2003)
Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)
Parnas, D.L.: On a “Buzzword”: Hierarchical structure. In: Software Pioneers: Contributions to Software Engineering, pp. 429–440. Springer, Heidelberg (2002)
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes 17(4), 40–52 (1992)
Rajan, H., Sullivan, K.J.: Classpects: unifying aspect- and object-oriented language design. In: ICSE 2005: Proceedings of the 27th International Conference on Software Engineering, pp. 59–68. ACM, New York (2005)
Riel, A.J.: Object-Oriented Design Heuristics. Addison-Wesley Longman, Boston (1996)
Rinard, M., Salcianu, A., Bugrara, S.: A classification system and analysis for aspect-oriented programs. In: SIGSOFT 2004/FSE-12: Proceedings of the 12th ACM SIGSOFT Twelfth International Symposium on Foundations of Software Engineering, pp. 147–158. ACM, New York (2004)
Robillard, M.P., Murphy, G.C.: Concern graphs: finding and describing concerns using structural program dependencies. In: Proceedings of the 24th International Conference on Software Engineering (ICSE 2002), pp. 406–416. ACM, New York (2002)
Sharman, D., Yassine, A.: Characterizing complex product architectures. Systems Engineering Journal 7(1), 35–60 (2004)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)
Steward, D.V.: The design structure system: A method for managing the design of complex systems. IEEE Transactions on Engineering Management 28, 71–74 (1981)
Sullivan, K., Griswold, W.G., Song, Y., Cai, Y., Shonle, M., Tewari, N., Rajan, H.: Information hiding interfaces for aspect-oriented design. In: ESEC/FSE 2005 (April 2005)
Sullivan, K.J., Griswold, W.G., Cai, Y., Hallen, B.: 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, pp. 99–108. ACM, New York (2001)
W3C, SOAP (Simple Object Access Protocol) version 1.2 specification (2005), http://www.w3.org/TR/soap12 (Cited 20 September 2005)
W3C, Web Services Description Language (WSDL) (2005), http://www.w3.org/TR/wsdl (Cited 30 September 2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lopes, C.V., Bajracharya, S.K. (2006). Assessing Aspect Modularizations Using Design Structure Matrix and Net Option Value. In: Rashid, A., Aksit, M. (eds) Transactions on Aspect-Oriented Software Development I. Lecture Notes in Computer Science, vol 3880. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11687061_1
Download citation
DOI: https://doi.org/10.1007/11687061_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-32972-5
Online ISBN: 978-3-540-32974-9
eBook Packages: Computer ScienceComputer Science (R0)