Abstract
Software metrics have become an essential part of software development because of their importance in estimating cost, effort, and time during the development phase. Many metrics have been proposed to assess different software quality attributes, including stability. A number of software stability metrics have been proposed at the class, architecture, and system levels. However, these metrics typically target the source code. This paper proposes a software stability metrics suite at the model level for three UML diagrams: class, use case, and sequence. These three diagrams represent the most common diagrams in the three UML views: structural, functional, and behavioral. We introduce a client–master assessment approach to avoid measurement duplication. We also theoretically and empirically validate the proposed metrics suite. We also provide examples to demonstrate the use of the proposed metrics and their application as indicators of software stability.
Similar content being viewed by others
References
Li, W.: Software product metrics. IEEE Potentials 18, 24–27 (1999)
Galorath, D.D.: Software total ownership costs: development is only job one. Softw. Tech. News 11(3), 23–32 (2008)
Chen, J.-C., Huang, S.-J.: An empirical analysis of the impact of software development problem factors on software maintainability. J. Syst. Softw. 82, 981–992 (2009)
ISO: ISO/IEC 25010:2011: systems and software engineering–systems and software quality requirements and evaluation (SQuaRE)–system and software quality models (2011)
Grosser, D., Sahraoui, H., Valtchev, P.: Predicting software stability using case-based reasoning. In: Proceedings of the 17th IEEE International Conference on Automated Software Engineering, Edinburgh, UK, pp. 295–298 (2002)
Grosser, D., Sahraoui, H.A., Valtchev, P.: An analogy-based approach for predicting design stability of Java classes. In: Proceedings of the Ninth IEEE international Software Metrics Symposium, pp. 252–262 (2003)
Rapu, D., Ducasse, S., Girba, T., Marinescu, R.: Using history information to improve design flaws detection. In: Proceedings of the Eighth European Conference on Software Maintenance and Reengineering, CSMR 2004, pp. 223–232 (2004)
Li, W., Etzkorn, L., Davis, C., Talburt, J.: An empirical study of object-oriented system evolution. Inf. Softw. Technol. 42, 373–381 (2000)
Alshayeb, M., Naji, M., Elish, M.O., Al-Ghamdi, J.: Towards measuring object-oriented class stability. IET Softw. 5, 415–424 (2011)
Farias, K., Garcia, A., Lucena, C.: Effects of stability on model composition effort: an exploratory study. Softw. Syst. Model. 13, 1473–1494 (2014)
Azar, D., Harmanani, H., Korkmaz, R.: Predicting stability of classes in an object-oriented system. J. Comput. Methods Sci. Eng. 10, 39–49 (2010)
Alshayeb, M., Eisa, Y., Ahmed, M.A.: Object-oriented class stability prediction: a comparison between artificial neural network and support vector machine. Arab. J. Sci. Eng. 39, 7865–7876 (2014)
Unified Modeling Language: Superstructure, Ver. 2.4.1, OMG document formal/2011-08-06, Object Management Group (OMG). http://www.omg.org/spec/UML/2.4.1/. Accessed 14 May 2016
Misbhauddin, M., Alshayeb, M.: UML model refactoring: a systematic literature review. Empir. Softw. Eng. 20, 206–251 (2013)
Sethi, K., Cai, Y., Wong, S., Garcia, A., Sant’Anna, C.: From retrospect to prospect: assessing modularity and stability from software architecture. In: Joint Working IEEE/IFIP Conference on Software Architecture, 2009 European Conference on Software Architecture. WICSA/ECSA 2009, pp. 269–272 (2009)
Molesini, A., Garcia, A., von Chavez, C.F.G., Batista, T.V.: Stability assessment of aspect-oriented software architectures: a quantitative study. J. Syst. Softw. 83, 711–722 (2010)
Tonu, S.A., Ashkan, A., Tahvildari, L.: Evaluating architectural stability using a metric-based approach. In: Proceedings of the 10th European Conference on Software Maintenance and Reengineering, CSMR 2006, pp. 10–270 (2006)
Jazayeri, M.: On architectural stability and evolution. In: Blieberger, J., Strohmeier, A. (eds.) Reliable Software Technologies—Ada-Europe 2002, pp. 13–23. Springer, Berlin (2002)
Bansiya, J.: Evaluating framework architecture structural stability. ACM Comput. Surv. 32, 1–18 (2000)
Mattsson, M., Bosch, J.: Characterizing stability in evolving frameworks. Proc. Technol. Object Oriented Lang. Syst. 1999, 118–130 (1999)
Hassan, Y.S.: Measuring software architectural stability using retrospective analysis. Master’s Thesis, King Fahd University of Petroleum and Minerals, Dhahran, Saudi Arabia (2007)
Aversano, L., Molfetta, M., Tortorella, M.: Evaluating architecture stability of software projects. In: 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 417–424 (2013)
Alshayeb, M.: On the relationship of class stability and maintainability. IET Softw. 7, 339–347 (2013)
Elish, M.O., Rine, D.: Indicators of structural stability of object-oriented designs: a case study. In: Software Engineering Workshop, 29th Annual IEEE/NASA, pp. 183–192 (2005)
Raemaekers, S., van Deursen, A., Visser, J.: Measuring software library stability through historical version analysis. In: 2012 28th IEEE International Conference on Software Maintenance (ICSM), pp. 378–387 (2012)
Kelly, D.: A study of design characteristics in evolving software using stability as a criterion. IEEE Trans. Softw. Eng. 32(5), 315–329 (2006)
Yau, S.S., Collofello, J.S.: Some stability measures for software maintenance. IEEE Trans. Softw. Eng. SE–6, 545–552 (1980)
Ma, H., Shao, W., Zhang, L., Ma, Z., Jiang, Y.: Applying OO metrics to assess UML meta-models. In: Baar, T., Strohmeier, A., Moreira, A., Mellor, S.J. (eds.) The Unified Modeling Language, Modeling Languages and Applications, pp. 12–26. Springer, Berlin (2004)
Martin, R.C., Martin, M.: Agile Principles, Patterns, and Practices in C#
Mattsson, M., Bosch, J.: Stability assessment of evolving industrial object-oriented frameworks. J. Softw. Maint. Res. Pract. 12, 79–102 (2000)
Elish, M.O., Rine, D.: Investigation of metrics for object-oriented design logical stability. In: Proceedings of the Seventh European Conference on Software Maintenance and Reengineering, pp. 193–200 (2003)
Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20, 476–493 (1994)
Alshayeb, M., Li, W.: An empirical study of system design instability metric and design evolution in an agile software process. J. Syst. Softw. 74, 269–274 (2005)
Olague, H.M., Etzkorn, L.H., Li, W., Cox, G.: Assessing design instability in iterative (agile) object-oriented projects. J. Softw. Maint. Evol. Res. Pract. 18, 237–266 (2006)
Hennicker, R., Koch, N.: Systematic design of Web applications with UML. In: Unified Modeling Language, pp. 1–20. IGI Publishing Hershey, PA, USA (2001)
Berner, S., Glinz, M., Joos, S.: A classification of stereotypes for object-oriented modeling languages. Presented at the Proceedings of the 2nd International Conference on the Unified Modeling Language: Beyond the Standard, Fort Collins, CO, USA (1999)
Briand, L., El Emam, K., Morasca, S.: Theoretical and empirical validation of software product measures. International Software Engineering Research Network, Technical Report ISERN-95-03 (1995)
El-Emam, K.: A methodology for validating software product metrics Tech. rep. NCR/ERC-1076. National Research Council of Canada, Ottawa (2000)
Fenton, N.E., Pfleeger, S.L.: Software Metrics: A Rigorous and Practical Approach. PWS Publishing Co, Boston (1998)
Srinivasan, K., Devi, T.: Software metrics validation methodologies in software engineering. Int. J. Softw.Eng. Appl. 5(6), 87–102 (2014)
Briand, L.C., Daly, J.W., Wust, J.: A unified framework for cohesion measurement in object-oriented systems. In: Proceedings of the Fourth International Software Metrics Symposium, pp. 43–53 (1997)
Briand, L., Morasca, S., Basili, V.: Property-based software engineering measurement. IEEE Trans. Softw. Eng. 22, 68–86 (1996)
Weyuker, E.J.: Evaluating software complexity measures. IEEE Trans. Softw. Eng. 14, 1357–1365 (1988)
Kitchenham, B., Pfleeger, S.L., Fenton, N.: Towards a framework for software measurement validation. IEEE Trans. Softw. Eng. 21, 929–944 (1995)
ISO: ISO/IEC 25010:2011: systems and software engineering—systems and software quality requirements and evaluation (2011)
Jedlitschka, A., Ciolkowski, M., Pfahl, D.: Reporting experiments in software engineering. In: Shull, F., Singer, J., Sjøberg, D.I.K. (eds.) Guide to Advanced Empirical Software Engineering, pp. 201–228. Springer, London (2008)
Evans, J.: Straightforward Statistics for the Behavioral Sciences. Brooks/Cole Publishing, Salt Lake City (1996)
Acknowledgements
The authors would like to acknowledge the support provided by King Abdul-Aziz City for Science and Technology (KACST) through the Science & Technology Unit at King Fahd University of Petroleum & Minerals (KFUPM) for funding this work through project no. 12-INF3012-04 as part of the National Science, Technology and Innovation Plan.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Dr. Timothy Lethbridge.
Rights and permissions
About this article
Cite this article
AbuHassan, A., Alshayeb, M. A metrics suite for UML model stability. Softw Syst Model 18, 557–583 (2019). https://doi.org/10.1007/s10270-016-0573-6
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-016-0573-6