On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework
Aspect-oriented software development (AOSD) is gaining wide attention both in research environments and in industry. Aspect-oriented systems encompass new software engineering abstractions and different complexity dimensions. As a consequence, AOSD poses new problems to empirical software engineering. It requires new assessment frameworks specifically tailored to measure the reusability and maintainability degrees of aspect-oriented systems. This paper presents an assessment framework for AOSD, which is composed of two components: a suite of metrics and a quality model. These components are based on well-known principles and existing metrics in order to avoid the reinvention of well-tested solutions. The proposed framework has been evaluated in the context of two different empirical studies with different characteristics, diverse domains, varying control levels and different complexity degrees. Based on empirical and quantitative analysis, the advantages and drawbacks of the framework components are discussed.
Basili, V., Caldiera, G., Rombach, H. "The Goal Question Metric Approach". Encyclopedia of Soft. Eng., vol. 2, September 1994, pp. 528-532, John Wiley & Sons, Inc.
Basili, V., Briand, L., Melo, W. "A Validation of Object-Oriented Design Metrics as Quality Indicators". IEEE Trans. on Software Eng., 22 (10), October 1996, pp. 751-761.
Boehm, B. "Software Eng. Economics", Prentice-Hall, 1981.
Booch, G., Rumbaugh, J., Jacobson, I. "The Unified Modeling Language User Guide". Addison Wesley, 1999.
Borland TogetherSoft website. URL: http://www.togethersoft.com.
Briand, L., El Emam, K., Morasca, S. "Theoretical and Empirical Validation of Software Product Measures". Technical Report ISERN-95-03, Fraunhofer Institute for Experimental Software Engineering, Germany, 1995.
Briand, L., Morasca, S., Basili, V. "Property-Based Software Engineering Measurement". IEEE Transactions of Software Engineering, 22 (1), 1996, pp. 68-86.
Briand, L., Daly, J., Wüst, J. "A Unified Framework for Cohesion Measurement in Object-Oriented Systems". Empirical Software Eng. Journal, 3 (1), 1998, pp 65-117.
Briand, L., Daly, J., Wüst, J. "A Unified Framework for Coupling Measurement in Object-Oriented Systems". IEEE Trans. on Software Engineering, 25 (1), 1999, pp 91-121.
Chavez, C., Lucena, C. "Design Support for Aspect-oriented Software Development". Doctoral Symposium at OOPSLA'2001, Tampa Bay, USA, October 2001, pp 14-18.
Chidamber, S., Kemerer, C. "A Metrics Suite for Object Oriented Design". IEEE Transactions on Software Engineering, 20 (6), June 1994, pp. 476-493.
Driver, C. "Evaluation of Aspect-Oriented Software Development for Distributed Systems", Masters Thesis, University of Doublin, September 2002.
The Eclipse website. URL: http://www.eclipse.org.
Fenton, N., Pfleeger, S. "Software Metrics: A Rigorous and Practical Approach". 2.ed. London: PWS, 1997.
Gamma, E. et al. "Design Patterns: Elements of Reusable Object-Oriented Software". Addison-Wesley, Reading, 1995.
Garcia, A., Silva, V., Chavez, C., Lucena, C. "Engineering Multi-Agent Systems with Aspects and Patterns". J. of the Brazilian Computer Society, July 2002, 1 (8), pp 57-72.
Garcia, A. et al. "Agents and Objects: An Empirical Study on Software Engineering". Technical Report 06-03, Computer Science Department, PUC-Rio, February 2003. Available at ftp://ftp.inf.puc-rio.br/pub/docs/techreports/ (file 03_06_garcia.pdf).
Garcia, A. et al. "Agents and Objects: An Empirical Study on the Design and Implementation of Multi-Agent Systems". Proc. of the SELMAS'03 Workshop at ICSE'03, Portland, USA, May 2003, pp. 11-22.
Hannemann, J., Kiczales, G. " Design Pattern Implementation in Java and AspectJ", Proceedings of OOPSLA'02 , November 2002, pp. 161-173.
Henderson-Sellers, B. "Object-Oriented Metrics: Measures of Complexity". Prentice Hall, 1996.
Kersten, A., Murphy, G. "Atlas: A Case Study in Building a Web-based learning environment using aspect-oriented programming". Proceedings of OOPSLA, November 1999.
Kiczales, G. et al. "Aspect-Oriented Programming". European Conference on Object Oriented Programming (ECOOP), LNCS (1241), Springer-Verlag, Finland, June 1997.
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W. "Getting Started with AspectJ". Communication of the ACM, October 2001, pp. 59-65.
Li, W., Henry, S. "Object-Oriented Metrics that Predict Maintainability". Journal of Systems and Software, 23 (2), February 1993, pp. 111-122.
Lopes, C. "D: A Language Framework for Distributed Programming". PhD Thesis, College of Computer Science, Northeastern University, 1997.
McGarry, F., Pajersk, R., Page, G., Waligora, S., Basili, V., Zelkowitz, M. "Software Process Improvement in the NASA Software Eng. Laboratory", Carnegie Mellon Univ., Software Eng. Inst., Technical Report CMU/SEI-95-TR-22, December 1994.
Meyer, B. "Object-Oriented Software Construction". 2.ed. Prentice Hall, 1997.
Parnas, D. "On the Criteria to Be Used in Decomposing Systems into Modules". Communications of the ACM, 15 (12), December 1972, pp. 1053-1058.
Robillard, M., Murphy, G. "FEAT: A Tool for Locating, Describing, and Analyzing Concerns in Source Code". Proc. of ICSE'03, Por tland, May 2003, pp. 822-824.
Sommerville, I. "Software Engineering", 6.ed. Harlow, England, Addison-Wesley, 2001.
Tarr, P. et al. "N Degrees of Separation: Multi-Dimensional Separation of Concerns". Proceedings of the 21st International Conference on Software Engineering, May 1999.
Zacaria, A., Hosny, H. "Metrics for Aspect-Oriented Software Design". Proc. Third International Workshop on Aspect-Oriented Modeling, AOSD'03, 2003.
Zhao, J. "Towards a Metrics Suite for Aspect-Oriented Software". Technical-Report SE-136-25, Information Processing Society of Japan (IPSJ), March 2002.