Abstract
Several approaches have been proposed for the transition from functional requirements to object-oriented design. In a use case-driven development process, the use cases are important input for the identification of classes and their methods. There is, however, no established, empirically validated technique for the transition from use cases to class diagrams. One recommended technique is to derive classes by analyzing the use cases. It has, nevertheless, been reported that this technique leads to problems, such as the developers missing requirements and mistaking requirements for design. An alternative technique is to identify classes from a textual requirements specification and subsequently apply the use case model to validate the resulting class diagram. This paper describes two controlled experiments conducted to investigate these two approaches to applying use case models in an object-oriented design process. The first experiment was conducted with 53 students as subjects. Half of the subjects used a professional modelling tool; the other half used pen and paper. The second experiment was conducted with 22 professional software developers as subjects, all of whom used one of several modelling tools. The first experiment showed that applying use cases to validate class diagrams constructed from textual requirements led to more complete class diagrams than did the derivation of classes from a use case model. In the second experiment, however, we found no such difference between the two techniques. In both experiments, deriving class diagrams from the use cases led to a better structure of the class diagrams. The results of the experiments therefore show that the technique chosen for the transition from use cases to class diagrams affects the quality of the class diagrams, but also that the effects of the techniques depend on the categories of developer applying it and on the tool with which the technique is applied.
Similar content being viewed by others
References
Anda, B., Hansen, K., Gullesen, I., and Thorsen, H. K. 2004. Experiences from introducing UML-based development in a large development project. Submitted to Empirical Software Engineering.
Arisholm, E., Sjøberg, D. I. K., Carelius, G. J., and Lindsjørn, Y. 2002. A web-based support environment for software engineering experiments. Nordic Journal of Computing 9: 231–247.
Arlow, J., and Neustadt, I. 2002. UML and the Unified Process. Practical Object-Oriented Analysis and Design. Boston, MA: Addison–Wesley.
Bahrami, A. 1999. Object Oriented Systems Development. Boston, MA: McGraw-Hill.
Batra, D., Hoffer, J. A., and Bostrom, R. P. 1990. Comparing representations with relational and EER models. Communications of the ACM 33(2): 126–139.
Bennett, S., McRobb, S., and Farmer, R. 1999. Object-Oriented Systems Analysis and Design Using UML. New York: McGraw-Hill.
Booch, G., Rumbaugh, J., and Jacobson, I. 1999. The Unified Modeling Language User Guide. Reading, MA: Addison–Wesley.
Briand, L. C., Daly, J., and Wüst, J. 1998. A unified framework for cohesion measurement in object-oriented systems. Empirical Software Engineering 3(1): 65–117.
Briand, L. C., Daly, J. W., and Wüst, J. 1999. A unified framework for coupling measurement in object-oriented systems. IEEE Transactions on Software Engineering 25(1): 91–121.
Cockburn, A. 2000. Writing Effective Use Cases. Boston, MA: Addison–Wesley.
Dobing, B., and Parsons, J. 2000. Understanding the role of use cases in UML: A review and research agenda. Journal of Database Management 11(4): 28–36, Oct–Dec.
Freund, R. J., Littell, R. C., and Spector, P. C. 1991. SAS System for Linear Models. Cary, NC: SAS Institute Inc.
Harrison, W. 2000. N=1: An alternative for software engineering research? Beg, borrow, or steal: Using multidisciplinary approaches in empirical software engineering research. In Workshop, 5 June, 2000 at 22nd Int. Conf. on Softw. Eng. (ICSE), Limerick, Ireland, pp. 39–44.
IBM Rational XDE Developer Plus, 2003. V2003.06.00, http://www-306.ibm.com/software/awdtools/developer/rosexde/.
Jacobson, I., Christerson, M., Jonsson P., and Overgaard, G. 1992. Object-Oriented Software Engineering: A Use Case Driven Approach. Wokingham :Addison–Wesley.
Jacobson, I., Booch, G., and Rumbaugh, J. 1999. The Unified Software Development Process. Reading, MA: Addison–Wesley.
Karahasanovic, A., Anda, B., Arisholm, E, Howe, S. E., Jørgensen, M., Sjøberg, D. I. K., and Welland, R. 2005. Collecting feedback during software engineering experiments. Empirical Software Engineering 10(2): 113–147.
Larman, C. 2002. Applying UML and Patterns—An Introduction to Object-Oriented Analysis and Design and the Unified Process. Englewood Cliffs, NJ: Prentice-Hall.
Lethbridge, T. C., and Laganiere, R. 2001. Object-Oriented Software Engineering: Practical Software Development Using UML and Java. New York: McGraw-Hill.
Liang, Y. 2003. From use cases to classes: A way of building object model with UML. Information and Software Technology 45(2): 83–93.
Lindsay, R. M., and Ehrenberg, A. S. C. 1993. The design of replicated studies. The American Statistician 47(3): 217–228, August.
Maciaszek, L. 2001. Requirements Design and System Analysis. Harlow: Addison–Wesley.
Meyer, B. 1999. Object-Oriented Software Construction. Saddle River, NJ: Prentice-Hall.
Richter, C. 1999. Designing Flexible Object-Oriented Systems with UML. Indianapolis, Indiana: Macmillan Technical Publishing.
Rosenberg, D., and Scott, K. 2001. Applying Use Case Driven Object Modeling with UML. An Annotated E-Commerce Example. Reading, MA: Addison–Wesley.
SAS Institute Inc. 1999. SAS Version 8, Cary, NC, USA.
Sharble, R. C., and Cohen, S. S. 1993. The object-oriented brewery: A comparison of two object-oriented development methods. Software Engineering Notes 18(2): 60–73.
Shull, F., Travassos, G., Carver, J., and Basili, V. 1999. Evolving a Set of Techniques for OO Inspections. University of Maryland Technical Report CS-TR-4070, October.
Sjøberg, D. I. K, Anda, B., Arisholm, E., Dybå, T., Jørgensen, M., Karahasanovic, A., Koren, E. F., and Vokác, M. 2002. Conducting realistic experiments in software engineering. In ISESE’2002 (First International Symposium on Empirical Software Engineering), Nara, Japan, October 3–4, pp. 17–26, IEEE Computer Society
Sjøberg, D. I. K., Anda, B., Arisholm, E., Dybå, T., Jørgensen, M., Karahasanovic, A., and Vokác, M. 2003. Challenges and recommendations when increasing the realism of controlled software engineering experiments, In: R. Conradi and A. I. Wang, (eds), Empirical Methods and Studies in Software Engineering, ESERNET 2001–2002, LNCS 2765, Springer-Verlag, pp. 24–38.
Stevens, P., and Pooley, R. 2000. Using UML. Software Engineering with Objects and Components. Harlow: Addison–Wesley.
Syversen, E., Anda, B., and Sjøberg, D. I. K. 2003. An evaluation of applying use cases to construct design versus validate design. In Hawaii International Conference on System Sciences (HICSS-36), Big Island, Hawaii, January 6–9.
Wirfs-Brock, R., Wilkerson, B., and Wiener, L. 1990. Designing Object-Oriented Software. Englewood Cliffs, NJ: Prentice Hall.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Anda, B., Sjøberg, D.I.K. Investigating the Role of Use Cases in the Construction of Class Diagrams. Empir Software Eng 10, 285–309 (2005). https://doi.org/10.1007/s10664-005-1289-3
Issue Date:
DOI: https://doi.org/10.1007/s10664-005-1289-3