Abstract
The usefulness of measures for the analysis and design of object oriented (OO) software is increasingly being recognized in the field of software engineering research. In particular, recognition of the need for early indicators of external quality attributes is increasing. We investigate through experimentation whether a collection of UML class diagram measures could be good predictors of two main subcharacteristics of the maintainability of class diagrams: understandability and modifiability. Results obtained from a controlled experiment and a replica support the idea that useful prediction models for class diagrams understandability and modifiability can be built on the basis of early measures, in particular, measures that capture structural complexity through associations and generalizations. Moreover, these measures seem to be correlated with the subjective perception of the subjects about the complexity of the diagrams. This fact shows, to some extent, that the objective measures capture the same aspects as the subjective ones. However, despite our encouraging findings, further empirical studies, especially using data taken from real projects performed in industrial settings, are needed. Such further study will yield a comprehensive body of knowledge and experience about building prediction models for understandability and modifiability.
Similar content being viewed by others
Notes
Even though we began our research with UML 1.4 (OMG 2001), when UML 2.0 appeared we studied it carefully. However, we did not find differences related to the elements we considered in class diagrams.
These measures have been defined in a methodological way following a method proposed by Calero et al. (2001), which consists of three main tasks: metric definition, theoretical and empirical validation. However, in this paper, we focus only on empirical validation. Work related to the definition of measures and to theoretical validation can be found in Genero (2002).
Even though understandability was not considered as a subcharacteristic of maintainability by ISO 9126 (2001), we included it because there exists a lot of work related to software measurement that considers understandability as a factor that influences maintainability (Briand et al. 2001; Fenton and Pfleeger 1997; Harrison et al. 2000).
We considered the time spent analysing what modifications had to be made and the time needed to perform them together, because it is difficult to separate both times in a reliable way.
For carrying out the data analysis, we assigned numbers to each linguistic level as follows: “Very simple” corresponded to 1 and “Very complex” corresponded to 5.
Most of the diagrams were assigned to four subjects, but diagrams E3 and M3 were assigned to five subjects because there were 38 subjects and nine diagrams. The subjects were our students and we could not exclude two of them solely on the basis of design considerations.
In this kind of test, is usual to select a significance level greater than 0.10 to reduce the Beta error (i.e. the, the probability of accepting the variable as having a Normal distribution when the distribution is actually not Normal) (Snedecor and Cochran 1989).
References
Atkinson C, Kühne T (2003) Model-driven development: a metamodeling foundation. IEEE Softw 20(5):36–41
Bansiya J, Davis C (2002) A hierarchical model for object-oriented design quality assessment. IEEE Trans Softw Eng 28(1):4–17
Basili V, Rombach H (1988) The TAME project: towards improvement-oriented software environments. IEEE Trans Softw Eng 14(6):728–738
Basili V, Weiss D (1984) A methodology for collecting valid software engineering data. IEEE Trans Softw Eng 10:728–738
Basili V, Shull F, Lanubile F (1999) Building knowledge through families of experiments. IEEE Trans Softw Eng 25(4):435–437
Briand L, Wüst J (2001) Modeling development effort in object-oriented systems using design properties. IEEE Trans Software Eng 27(11):963–986
Briand L, Wüst J (2002) Empirical studies of quality models in object-oriented systems. In: Zelkowitz (ed) Advances in computers, vol 59. Academic, pp 97–166
Briand L, Devanbu W, Melo W (1997) An investigation into coupling measures for C++. In: 19th International Conference on Software Engineering (ICSE 97), Boston, USA, pp 412–421
Briand L, Wüst J, Lounis H (1998) Investigating quality factors in object-oriented designs: an industrial case study. Technical report ISERN 98-29 (version 2)
Briand L, Wüst J, Lounis H (1999) A comprehensive investigation of quality factors in object-oriented designs: an industrial case study. In: 21st International Conference on Software Engineering, Los Angeles, pp 345–354
Briand L, Arisholm S, Counsell F, Houdek F, Thévenod-Fosse P (2000) Empirical studies of object-oriented artefacts, methods and processes: state of the art and future directions. Emp Softw Eng 4(4):387–404
Briand L, Bunse C, Daly J (2001) A controlled experiment for evaluating quality guidelines on the maintainability of object-oriented designs. IEEE Trans Softw Eng 27(6):513–530
Brito e Abreu F, Carapuça R (1994) Object-oriented software engineering: measuring and controlling the development process. In: Proceedings of 4th International Conference on Software Quality, Mc Lean, VA, USA, 3–5 October
Brooks A, Daly J, Miller J, Roper M, Wood M (1996) Replication of experimental results in software engineering. Technical report ISERN-96-10. International Software Engineering Research Network
Calero C, Piattini M, Genero M (2001) Method for obtaining correct metrics. In: International Conference on Enterprise and Information Systems (ICEIS‘2001), pp 779–784
Cantone G, Donzelli P (2000) Production and maintenance of software measurement models. J Softw Eng, Knowl Eng 5:605–626
Card C, El-Emam K, Scalzo B (2001) Measurement of object-oriented software development projects. In: Software Productivity Consortium NFP
Chapin N, Hale J, Khan K, Ramil J, Tan W (2001) Types of software evolution and software maintenance. J Softw Maint Evol: Res Prac 13:3–30
Chidamber S, Kemerer C (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476–493
Cook T, Campbell D (1979) Quasi-experimentation: design and analysis issues for field settings. Boston, Houghton Mifflin
Davis C (2002) Statistical methods for the analysis of repeated measurements, Springer
Erickson J, Siau K (2004) Theoretical and practical complexity of UML. In: 10th Americas Conference on Information Systems, New York, USA, pp 1669–1674
Hardin JW, Hilbe JM (2002) Generalized estimating equations. Chapman & Hall, London
El-Emam K (1999) The prediction of faulty classes using object-oriented design metrics, NRC/ERB1064. National Research Council Canada
El-Emam K (2001) Object-oriented metrics: a review on theory and practice, NRC/ERB 1085. National Research Council Canada
Fenton N, Pfleeger S (1997) Software metrics: a rigorous approach, 2nd edn. Chapman & Hall, London
Fioravanti F, Nesi P (2001) Estimation and prediction metrics for adaptive maintenance effort of object-oriented systems. IEEE Trans Software Eng 27(12):1062–1083
García F, Ruiz F, Cruz JA, Piattini M (2003) Integrated measurement for the evaluation and improvement of software processes. In: 9th European Workshop on Software Process Technology (EWSPT’9), Helsinki, Finland. Lecture notes in computer science, vol 2786. pp 129–145
Genero M (2002) Defining and validating metrics for conceptual models, Ph.D. thesis, University of Castilla-La Mancha, Spain
Genero M, Jiménez L, Piattini M (2002) A controlled experiment for validating class diagram structural complexity metrics. In: Bellahsene Z, Patel D, Rolland C (eds) The 8th International Conference on Object-oriented Information Systems (OOIS’2002), Lecture notes in computer science, vol 2425. Springer, Berlin Heidelberg New York, pp 372–383
Genero M, Piattini M, Calero C (2000) Early measures for UML class diagrams. L’Objet. 6(4), Hermes Science Publications, pp 489–515
Genero M, Olivas J, Piattini M, Romero F (2001) Using metrics to predict OO information systems maintainability. In: CAISE 2001, Lecture notes in computer science, vol 2068. Interlaken, Switzerland, pp 388–401
Genero M, Manso MaE, Piattini M, Cantone G (2003a) Building UML class diagram maintainability prediction models based on early metrics. In: 9th International Symposium on Software Metrics (METRICS 2003), IEEE Computer Society, pp 263–275
Genero M, Olivas J, Piattini M, Romero F (2003b) Assessing object oriented conceptual models maintainability. In: Poels G et al (eds) International Workshop on Conceptual Modeling Quality (IWCMQ’02), Tampere, Finland. Lecture notes in computer science, vol 2784. Springer, Berlin Heidelberg New York, pp 288–299
Genero, M., Piattini M., and Calero, C. 2005. Metrics for high-level design UML class diagrams: an exploratory analysis. Journal of Object Technology, 4(9). Available at http://www.jot.fm
Harrison R, Counsell S, Nithi R (1998) An investigation into the applicability and validity of object-oriented design metrics. Emp Softw Eng 3:255–273
Harrison R, Counsell S, Nithi R (2000) Experimental assessment of the effect of inheritance on the maintainability of object-oriented systems. J Syst Softw 52:173–179
Henderson-Sellers B (1996) Object-oriented metrics—measures of complexity. Prentice-Hall, Upper Saddle River, NJ, pp 489–515
ISO/IEC 9126-1.2 (2001) Information technology—software product quality—part 1: quality model
Johnson DE (1998) Applied multivariate methods for data analyst. Duxbury Press, Brooks/Cole Publishing Company
Juristo N, Moreno AMa (2001) Basics of software engineering experimentation. Kluwer
Kiewkanya M, Muenchaisiri P (2004) Predicting modifiability of UML class and sequence diagrams. In: The Second Workshop on Software Quality (26th International Conference on Software Engineering (ICSE 2004)), pp 53–57
Kiewkanya M, Jindasawat N, Muenchaisiri P (2004) A methodology for constructing maintainability model of object-oriented design. In: Fourth International Conference on Quality Software (QSIC’ 04), pp 206–213
Kim H, Boldyreff C (2002) Developing software metrics applicable to UML Models. In: Proceedings of the 6th ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering, (QAOOSE 2002)
Kitchenham B, Pfleeger S, Fenton N (1995) Towards a framework for software measurement validation. IEEE Trans Softw Eng 21(12):929–943
Kitchenham B, Pfleeger S, Pickard L, Jones P, Hoaglin D, El Emam K, Rosenberg J (2002) Preliminary guidelines for empirical research in software engineering. IEEE Trans Softw Eng 28(8):721–734
Kleinbaum D, Kupper L, Muller K (1987) Applied regression analysis and other multivariate methods, 2nd edn. Duxbury
Li W, Henry S (1993) Object-oriented metrics that predict maintainability. J Syst Softw 23(2)
Lorenz M, Kidd J (1994) Object-oriented software metrics: a practical guide. Englewood
Manso, MaE, Genero M, Piattini M (2003) No-redundant metrics for UML class diagrams structural complexity. In: Eder JY, Missikoff M (eds) CAISE 2003, Lecture notes in computer science, vol 2681. Springer, Berlin Heidelberg New York, pp 127–142
Marchesi M (1998) OOA Metrics for the unified modeling language. In Proceedings of the 2nd Euromicro Conference on Software Maintenance and Reengineering, Florence, Italy, pp 67–73
Mendes E, Watson I, Mosley N, Counsell S (2002) A comparison of development effort estimation techniques for web hypermedia applications. In: 8th IEEE Symposium on Software Metrics (METRICS‘02), pp 21–30
Miller J (2000) Applying meta-analytical procedures to software engineering experiments. J Syst Softw 54:29–39
OMG (2001) Unified Modeling Language (UML) Specification, Version 1.4. Object Management Group (OMG)
OMG (2005) Object Management Group. UML 2.0, OMG Document. Available at http://www.omg.org
Poels G, Dedene G (2000) Distance-based software measurement: necessary and sufficient properties for software measures. Inf Softw Technol 42(1):5–46
SAS Institute (1999) SAS/STAT Users Guide, Version 8. SAS Institute, Cary, NC
Schneidewind N (1992) Methodology for validating software metrics. IEEE Trans Softw Eng 18(5):410–422
Schneidewind N (2002) Body of knowledge for software quality measurement. IEEE Computer 35(2):77–83
Selic B (2003) The pragmatics of model-driven development. IEEE Software 20(5):19–25
Shapiro SS, Wilk MB (1965) An analysis of variance test for normality. Biometrika 52:591–611
Si-Said C, Akoka J, Comyn-Wattiau I (2002) Conceptual modelling quality—from EER to UML Schemas Evaluation. In: Spaccapietra S, March, S, Kambayashi Y (eds) 21st International Conference on Conceptual Modeling (ER 2002), Tampere, Finland. LNCS, vol 2503.d pp 499–512
Snedecor GW, Cochran WG (1989) Statistical methods, 8th edn. Iowa State University Press
SPSS (2002) SPSS 11.5. Syntax Reference Guide. Chicago. SPSS Inc
Van Solingen R, Berghout E (1999) The goal/question/metric method: a practical guide for quality improvement of software development. McGraw-Hill, New York
Vokác M, Tichy W, Sjoberg DI, Arisholm E, Aldrin M (2004) A controlled experiment comparing the maintainability of programs designed with and without design patterns—a replication in a real programming environment. Emp Softw Eng 9:149–195
Wohlin C, Runeson P, Höst M, Ohlson M, Regnell B, Wesslén A (2000) Experimentation in software engineering: an introduction. Kluwer
Acknowledgements
This research is part of the MECENAS project (PBI06-0024) financed by “Consejería de Ciencia y Tecnología de la Junta de Comunidades de Castilla-La Mancha” and the following projects supported by the “Ministerio de Educación y Ciencia (Spain) and FEDER”: TIN2006-15175-C05-05, TIN2004-03145 and TIN2004-06689.
We thank Macario Polo, Félix García and Crescencio Bravo from the University of Castilla-La Mancha for having allowed us to perform the experiment with their students.
The authors are grateful to the anonymous reviewers for insight and feedback to several key issues covered in this research. Thanks to Chris Wright for proofreading the paper.
Author information
Authors and Affiliations
Corresponding author
Appendix A
Appendix A
Here we show, as an example, the UML class diagram D3 and its understandability, modifiability and rating tasks.
1.1 Diagram D3
Given the UML class diagram shown below related to the “Management of a Bank” you should perform the following tasks:
Tasks:
-
1.
Answer the following questions:
Write down the start time (indicating hh:mm:ss): _____________
-
1.
Is it possible to distinguish between individual and company clients?
-
2.
Is it possible to know when an employee began to work in a branch office?
-
3.
Can an employee belong to more than one branch office?
-
4.
Can the employees be clients of the bank?
Write down the end time (indicating hh:mm:ss): _____________
-
1.
-
2.
Carry out the modifications necessary to satisfy the following requirements:
Write down the start time (indicating hh:mm:ss): _____________
-
1.
We would like to distinguish between permanent and temporary employees. For temporary employees we would also like to know their start date and the duration of their contracts.
-
2.
We would like to register the transactions of an account, indicating the transaction date, type (deposit withdrawal) and the amount of the transaction. We know that a transaction can only belong to one account and one account can experience many transactions.
-
3.
Can there be employees that are clients of the bank?
-
4.
We would like to identify the manager of every bank and also the employees of each bank.
Write down the end time (indicating hh:mm:ss): _____________
-
1.
-
3.
According to your criterion, evaluate the COMPLEXITY of this class diagram (mark with a cross).
Very simple
Relatively simple
Average
Slightly complex
Very complex
Rights and permissions
About this article
Cite this article
Genero, M., Manso, E., Visaggio, A. et al. Building measure-based prediction models for UML class diagram maintainability. Empir Software Eng 12, 517–549 (2007). https://doi.org/10.1007/s10664-007-9038-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-007-9038-4