Advertisement

On the Modularity of Software Architectures: A Concern-Driven Measurement Framework

  • Cláudio Sant’Anna
  • Eduardo Figueiredo
  • Alessandro Garcia
  • Carlos J. P. Lucena
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4758)

Abstract

Much of the complexity of software architecture design is derived from the inadequate modularization of key broadly-scoped concerns, such as exception handling, distribution, and persistence. However, conventional architecture metrics are not sensitive to the driving architectural concerns, thereby leading a number of false positives and false negatives in the design assessment process. Therefore, there is a need for assessment techniques that support a more effective identification of early design modularity anomalies relative to crosscutting concerns. In this context, this paper proposes a concern-driven measurement framework for assessing architecture modularity. It encompasses a mechanism for documenting architectural concerns, and a suite of concern-oriented architecture metrics. We evaluated the usefulness of the proposed framework while comparing the modularity of architecture design alternatives in three different case studies.

Keywords

Software Architecture Exception Handling Architecture Element Architecture Description Interface Complexity 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Briand, L., Morasca, S., Basili, V.: Measuring and Assessing Maintainability at the End of High Level Design. In: Proc. IEEE Conf. Software Maintenance (1993)Google Scholar
  2. 2.
    Buschmann, F., et al.: Pattern-Oriented Software Architecture: A System of Patterns. John Wiley, Chichester (1996)Google Scholar
  3. 3.
    Dobrica, L., Niemela, E.: A Survey on Software Architecture Analysis Methods. IEEE Trans. on Soft. Eng. 28(7), 638–653 (2002)CrossRefGoogle Scholar
  4. 4.
    Garcia, A., et al.: On the Modular Representation of Architectural Aspects. In: Gruhn, V., Oquendo, F. (eds.) EWSA 2006. LNCS, vol. 4344, Springer, Heidelberg (2006)CrossRefGoogle Scholar
  5. 5.
    Garcia, A., Lucena, C.: Taming Heterogeneous Agent Architectures with Aspects. Comm. of the ACM, July 2006 (accepted to appear)Google Scholar
  6. 6.
    Garcia, A., et al.: Modularizing Design Patterns with Aspects: A Quantitative Study. In: AOSD 2005, pp. 3–14 (2005)Google Scholar
  7. 7.
    Concern-Driven Measurement Framework for Assessing Architecture Modularity, URL: http://www.lancs.ac.uk/postgrad/figueire/co_metrics
  8. 8.
    Garlan, D., et al.: ACME: An Architecture Description Interchange Language. In: Proc. CASCON 1997 (November 1997)Google Scholar
  9. 9.
    Lindvall, M., et al.: Avoiding Architectural Degeneration: An Evaluation Process for Software Architecture. In: Proc. of the Intl. Symposium on Software Metrics, USA, p. 77 (2002)Google Scholar
  10. 10.
    Lung, C., Kalaichelvan, K.: An Approach to Quantitative Software Architecture Sensitivity Analysis. In: Proc. of the Int’l Conf. on SW Eng & Knowledge Eng., pp. 185–192 (1998)Google Scholar
  11. 11.
    Di Stefano, A., et al.: Metrics for Evaluating Concern Separation and Composition. In: SAC 2005, pp. 1381–1382. ACM Press, New York (2005)CrossRefGoogle Scholar
  12. 12.
    Sant’Anna, C., et al.: On the Quantitative Assessment of Modular Multi-Agent System Architectures. NetObjectDays (MASSA) (2006)Google Scholar
  13. 13.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar
  14. 14.
    Kulesza, U., et al.: Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study. In: Proc. of ICSM 2006, Philadelphia, USA (September 2006)Google Scholar
  15. 15.
    Filman, R., et al. (eds.): Aspect-Oriented Software Development. Addison-Wesley, Reading (2005)Google Scholar
  16. 16.
    Martin, R.: Stability, C++ Report (February 1997)Google Scholar
  17. 17.
    Soares, S., et al.: Implementing Distribution and Persistence Aspects with Aspect J. In: Proc. of OOPSLA 2002, pp. 174–190 (2002)Google Scholar
  18. 18.
    Robillard, M., Murphy, G.: Concern Graphs: Finding and describing concerns using structural program dependencies. In: Proc. of the ICSE 2002, pp. 406–416 (May 2002)Google Scholar
  19. 19.
    Gamma, E., et al.: Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1996)Google Scholar
  20. 20.
    Barbosa, R., Goldman, A.: MobiGrid. In: Karmouch, A., Korba, L., Madeira, E.R.M. (eds.) MATA 2004. LNCS, vol. 3284, pp. 147–157. Springer, Heidelberg (2004)Google Scholar
  21. 21.
    Bass, L., et al.: Software Architecture in Practice, 2nd edn. Addison-Wesley, Reading (2003)Google Scholar
  22. 22.
    Figueiredo, E., Garcia, A., Lucena, C.: AJATO: an AspectJ Assessment Tool. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, Springer, Heidelberg (2006)Google Scholar
  23. 23.
    Filho, F., et al.: Exceptions and Aspects: The Devil is in the Details. In: Robshaw, M. (ed.) FSE 2006. LNCS, vol. 4047, Springer, Heidelberg (2006)Google Scholar
  24. 24.
    Eaddy, M., et al.: Identifying, Assigning, and Quantifying Crosscutting Concerns. In: ACoM 2007 at ICSE 2007. 1st Workshop on Assessment of Contemporary Modularization Techniques (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Cláudio Sant’Anna
    • 1
    • 2
  • Eduardo Figueiredo
    • 2
  • Alessandro Garcia
    • 2
  • Carlos J. P. Lucena
    • 1
  1. 1.Computer Science Department, PUC-RioBrazil
  2. 2.Computing Department, Lancaster UniversityUK

Personalised recommendations