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