A Quantitative Evaluation of Maintainability of Software Architecture Styles

Document Type : Research Article

Authors

1 G.R. Shahmohammadi is Ph.D. of Computer Engineering, Tarbiat Modares University, Tehran, Iran (e-mail: Shahmohamadi@modares.ac.ir)

2 Corresponding Author, S. Jalili is with the Department of Computer Engineering, Tarbiat Modares University, Tehran, Iran (e-mail: Sjalili@modares.ac.ir)

Abstract

Proper decisions play a crucial role in any software architecture design process. An important decision of design stage is the selection of a suitable software architecture style. Lack of investigation on the quantitative impact of architecture styles on software quality attributes is the main problem in using such styles. Consequently, the use of architecture styles in designing is based on the intuition of software developers. The aim of this research is to quantify the impacts of architecture styles on software maintainability that is an expected quality of each software. In this study, architecture styles are quantified based on coupling, complexity and cohesion metrics and ranked by analytic hierarchy process from a maintainability viewpoint. Metrics validation confirms fitness of the metrics. Regarding the great impact of this decision on maintainability of software product, the presented parametric model provides a basis for sensible selection of architecture style.

Keywords


[1]     L. Bass, P. Clements, and R. Kazman,"Software Architecture in Practice" (2nd Edition), Addison-Wesley, 2003, p. 89.
[2]     F. Buschmann, R. Meunier, H. Rohnert, P. Sornmerlad, and M. Stal, "Pattern-Oriented Software Architecture- A system of Patterns", John Wiley &  Sons, 1996, p. 394.
[3]     C. Seo, G. Edwards, S. Malek, and N. Medvidovic," A Framework for Estimating the Impact of a Distributed Software System’s Architectural Style on Its Energy Consumption", 7th Working IEEE/IFIP Conf. on Software Architecture, 2009, pp. 277-280.
[4]     B. Harrison, and P. Avgeriou, "Leveraging Architecture Patterns to Satisfy Quality Attributes", 1st European Conf. on Software Architecture, Springer, pp. 263-270, 2007.
[5]     P. Avgeriou P, and U. Zdun, "Architectural Patterns Revisited: A Pattern Language", Proc. of 10th European Conf. on Pattern Languages of Programs، 2005, pp.1-39.
[6]     J.S Kim, and D. Garlan, "Analyzing Architectural Styles with alloy", Proc. of the ISSTA 2006 workshop on Role of Software Architecture for Testing and Analysis, 2006, pp. 70-80.
[7]     R. Bruni, A. Bucchiarone, A. Gnesi, D. Hirsch, and A.L. Lafuente,"Graph-based Design and Analysis of Dynamic Software Architectures", LNCS 5065, pp. 37–56, 2008.
[8]     H. Reza, and E. Grant, "Quality-Oriented Software Architecture", The IEEE Int. Conf on Information Technology, 2005, pp. 140 – 145.
[9]     G.R. Shahmohammadi, and S. Jalili,"Scenario-Based Quantitative Evaluation of Software Architecture Style from Maintainability Viewpoint", 14 th Annual of CSI Computer Conference (CSICC 2009), Iran, Amirkabir University, 2009.
[10]  H. Grahn, and J. Bosch,"Some Initial Performance Characteristics of  Three Architectural Styles", Proc. of  Int. Workshop on  Software and Performance, 1998.
[11]  D. Garlan, and S. Khersonsky, "Model Checking Implicit Invocation Systems", 10th Int. Workshop On Software Specification and Design, 2000.
[12]  M. Shaw, D. Garlan, "Software Architecture: PerspectivesDiscipline on an ٍEmerging Discipline”, Prentice Hall, 1996.
[13]  L. Briand, S. Morasca, and V. Basili, "Property Based Software Engineering Measurement", IEEE Trans on Software Eng., Vol. 22,  No. 1, pp. 68-86, 1996.
[14]  L. Briand, J. Wust, and H. Lounis, "Using Coupling Measurement for Impact Analysis in Object-Oriented Systems", IEEE Int. Conf. on Software Maintenance, 1999.  
 
 
 
 
 
[15]  S.L. Pfleeger, and J.M. Atlee,”Software Engineering, Theory and  Practice”, 3rd Edition, Prentice Hall, 2006.
[16]  P. Yu, T. Systa, and H. Muller, "Predicting FaultProneness using OO Metrics. An Industrial Case Study," 6th European Conf. on Software Maintenance and Reengineering, 2002, pp.99 – 107.
[17]  M. Alshayeb, and L. Wei, "An Empirical Validation of Object-Oriented Metrics in Two Different Iterative Software Processes," IEEE Trans on Software Engineering, Vol. 29 (11), pp. 1043 – 1049, 2003.
[18]  F. Bachmann, L. Bass, M. Klein, M. and C. Shelton, Designing Software Architectures to Achieve Quality Attribute Requirements, IEE Proc. of Software, Vol. 152, No 4,pp. 153- 165, 2005.
[19]  E. Weyuker, "The Evaluation of Software Complexity Measures", IEEE Trans on Soft. Eng, 14, pp. 1357-1365, 1988.
[20]  C.L. Hwang, K. Yoon, "Multiple Attribute-Decision Making", Springer-Verlag, 1981.
[21]  T. L. Saaty, and L. G. Vargas, “Models, Methods, Concepts & Applications of the Analytic Hierarchy Process”, Kluwer  Academic Publisher, 2001.
[22]  L. Bass, P. Clements, and R.  Kazman," Software Architecture in Practice", Addison-Wesley, 1998, p. 17.
[23]  ISO, International Organization for Standardization, “ISO9126-1:2001, Software Engineering – Product quality, Part 1: Quality model”, 2001.
[24]  E. Yourdon, and L. Constantine, "Structured Design", Englewood  Cliff, NJ, prentice Hall,1978.
[25]  N. Fenton, and A. Melton, "Deriving Structurally Based Software Measures", Journal of Systems and Software 12(3), pp. 177-187, 1990.
[26]  M. J. Shepperd, and D.C. Ince, "The use of metrics in the early detection of design errors", Proc.of the European Software Engineering Conf, 1990, pp.67-85.
[27]  NE. Fenton, and SL. Pfleeger,"Software Metrics: A Rigorous and Practical Approach", (2nd Edition), International Thomson  Computer PRESS, 1997.
[28]  S. Chidamber, and C. Kemerer,"A Metrics Suite for Object Oriented Design", IEEE Trans on Software Engineering, Vol. 20, pp. 476-493, 1994.
[29]  L. Yu, and S. Ramaswamy, "Component Dependency in Object-Oriented Software", Journal of Computer Science and Technology, 22(3), pp. 379-386, 2007.