Advertisement

Assessing Aspect Modularizations Using Design Structure Matrix and Net Option Value

  • Cristina Videira Lopes
  • Sushil Krishna Bajracharya
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3880)

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.

Keywords

Aspect-oriented programming and design modularity design space matrix net option value 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Tutorials and resources on DSM (2005), http://www.dsmweb.org (Cited 20 September 2005)
  2. 2.
    Lattix Web site (2005), http://www.lattix.com (Cited 20 September 2005)
  3. 3.
    AspectJ project Web site (2005), http://www.aspectj.org (Cited 20 September 2005)
  4. 4.
    MapPoint Object Model (2005), http://msdn.microsoft.com (Cited 20 September 2005)
  5. 5.
    Concern Manipulation Environment (CME) (2005), http://www.eclipse.org/cme (Cited 20 September 2005)
  6. 6.
    AspectWerkz (2005), http://aspectwerkz.codehaus.org (Cited 20 September 2005)
  7. 7.
    The Apache Foundation. Apache AXIS (2005), http://ws.apache.org/axis (Cited 20 September 2005)
  8. 8.
    MapPoint Web services (2005), http://www.mappoint.com (Cited 20 September 2005)
  9. 9.
    Spatialpoint (2005), http://www.spatialpoint.com (Cited 20 September 2005)
  10. 10.
    Sun Microsystems. Java Servlet Specifiation (2005), http://java.sun.com/products/servlet (Cited 20 September 2005)
  11. 11.
    Sun Microsystems. J2EE, Java 2 Enterprise Edition Specification (2005), http://java.sun.com/j2ee (Cited 20 September 2005)
  12. 12.
    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)CrossRefGoogle Scholar
  13. 13.
    Baldwin, C.Y., Clark, K.B.: Design Rules. In: The Power of Modularity, vol. I, MIT Press, Cambridge (2000)Google Scholar
  14. 14.
    Blundell, J.K., Hines, M.L., Stach, J.: The measurement of software design quality. Ann. Softw. Eng. 4, 235–255 (1997)CrossRefGoogle Scholar
  15. 15.
    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)CrossRefGoogle Scholar
  16. 16.
    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)Google Scholar
  17. 17.
    Fenton, N., Pfleeger, S.L.: Software Metrics, A Rigorous and Practical Approach, 2nd edn. PWS, Boston (1997)Google Scholar
  18. 18.
    Fowler, M.: Inversion of control containers and the dependency injection pattern, http://www.martinfowler.com/articles/injection.html
  19. 19.
    Fowler, M.: Module assembly. IEEE Software 21(2), 65–67 (2004)MathSciNetCrossRefGoogle Scholar
  20. 20.
    Fowler, M., Beck, K., Brant, J., Opdyke, O., Roberts, D.: Refactoring: improving the design of existing code. Object Technology Series. Addison-Wesley, Reading (1999)Google Scholar
  21. 21.
    Harrison, W.H., Ossher, H.L.: Member-group relationships among objects. IBM Technical Report RC22048 (2002)Google Scholar
  22. 22.
    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)CrossRefGoogle Scholar
  23. 23.
    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)Google Scholar
  24. 24.
    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)Google Scholar
  25. 25.
    Lopes, C.V.: On the nature of aspects: Principles of aspect-oriented design. ACM Transactions of Software Engineering (under Review) Google Scholar
  26. 26.
    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)Google Scholar
  27. 27.
    Lopes, C.V., Ngo, T.C.: The Aspect markup language and its support of Aspect plugins. ISR Technical Report UCI-ISR-04-8 (2004)Google Scholar
  28. 28.
    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)Google Scholar
  29. 29.
    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)CrossRefGoogle Scholar
  30. 30.
    Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)CrossRefGoogle Scholar
  31. 31.
    Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
  32. 32.
    Parnas, D.L.: On a “Buzzword”: Hierarchical structure. In: Software Pioneers: Contributions to Software Engineering, pp. 429–440. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  33. 33.
    Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes 17(4), 40–52 (1992)CrossRefGoogle Scholar
  34. 34.
    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)Google Scholar
  35. 35.
    Riel, A.J.: Object-Oriented Design Heuristics. Addison-Wesley Longman, Boston (1996)Google Scholar
  36. 36.
    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)CrossRefGoogle Scholar
  37. 37.
    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)CrossRefGoogle Scholar
  38. 38.
    Sharman, D., Yassine, A.: Characterizing complex product architectures. Systems Engineering Journal 7(1), 35–60 (2004)CrossRefGoogle Scholar
  39. 39.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar
  40. 40.
    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)CrossRefGoogle Scholar
  41. 41.
    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)Google Scholar
  42. 42.
    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)Google Scholar
  43. 43.
    W3C, SOAP (Simple Object Access Protocol) version 1.2 specification (2005), http://www.w3.org/TR/soap12 (Cited 20 September 2005)
  44. 44.
    W3C, Web Services Description Language (WSDL) (2005), http://www.w3.org/TR/wsdl (Cited 30 September 2005)

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Cristina Videira Lopes
    • 1
  • Sushil Krishna Bajracharya
    • 1
  1. 1.Department of Informatics, Donald Bren School of Information and Computer SciencesUniversity of CaliforniaIrvine

Personalised recommendations