What is a use case?

advertisement
Requirements Engineering
Lecture 3
ConOps and Use Cases
Jerzy.Nawrocki@put.poznan.pl
www.cs.put.poznan.pl/jnawrocki/require/
Copyright, 2003 © Jerzy R. Nawrocki
Bibliography

ISO/IEC 12207 Standard for Information Technology—
Software life cycle processes—Life cycle data,
IEEE/EIA 12207.1-1997, April 1998.
IEEE Guide for Information Technology – System
Definition - Concept of Operations (ConOps)
Document, IEEE Std 1362-1998, March 1998.
S. Adolph, P. Bramble, A. Cockburn, A. Pols, Patterns for
Effective Use Cases, Addison-Wesley, Boston, 2003.
J. Nawrocki, Use Cases and ConOps
ISO/IEC 12207 contents
6.1 Acquisition plan
6.2 Change request or modification request
6.3 Concept of operations description
6.4 Database design description
6.5 Development process plan
6.6 Evaluation records
6.8 Maintenance process plan
6.9 Operation process plan
6.10 Problem report and problem resolution report
6.11 Project management plan
6.12 Software architecture description
...
J. Nawrocki, Use Cases and ConOps
Generic description - 12207
Cover page
{
a) Date of issue and status;
b) Scope;
c) Issuing organization;
d) References;
e) Context;
f) Notation for description;
g) Body;
h) Summary;
i) Glossary;
j) Change history.
J. Nawrocki, Use Cases and ConOps
Concept of Operations - 12207
Purpose: Describe, in users’ terminology, how the
system should operate to meet the users’ needs.
Use
cases
Content:
a) Generic description information (previous slide);
b) Description of current situation or system;
c) Justification for and nature of changes;
d) Concepts for the proposed system;
e) Operational scenarios;
f) Summary of impacts;
g) Analysis of the proposed system;
h) Priorities, assumptions, constraints, advantages,
limitations, alternatives, and trade-offs considered.
J. Nawrocki, Use Cases and ConOps
IEEE Std 1362 History
R.J. Lano, A Structured Approach for Operational Concept
Formulation, TRW SS-80-02, Redondo Beach, CA, 1980.
1992: Software Systems Technical Committee of the
American Institute of Aeronautics and Astronautics
(AIAA), a standard for and Operational Concept
Document.
1993: MS thesis, California State University, Sacramento;
accepted as MIL-STD-498.
IEEE Std 1362-1998 by R. Thayer, R. Fairley, P. Bjorke.
J. Nawrocki, Use Cases and ConOps
ConOps structure - 1362
1. Scope
2. Referenced documents
3. Current system or situation
4. Justification for and nature of changes
5. Concepts for the proposed system
6. Operational scenarios
7. Summary of impacts
8. Analysis of the proposed system
9. Notes
Appendices
Glossary
J. Nawrocki, Use Cases and ConOps
1. Scope
1.1 Identification
Number, title, and abbreviation of the system
1.2 Document overview
Purpose, audience, security, ConOps outline
1.3 System overview
Purpose, sponsors, context diagram
Person 1
Institution
System
Person 2
J. Nawrocki, Use Cases and ConOps
Device
3. Current system or situation
3.1 Background, objectives, and scope
3.2 Operational policies and constraints
Constraints on the hardware, the hours of operation of
the system, the number of available personnel, ..
J. Nawrocki, Use Cases and ConOps
3. Current system or situation
3.1 Background, objectives, and scope
3.2 Operational policies and constraints
3.3 Description of the current system or situation
The operational environment
Major system components and their interconnections
Interfaces to external systems or procedures
Functions (features)
Inputs, outputs, data flows
Cost of system operations
Operational risk factors
Performance // Safety and security aspects // ...
J. Nawrocki, Use Cases and ConOps
3. Current system or situation
3.1 Background, objectives, and scope
3.2 Operational policies and constraints
3.3 Description of the current system or situation
3.4 Modes of operation for the current system or situation
Operational, degraded, maintenance, training, ..
3.5 User classes and other involved personnel
3.5.1 Organizational structure
3.5.2 Profiles of user classes
3.5.3 Interactions among user classes
3.5.4 Other involved personnel
3.6 Support environment
J. Nawrocki, Use Cases and ConOps
4. Justification for changes
4.1 Justication for changes
New user needs, environments etc. Disadvantages of
the current system.
4.2 Description of desired changes
Features, processing, interfaces, personnel,
environment, ..
4.3 Priorities among changes
Essential, desirable, optional
4.4 Changes considered but not included
J. Nawrocki, Use Cases and ConOps
5. Concepts for the proposed ..
5.1 Background, objectives, and scope
5.2 Operational policies and constraints
5.3 Description of the current system or situation
5.4 Modes of operation for the current system or situation
5.5 User classes and other involved personnel
5.5.1 Organizational structure
5.5.2 Profiles of user classes
5.5.3 Interactions among user classes
5.5.4 Other involved personnel
5.6 Support environment
J. Nawrocki, Use Cases and ConOps
Operational scenarios
A step-by-step description of system’s operation and
interaction with its users and external interfaces under
a given set of circumstances.
J. Nawrocki, Use Cases and ConOps
7. Summary of impacts
7.1 Operational impacts
Changes in procedure; use of new data sources;
changes in type and timing of data to be input
7.2 Organizational impacts
Job positions, skill levels, responsibilities, ..
7.3 Impacts during development
User involvement in software development;
parallel operation of the new and old system, ..
J. Nawrocki, Use Cases and ConOps
Analysis of the proposed system
8.1 Summary of improvements
New, enhanced, and deleted capabilities.
Improved performance.
8.2 Disadvantages and limitations
8.3 Alternatives and trade-offs considered
J. Nawrocki, Use Cases and ConOps
ConOps structure - 1362
.., terms and
definitions
1. Scope
2. Referenced documents
3. Current system or situation
4. Justification for and nature of changes
5. Concepts for the proposed system
6. Operational scenarios
7. Summary of impacts
8. Analysis of the proposed system
9. Notes
Appendices
Glossary
J. Nawrocki, Use Cases and ConOps
What is a use case?
A story describing how an actor (user or device)
cooperates with the system to accomplish a given purpose.
Abstraction
level
Use cases
IEEE SRS
Size
J. Nawrocki, Use Cases and ConOps
Advantages of use cases
• They are semiformal. They introduce structure to stories.
• They describe also error situations.
• They are part of O-O software development.
• They are basis for estimates, detailed requirements,
interface designs, and test scenarios.
J. Nawrocki, Use Cases and ConOps
Poorly written use case
Register for Course (Main Scenario)
1. Display a blank schedule.
2. Display a list of all classes in the following way: The left window lists
all the courses in the system in alphabetical order. The lower window
displays the times the highlighted course is available. The third
window shows all the courses currently in the schedule.
3. Do.
4. Student clicks on a course.
5. Update the lower window to show the times the course is available.
6. Student clicks on a course time and then clicks on the „Add Course”
button.
J. Nawrocki, Use Cases and ConOps
Poorly written use case
Register for Course (Main Scenario cont.)
7. Check if the Student has the necessary prerequisites and that the
course offering is open.
8. If the course is open and the Student has the necessary
prerequisites, add the Student to the course. Display the updated
schedule showing the new course. If no, put up a message „You are
missing the prerequisites. Choose another course.”
9. Mark the course offering as „enrolled” in the schedule.
10. End do when the Student clicks on „Save Schedule.”
11. Save the schedule and return to the main selection screen.
J. Nawrocki, Use Cases and ConOps
Poorly written use case
Too much user interface detail.
1. Display a blank schedule.
2. Display a list of all classes in the following way: The left window lists
all the courses in the system in alphabetical order. The lower window
displays the times the highlighted course is available. The third
window shows all the courses currently in the schedule.
3. Do.
4. Student clicks on a course.
5. Update the lower window to show the times the course is available.
6. Student clicks on a course time and then clicks on the „Add Course”
button.
J. Nawrocki, Use Cases and ConOps
Other frequent defects
Too many use cases at low goal levels („Authorize user”).
Using a use case for non-behavioral information (e.g.
forms description – use adornments).
Too long (should be short, usually 3-9 steps).
Not a complete goal accomplished (also lack of alternative
behaviors description).
Sentence fragments (e.g. omitting the actors’ names in
steps).
J. Nawrocki, Use Cases and ConOps
Well-written use case
Register for Course (Main Scenario)
1. Student requests a new schedule.
2. The system prepares a blank schedule form and pulls in a list of
open and available courses from the Course Catalog System.
3. Student selects primary and alternate courses from the available
offerings.
4. For each course, the verifies taht the Student has the necessary
prerequisites and adds the Student to the course, marking the
Student as „enrolled” in that course in the schedule.
5. When the Student indicates the schedule is complete, the system
saves the schedule.
J. Nawrocki, Use Cases and ConOps
Patterns for effective use cases
Shared Clear Vision:
Prepare a statement of purpose for the system that clearly
describes the objectives of the system.
• The objectives of the system
• The problems that the system will solve
• The problems the system will not solve
• Who the stakeholders are
• How the system will benefit the stakeholders
J. Nawrocki, Use Cases and ConOps
Patterns for effective use cases
Visible Boundary:
Establish a visible boundary between the system and its
environment by enumerating both the people and equipment
that interact with the system.
J. Nawrocki, Use Cases and ConOps
IEEE Std 1362 - Scope
1.1 Identification
Number, title, and abbreviation of the system
1.2 Document overview
Purpose, audience, security, ConOps outline
1.3 System overview
Purpose, sponsors, context diagram
Person 1
Institution
System
Person 2
J. Nawrocki, Use Cases and ConOps
Device
Patterns for effective use cases
Clear Cast Of Characters:
Identify the actors the system must interact with and the
role each plays with respect to the system. Clearly describe
each.
Receptionist: The Receptionist welcomes Customers to the
pharmacy. He or she takes the Customer’s prescription.
Anyone on the pharmacy staff can play the role of
receptionist.
Pharmacist: The Pharmacist fills and dispenses prescriptions
for customers. Only the Pharmacist can check and
authorize the prescription.
J. Nawrocki, Use Cases and ConOps
Patterns for effective use cases
User Valued Transactions:
Identify the valuable services that the system delivers to
the actors to satisfy their business purposes.
Book trip
Search for flights
Promote vacations
Create trip itinerary
Update trip itinerary
Delete trip itinerary
J. Nawrocki, Use Cases and ConOps
Book trip
Search for flights
Promote vacations
Change booking
Cancel booking
Patterns for effective use cases
Ever Unfolding Story:
Organize the use case set as a hierarchical story that can
be either unfolded to get more detail or folded up to hide
detail and show more context.
J. Nawrocki, Use Cases and ConOps
Use case goal levels
Summary
Level
Book trip
Book trip
Book flight
User Goal
Level
Book hotel
Book trip
Book flight
Find flight
Subfunction
Level
Book hotel
Reserve
seat
Find hotel
J. Nawrocki, Use Cases and ConOps
Reserve
room
Ever Unfolding Story
Book Flight
Leel: User Goal
Main Success Scenario
1. This use case begins when a customer calls and requests a flight.
2. The customer describes her flight needs by specifying her
origination, destination, travel dates, and preferred departure times
3. The system looks up all flights that match the customer’s
preferences and presents the travel options to the customer.
4. The customer selects a flight.
5. The system builds a flight itinerary for the customer.
6. The system reserves the flight for the customer.
7. The customer provides a credit card number and charges the price
of the flight against it.
8. The system issues the ticket to the customer.
J. Nawrocki, Use Cases and ConOps
A detailed version of Book Flight
Find flight
Construct
itinerary
Travel
agent
Reserve
flight
Issue
ticket
J. Nawrocki, Use Cases and ConOps
Airline
reservation
Merchant
bank
Ever Unfolding Story
Find Flight
Leel: Subfunction
1. This use case begins when a customer contacts the travel agency
and requests a flight.
2. The travel agent captures the customer’s trip origin and destination.
3. The travel agent looks up the airport codes for the origin and dest.
4. The travel agent captures the preferred departure times for the
customer.
5. The travel agent captures the customer’s preferred class of service
6. The travel agent confirms that the customer’s preferences are
correct.
7. The system requests from the airline reservation system a list of the
flights available that match the customer’s preferences, which is
presented to the travel agent.
J. Nawrocki, Use Cases and ConOps
Summary
ISO/IEC Std 12207 and ConOps
IEEE Std 1362 and ConOps:
• Current system
• Justification for change
• Concepts for new system
• Operational scenarios
• Impacts
Use cases:
Shared clear vision
Visible boundary
Clear cast of characters
User valued transactions
Ever unfolding story
J. Nawrocki, Use Cases and ConOps
Quality assessment
1. What is your general
impression? (1 - 6)
2. Was it too slow or too fast?
3. What important did you learn
during the lecture?
4. What to improve and how?
J. Nawrocki, Use Cases and ConOps
Download