Practical experience of eliciting classes from use case descriptions
Section snippets
Motivation
Requirements engineering is about eliciting and describing a problem and/or opportunity for a software solution, typically before you deploy that solution. In order to understand where a software system will be used, it is important to understand the problem domain of that system. Use cases are a recommended means of establishing a model of the problem domain and then as a driver to enable the first steps into the structural design of the system (Jacobson et al., 1992, Rosenberg and Scott, 1999
Elicitation questions and use cases
The notion of questioning use cases and scenarios to find classes, objects and their components is not new. Rubin and Goldberg (1992) explore scripts (a form of use case) to find initiator and participants (behaviours) of objects, asking, “Which roles and responsibilities are needed to accomplish the required task? Furthermore, we must answer why a particular object exists, why it is linked to another object, why a particular service is provided by an object, and how the object participates in
The elicitation questions
These questions and heuristics were originally devised to consider how examination of dependencies among events aided the discovery and derivation of classes (Cox and Phalp, 2003). This approach was subsequently expanded to consider other design issues important to modern software systems, such as interfaces to other machines and a consideration of the internal machinations of the system itself. Note that the questions and heuristics (though interspersed with our commentary) are phrased in a
The case study
The industrial study was undertaken at a financial services company, based in the UK. The chief business of the company is the building and supporting of complex applications for online buying and selling of shares, stocks and investments, such as government bonds. The high quality of the online application, with its potential for the US market, led to a global financial services organisation acquiring the company just prior to the study.
IT plays a central role in delivery of the company’s
Feedback and discussion
Feedback was gained both by formal interview and comments raised in presenting the authors’ work to the stakeholders. (Stakeholders were members of the company’s IT Development team: Systems Analyst, Software Developer, Quality Assurance Manager, Software Development Manager, all with from two to 10 years practical software development experience.) Interviewees were asked the strengths and weaknesses of the Elicitation Questions. In general the feedback was positive. Some ‘hopefully
Conclusions
This paper has presented an elicitation approach to aiding the design formulation process by interrogating events in use case descriptions; in terms of dependencies (pre- and post-conditions), interfaces, actors, system processes and then an identification of potential classes. Two research questions were posed at the start of the paper:
- •
RQ1. What is an appropriate technique to elicit classes from use cases?
In working on the reported project as contractors rather than academics, much
References (46)
- et al.
Deriving requirements from process models via the problem frames approach
Information and Software Technology
(2005) From use cases to classes: a way of building object model for UML
Information and Software Technology
(2003)- et al.
The application of use case descriptions in system design specification
Information and Software Technology
(2001) - et al.
The application of use cases in systems analysis and design specification
Information and Software Technology
(2005) - et al.
Investigating the role of use cases in the construction of class diagrams
Empirical Software Engineering Journal
(2005) - et al.
UML and the Unified Process: Practical Object-Oriented Analysis and Design
(2002) - et al.
Advanced Use Case Modelling
(2001) - Beck, K., Cunningham, W. 1989. A laboratory for teaching object-oriented thinking. In: Proceedings of OOPSLA’89. New...
Improving object-oriented analysis methods
Journal of Object-Oriented Programming
(1998)- et al.
The Unified Modelling Language User Guide
(1999)
Design and Use of Software Architectures
An Introduction to Requirements Engineering
Object-Oriented Analysis
Writing Effective Use Cases
Just Enough Requirements Management
Requirements researchers: do we practice what we preach?
Requirements Engineering Journal
Systems Analysis and Design – An Applied Approach
From use cases to objects: an industrial information systems case study analysis
Requirements Engineering and Rapid Development
Cited by (14)
Blockchain Meets Sharing Economy: A Case of Smart Contract Enabled Ridesharing Service
2022, Sustainability (Switzerland)An Automated Security Concerns Recommender Based on Use Case Specification Ontology
2022, Automated Software EngineeringExploring blockchain technology in international trade: Business process re-engineering for letter of credit
2019, Industrial Management and Data SystemsExploring Blockchain Technology for Capital Markets: A Case of Angel Fund
2018, Proceedings - IEEE 2018 International Congress on Cybermatics: 2018 IEEE Conferences on Internet of Things, Green Computing and Communications, Cyber, Physical and Social Computing, Smart Data, Blockchain, Computer and Information Technology, iThings/GreenCom/CPSCom/SmartData/Blockchain/CIT 2018Application of Blockchain Technology to Smart City Service: A Case of Ridesharing
2018, Proceedings - IEEE 2018 International Congress on Cybermatics: 2018 IEEE Conferences on Internet of Things, Green Computing and Communications, Cyber, Physical and Social Computing, Smart Data, Blockchain, Computer and Information Technology, iThings/GreenCom/CPSCom/SmartData/Blockchain/CIT 2018