Investigating the Role of Use Cases in the Construction of Class Diagrams

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.

[1]  Tore Dybå,et al.  Challenges and Recommendations When Increasing the Realism of Controlled Software Engineering Experiments , 2003, ESERNET.

[2]  Ying Liang,et al.  From use cases to classes: a way of building object model with UML , 2003, Inf. Softw. Technol..

[3]  Jeffrey Parsons,et al.  Understanding the Role of Use Cases in UML: A Review and Research Agenda , 2000, J. Database Manag..

[4]  Perdita Stevens,et al.  Using UML - software engineering with objects and components, Second Edition , 2006, Addison Wesley object technology series.

[5]  Timothy Lethbridge,et al.  Object-oriented software engineering - practical software development using UML and Java , 2002 .

[6]  Tore Dybå,et al.  Conducting realistic experiments in software engineering , 2002, Proceedings International Symposium on Empirical Software Engineering.

[7]  Mordechai Ben-Menachem,et al.  Writing effective use cases , 2001, SOEN.

[8]  Mervyn G. Marasinghe,et al.  SAS System for Linear Models , 1991 .

[9]  Yngve Lindsjørn,et al.  A Web-Based Support Environment for Software Engineering Experiments , 2002, Nord. J. Comput..

[10]  Richard W. Koontz,et al.  Object-oriented systems development , 1994 .

[11]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[12]  Bente Anda,et al.  Experiences from introducing UML-based development in a large safety-critical project , 2006, Empirical Software Engineering.

[13]  Robert C. Sharble,et al.  The object-oriented brewery: a comparison of two object-oriented development methods , 1993, SOEN.

[14]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[15]  Robert P. Bostrom,et al.  Comparing representations with relational and EER models , 1990, Commun. ACM.

[16]  Warren Harrison N = 1: an alternative for software engineering research? , 2000 .

[17]  Bennett Simon,et al.  Object-oriented Information Systems Analysis and Design Using UML , 1999 .

[18]  Jeffrey C. Carver,et al.  Evolving a Set of Techniques for OO Inspections , 1999 .

[19]  Ray Farmer,et al.  Object-Oriented Systems Analysis and Design Using UML , 2001 .

[20]  Bente Anda,et al.  An evaluation of applying use cases to construct design versus validate design , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

[21]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[22]  Janice Singer,et al.  Beg, borrow, or steal: using multidisciplinary approaches in empirical software engineering research , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[23]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[24]  A. Ehrenberg,et al.  The Design of Replicated Studies , 1993 .

[25]  Lionel C. Briand,et al.  A Unified Framework for Cohesion Measurement in Object-Oriented Systems , 2004, Empirical Software Engineering.

[26]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process , 2001 .

[27]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .

[28]  Ray Welland,et al.  Collecting Feedback during Software Engineering Experiments , 2005, Empirical Software Engineering.

[29]  C SharbleRobert,et al.  The object-oriented brewery , 1993 .

[30]  Charles Richter Designing Flexible Object-Oriented Systems with UML , 1999 .

[31]  Jim Arlow,et al.  Uml and the Unified Process: Practical Object-Oriented Analysis and Design , 2005 .

[32]  Jim Arlow,et al.  UML and the unified process , 2001 .

[33]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[34]  Kendall Scott,et al.  Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example , 2001 .