Softw Syst Model (2008) 7:67–83 DOI 10.1007/s10270-006-0039-3 REGULAR PAPER Producing robust use case diagrams via reverse engineering of use case descriptions Mohamed El-Attar · James Miller Received: 2 March 2006 / Revised: 6 October 2006 / Accepted: 22 November 2006 / Published online: 23 January 2007 © Springer-Verlag 2007 Abstract In a use case driven development process, a use case model is utilized by a development team to construct an object-oriented software system. The large degree of informality in use case models, coupled with the fact that use case models directly affect the quality of all aspects of the development process, is a very danger- ous combination. Naturally, informal use case models are prone to contain problems, which lead to the injec- tion of defects at a very early stage in the development cycle. In this paper, we propose a structure that will aid the detection and elimination of potential defects caused by inconsistencies present in use case models. The struc- ture contains a small set of formal constructs that will allow use case models to be machine readable while retaining their readability by retaining a large degree of unstructured natural language. In this paper we also propose a process which utilizes the structured use cases to systematically generate their corresponding use case diagrams and vice versa. Finally a tool provides support for the new structure and the new process. To demon- strate the feasibility of this approach, a simple study is conducted using a mock online hockey store system. 1 Introduction Use case modeling [37], since it was introduced in the early 1990s by Ivar Jacobson has been constantly gaining Communicated by Prof. August-Wilhelm Scheer. M. El-Attar (B ) · J. Miller STEAM Laboratory, Department of Electrical and Computer Engineering, University of Alberta, Edmonton, AB, Canada e-mail: melattar@ece.ualberta.ca J. Miller e-mail: jm@ece.ualberta.ca wide acceptance by analysts, designers, testers and other stakeholders of a project. Use case modeling can be used to drive the design phase, the testing phase [28] and can be utilized for managerial purposes such as effort estimation [3] and business modeling [26]. The success experienced by use case modeling is chiefly because it is very simple to use to effectively describe the functional requirements of a system. Another attractive aspect of use case modeling is that it contains a small diagram- matic notational subset and a large degree of natural language. This allows all stakeholders of a project to understand the use case model, even those who are not technically equipped, which in turn will ensure that all stakeholders have a common understanding and agree- ment upon the capabilities and features of the system. The large degree of informality contained in the use case descriptions often causes use case descriptions to be inconsistent with their corresponding use case dia- grams. Moreover, inconsistencies may reside within the use case descriptions themselves. In a use case driven ap- proach [25] such as the Rational Unified Process (RUP) [29, 30, 39], use case models are used to produce other UML artifacts such as activity and sequence diagrams [21, 22, 25, 32, 38, 41, 50]. Hence, it is important to invest in producing high quality use case models that will yield the production of other high quality UML artifacts. Con- sistency is a key quality attribute of use case models. Ensuring the consistency between use case descriptions and their corresponding diagrams requires a great deal of discipline from analysts, which seldom exists. More- over, producing consistent use case models has been chiefly dependant on the experience of analysts. It is common knowledge that the expertise of analysts in industry varies significantly. Often, junior analysts are required to develop use case models, which will be highly