Applying use cases to design versus validate class diagrams - a controlled experiment using a professional modeling tool

Author(s):  
B. Anda ◽  
D.I.K. Sjoberg

2001 ◽  
pp. 168-185 ◽  
Author(s):  
Terry Halpin

The Unified Modeling Language (UML) is useful for designing object-oriented code, but is less suitable for conceptual data analysis. Its process-centric use-cases provide an inadequate basis for specifying data-centric class diagrams, and the UML graphical language suffers from incompleteness, inconsistency and unnecessary complexity. For example, multiplicity constraints can lead to unexpected problems when extended to n-ary associations, the constraint primitives are not optimized for orthogonality or expressibility, and the graphical language does not lend itself readily to verbalization and multiple instantiation for validating models with domain experts. This chapter examines some of these defects, and shows how to compensate for them by augmenting UML with concepts and techniques from the Object Role Modeling (ORM) approach. It highlights the potential of “data use cases” for seeding the data model, using verbalization of facts and rules with positive and negative examples to facilitate validation of business rules. The following approaches are suggested as possible ways to exploit the benefits of fact-orientation: use ORM for the conceptual analysis then map the ORM model to UML; use UML supplemented by informal population diagrams and user-defined constraints; enhance the UML metamodel to better support business rules.



2018 ◽  
Vol 33 ◽  
Author(s):  
Moataz Ahmed ◽  
Yaser Sulaiman

AbstractDuring the software system development lifecycle, different types of Unified Modeling Language model are developed to represent different views of the system. Sequence diagrams represent one of the most important types of model. They show how objects in the system interact to offer the functionality manifested in the form of use cases. As the complexity of the system being modeled increases, creating the sequence diagrams manually becomes harder. However, the problem of automatic sequence diagrams generation has not caught enough researchers yet. This paper presents an approach and a tool to automatically generate sequence diagrams from use cases and class diagrams. The problem of determining the sequence of message passing is treated as an Artificial Intelligence action planning problem and solved as such. In doing so, Design by Contract concepts are enforced in the specification of the given use cases and class diagrams. A special message-passing planner, Communiqué, was developed and implemented accordingly. The overall approach was empirically evaluated against sets of manually created sequence diagrams available in the literature. Communiqué was able to create sequence diagrams comparable to the manually developed ones. The paper also sheds the light on some directions for future work to advance the applicability of the approach.



Author(s):  
Peretz Shoval ◽  
Mark Last ◽  
Avihai Yampolsky

In the analysis phase of the information system development, the user requirements are studied, and analysis models are created. In most UML-based methodologies, the analysis activities include mainly modeling the problem domain using a class diagram, and modeling the user/functional requirements using use cases. Different development methodologies prescribe different orders of carrying out these activities, but there is no commonly agreed order for performing them. In order to find out whether the order of analysis activities makes any difference, and which order leads to better results, a comparative controlled experiment was carried out in a laboratory environment. The subjects were asked to create two analysis models of a given system while working in two opposite orders. The main results of the experiment are that the class diagrams are of better quality when created as the first modeling task, and that analysts prefer starting the analysis by creating class diagrams first.



2005 ◽  
Vol 10 (3) ◽  
pp. 285-309 ◽  
Author(s):  
Bente Anda ◽  
Dag I. K. Sjøberg
Keyword(s):  


Author(s):  
Brian Dobing ◽  
Jeffrey Parsons

A use case is a description of a sequence of actions constituting a complete task or transaction in an application. Use cases were first proposed by Jacobson (1987) and have since been incorporated as one of the key modeling constructs in the UML (Booch, Jacobson, & Rumbaugh, 1999) and the Unified Software Development Process (Jacobson, Booch, & Rumbaugh, 1999). This chapter traces the development of use cases, and identifies a number of problems with both their application and theoretical underpinnings. From an application perspective, the use-case concept is marked by a high degree of variety in the level of abstraction versus implementation detail advocated by various authors. In addition, use cases are promoted as a primary mechanism for identifying objects in an application, even though they focus on processes rather than objects. Moreover, there is an apparent inconsistency between the so-called naturalness of object models and the commonly held view that use cases should be the primary means of communicating and verifying requirements with users. From a theoretical standpoint, the introduction of implementation issues in use cases can be seen as prematurely anchoring the analysis to particular implementation decisions. In addition, the fragmentation of objects across use cases creates conceptual difficulties in developing a comprehensive class diagram from a set of use cases. Moreover, the role of categorization in human thinking suggests that class diagrams may serve directly as a good mechanism for communicating and verifying application requirements with users. We conclude by outlining a framework for further empirical research to resolve issues raised in our analysis.



Sign in / Sign up

Export Citation Format

Share Document