One of the primary challenges is the ability to elicit the correct and necessary system requirements from the stakeholders and specify them in a manner understandable to them so those requirements can be verified and validated. The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is a difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, and to other software systems. No other work so cripples the resulting system if done wrong. No other part is more difficult to rectify later. Fred Brooks
User-Centered Development and UseCase Modeling
User-centered development – a process of systems development based on understanding the needs of the stakeholders and the reasons why the system should be developed. Use-case modeling – the process of modeling a system’s functions in terms of business events, who initiated the events, and how the system responds to those events. – Use-case modeling has roots in object-oriented modeling. – Gaining popularity in non-object development environments because of its usefulness in communicating with users. – Compliments traditional modeling tools.
Benefits of Use-Case Modeling
• Provides tool for capturing functional requirements. • Assists in decomposing system into manageable pieces (functional decomposition). • Provides means of communicating with users/stakeholders concerning system functionality in language they understand. • Provides means of identifying, assigning, tracking, controlling, and management system development activities. • Provides aid in estimating project scope, effort, and schedule.
Benefits of Use-Case Modeling (continued)
• • • • Aids in defining test plans and test cases. Provides baseline for user documentation. Provides tool for requirements traceability. Provides starting point for identification of data objects or entities. • Provides means of defining database access requirements. • Provides specifications for designing user and system interfaces. • Provides framework for driving the system development project.
Use case – a behaviorally related sequence of steps (scenario), both automated and manual, for the purpose of completing a single business task. – Description of system functions from the perspective of external users in terminology they understand.
Use-case diagram – a diagram that depicts the interactions between the system and external systems and users.
– graphically describes who will use the system and in what ways the user expects to interact with the system.
Use-case narrative – a textual description of the business event and how the user will interact with the system to accomplish the task.
Sample Use-Case Model Diagram
Basic Use-Case Symbols
Use case – subset of the overall system functionality
– Represented by a horizontal ellipse with name of use case above, below, or inside the ellipse.
Actor – anyone or anything that needs to interact with the system to exchange information. – human, organization, another information system, external device, even time.
Temporal event – a system event triggered by time.
(The actor is time.)
Four Types of Actors
• Primary business actor
– The stakeholder that primarily benefits from the execution of the use case. – e.g. the employee receiving the paycheck
• Primary system actor
– The stakeholder that directly interfaces with the system to initiate or trigger the business or system event. – e.g. the bank teller entering deposit information
• External server actor
– The stakeholder that responds to a request from the use case. – e.g. the credit bureau authorizing a credit card charge
• External receiver actor
– The stakeholder that is not the primary actor but receives something of value from the use case. – e.g. the warehouse receiving a packing slip