Requerimientos
Requerimientos
REQ480 Mastering
Requirements
Management with
Use Cases
Student Workbook
Version 2003.06.00
Part# 800-026338-000
IBM Software Group
Rational University
REQ480 Mastering Requirements Management with Use Cases
Student Workbook
Version 2003.06.00
May, 2003
Copyright International Business Machines Corporation, Rational Software 2003. All rights reserved.
This document may not be reproduced in whole or in part without the prior written permission of IBM.
The contents of this manual and the associated software are the property of Rational Software and/or its
licensors, and are protected by United States copyright laws, patent laws, and various international treaties. For
additional copies of this manual or software, please contact Rational Software.
Rational, the Rational logo, ClearQuest, ClearCase, ClearCase LT, ClearCase MultiSite, Unified Change
Management, Rational Developer Network, Rational Rose, Rational XDE, Purify, PureCoverage, Rational
Unified Process, ClearDDTS, and Quantify are trademarks or registered trademarks of Rational Software
Corporation in the United States and in other countries.
Microsoft Visual Basic, Windows NT, Windows 2000, Windows 95/98, Windows XP, Microsoft Word,
Windows Explorer, DOS, PowerPoint, and Visual SourceSafe, among others, are trademarks or registered
trademarks of Microsoft Corporation.
UNIX, Solaris, Motif, Java and all Java-based marks, among others, are trademarks or registered trademarks of
Sun Microsystems in the United States and/or other countries.
All other names are used for identification purposes only and are trademarks of their respective companies.
EX: Exercises
EX: Exercises
Objectives
In this exercise, complete the following tasks:
¾ Identify the actors who interact with the system.
¾ Identify the use cases.
¾ Sketch a use-case diagram for the system.
Scenario
You have just been assigned the job of lead system analyst for a new system. You
have been given a problem description (“Initial System Requests” below). Your first
task is to understand the requirements for the new system. From the Initial Requests,
you develop a use-case model of the requirements. In this first part of the modeling
process, you identify actors and use cases and develop a use-case diagram.
As you look at the initial requests for the system, note that the requirements are far
from complete. Note what assumptions you make, as well as what other information
you want to ask your customer.
Directions
1. Read the Initial System Requests document.
Wylie College is planning to develop a new online Course Registration System. The
new Web-enabled system replaces its much older system developed around
mainframe technology. The new system allows students to register for courses from
any Internet browser. Professors use the system to register to teach courses and to
record grades.
Because of a decrease in federal funding, the college cannot afford to replace the
entire system at once. The college will keep the existing course catalog database
where all course information is maintained. This database is an Ingres relational
database running on a DEC VAX. The legacy system performance is poor, so the new
system accesses course information from the legacy database but does not update it.
The registrar’s office continues to maintain course information through another
system.
Students can request a printed course catalog containing a list of course offerings for
the semester. Students can also obtain the course information online at any time.
Information about each course, such as professor, department, credit hours, and
prerequisites assists students in making informed decisions.
The new system allows students to select four course offerings for the coming
semester. In addition, each student indicates two alternate choices in case the student
cannot be assigned to a primary selection. Courses have a maximum of ten and a
minimum of three students.
The registration process closes on the first or second day of classes for the semester.
Any course with fewer than three students enrolled on the day registration closes is
cancelled. All courses without an instructor on the day registration closes are
cancelled. Students enrolled in cancelled classes are notified that the course has been
cancelled, and the course is removed from their schedules. The registration system
sends information about all student enrollments to the Billing System so that the
students can be billed for the semester.
For the first two weeks of the semester, students are allowed to alter their course
schedules. Students may access the online system during this time to add or drop
courses. Changes in schedules are immediately sent to the Billing System so that an
updated bill can be sent to the student.
At the end of the semester, the student can access the system to view an electronic
report card. Since student grades are sensitive information, the system must employ
security measures to prevent unauthorized access. All students, professors, and
administrators have their own identification codes and passwords.
Professors must be able to access the online system to indicate which courses they
want to teach. They also need to see which students signed up for their course
offerings. In addition, professors can record the grades for the students in each class.
C o u r s e R e g is t r a t io n
S y s te m
Identify Actors
Who uses the system?
Who gets information from the system?
Who provides information to the system?
Where in the organization is the system used?
Who supports and maintains the system?
What other systems use this system?
Sample Solution
Discussion Topics
How does your solution compare with the sample solution? What is different? What
is the same?
Are the use cases too small? Should some use cases be combined?
Does the diagram cover all activities? For example, which use cases do you think are
too small or should be canceled? Can you think of any activities not covered?
How do you know what is done in each use case?
What changes are you going to make to the bill if someone cancels three weeks
before the start of a course? Is it due to medical reasons, such as a broken leg?
¾¾¾
Exercise 4.1
The Problem Behind the Problem
In this exercise, familiarize yourself with the RU Financial Services case study. This
case study is used throughout the course as an example of applying requirements
management concepts discussed in class. The class may decide to develop a different
class project. The directions for the exercises are written generically so that they
should be applicable for any class project you choose.
The purpose of this exercise is to apply problem analysis techniques. Identify any
hidden problems that may exist in the problem domain of your class project. The
“real” problem(s) may not be those most obvious at the beginning.
Objectives
In this exercise, complete the following tasks:
¾
Review the details for the RU e-st class project.
¾
Demonstrate how to use problem analysis techniques to find the root causes for
a problem.
Scenario
You have been given the role of project lead for the RU e-st project. The first task is
to validate that a stock trading system is, indeed, the best solution to solve the
business’ problems and help the business achieve its goals. To do this you must lead
your team through the activities of problem analysis.
Directions
Gain an understanding of the business by reading Parts 1, 2, and 3 of the business
problem and business background.
Once you have read these, work as a class to perform the problem analysis. The
directions for this are located on page 10.
• Maintenance costs of the software are currently running at 25% above the
average maintenance costs of other software in the company. This figure must be
reduced to no more than 15%.
• Based on a recent survey, it was found that 70% of customers require additional
services that the current system does not provide. The main requests were: real-
time stock quotes; ability to research stock, ability to fund trading account
directly from a savings account held in another financial institution, and Web
access instead of having to install client software.
• About 2% of customers have experienced errors in their trades in the last six
months. This figure must be reduced to 0%.
The company phased out the systems written in COBOL and QuickBasic some years
ago. All software in the company is written one of the following: C++, Java, or Visual
Basic. Due to the success of the system, the company did not want to rewrite the
stock trading system and risk the introduction of bugs and loss of revenue. The
current stock trading system is the only system that uses COBOL and QuickBasic.
The company has adopted the Rational Unified Process for developing and
maintaining all systems in the organization. All projects are required to use this
process. The company mentor for the RUP is Kelly Richardson.
There is no existing documentation for the client or server applications. None of the
original development team remains employed at the company; therefore, contract
programmers maintain the software. As a result, the code for both the client and the
server has become very unstructured and fragile. Recently, this has caused some
major bugs that have caused errors in trades and required multiple updates to the
client and server software.
A dedicated testing group performs testing of the system. Because the system runs in
a console window on the client PC, the testers are unable to use their automated
testing software. The test scripts are performed manually. New tests are rarely
designed because they are document based.
Directions
Working together as a class:
1. Identify root causes of the problem using a fishbone diagram.
• Perform problem analysis, using the fishbone diagram technique. (Draw
the fishbone diagram on easel paper or board.)
• Identify the largest contributors to the problem.
• Discuss whether the proposed solution really is the best solution.
• Compare the class solution to the sample solution. (Only do this if you
use the RU e-st project.)
Sample Solution: Identify Root Causes - The Problem Behind the Problem
This is a sample solution for the class project. Although there is no one correct answer
for this example, compare your results with the sample provided.
Objectives
In this exercise, complete the following tasks:
¾
Identify the stakeholders for the project
¾
Identify the actors who interact with our system.
¾
Use the standardized problem statement format provided to formulate a problem
statement for the class project.
Scenario
An analysis of the root causes during the problem analysis found that replacing the
current system is the best solution to solving the problems the company is
experiencing. You now start work creating a Vision document for the project.
Directions
In this exercise, complete the following tasks:
1. Work in your groups to start the Vision document.
a. Identify key stakeholders.
b. Define the system boundaries by identifying actors who interact with
the system. (Refer to exercise 4.1.)
c. Identify constraints on your project.
2. As a whole class:
a. Create a consolidated list of stakeholders from each group.
b. Create a consolidated list of actors from each group.
c. Together, write a problem statement to summarize the problem.
Note: If you are not using RU e-st as your class project, this scenario should be
adjusted accordingly.
Exercise completion
At the end of this exercise you should have the beginnings of your system Vision
document.
Remember, the Vision document is developed iteratively, and you should not expect
to complete it in one sitting.
Using the Vision document included in your student pack, complete Section 3.2:
Stakeholder Summary.
Who are the key stakeholders for the class problem?
Who are the stakeholders that will actually be using the system (potential actors)?
Which stakeholders will you seek to obtain requirements from? For the stakeholders
that are not sources of requirements, what should you do with them?
All users of the system are stakeholders because they are materially affected by the
system. But there are some stakeholders (for example, stockholders) who are
probably not actors because they will never use the system.
Our
System
The problem of
(describe the problem)
Affects
(the stakeholders affected by the problem)
A successful solution
would
(list some key business benefits of a successful solution)
System
Administrator
Broker
RU e-st
System
Web Content
Provider
Tech Support
Objectives
In this exercise, you do the following tasks:
¾ Review the Online Stock Trading System Specifications.
¾ Look for possible requirements.
¾ Mark and number each requirement.
¾ Refine the solution boundary by revisiting the list of actors.
¾ Review a sample list of stakeholder requests.
¾ Update the Vision with the stakeholder needs you have identified. (optional)
Scenario
The board of directors has decided that replacing the current online trading system is
the best way forward. In light of the decision to develop a new online stock trading
system, the following initial requests have been produced.
Directions
Part 1
Working individually:
1. Turn to the initial requests for the online stock trading system.
• Note that the specification is not complete.
2. Read through the specification.
3. Mark and number anything you think is a software requirement.
As a whole class:
1. Present the number of requirements you found.
2. Compare the number of requirements from different individuals in the class.
3. Discuss the “Discussion Topics” at the end of this exercise.
Discussion Topics
Why are the numbers so different? How should the differences be resolved?
What are the benefits of standard documents? What are the identification methods
for requirements? For example, “shall,” delimiters, and so on.
What do you do with a requirement spec that you received from your customer?
(Especially when you have no control of the content or the format.)
Were there any changes to your actor list?
Disclaimer: This is a fictitious system and does not claim to be a model for a good
Software Requirement Specification. It is used for exercise purposes only.
INTRODUCTION
RU Financial Services is beginning an e-commerce project to develop software for a
Web-based stock and securities trading system. The new system has been tentatively
named the RU e-st system.
Purpose
The purpose of this SRS is to serve as a statement of understanding between the
Online Trading Business and Engineering Divisions of RU Financial Services. Any
desired departures from the specifications described herein must be negotiated by
the affected parties.
The audience for this SRS includes the engineers who are involved in the
development of the system, the marketers who are involved in its advertisement and
sale, and the testers who validate the system.
Scope
The overall objective of the RU e-st Stock Trading System is to provide our trading
customers with a convenient way to manage their stock portfolios. Managing a stock
portfolio includes such capabilities as buying and selling and researching stock in a
secure environment.
REQUIREMENTS
In this section, all of the functions that the RU e-st Stock Trading System Software is
to perform are specified. These specifications are first given from total system
perspective.
The RU e-st system shall provide all of the current functionality of the current stock
trading system, plus any additions specified in this document.
account, and limit trading (buy and sell at a specific price). The RU e-st system uses
the existing Market Trading System to perform the securities trades. RU e-st also
allows users to transfer cash in an account to or from financial institutions such as
banks or credit card vendors, using the existing Financial Network System. The usual
restrictions apply:
• For online market sales, the securities to sell must be in the customer’s account.
• For market purchases, cash for the purchase must be in the account by the
settlement date.
• Transfers and purchases from an account are allowed only if, at the time the
transaction occurs, they have enough cash to fund the transaction in the account.
Trading customers are also able to obtain information about what is happening in the
securities markets. A trading customer can obtain price quotes and news headlines by
entering the trading symbol (for example, IBM) for a particular security. The RU e-st
system obtains current and historical quotes from the existing Quote System service
and news items from the existing News System. RU e-st also has a feature to
broadcast news headlines periodically on the trading customer’s screen without being
asked.
Regulatory Requirements
The system must report yearly tax information to the IRS and state tax boards. Tax
forms must be communicated to the IRS and copies mailed to the customer. The
information is also available online for customer viewing.
Development Requirements
The system must be written in one of the company’s approved programming
languages. Refer to document Enterprise Architecture and Development Standards
document EA-12341 for details.
Hardware Requirements
The hardware platform must be one supported by the enterprise hardware
maintenance contract. Supported platforms are specified in the Enterprise
Architecture and Development Standards document EA-1234.
1
This document is not supplied with the course.
¾¾¾
Exercise 5.1
Part 2: Review Sample Stakeholder Requests
In this exercise, familiarize yourself with the list of sample stakeholder requests. This
list is used to illustrate traceability in subsequent exercises.
Note: The following is a sample list of stakeholder requests that were produced
during the workflow detail of Understand Stakeholder Needs. This list is included so
that the traceability from stakeholder requests to features and use cases can be
illustrated. The list is not intended to be exhaustive and there any many other
stakeholder requests that you may have elicited.
Directions
Part 2
1. Review the list of sample stakeholder requests. (This is used as input into the
next exercise.)
2. List the needs in section 3.7 of your Vision document (Optional).
Requirements Origin
STRQ1: Want to be able to transfer funds from other accounts (not necessarily held with this Trading Customer
firm) to a trading account.
STRQ2: State and federal regulations require monthly reports of account activity. Refer to Regulatory
specification RUFS-1234 for details of the information required.
STRQ3: The system should allow the use of any browser. Trading Customer
STRQ4: Customers want to manage their retirement funds. Trading Customer
STRQ5: Must be able to upgrade the system without taking it offline. On-line Trading
Business
STRQ6: The system should allow traders to trade in multiple markets across the world. Trading Customer
STRQ7: Must be able to provide convenient answers to customer’s most common questions. Customer Support
STRQ8: The system must provide a secure environment that prohibits fraudulent access. Trading Customer
STRQ9: Need a way to train customers in the use of the system quickly and conveniently. Customer Support
STRQ10: The system must operate on hardware that falls under the company’s current Finance Department
maintenance contracts.
STRQ11: Need to be able to maintain the system with our current IT hardware and skills. Refer System
to enterprise architecture document EA-1234 for details. Administration
STRQ12: Need account activity statements for tax reporting. Trading Customer
STRQ13: The system must provide all the basic capabilities of a normal stock broking firm. Trading Customer
STRQ14: Need to be able to perform research on any given stock. Trading Customer
STRQ15: The system must allow traders to obtain up-to-date news and alerts on nominated Trading Customer
stock.
STRQ16: The system must provide current and historical information on Trading Acounts. Trading Customer
Such as number of shares held, current price, total Trading Account value
STRQ17: The system shall provide the following types of trades: Market Trades (buy and sell), Trading Customer
Limit Trades (buy and sell), and transfers between mutual funds.
STRQ18: The system shall use the existing Market Trading System to perform securities Trading Customer
trades.
STRQ19: The system must report yearly tax information to the IRS and state tax boards. Regulatory
STRQ20: Tax forms will be sent electronically to the IRS and state tax authorities. Regulatory
STRQ21: Tax information can be viewed on-line by the Trading customer and printed if Regulatory
requested.
STRQ22: The system performance must be aceptable to customers that do not have high- Trading Customer
speed data access for their computers.
Objectives
In this exercise, complete the following tasks:
¾ Gather a list of stakeholder needs using brainstorming techniques.
¾ Clarify and organize the ideas.
¾ Condense ideas.
¾ Prioritize remaining ideas.
Scenario
As project lead, you need to identify the needs of the stakeholders for your new
system. You have called your stakeholders together for a brainstorming session.
Remember: The needs you identify must help solve the business problem. If they do
not, why have them?
To do this exercise, put yourself in the shoes of the stakeholders you identified in
Exercise 4.2. Consider what they need from the system.
All stakeholders have all been trained on the rules of brainstorming:
• Clearly state the objective of the session.
• Generate as many ideas as possible.
• Criticism and debate are not allowed.
• Change and combine ideas.
Directions
1. Prepare.
• Stack of sticky notes for each participant.
• Large markers for all.
2. Gather ideas.
• Shout it out.
• Write it down (include the stakeholder name.)
• Facilitator posts each idea on the board.
3. Clarify and organize ideas.
• Describe each idea.
• Move the notes around.
• Organize by FURPS or by the stakeholder name.
4. Prune ideas.
• Discard redundant or outrageous ideas.
• Store “needs more development” ideas.
• Combine like or similar ideas.
5. Prioritize remaining ideas.
• Vote or apply evaluation criteria.
Objectives
In this exercise, complete the following tasks:
¾ Brainstorm the system features based on the stakeholder requests elicited in
Exercise 5.1.
¾ Trace the features to stakeholder requests.
¾ Refine the Vision.
¾ Write a product position statement.
¾ List the features for the class project.
Scenario
As project lead, you are responsible for the Vision document for your project. Your
team has been working to describe the problem and how to address it, identify
stakeholders and users, elicit stakeholder/user needs, identify key product features,
and recognize constraints. Now, formalize this information in your Vision document.
Directions
Work in a small group.
1. Review exercise results.
• Problem statement (Module 4).
• Stakeholders and actors (Module 4).
• Fishbone diagram (Module 4).
• Key stakeholder and user needs (Module 5).
• Constraints (Module 4).
2. Brainstorm some product features.
• Look at the list of stakeholder requests.
• For each stakeholder request, identify some features that you would
include in the system that would satisfy these stakeholder requests.
• Give each feature a requirement tag (For example, FEAT1, FEAT2).
• For each feature, identify which stakeholder request it satisfies. (This is
your traceability matrix.)
3. Write a Product Position Statement.
4. Refine your Vision. (optional)
• Brief summary.
• Problem statement.
• Product position statement.
• Stakeholders and users.
• Stakeholder and user needs.
• Capture the features in Section 5 of the Vision document.
• Constraints.
As a whole class:
1. Compare your product position statements.
Things To Consider
• Are there any stakeholder requests that do not trace to one or more features?
What should you do in this situation?
• How does the Product Position Statement differ from the Problem Statement?
Why is it useful to have both of them in your Vision document?
• How does viewing the results of putting together a Vision document influence
your perception of your project?
Features
FEAT1: The system uses the Financial Services Network to enable transfer of funds between other financial
institutions and the customers Trading Account.
FEAT2: The system provides automatic reporting of tax-related information to the IRS and state tax boards.
FEAT3: The system supports the most common browsers: Microsoft Internet Explorer, (version 4 and higher) and
Netscape Navigator, (versions 4.72 through 4.75 and 6.2).
FEAT4: The system allows funds to be transferred to and from Mutual Fund accounts.
FEAT5: The system allows a customer to operate multiple Trading Accounts with a single login.
FEAT6: The system can be upgraded without taking services off-line.
FEAT7: During upgrades the system will preserve all "in-progress" transactions to ensure an error free experience
for the customer.
FEAT8: The system uses the Market Trading System to allow trading in any market worldwide.
FEAT9: The system provides an FAQ page to answer customer's most frequent questions quickly and simply.
FEAT10: The system provides an "I need help now" capability that will open a "chat window" with the next available
customer support representative. If there is no support personal available the system will inform the customer where
they are in the queue for help.
FEAT11: All Web pages shall be encrypted using 128 Bit SSL Security.
FEAT12: All personal and financial information shall be stored on a separate system with a secure network
connection between the systems.
FEAT13: The system provides comprehensive "how-to" documentation that is structured like a story of using the
system for a particular purpose. For example, "How to perform a Limit Buy."
FEAT14: The system runs on a corporate standard platform.
FEAT15: The system provides electronic and printed statements of account activity, including profit and loss
information, for yearly income tax reporting.
FEAT16: The system provides statements of Trading Account activity including transfers between Trading Accounts,
Trade summaries including: ticket code, number of shares traded and trade price.
FEAT17: Transfer cash from one customer trading account to another.
FEAT18: The system executes transactions in an Internet comfortable speed (less than 3 seconds, not counting
transmission times on a 56K modem).
FEAT19: Charge to a credit card and place funds in a customer's trading account.
FEAT20: Rollover from a retirement account in another institution in to a retirement account managed by the
system.
FEAT21: The system allows Market Buy and Sell transaction types.
FEAT22: The system allows Limit Buy and Sell transaction types.
FEAT23: The system allows mutual fund management.
FEAT24: The system allows stock research and alerts - online quotes, news flashes, and so on.
Objectives
In this exercise, complete the following tasks:
¾ Identify the use cases for the system.
¾ Create a brief description of the selected use cases.
¾ Create a use-case diagram for the system.
Scenario
As the project lead, you want to understand the system from the user’s perspective;
what the users want to be able to do using the system. Review the information you
have gathered thus far. From the information gathered, develop a use-case model of
the requirements. In this part of the use-case modeling process, identify use cases,
write a brief description for each use case, and develop a use-case diagram. In
subsequent exercises, you will create a detailed description for the use cases.
As you look at the Initial Requests and other information about the system, note that
the requirements are far from complete. Document your assumptions and any other
information you want to ask your customer.
Directions
Work in small groups.
As you begin this exercise, use the information gathered earlier to help complete Step
1.
• Problem description (Exercise 4.1).
• Stakeholder requests (refer to page 46).
• Vision document (Exercise 6.1).
• Actors (Exercise 4.2).
1. Discuss the requirements, revise the actors, and identify use cases.
2. Write a brief description for one to two use cases. (Pick use cases that you
think are the most important.)
3. Draw the use-case diagram on easel paper or the board.
• Show actors, use cases, and communicates-associations.
4. Post the use-case diagram.
As a whole class:
1. Present each solution.
2. Compare the use-case diagrams and brief descriptions from the different
groups.
3. Compare with the sample solution if using the RU e-st project.
• See RUCS4: Use-Case Model Survey.
4. Cover the “Discussion Topics” at the end of this exercise.
See page 46
Discussion Topics
How does your solution compare with the sample solution? What is different? What
is the same?
Are the use cases too small? Should some use cases be combined?
Does the brief description provide a good overview of the use cases purpose? Is there
too much detail, not enough detail, or just enough detail?
Does the diagram cover all activities? Can you think of any activities not covered?
How do you know what is done in each use case?
Does your use-case model satisfy the goals of all stakeholders?
Did you identify any new actors?
Disclaimer: This is a fictitious system and does not claim to be a model for a good
Software Requirement Specification. It is used for exercise purposes only.
INTRODUCTION
RU Financial Services is beginning an e-commerce project to develop software for a
Web-based stock and securities trading system. The new system has been tentatively
named the RU e-st system.
Purpose
The purpose of this SRS is to serve as a statement of understanding between the
Online Trading Business and Engineering Divisions of RU Financial Services. Any
desired departures from the specifications described herein must be negotiated by
the affected parties.
The audience for this SRS includes the engineers who are involved in the
development of the system, the marketers who are involved in its advertisement and
sale, and the testers who validate the system.
Scope
The overall objective of the RU e-st Stock Trading System is to provide our trading
customers with a convenient way to manage their stock portfolios. Managing a stock
portfolio includes such capabilities as buying and selling and researching stock in a
secure environment.
REQUIREMENTS
In this section, all of the functions that the RU e-st Stock Trading System Software is
to perform are specified. These specifications are first given from total system
perspective.
The RU e-st system shall provide all of the current functionality of the current stock
trading system, plus any additions specified in this document.
account, and limit trading (buy and sell at a specific price). The RU e-st system uses
the existing Market Trading System to perform the securities trades. RU e-st also
allows users to transfer cash in an account to or from financial institutions such as
banks or credit card vendors, using the existing Financial Network System. The usual
restrictions apply:
• For online market sales, the securities to sell must be in the customer’s account.
• For market purchases, cash for the purchase must be in the account by the
settlement date.
• Transfers and purchases from an account are allowed only if, at the time the
transaction occurs, they have enough cash to fund the transaction in the account.
Trading customers are also able to obtain information about what is happening in the
securities markets. A trading customer can obtain price quotes and news headlines by
entering the trading symbol (for example, IBM) for a particular security. The RU e-st
system obtains current and historical quotes from the existing Quote System service
and news items from the existing News System. RU e-st also has a feature to
broadcast news headlines periodically on the trading customer’s screen without being
asked.
Regulatory Requirements
The system must report yearly tax information to the IRS and state tax boards. Tax
forms must be communicated to the IRS and copies mailed to the customer. The
information is also available online for customer viewing.
Development Requirements
The system must be written in one of the company’s approved programming
languages. Refer to document Enterprise Architecture and Development Standards
document EA-12341 for details.
Hardware Requirements
The hardware platform must be one supported by the enterprise hardware
maintenance contract. Supported platforms are specified in the Enterprise
Architecture and Development Standards document EA-1234.
1
This document is not supplied with the course.
Objectives
In this exercise, complete the following tasks:
¾ Create a step-by-step outline of the flow of events for the selected use cases.
¾ Create a list of scenarios for the use cases.
Scenario
Your job as system analyst for the new system is progressing nicely. The stakeholders
have accepted your use-case diagram.
1. Create a step-by-step outline of the flow of events for use cases from the use-
case diagram of your new system.
2. Create a scenario list for each use case.
Directions
Work in small groups.
1. Focus on the use cases selected for you to outline.
• Review your use-case diagram (developed in Exercise 6.2.)
2. Create a step-by-step outline for the selected use cases.
• First, outline the flow of events for the basic flow.
• Second, identify three alternative flows.
• Write the outline neatly on lined paper or a flip chart.
• If possible, make copies of the outline(s) for the entire class.
3. Enumerate the scenarios for the use case. (Every flow should appear in at
least one scenario.)
4. If time permits, outline another selected use case and enumerate the
scenarios.
As a whole class:
1. Present each solution.
2. Compare the solutions between the different groups and the sample at the
end of this exercise.
If using the RU e-st project, see RUCS5: Step-by-Step Outlines.
3. Cover the “Discussion Topics” at the end of this exercise.
Basic Flow
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Alternative Flows
A1
A2
A3
Scenarios
S1
S2
S3
Basic Flow
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Alternative Flows
A1
A2
A3
Scenarios
S1
S2
S3
Discussion Topics
Do all the steps in your use-case outline reflect interactions with the system? Are
there some steps that are done manually outside the system and do not belong in the
use case?
Does your use-case outline show the basic flow from the beginning until the goal is
achieved?
Does each flow appear in at least one scenario?
Now that you see the outline of the Get Quote use case, do you think it should be
combined with the Execute Trade use case?
• Are they so related that they really belong together? If so, what would the
combined use case be called? What would it look like?
• If you think they should not be combined, why might you want to have them
separate?
Brief Description
The Trading Customer can get current or historical information about the trading
price of securities.
Basic Flow
1. Customer logs on.
5. Display quote.
¾¾¾
Exercise 7.1
Prioritize Requirements Using Attributes
The purpose of this exercise is to explore how you might use attributes of feature
requirements to make a decision about the relative importance of each and to
determine what to cut when managing scope.
Each group should come up with a ranking that shows the order in which the tasks
should be considered for inclusion in the release of the product, using the following
input (attributes):
• The text of the requirement
• Priority (input from the customer)
• Difficulty (input from development)
• Risk (to the project)
• Stability (of the requirement)
Objectives
In this exercise, complete the following tasks:
¾ Review the feature matrix and attributes.
¾ Determine the relative importance of the attributes.
¾ Prioritize the list of features.
¾ Decide on baseline scope of features.
Scenario
You are the Vice President of Engineering for the product. The Development
Manager (the instructor) has just told you that you only have the resources to
accomplish two-thirds of the work shown on the feature list.
You have to catch a cab to the airport in 20 minutes, so you have no time to go back
to talk with the customer. What requirements would you recommend for the baseline
scope?
Directions
Work together in a small group.
1. Review the features matrix worksheet on the next page.
2. Discuss the relative importance of the attributes.
3. Rank the features based on their attributes.
• The text of the requirement
• Priority (input from the customer)
• Difficulty (input from development)
• Risk (to the project)
• Stability (of the requirement)
4. List the feature numbers in the order of priority on chart paper or a
transparency.
As a whole class:
1. Compare the feature rankings from the different groups.
2. Discuss reasoning.
3. Cover the “Discussion Topics” at the end of this exercise.
Discussion Topics
What other information would you like to help make your decisions?
As a whole class, consider the ranking of each feature and describe the scenario it
traces to.
Objectives
In this exercise, complete the following tasks:
¾ Review the prioritized list of features.
¾ Trace the features into each scenario and use that to list the scenarios that you
detail in the next module.
Scenario
Based on the prioritized list of features from the previous exercise, list the scenarios
that should be detailed and implemented in this iteration.
For the purposes of this exercise, imagine you are in the first iteration of the
Construction Phase of the Rational Unified Process®. This means that all architectural
risks have been mitigated and that you are now focusing on removing the risks related
to not delivering system functionality that is important to the customer, as well as
getting the bulk of the work done.
Directions
Work together as a class.
1. Review the prioritized feature requirements form the previous exercise.
2. Use the use-case outlines provided at the end of this exercise (page 61) to
trace the features to flows.
3. For each flow that is traced to, identify a scenario that the flow is part of.
When identifying the scenario, consider the Analyst’s criteria for selecting
scenarios.
4. List the scenarios to detail in the next exercise.
Discussion Topics
Were there any features that you could not trace to a flow? If so, what should you do
about that?
Were there any flows that were not traced from a feature? If so, what does this mean?
Were there any use cases that had no flows traced from a feature? So, what does this
mean?
Brief Description
Trading Customers get current and historical information about the trading
price of securities.
Flow of Events
Basic Flow
1. Customer logs on.
2. Customer selects “Get Quote” function.
3. Customer selects stock trading symbol .
4. Get desired quote from Quote System.
5. Display quote.
6. Customer logs off.
Alternative Flows
A1 Customer Gets Other Quotes
A2 Unidentified Trading Customer
A3 Quote System Unavailable
A4 Quit
A5 Unknown Trading Symbol
Scenarios
Customer Gets a Quote: Basic Flow
Customer Gets Additional Quotes: Basic Flow, Customer Gets Other
Quotes
Invalid login: Basic Flow, Unidentified Trading Customer
Quote System Unavailable: Basic Flow, Quote System Unavailable
Unknown Trading Symbol: Basic Flow, Unknown Trading Symbol
Quit Before Completion: Basic Flow, Quit
Brief Description
Trading Customers buy, sell or transfer securities in their accounts. The
possible trade order types are: Limit Buy Order, Limit Sell Order, Market
Buy Order, Market Sell Order, Transfer Order. Immediately after a trade is
completed, Trading Customers receive a market trading confirmation
containing a transaction id and the results of the trade.
Flow of Events
Basic Flow
1. Customer logs on.
2. Customer selects “Trade” function.
3. Customer selects account.
4. Customer performs trade.
4.1 Select trade order type (market, limit, transfer) and enter trading info.
4.2 Initiate trade with Market Trading System.
4.3 Get trade results from Market Trading System.
5. Customer logs off.
Alternative Flows
A1 Unidentified Trading Customer
A2 Unauthorized Trader
A3 Quit
A4 Trade Is Rejected
A5 Market Trading System Unavailable
A6 Insufficient Funds
A7 No Trading Account
A8 Account Not Operational
A9 Customer Executes More Trades
Scenarios
Trading Customer Executes More Trades: Basic Flow, Customer Executes
More Trades.
Invalid login: Basic Flow, Unidentified Trading Customer
Trading Customer is Not Authorized To Execute Trades: Basic Flow,
Unauthorized Trader
Quit before execute: Basic Flow, Quit
Trade is Rejected: Basic Flow, Trade Is Rejected
Market Trading System Unavailable: Basic Flow, Market Trading System
Unavailable
Insufficient Funds in Trading Account: Basic Flow, Verify That Cash Is
Available
Trading Customer Has No Trading Account: Basic Flow, No Trading
Account
Trading Account Not operational: Basic Flow, Account Not Operational
Exercise 8.1
Choose a Style
Look at the styles of writing a flow of events and compare them. Each style has
different benefits.
The way to describe the flow of events depends on factors, such as:
• Who is the reader?
This may differ from project to project. Sometimes you may have a "customer" of
the system, or at other times you need to try to understand what the market
wants without having a “customer.” Depending on who will be reading the flow
of events, there are many different ways to write it. If the readers are unfamiliar
with the system and the Rational Unified Process, you should describe it in one
way. On the other hand, if the systems are well known to all readers, you may
choose to describe it in another way. Regardless of the way you choose to
describe it, be consistent for all use cases in your project.
• Who is the author?
It is not easy to make everyone in a project team write the flow of events in the
same way. The style depends on many factors, including the skills and
background of the authors. For example, if some people have problems
expressing themselves, it may be easier to make a more formal template for the
flow of events. Your use-case modeling guidelines can help ensure that there is a
consistent style.
Objectives
In this exercise, complete the following tasks:
¾ Review different flow of events descriptions.
¾ Compare and contrast the different styles.
¾ Recommend a style for your project team.
Scenario
After you have finished detailing your flow of events, your co-worker Bob mentions
that he has seen use cases written in other styles. He thinks that the team should
decide what style they want to use for their use cases. He proposes some sample
styles to choose from.
Directions
Working by yourself:
Review each of the following samples of a flow of events that are written in
different styles. As you read each style, consider the following:
Consider the following questions when comparing the use cases:
• Is it easy to read and understand?
• Do you think it would be easy to create (write) with a word processor?
• Do you think it would be easy to maintain if you were inserting and
reorganizing the flows?
• In what ways is it better than the others?
• In what ways is it worse than the others?
• Which style do you prefer?
As a whole class:
• Compare the styles of flow of events, using the questions above.
• Recommend a style for your project team.
Style I–Table
1. Use Case Name: Get Quote
1.1 Brief Description
The Trading Customer can get current and historical information about the trading price of securities.
2. Flow of Events
2.1 Basic Flow
Step Trading Customer System Quote System
1 The use case starts when the
Trading Customer logs on.
2 The system validates the customer id
and password. The system presents a
list of available functions.
3 The Trading Customer chooses to
“Get Quote.”
4 The system displays the list of
trading symbols and names of
securities on which it has quotes.
5 The Trading Customer selects
from the list of securities or
enters the trading symbol for a
security.
6 The system sends the trading symbol
to the Quote System
7 The Quote System returns the
most recent quote for the
requested trading symbol.
8 The system presents the
corresponding Quote Display (see the
fields to display in Supplementary
Specifications) to the Trading
Customer.
9 The Trading Customer logs off
the system. The use case ends.
2.2.4 Quit
The RU e-st System allows the Trading Customer to quit at any time during the use case. The use case ends.
Step Trading Customer System Quote System
1 The RU e-st System allows the
Trading Customer to quit at any
time during the use case. The use
case ends.
Style II-Bulleted
1. Use Case Name: Get Quote
1.1 Brief Description
The Trading Customer can get current and historical information about the trading price of securities.
2. Flow of Events
2.1 Basic Flow
• Customer Logs On.
o The use case starts when the Trading Customer logs on. The system validates the customer id and
password. The system presents a list of available functions.
• Customer Selects “Get Quote” Function.
o The Trading Customer chooses to “Get Quote.” The system displays the list of trading symbols
and names of securities on which it has quotes.
• Customer Gets Quote.
o The Trading Customer selects from the list of securities or enters the trading symbol for a security.
The system sends the trading symbol to the Quote System and receives the Quote System
Response. The system presents the corresponding Quote Display (see fields to display in
Supplementary Specifications) to the Trading Customer.
• Customer Logs Off.
o The Trading Customer logs off the system. The use case ends.
2.2 Alternative Flows
2.2.4 Quit
The RU e-st System allows the Trading Customer to quit at any time during the use case. The use case
ends.
Style III-RUP
1. Use Case Name: Get Quote
1.1 Brief Description
The Trading Customer can get current and historical information about the trading price of securities.
2. Flow of Events
2.1 Basic Flow
1. Customer Logs On.
The use case starts when the Trading Customer logs on. The system validates the customer id and
password. The system presents a list of available functions.
2.2.4 Quit
The RU e-st System allows the Trading Customer to quit at any time during the use case. The use case
ends.
Style IV-Tag
1. Use Case Name: Get Quote
1.1 Brief Description
The Trading Customer can get current and historical information about the trading price of securities.
2. Flow of Events
2.1 Basic Flow
{Trading Customer logs on}
1. The use case starts when the Trading Customer logs on.
2. The system validates the customer id and password. The system presents a list of available functions.
3. The Trading Customer chooses to “Get Quote.”
4. The system displays the list of trading symbols and names of securities on which it has quotes.
{Customer Gets Quote}
5. The Trading Customer selects from the list of securities or enters the trading symbol for a security.
{Request Quote from Quote System}
6. The system sends the trading symbol to the Quote System and receives the Quote System Response.
7. The system presents the corresponding Quote Display (see fields to display in Supplementary
Specifications) to the Trading Customer.
{Log Off}
8. The Trading Customer logs off the system. The use case ends.
2.2.4 Quit
The RU e-st System allows the Trading Customer to quit at any time during the use case. The use case
ends.
¾¾¾
Exercise 8.2
Detail the Flows
The purpose of this exercise is to apply what you have learned about detailing use
cases. In this exercise, you further detail the use cases outlined in Exercise 6.3 and
prioritized in Exercise 7.2.
Use the Get Quote Use Case Report below as an example of a fully detailed use case.
Unlike your use cases for this exercise, every flow in this use case has been detailed.
Notice the level of detail in this example. Remember, you need to describe every
detail that the customer wants the developers to know.
Objectives
In this exercise, complete the following tasks:
¾ Identify the scenarios to be detailed in this iteration (from module 7).
¾ Identify the flows for each scenario to be detailed.
¾ Add detail to the step-by-step outline of the basic flow of events.
¾ Describe clearly what happens in each alternative flow.
¾ Revise the use-case scenario list
¾ Identify preconditions.
¾ Identify postconditions.
Scenario
Your requirements for the new system are becoming clear. The stakeholders have
accepted your use-case outlines.
Now fill out the step-by-step outline with more detail to the basic and the alternative
flows. As the flows are detailed it is likely that additional alternative flows are
identified. As additional flows are identified the scenario list should be updated to
include them.
As part of detailing use cases you also write a preconditions and postconditions.
Directions
Work together in a small group:
1. Focus on the scenarios you selected to detail in module 7.
• Review your use case outline (developed in Exercise 6.3).
2. Detail the flow of events. (Use the sample on page 79 as a style guide.)
• Give each step in the Basic Flow a title.
• Write one to three sentences that detail each step.
• Write the details of each Alternative Flow.
3. Revise the scenario list.
4. Add a precondition.
5. Add a postcondition.
6. Write the group’s use case report neatly on lined paper.
• If possible, make copies of the use case report(s) for the entire class.
7. If time permits, detail another selected use case.
As a whole class:
1. Present each solution.
2. Compare the solutions from the different groups.
3. Compare the solutions with the sample solution if using the RU e-st project.
• See RUCS6: Use Case Reports.
4. Discuss the “Discussion Topics” at the end of this exercise.
3. Special Requirements
Objectives
In this exercise, you do the following tasks:
¾ Identify nonfunctional requirements.
¾ Determine where nonfunctional requirements should be specified.
Scenario
As project lead, you are responsible for identifying the declarative requirements that
are not readily captured in the use cases of the use-case model. If a nonfunctional
requirement applies to a particular use case, then it is usually specified in the “Special
Requirements” property of the use-case report for the particular use case to which it
applies. Supplementary Specifications contain the declarative requirements that are
not about a particular use case.
Directions
Work in small groups.
1. Review the requirements developed in your project, especially the
stakeholder requests and features.
2. Write at least five nonfunctional software requirements for your project.
• Use language the users can easily understand.
• Make the requirements specific and verifiable.
• Determine the category of each requirement (useability, reliability, and
so on).
3. Determine where to specify the requirements. After each requirement on
your list, tell where you would specify it.
• Does the requirement apply to a specific use case?
- Specify in the use case report under Special Requirements.
• Does the requirement apply to the whole system?
- Specify in the Supplementary Specifications.
4. Write on lined paper. If possible, make copies for the entire class.
As a whole class:
1. Discuss the nonfunctional requirements from the different groups.
2. Compare with the sample solution if using the RU e-st project.
• See RUCS8: Supplementary Specifications.
• See RUCS6: Use Case Reports.
3. Discuss the “Discussion Topics” at the end of this exercise.
Discussion Topics
What types of nonfunctional requirements might be attached to a use case?
To the use-case model, is that the whole system?
How are features related to nonfunctional software requirements?
How are stakeholder requests related to nonfunctional requirements?
What types of nonfunctional requirements are you most likely to encounter
in your own projects?
Because of a decrease in federal funding, the college cannot afford to replace the entire system at once. The college
will keep the existing course catalog database, where all course information is maintained. This database is an Ingres
relational database running on a DEC VAX. The legacy system performance is poor, so the new system accesses
course information from the legacy database but does not update it. The registrar’s office continues to maintain
course information through another system.
Students can request a printed course catalog containing a list of course offerings for the semester. Students can also
obtain the course information online at any time. Information about each course, such as professor, department,
credit hours, and prerequisites, assists students in making informed decisions.
The new system allows students to select four course offerings for the coming semester. In addition, each student
indicates two alternate choices in case the student cannot be assigned to a primary selection. Course offerings have a
maximum of ten and a minimum of three students.
The registration process closes on the first or second day of classes for the semester. Any course having fewer than
three students enrolled on the day registration closes is cancelled. All courses without an instructor on the day
registration closes are cancelled. Students enrolled in cancelled classes are notified that the course has been
cancelled, and the course is removed from their schedules. The registration system sends information about all
student enrollments to the Billing System so that the students can be billed for the semester.
For the first two weeks of the semester, students are allowed to alter their course schedules. Students may access the
online system during this time to add or drop courses. Changes in schedules are immediately sent to the Billing
System so that an updated bill can be sent to the student.
At the end of the semester, the student can access the system to view an electronic report card. Since student grades
are sensitive information, the system must employ security measures to prevent unauthorized access. All students,
professors, and administrators have their own identification codes and passwords.
Professors must be able to access the online system to indicate which courses they want to teach. They also need to
see which students signed up for their course offerings. In addition, professors can record the grades for the students
in each class.
Introduction
This set of suggested solutions on the online course registration problem is derived from knowledge as
college students and general system knowledge. The point of this set of solutions is to show what a
solution may look like and to what level of detail you describe the use cases.
The point here is not the technical content, but what the descriptions may look like.
1. Introduction
This is an example of what a solution to the use-case exercises in the MRMUC course may look like. It contains
more information than a normal group might create. It is closer to an example of a use-case model for a regular
project. Keep in mind that this example shows the use-case model in the beginning of a project.
2. Survey Description
The Course Registration System is a Web-enabled system connected to the university computer systems. The
purpose of the system is to allow students to register for courses from any Internet browser. It is also important to
enable professors to register to teach courses and to record grades through this system. An online registration is less
expensive for the college than a campus registration.
3. Actors
3.1 Diagram
Student Registrar
Course Catalog
System
3.2 Student
A student is a person with a valid student ID who is registered at the college. The student IDs are unique, and they
know the password.
3.3 Registrar
A registrar is a person with a unique ID and password who has authorization to close registration.
3.4 Professor
A professor is a person with a unique ID and password who has authorization to select courses to teach, access class
lists, and submit grades. This person can also interact with the close registration process.
4 Use Cases
Step-by-Step Outlines
Introduction
This is an example of what a step-by-step outline and a list of alternative flows can look like.
These step-by-step outlines are the first draft of the flow of events in each use case.
This kind of information is usually not in a nice fancy document; the normal format is handwritten.
Later they are used to begin the use-case reports.
Step-by-Step Outline
Basic Flow
1. Log on.
2. Select ‘Create a Schedule’.
3. Obtain course information.
4. Select courses.
5. Submit schedule.
6. Display completed schedule.
Alternative Flows
A1. Unidentified student.
A2. Quit.
A3. Cannot enroll.
A4. Course Catalog System unavailable.
Can we allow students to register if the Course Catalog is unavailable?
A5. Course registration closed.
Should we allow students to pay with credit cards online, or is that outside the scope of
our system? If we allow them to pay, how and what do we tell the billing system?
…
Step-by-Step Outline
Basic Flow
1. Log on.
2. Select ‘Alter a Schedule’.
3. View current schedule.
4. Obtain course information.
5. Add or drop courses.
6. Submit revised schedule.
7. Accept completed schedule.
8. Send changes to billing system.
Alternative Flows
A1. Delete whole schedule.
A2. Unidentified student.
A3. Quit.
A4. Cannot enroll.
A5. Course Catalog System unavailable.
Can we allow students to register if the Course Catalog is unavailable?
A6. Drop/Add period closed.
…
Close Registration
Brief Description
This use case allows a Registrar to close the regular registration process (usually done in
the first or second day of classes) in the current semester. The registrar can cancel course
offerings of courses that are too small or have no instructor. The enrollment information
is then sent to the Billing System.
Step-by-Step Outline
Basic Flow
1. Log on.
2. Registrar requests registration be closed.
3. Commit or cancel courses.
a. Identify courses to cancel.
b. Drop course from student schedules.
c. Notify students that course was dropped.
d. Remove course from course list.
e. Notify professor that course was canceled.
4. Send billing info to the Billing System.
5. Get acknowledgement from Billing System.
6. Print close-registration report for registrar.
7. Registrar confirms that regular registration process is closed.
Alternative Flows
A1. Quit
A2. Registration Still in Progress
A3. Billing System Unavailable
What are the possible responses the billing system may have? We need to look into
this and figure out what to do for each response.
2. Flow of Events
2.1 Basic Flow
1. Log On.
This use case starts when a student accesses the Wylie University Web site. The system asks for
identification information. The student enters the student ID and password. The system validates the
ID and password.
2. Select “Create a Schedule.”
The system displays the functions available to the student. The student selects “Create a Schedule.”
3. Obtain Course Information.
The system retrieves a list of available course offerings from the Course Catalog System and displays
the list to the student. The student can search the list by department, professor or topic to obtain the
desired course information.
4. Select Courses.
The student selects four primary course offerings and two alternate course offerings from the list of
available offerings course offerings.
5. Submit Schedule.
The student indicates that the schedule is complete. For each selected course offering on the schedule,
the system verifies that the student has the necessary prerequisites, that the course offering is open, and
that there are no schedule conflicts. The system then enrolls the student in the selected course offering.
6. Accept Completed Schedule.
The system displays the completed schedule containing the selected courses. The confirmation number
for the schedule is displayed. The schedule is saved in the system. The student accepts the schedule.
The use case ends.
2.2.2 Quit
The Course Registration System allows the student to quit at any time during the use case. The student may
choose to save a partial schedule before quitting. All courses that are not marked as “enrolled in” are
marked as “selected” in the schedule. The schedule is saved in the system. The use case ends.
3. Special Requirements
The system must validate or reject a schedule within one minute of the time the student submits the
schedule.
4. Preconditions
The list of course offerings for the semester has been created and is available to the Course Registration
System.
5. Postconditions
At the end of this use case either the student has been enrolled in courses and given a schedule or
registering was unsuccessful and no changes have been made to student schedules or course enrollments.
6. Extension Points
None.
7. Scenarios
Register for courses: Basic Flow
Unidentified Student: Basic Flow, Unidentified Student
Quit before registering: Basic Flow, Quit
2. Flow of Events
2.1 Basic Flow
1. Log On.
This use case starts when a student accesses the Wylie University Web site. The system asks for
identification information. The student enters the student ID and password. The system validates the
ID and password.
2. Select “Update a Schedule.”
The system displays the functions available to the student. The student selects “Update a Schedule.”
3. View Current Schedule.
The system retrieves and displays the student’s current schedule (for example, the schedule for the
current semester).
4. Obtain Course Information.
The system retrieves a list of available course offerings from the Course Catalog System and displays
the list to the student. The student can search the list by department, professor, or topic to obtain
desired course information.
5. Add or Drop Courses.
The student adds or drops courses from current schedule. The student selects the course offerings to
add from the list of available course offerings. The student also selects any course offerings to drop
from the existing schedule.
6. Submit Revised Schedule.
The student indicates that the schedule is complete. For each newly added course, the system verifies
that the student has the necessary prerequisites, that the course offering is open, and that there are no
schedule conflicts. The system then enrolls the student in the selected course. For each dropped course,
the system cancels the student’s enrollment.
7. Accept Completed Schedule.
The system displays the completed schedule containing the revised courses. The confirmation number
for the revised schedule is displayed. The schedule is saved in the system. The student accepts the
schedule.
8. Send Changes to Billing System.
If the regular course registration has already been closed, the system sends the information about added
or dropped courses to the Billing System. The use case ends.
2.2.3 Quit
The Course Registration System allows the student to quit at any time during the use case. The student can
choose to save a partial schedule before quitting. All courses that are not marked as “enrolled in” are
marked as “selected” in the schedule. The schedule is saved in the system. The use case ends.
3. Special Requirements
The system must validate or reject a schedule within one minute of the time the student submits the
schedule.
4. Preconditions
The student has a schedule already completed and on file on the Course Registration System.
The list of course offerings for the semester has been created and is available to the Course Registration
System.
5. Postconditions
At the end of this use case either the student has been enrolled in courses and given a revised schedule or
drop/add was unsuccessful and no changes have been made to student schedules or course enrollments.
6. Extension Points
None.
7. Scenarios
7.1 Success Scenarios
Enroll in courses: Basic Flow
Alter Selections: Basic Flow
2. Flow of Events
2.1 Basic Flow
1. Log On.
This use case starts when a Registrar accesses the Wylie University Web site. The system asks for
identification information. The Registrar enters the identification code and password. The system
validates the ID and password.
2. Select “Close Registration.”
The system displays the functions available to the Registrar. The Registrar requests that the system
close registration.
3. Commit or Cancel Courses.
For each course offering, the system checks to see if a Professor has signed up to teach the course and
at least three students have registered. If so, the system commits the course offering and commits the
course on each student schedule that contains it. If there is no instructor or the course enrollment is too
small (less than three students), the system cancels the course offering.
4. Send Course Cancellations.
For all cancelled courses, the system sends a notice to the Professor (if any) that the course was
cancelled. The system also removes the course offering from each student schedule that contains it and
sends a notice to the student that the course was cancelled.
5. Send Billing Information.
The system sends the schedule for each student for the current semester to the Billing System. The
Billing System acknowledges receiving the schedules.
[Note that the steps in Basic Flow of the Use-Case Report are not exactly the same as in the Step-by-
Step Outline. One step (Step 3) in the outline was too big and has been split into two steps. Two
other pairs (Steps 4 and 5, and Steps 6 and 7) were each part of a single round trip. Each pair of
steps in the outline has been combined into one step in the Use-Case Report.]
2.2.1 Quit
The Course Registration System allows the Registrar to quit at any time during the use case. The courses
are returned to their original status without committing or canceling any courses. If the Billing System has
been sent information, the system sends a new message to the Billing System to undo the billing. The use
case ends.
3. Special Requirements
The system must be able to handle the closing of registration of up to 10,000 students.
4. Preconditions
None.
5. Postconditions
At the end of this use case, either the registration is closed and all billing information has been transferred
to the Billing System or the closing was unsuccessful and no changes have been made to the system.
6. Extension Points
None.
7. Scenarios
7.1 Success Scenarios
Close registration: Basic Flow
Note: The sample in this handout contains only a few pages of the
specification.
Disclaimer: This is a fictitious system and does not claim to be a model for a good
Software Requirement Specification. It is used for exercise purposes only.
INTRODUCTION
RU Financial Services is currently beginning an e-commerce project to develop
software for a Web-based online stock and securities trading system. The new system
has been tentatively named the RU e-st system.
Purpose
The purpose of this SRS is to serve as a statement of understanding between the
Online Trading Business and Engineering Divisions of RU Financial Services. Any
desired departures from the specifications described herein must be negotiated by
the affected parties.
The audience for this SRS includes the engineers who are involved in the
development of the system, the marketers who are involved in its advertisement and
sale, and the testers who validate the system.
Scope
The overall objective of the RU e-st Stock Trading System is to provide our trading
customers with a convenient way to manage their stock portfolios. Managing a stock
portfolio includes such capabilities as buying and selling and researching stock in a
secure environment.
REQUIREMENTS
In this section all of the functions that the RU e-st Stock Trading System Software is to
perform are specified. These specifications are first given from total system
perspective.
The RU e-st system shall provide all of the current functionality of the current stock
trading system, plus any additions specified in this document.
account), and limit trading (buy and sell at a specific price). The RU e-st system uses
the existing Market Trading System to perform the securities trades. RU e-st also
allows users to transfer cash in an account to or from financial institutions such as
banks or credit card vendors, using the existing Financial Network System. The usual
restrictions apply:
• For online market sales, the securities to sell must be in the customer’s
account.
• For market purchases, cash for the purchase must be in the account by the
settlement date.
• Transfers and purchases from an account are allowed only if, at the time the
transaction occurs, they have enough cash to fund the transaction in the
account.
Trading customers can obtain information about what is happening in the securities
markets. A trading customer can obtain price quotes and news headlines by entering
the trading symbol (for example, “IBM”) for a particular security. The RU e-st system
obtains current and historical quotes from the existing Quote System service and
news items from the existing News System. RU e-st also has a feature to broadcast
news headlines periodically on the trading customer’s screen (without being asked).
Regulatory Requirements
The system must report yearly tax information to the IRS and state tax boards. Tax
forms must be communicated to the IRS and copies mailed to the customer. The
information is also available online for customer viewing.
Development Requirements
The system must be written in one of the company’s approved programming
languages. Refer to document Enterprise Architecture and Development Standards
document EA-12341 for details.
Hardware Requirements
The hardware platform must be one supported by the enterprise hardware
maintenance contract. Supported platforms are specified in the Enterprise
1
This document is not supplied with the course.
Glossary
Version 1.4
Revision History
Date Version Description Author
Jan 8, 2000 1.0 First draft–will continually update J. Carlos Goti
Jan 13, 2000 1.1 Additional entries J. Carlos Goti
Mar 28, 2000 1.2 Relocated Business Rules and Transactions J. Carlos Goti
into the Supplementary Specifications doc
Nov 15, 2000 1.3 Removed categories from terms and added J. Bell
new terms
Oct 30, 2001 1.4 Editorial changes B. Baker
Table of Contents
1. Introduction 5
Purpose 5
Scope 5
References 5
Overview 5
2. Definitions 6
Account 6
Account alias 6
Account funding type 6
Account id 6
Account information 6
Account statusAccount last transaction date 6
Account operation type 6
Account status 6
Account total 7
Account type 7
Asset 7
Asset name 7
Asset total 7
Asset type 7
Bid/ask price 7
Cash asset 7
Customer id 7
Customer password 7
Current price 7
Daily change price 7
Daily high price 7
Daily low price 8
Dividend 8
Earnings per share 8
Executed per unit amount 8
Executed total amount 8
Fifty-two week range 8
IRA 8
IRS 8
Limit trade order 8
Marital status 8
Market trade order 8
Minimum cash asset 8
News list 8
Number of dependents 8
Number of shares owned 8
Number of shares per transaction 8
Opening price 9
Percentage price change 9
Previous close 9
Price/earnings ratio 9
Quote 9
RU e-st 9
RU e-st terms and conditions 9
Security 9
Securities list 9
Securities trading 9
Social security number 9
Stock symbol 9
Time stamp executed transaction 9
Total current shares traded 10
Trade order type 10
Trade transaction type 10
Trading customer 10
Trading symbol 10
Transaction fees 10
Transaction id 10
Transfer amount 10
Transfer trade order 10
Volume 10
Glossary
1. Introduction
This glossary is part of the set of artifacts for the RU e-st project. This document is used to define
terminology specific to the securities trading problem domain, explaining terms that might be unfamiliar to
the reader of the use-case descriptions or other project documents. This document can also be used as an
informal data dictionary; it captures data definitions so that use-case descriptions and other project
documents can focus on what the system must do with the information.
Purpose
Record the definitions of the principal terms used in the stock/bond trading domain as they relate to the
project.
Analysts and engineers involved in the project are expected to make frequent references to this document
as they complete their activities.
This document is updated frequently (as needed) during the progress of the project when it is necessary to
define new terms in a central place.
Scope
References
The RU e-st Supplementary Specification document contains Business Rules referenced in the terms of this
Glossary.
Overview
Since the project does not involve multiple domains, all terms are organized in one single list and groups of
terms are not used.
2. Definitions
Account
A particular account that a trading customer has established. A minimum of $2500 is required to open an
account. A customer can have one or more accounts. Accounts can be non-retirement (Individual or Joint)
or retirement (Individual). Accounts have a number of assets contained in them, depending on their type.
All accounts have a cash asset.
Account alias
An alias that the customer can use to identify his/her account.
Account funding type
Accounts can have the following funding options:
• Wire
• Check
• Transfer
• Stock
• Transfer from an existing RU e-st account
Account id
Unique identifier of a customer account.
Account information
An account description includes:
• Account id
• Primary trading customer name, address, phone number, e-mail address, social security number, date
of birth, marital status, number of dependents, citizenship, employment status
• (If a joint account) Second trading customer name, address, phone number, e-mail address, social
security number, date of birth, marital status, number of dependents, citizenship and employment
status
• Account alias
• Account type
• Account operation type
• Account funding type
Account statusAccount last transaction date
Date of the last transaction executed in a given account.
Account operation type
Accounts can operate with the following characteristics:
• Cash
• Cash and margin
• Cash and margin and option
Account status
The customer account must be in one of the following statuses:
• Probationary: the customer is not allowed to perform buy or sell transactions until the method of
payment has been received and credited to the customer's account or the value of the cash account
complies with the account cash minimum business rule.
• Operational: the customer is allowed to perform any transaction
• Not_in_licensed_US state: the account is in a U.S. state in which RU e-st has no license to operate.
Transactions are not allowed.
• Other
Account total
The total current market value of all assets in an account. It is the sum of the asset totals for all assets
included in the account.
Account type
RU e-st supports the following types of accounts:
• Non retirement (stocks, mutual funds, and cash assets):
– Individual: a non-tax-deferred brokerage account has only one owner. Upon the death of the
owner, all property goes to his/her estate.
– Joint: a form of joint ownership exclusively for married couples. Joint accounts can be either Joint
Tenants with Rights of Survivorship, Tenants in Common, Tenants by the Entirety, or Community
Property.
• Retirement (mutual funds and cash assets): an IRA account, always individual. These can be a
single contributory IRA, Roth IRA, Rollover IRA, or a SIMPLE plan.
Asset
The value of a mutual fund, a stock, or cash. Assets are contained in accounts.
Asset name
Full name corresponding to an asset–corresponds uniquely to a stock symbol.
Asset total
The total value of an asset in an account. It is computed as the number of shares owned multiplied by the
current market value of the corresponding security.
Asset type
Assets contained in an account can be:
• Mutual fund
• Stock
• Cash
Bid/ask price
Per-unit value of the last bid and ask prices of a security.
Cash asset
The cash value, in dollars, in an account.
Customer id
Customer id for logging on to RU e-st. A customer has only one customer id, no matter how many accounts
he or she has.
Customer password
Customer password. A customer has only one password, no matter how many accounts he or she has.
Current price
Per-unit price paid for a given security in the most recent trade. The current price changes whenever a new
trade of the given security occurs.
Daily change price
Per-unit difference between the current price and the last closing price of an asset.
Daily high price
Highest per-unit value reached by an asset during the progress of a trading day.
Opening price
Per-unit price of the first trade of an asset during a trading day.
Percentage price change
Percentage of change between the current price and the previous close price, using the previous close price
as the base.
Previous close
Per-unit price of the last trade of an asset on the previous trading day.
Price/earnings ratio
Ratio of the current price to the earnings per share.
Quote
The unit price and other information about a given security, as obtained from the Quote System.
Components are:
• Current price
• Daily high price
• Daily low price
• Opening price
• Previous close
• Bid–ask price
• Fifty-two week range
• Percentage price change
• Volume
• Price/earnings ratio
• Earnings per share
• Dividend
• Yield
• Chart displaying the stock history for the last twelve months
RU e-st
Abbreviation for RationalU e-st, the system under development for online securities trading.
RU e-st terms and conditions
“Fine print” that describes how RU e-st operates from the business point of view.
Security
An asset that is a stock, bond, or mutual fund. Securities are assets that can be traded.
Securities list
A list of all securities that can be traded through RU e-st.
Securities trading
A transaction in which the ownership of a security changes from one person to another.
Social security number
The customer’s social security number.
Stock symbol
Trading symbol used to identify a particular stock.
Time stamp executed transaction
Date and time of the market execution of a transaction.
Vision
Version 1.5
Revision History
Date Version Description Author
th
19 January, 2000 1.0 First draft J. Carlos Goti
27th January, 2000 1.0 First complete draft J. Carlos Goti
th
17 November, 2000 1.2 Revision for clarification J. Bell
th
16 October, 2001 1.3 Updated for new release B. Baker
30th October 2001 1.4 Editorial changes B. Baker
12th February 2003 1.5 McKinley updates B. Baker
Table of Contents
1. Introduction 5
1.1 Purpose 5
1.2 Scope 5
1.3 Definitions, Acronyms, and Abbreviations 5
1.4 References 5
1.5 Overview 5
2. Positioning 5
2.1 Business Opportunity 5
2.2 Problem Statement 6
2.3 Product Position Statement 7
4. Product Overview 13
4.1 Product Perspective 13
4.2 Summary of Capabilities 14
4.3 Assumptions and Dependencies 14
4.4 Cost and Pricing 14
4.5 Licensing and Installation 14
5. Product Features 15
6. Constraints 15
7. Quality Ranges 15
There are typically a large number of stakeholders to a project. Here we list the ones that have primary
responsibilities and have the largest influence on the success of the project.
End users typically work alone. They have logged on to the Internet (hotel room, airport, and so on) and
want to check the status of their investment or perform one or more trades.
Except for the people who share an account, there is no interplay between the different end users. They are
independent of each other.
It is expected that many thousands of end users will be trading at the same time.
End user accesses the system through a standard Internet browser. They do not need to learn new user
interface (UI) techniques of any type. They access the system from many different client platforms
(Windows, McIntosh, Linux, OS/2).
Representative The business entity that makes the funding decisions for development.
Description Ensures that the company has the plans and resources to deliver the system and that
it is a good business decision for the company to spend the funds.
Type Probably not a user of the system.
Responsibilities Assures the funds are committed to the project and adjustments are made with
sound business sense. Influences marketing and sales to prioritize the system
according to the company’s vision. Promotes the system with potential customers.
Success Criteria The system makes money for the company and is aligned with the overall strategy.
The company gets good press from the system, and the stock goes up.
Involvement Participates in the system’s phase assessments.
Deliverables Provides the project team with resources and promote the system vision with good
press inside and outside the company.
Comments/Issues The RU e-st Business Manager should be supported with solid marketing and
positioning information about the system.
Representative Companies whose systems support the operation of RU e-st. They are: Market
Trading, News System, Quotes System, and the Financial Network System.
Description Approve business agreements for specialized functions needed to support online
securities trading.
Type Might not use the system at all.
Responsibilities Achieves business agreements for cooperation between systems. Agree on business
synergism and mutual charging schemes.
Success Criteria Smoothes business operation (low bureaucracy) during the system’s joint
operations.
Involvement Early agreements during the inception phase of the system. The business
arrangements should be completed early in the development process.
Deliverables Mutual service support during the operation of the systems. Clear arrangements for
Users are listed in two categories: end users and RU e-st system administrators. The breakdown shown
above is too detailed for this section.
3.5.1 RU e-st End User
Requirements Origin
STRQ1: Want to be able to transfer funds from other accounts (not necessarily held Trading Customer
with this firm) to a trading account.
STRQ2: State and federal regulations require monthly reports of account activity. Regulatory
Refer to specification RUFS-1234 for details of the information required.
STRQ3: The system should allow the use of any browser. Trading Customer
STRQ4: Customers want to manage their retirement funds. Trading Customer
STRQ5: Must be able to upgrade the system without taking it offline. On-line Trading
Business
STRQ6: The system should allow traders to trade in multiple markets across the Trading Customer
world.
STRQ7: Must be able to provide convenient answers to customer’s most common Customer Support
questions.
STRQ8: The system must provide a secure environment that prohibits fraudulent Trading Customer
access.
STRQ9: Need a way to train customers in the use of the system quickly and Customer Support
conveniently.
STRQ10: The system must operate on hardware that falls under the company’s Finance
current maintenance contracts. Department
STRQ11: Need to be able to maintain the system with our current IT hardware and System
skills. Refer to enterprise architecture document EA-1234 for details. Administration
STRQ12: Need account activity statements for tax reporting. Trading Customer
STRQ13: The system must provide all the basic capabilities of a normal stock broking Trading Customer
firm.
STRQ14: Need to be able to perform research on any given stock. Trading Customer
STRQ15: The system must allow traders to obtain up-to-date news and alerts on Trading Customer
nominated stock.
STRQ16: The system must provide current and historical information on Trading Trading Customer
Acounts. Such as number of shares held, current price, total Trading Account value
STRQ17: The system shall provide the following types of trades: Market Trades (buy Trading Customer
and sell), Limit Trades (buy and sell), and transfers between mutual funds.
STRQ18: The system shall use the existing Market Trading System to perform Trading Customer
securities trades.
STRQ19: The system must report yearly tax information to the IRS and state tax Regulatory
boards.
STRQ20: Tax forms will be sent electronically to the IRS and state tax authorities. Regulatory
STRQ21: Tax information can be viewed on-line by the Trading customer and printed Regulatory
if requested.
STRQ22: The system performance must be aceptable to customers that do not have Trading Customer
high-speed data access for their computers.
4. Product Overview
RU e-st is planned to interface with other systems in the following fashion:
Trader/ Standard
End User Internet RU e-st
Browsers
All end users access the system’s features through standard Internet browsers. The system provides
facilities for traders to set up accounts, get securities quotes, obtain news headlines about specific
securities, and perform trades. RU e-st keeps information about user’s accounts and the assets in them.
RU e-st interacts with other systems for some specific tasks. They are:
• Market-Trading System: to complete trade orders as specified by the trader.
• News System: to retrieve headline news and the corresponding links to full articles for a given
security.
• Quote System: to retrieve current and historical quote information for a given security.
• Financial Network System: to perform money transfers to and from the customers’ financial
institution accounts.
RU e-st System
Trader Benefit Supporting Features
Trading online • Online trading
• Online account setup
• Online quotes
• Online news
Securities research online • Online quotes
• Online news
• Online account reports
Portfolio management online • Online account setup
• Online accounts reports
• Online transfers between accounts
• Online transfers with banks
Portfolio record keeping • Historical account reports
• Income tax account reports
• IRS reporting forms
The basic features of the system are attainable with today’s technologies. No high-risk dependencies are
envisioned.
Not applicable.
5. Product Features
Features
FEAT1: The system uses the Financial Services Network to enable transfer of funds between other financial
institutions and the customers Trading Account.
FEAT2: The system provides automatic reporting of tax-related information to the IRS and state tax boards.
FEAT3: The system supports the most common browsers: Microsoft Internet Explorer, (version 4 and higher)
and Netscape Navigator, (versions 4.72 through 4.75 and 6.2).
FEAT4: The system allows funds to be transferred to and from Mutual Fund accounts.
FEAT5: The system allows a customer to operate multiple Trading Accounts with a single login.
FEAT6: The system can be upgraded without taking services off-line.
FEAT7: During upgrades the system will preserve all "in-progress" transactions to ensure an error free
experience for the customer.
FEAT8: The system uses the Market Trading System to allow trading in any market worldwide.
FEAT9: The system provides an FAQ page to answer customer's most frequent questions quickly and simply.
FEAT10: The system provides an "I need help now" capability that will open a "chat window" with the next
available customer support representative. If there is no support personal available the system will inform the
customer where they are in the queue for help.
FEAT11: All Web pages shall be encrypted using 128 Bit SSL Security.
FEAT12: All personal and financial information shall be stored on a separate system with a secure network
connection between the systems.
FEAT13: The system provides comprehensive "how-to" documentation that is structured like a story of using
the system for a particular purpose. For example, "How to perform a Limit Buy."
FEAT14: The system runs on a corporate standard platform.
FEAT15: The system provides electronic and printed statements of account activity, including profit and loss
information, for yearly income tax reporting.
FEAT16: The system provides statements of Trading Account activity including transfers between Trading
Accounts, Trade summaries including: ticket code, number of shares traded and trade price.
FEAT17: Transfer cash from one customer trading account to another.
FEAT18: The system executes transactions in an Internet comfortable speed (less than 3 seconds, not
counting transmission times on a 56K modem).
FEAT19: Charge to a credit card and place funds in a customer's trading account.
FEAT20: Rollover from a retirement account in another institution in to a retirement account managed by the
system.
FEAT21: The system allows Market Buy and Sell transaction types.
FEAT22: The system allows Limit Buy and Sell transaction types.
FEAT23: The system allows mutual fund management.
FEAT24: The system allows stock research and alerts - online quotes, news flashes, and so on.
6. Constraints
All the online features must run on the selected Internet browsers.
7. Quality Ranges
Refer to expected industry standards in this area. Further research is needed.
Refer to standards related to the versions of HTML and Java by the supported Internet browser.
Refer to standards for financial transactions between institutions in the Financial Network.
The application must conform to all the rules of the NASD, SIPC, and other trading institutions involved in
transactions.
9.2 System Requirements
The customer needs a computer (client) with capabilities to access the Internet. Access speed and local hard
drive use depends on the customer’s configuration and practices of use.
We might need some printed information at the brochure level for mailings and “getting started” help. This
information should describe trading terms and conditions and a basic description of capabilities.
RU e-st System
Introduction
This set of sample solutions is for the RU e-st system for Web-based stock trading. The point of this set of
solutions is to show what a solution may look like and to what level of detail you describe the use cases.
The stock trading system is based on a real system. However, details of stock trading have been
simplified at many points in order to make a case study suitable for discussion in a relatively short course.
The point here is not the technical content but what the descriptions may look like.
1. Introduction
This is an example of what a solution to the use-case exercises in the MRMUC course might look like. It
contains more information than a MRMUC class might create in the limited class time available. It is an
example of a use-case model for a regular project. Keep in mind that this example shows the use-case
model at the beginning of a project.
2. Survey Description
The RU e-st system allows its users to trade securities online, using a Web interface (an existing browser such as
Netscape or Internet Explorer). A trading customer can log on to the Internet anywhere – hotel room, airport, and so
on. Users can perform all the basic operations for securities trading: open accounts, trade stocks and other securities,
and transfer assets among RU e-st accounts. Users can also obtain current and historical information about their
accounts, such as the number of shares held, the current unit price, and the current total value. Trading customers
can obtain information about what is happening in the securities markets, such as current price quotes and news
items. In addition, the system must report yearly tax information to the IRS and state tax boards.
3. Actors
3.1 Diagram
3.3 Broker
The Broker has access to accounts assigned to the broker.
3.9 Scheduler
A human or system that initiates a use case based on a calendar event.
4 Use Cases
See Figure 2.
Get Quote
Quote System
Manage
Portfolio
Trading
Customer
Financial Network
Distribute
News
News System
Review
Account
Broker
Scheduler
Maintain Customer
Accounts
RU e-st Administrator
Report Tax
Information
Tax
System
Maintain
Web Site
Web Content
Provider
Trading
Resolve Account Customer
Problems
Customer Service
2. Flow of Events
2.1 Basic Flow
1. Customer logs on.
5. Display quote.
1. Brief Description
Trading Customers buy, sell, or transfer securities in their accounts. The possible
trade order types are: Limit Buy Order, Limit Sell Order, Market Buy Order,
Market Sell Order, Transfer Order. Immediately after a trade is completed,
Trading Customers receive a market trading confirmation containing a transaction
id and the results of the trade.
2. Flow of Events
2.1 Basic Flow
1. Customer logs on.
3. Scenarios
3.1 Success Scenarios
Customer executes a trade: Basic Flow.
Customer Executes More Trades: Basic Flow, Customer Executes More
Trades.
Version 1.5
Introduction
This is an example of what a use-case report might look like. There is much more detail in the
use-case report than there was in the step-by-step outline that was the first draft of the use case.
In this example, we show the report as it might appear in the middle of its development process.
There are many styles of writing use cases. We show one style here, based on the template and
guidelines for a use-case report in the Rational Unified Process.
Revision History
Date Version Description Author
Jan 13, 2000 1.0 First draft J. Carlos Goti
Jan 15, 2000 1.0 First complete draft J. Carlos Goti
Nov. 15, 2000 1.2 Revised for clarification J. Bell
Oct 30, 2001 1.3 Editorial changes B. Baker
Jan 30, 2003 1.4 Added scenario list and additional quotes B. Baker
alternative flow
2nd April 2003 1.5 Post McKinley Beta changes B. Baker
Table of Contents
1. Use Case Name: Get Quote 4
1.1 Brief Description 4
2. Flow of Events 4
2.1 Basic Flow 4
2.2 Alternative Flows 4
3. Special Requirements 5
3.1 Timely Quote Display 5
4. Preconditions 5
5. Postconditions 5
6. Extension Points 5
7. Relationships 5
8. Use-Case Diagrams 5
9. Other Diagrams 5
10. Scenarios 6
10.1 Success Scenarios 6
10.2 Failure Scenarios 6
2. Flow of Events
2.1 Basic Flow
1. Customer Logs On.
The use case starts when the Trading Customer logs on.
The system validates the customer id and password.
The system presents a list of available functions.
2.2.5 Quit
The RU e-st System allows the Trading Customer to quit at any time during the use case.
The use case ends.
3. Special Requirements
4. Preconditions
None.
5. Postconditions
None.
6. Extension Points
None specified for this use case.
7. Relationships
The Actor starting this Use Case is:
Trading Customer
Actor(s) also involved in this Use Case:
Quote System
8. Use-Case Diagrams
None specified for this use case.
9. Other Diagrams
None specified for this use case.
10. Scenarios
10.1 Success Scenarios
Customer gets a quote: Basic Flow
Customer gets additional quotes: Basic Flow, Customer Gets Other Quotes
10.2 Failure Scenarios
Invalid login: Basic Flow, Unidentified Trading Customer
Fail due to stolen id: Basic Flow, Suspect Theft
Host link down to quote system: Basic Flow, Quote System Unavailable
Customer enters an unknown trading symbol: Basic Flow, Unknown Trading Symbol
Fail due to quote system is unable to locate information: Basic Flow, Quote System Cannot Locate
Information
Version 1.5
Introduction
This is an example of what a use-case report might look like. There is much more detail in the
use-case report than there was in the step-by-step outline that was the first draft of the use case.
In this example, we show the report as it might appear in the middle its developing process.
There are some issues noted directly in the use case, as is typical of a use case under
development.
There are many styles of writing use cases. We show one style here, based on the template and
guidelines for a use-case report in the Rational Unified Process.
Revision History
Date Version Description Author
Jan 13, 2000 1.0 First draft J. Carlos Goti
Jan 15, 2000 1.0 First complete draft J. Carlos Goti
Nov 15, 2000 1.2 Revised for clarification J. Bell
Oct 30, 2001 1.3 Editorial changes B. Baker
Feb 5, 2003 1.4 Added scenario list. Restructured to use B. Baker
sub- flows and alternative flows for
repeating behavior.
Apr 2nd, 2003 1.5 Post McKinley Beta changes B. Baker
Table of Contents
1. Use Case Name: Execute Trade 4
1.1 Brief Description 4
2. Flow of Events 4
2.1 Basic Flow 4
2.2 Sub-Flows 5
2.2.1 Verify That Cash Is Available 5
2.3 Alternative Flows 5
2.3.1 Limit Sell Order (Non-retirement Accounts only) 5
2.3.2 Market Sell Order (Non-retirement or Retirement Accounts) 5
2.3.3 Market Buy Order (Non-retirement or Retirement Accounts) 5
2.3.4 Transfer Order (Retirement Accounts Only) 5
2.3.5 Customer Executes More Trades 5
2.3.6 Account Not Operational 5
2.3.7 Unidentified Trading Customer 6
2.3.8 Unauthorized Trader 6
2.3.9 Quit 6
2.3.10 Trade Is Rejected 6
2.3.11 Market Trading System Unavailable 6
2.3.12 Insufficient Funds 6
3. Special Requirements 6
3.1 Reliable Cash Accounting 6
4. Preconditions 6
4.1 Trading Customer Has a Valid Trading Account 6
4.2 RU e-st Has Connection to Market Trading System 6
5. Postconditions 7
5.1 Accounts Are Adjusted 7
6. Extension Points 7
7. Relationships 7
8. Use-Case Diagrams 7
9. Other Diagrams 7
10. Scenarios 7
10.1 Success Scenarios 7
10.2 Failure Scenarios 7
2. Flow of Events
2.1 Basic Flow
1. Customer Logs On.
The use case starts when the Trading Customer logs on. The system validates the customer id and
password. The system presents a list of available functions.
2.2 Sub-Flows
If there is sufficient cash in the trading account to comply with the rule, the use case resumes at the point in
the alternative flow from whence it came.
If the system determines that there is not enough cash in the trading account, the system notifies the
Trading Customer that the transaction is not possible.
2.3 Alternative Flows
How often should you check to see if the status of the trading account has changed from operational to
nonoperational? The status could change without any trade happening because it depends on the value of
stock and other assets versus the amount of cash in the trading account. Right now, I’ve assumed that we
check only when the Trading Customer begins a transaction. Maybe we should check at other times too?
[This is a typical way to employ use cases. You may write your questions right down in the text, and when
you get your answers, you have to correct the text accordingly. Or you may assume one way and let the
reviewers decide; either the reviewers like it or they tell you how it should be changed.]
2.3.9 Quit
The RU e-st System allows the Trading Customer to quit at any time during the use case. All trades that are
in progress are cancelled. The use case ends.
3. Special Requirements
3.1 Reliable Cash Accounting
The RU e-st system shall round any changes to a trading account to the nearest penny.
4. Preconditions
4.1 Trading Customer Has a Valid Trading Account
The Trading Customer must have a valid trading account in the system in order to begin this use case.
5. Postconditions
5.1 Accounts Are Adjusted
At the end of this use case, the system leaves all trading accounts in a sound accounting state (there is no
extra money or lost money to the penny, and all changes can be explained).
6. Extension Points
None specified for this use case.
7. Relationships
The Actor starting this Use Case is:
Trading Customer
Actor(s) also involved in this Use Case:
Market Trading System
8. Use-Case Diagrams
None specified for this use case.
9. Other Diagrams
None specified for this use case.
10. Scenarios
10.1 Success Scenarios
Customer executes a Limit Buy: Basic Flow
Customer executes a Limit Sell: Basic Flow, Limit Sell Order
Customer executes a Market Buy: Basic Flow, Market Buy Order
Customer executes a Market Sell: Basic Flow, Market Sell Order
Customer executes a Transfer between accounts: Basic Flow, Transfer Order
Customer executes more trades: Basic Flow, Customer Executes More Trades
10.2 Failure Scenarios
Fail due to invalid login: Basic Flow, Unidentified Trading Customer
Fail due to Unauthorized trader: Basic Flow, Unauthorized Trader
Quit before execute: Basic Flow, Quit
Fail due to rejected trade: Basic Flow, Trade Is Rejected
Market Trading System Unavailable: Basic Flow, Market Trading System Unavailable
Fail due to insufficient funds in trading account: Basic Flow, Verify That Cash Is Available
Fail due to no active trading accounts: Basic Flow, No Trading Account
Fail due to trading account is not operational: Basic Flow, Account Not Operational
RU e-st System
Identify
Customer
<<include>>
Execute Trade
<<extend>>
Execute Securities
Get Quote Execute Real Trade
Estate Trade
Trading Customer
[Note: Only the actor who initiates each use case is shown on the diagram. The other actors have been omitted from
this diagram for illustrative reasons. In the individual Use-Case Reports that follow, there are full local diagrams that
include all associations with actors.]
RU e-st
Use-Case Report: Get Quote
Version 1.5
Introduction
This is an example of what a structured use case report might look like. This example shows the
Get Quote Use-Case Report after the first version has been structured using include and extend
relationships. The new version omits details that are now found in:
• Identify Customer Use-Case Report (included in Get Quote).
• Get News Use-Case Report (extends Get Quote).
In this example, we show the report as it might appear towards the end of its development
process.
There are many styles of writing use cases. We show one style here, based on the template and
guidelines for a use-case report in the Rational Unified Process.
Revision History
Date Version Description Author
Jan 13, 2000 1.0 First draft J. Carlos Goti
Jan 15, 2000 1.0 First complete draft J. Carlos Goti
Nov. 15, 200 1.2 Revised for clarification J. Bell
Nov 17, 2000 1.3 Structured: include and extend J. Bell
Oct 30, 2001 1.4 Editorial changes B. Baker
Feb 4, 2003 1.5 Reformatted for McKinley updates. B. Baker
Added scenario list and additional quotes
alternative flow.
Apr 2, 2003 1.6 McKinley post-Beta changes B. Baker
Table of Contents
Introduction 1
2. Flow of Events 4
2.1 Basic Flow 4
2.2 Alternative Flows 4
2.2.1 Customer Gets Other Quotes 4
2.2.2 Quote System Unavailable 4
2.2.3 Unknown Trading Symbol 4
2.2.4 Quote System Cannot Locate Information 5
2.2.5 No Reply From User 5
2.2.6 Disconnected Web Session 5
3. Special Requirements 5
4. Preconditions 5
4.1 RU e-st Has Connection to Quote System 5
5. Postconditions 5
6. Extension Points 5
6.1 Optional Services 5
7. Relationships 5
7.1 Actors 5
7.2 Associations To Other Use Cases 6
7.3 Associations FROM other Use Cases 6
8. Use-Case Diagrams 7
9. Other Diagrams 7
10. Scenarios 7
10.1 Success Scenarios 7
10.2 Failure Scenarios 7
2. Flow of Events
2.1 Basic Flow
1. Customer Logs On.
The use case starts when the Trading Customer logs on.
Include Identify Customer use case to verify the Trading Customer’s identity.
The system presents a list of available functions.
3. Special Requirements
None.
4. Preconditions
4.1 RU e-st Has Connection to Quote System
The RU e-st system must have a connection to the Quote System in order to begin this use case.
5. Postconditions
None.
6. Extension Points
6.1 Optional Services
This extension point {Optional Services} occurs in the Basic Flow.
7. Relationships
7.1 Actors
The Actor starting this use case is:
Trading Customer
Actor(s) also involved in this use case:
Quote System
8. Use-Case Diagrams
Identify
Customer
<<include>>
Get Quote
Quote System
Trading Customer
<<extend>>
Get News
News System
9. Other Diagrams
None specified for this use case.
10. Scenarios
10.1 Success Scenarios
Customer gets a quote: Basic Flow
Customer gets other quotes: Basic Flow, Customer Gets Other Quotes
RU e-st
Use-Case Report: Identify Customer
Version 1.2
Introduction
This is an example of what a use case report might look like. In this example, we show the report
for an abstract use case.
There are many styles of writing use cases. We show one style here, based on the template and
guidelines for a use-case report in the Rational Unified Process.
Revision History
Date Version Description Author
Nov. 15, 2000 1.0 New Use Case J. Bell
Oct 30, 2001 1.1 Editorial changes B. Baker
Feb 4, 2003 1.2 Reformatted for McKinley release. Added B. Baker
scenarios section and reworked alternative
flows.
Table of Contents
Introduction 1
2. Flow of Events 4
2.1 Basic Flow 4
2.2 Alternative Flows 4
2.2.1 Unidentified Trading Customer 4
2.2.2 Suspect Theft 4
3. Special Requirements 4
3.1 Time to process customer id 4
4. Preconditions 4
5. Postconditions 4
6. Extension Points 4
7. Relationships 5
7.1 Actors 5
7.2 Associations TO other Use Cases 5
7.3 Associations FROM other Use Cases 5
8. Use-Case Diagrams 5
9. Other Diagrams 6
10. Scenarios 6
2. Flow of Events
2.1 Basic Flow
1. Enter Customer Id.
The system prompts the Trading Customer to log into the system.
The Trading Customer enters their customer id.
2. Enter Password.
The system asks for the customer password.
The Trading Customer enters the password.
3. Validate Customer Id and Password.
The system validates the customer id and password.
3. Special Requirements
3.1 Time to process customer id
The system shall respond within .5 seconds after the Trading Customer enters his/her customer id.
4. Preconditions
None specified for this use case.
5. Postconditions
None specified for this use case.
6. Extension Points
None specified for this use case.
7. Relationships
7.1 Actors
The Actor starting this use case is:
None.
Actor(s) also involved in this use case:
Trading Customer
System Administrator
8. Use-Case Diagrams
[In most cases this would not show the base use cases since the included use case does not know which use cases
include it and it would take too much effort to maintain. They are included here to show its completed form for this
example.]
Trading Customer
System Administrator
Identify Customer
10. Scenarios
Refer to including use case.
RU e-st
Use-Case Report: Get News
Version 1.2
Introduction
This is an example of what a structured use case report might look like. This example shows an abstract
use case, Get News, which extends Get Quote.
In this example, we show the report as it might appear towards the end of developing it.
There are many styles of writing use cases. We show one style here, based on the template and
guidelines for a use-case report in the Rational Unified Process.
Revision History
Date Version Description Author
Nov 15, 2000 1.0 New use case J. Bell
Oct 30, 2001 1.1 Editorial changes B. Baker
Feb 4, 2003 1.2 Reformatted for McKinley release. B. Baker
Table of Contents
Introduction 1
2. Flow of Events 4
2.1 Basic Flow 4
2.2 Alternative Flows 4
2.2.1 News System Unavailable 4
2.2.2 News System Cannot Locate Information 4
3. Special Requirements 4
3.1 Timely Headline News Display 4
4. Preconditions 4
4.1 RU e-st Has Connection to News System 4
5. Postconditions 5
6. Extension Points 5
7. Relationships 5
7.1 Actors 5
7.2 Associations TO other Use Cases 5
7.3 Associations FROM other Use Cases 5
8. Use-Case Diagrams 6
9. Other Diagrams 6
10. Scenarios 6
2. Flow of Events
2.1 Basic Flow
This is an extension of the Get Quote Use Case. At extension point {Optional Services} of the basic flow,
the Trading Customer can also select "Get News."
1. Customer Selects “Get News” Function.
If the Trading Customer chooses to “Get News,” the system asks the Trading Customer to enter
the time period for which news is desired and the number of news items to get.
The Trading Customer enters the time period and number of news items.
The extended use case continues after the extension point {Optional Services}.
3. Special Requirements
4. Preconditions
4.1 RU e-st Has Connection to News System
The RU e-st system must have a connection to the News System in order to begin this use case.
5. Postconditions
None.
6. Extension Points
None.
7. Relationships
7.1 Actors
The Actor starting this use case is:
Trading Customer
Actor(s) also involved in this use case:
News System
8. Use-Case Diagrams
Trading Customer
News System
Get Quote
<<extend>>
Get News
9. Other Diagrams
None specified for this use case.
10. Scenarios
Customer gets News: Basic Flow (Get Quote), Basic Flow
News System Unavailable: Basic Flow (Get Quote), Basic Flow, News System Unavailable
Information Unavailable: Basic Flow (Get Quote), Basic Flow, News System Cannot Locate Information
Version 1.4
Introduction
This is an example of what a use-case report might look like. There is much more detail in the
use-case report than there was in the step-by-step outline that was the first draft of the use case.
In this example, we show the report as it might appear in the middle its developing process.
There are some issues noted directly in the use case, as is typical of a use case under
development.
There are many styles of writing use cases. We show one style here, based on the template and
guidelines for a use-case report in the Rational Unified Process.
Revision History
Date Version Description Author
Jan 13, 2000 1.0 First draft J. Carlos Goti
Jan 15, 2000 1.0 First complete draft J. Carlos Goti
Nov 15, 2000 1.2 Revised for clarification J. Bell
Oct 30, 2001 1.3 Editorial changes B. Baker
Feb 5, 2003 1.4 Reformatted for McKinley release B. Baker
Table of Contents
1. Use Case Name: Execute Trade 4
1.1 Brief Description 4
2. Flow of Events 4
2.1 Basic Flow 4
2.2 Sub-Flows 4
2.3 Alternative Flows 4
2.3.1 Customer Executes More Trades 4
2.3.2 Account Not Operational 4
2.3.3 Unauthorized Trader 5
2.3.4 Quit 5
3. Special Requirements 5
3.1 Reliable Cash Accounting 5
4. Preconditions 5
5. Postconditions 5
5.1 Accounts Are Adjusted 5
6. Extension Points 5
7. Relationships 5
7.1 Actors 5
7.2 Associations TO other Use Cases 5
7.3 Associations FROM other Use Cases 6
7.4 Generalizations 6
8. Use-Case Diagrams 6
9. Other Diagrams 6
10. Scenarios 6
2. Flow of Events
2.1 Basic Flow
1. Customer Logs On.
The use case starts when the Trading Customer logs on.
Include Identify Customer use case to verify the Trading Customer’s identity.
The system presents a list of available functions.
5. Display Summary
The System Displays a Summary of all trade orders.
Trading Customer logs off the system.
The use case ends.
2.2 Sub-Flows
None.
2.3 Alternative Flows
1
This is a pure-abstract step – as indicated by the italics.
How often should you check to see if the status of the trading account has changed from operational to
nonoperational? The status could change without any trade happening, because it depends on the value of
stock and other assets versus the amount of cash in the trading account. Right now, I’ve assumed that we
check only when the Trading Customer begins a transaction. Maybe we should check at other times too?
[This is a typical way to employ use cases. You may write your questions right down in the text, and when
you get your answers you have to correct the text accordingly. Or you may assume one way and let the
reviewers decide; either the reviewers like it or they tell you how it should be changed.]
2.3.4 Quit
The RU e-st System allows the Trading Customer to quit at any time during the use case. All trades that are
in progress are cancelled. The use case ends.
3. Special Requirements
3.1 Reliable Cash Accounting
The RU e-st system shall round any changes to a trading account to the nearest penny.
4. Preconditions
None.
5. Postconditions
5.1 Accounts Are Adjusted
At the end of this use case, the system leaves all trading accounts in a sound accounting state (there is no
extra money or lost money to the penny, and all changes can be explained).
6. Extension Points
None specified for this use case.
7. Relationships
7.1 Actors
The Actor starting this use case is:
None
Actor(s) also involved in this use case:
Trading Customer
7.4 Generalizations
Use cases that are children of this use case (incoming generalization associations)
Execute Securities Trade, Execute Real Estate Trade
Use cases that are parents of this use case (outgoing generalization associations)
None
8. Use-Case Diagrams
Identify
Customer
<<include>>
Real Estate
Trading System Execute
Trade Market
Trading System
Execute Real
Estate Trade Execute Securities
Trade
Trading Customer
9. Other Diagrams
None specified for this use case.
10. Scenarios
See concrete (child) use cases.
Version 1.4
Introduction
This is an example of what a use case report might look like. There is much more detail in the
use-case report than there was in the step-by-step outline that was the first draft of the use case.
In this example, we show the report as it might appear in the middle its developing process.
There are some issues noted directly in the use case, as is typical of a use case under
development.
There are many styles of writing use cases. We show one style here, based on the template and
guidelines for a use-case report in the Rational Unified Process.
Revision History
Date Version Description Author
Jan 13, 2000 1.0 First draft J. Carlos Goti
Jan 15, 2000 1.0 First complete draft J. Carlos Goti
Nov 15, 2000 1.2 Revised for clarification J. Bell
Oct 30, 2001 1.3 Editorial changes B. Baker
Feb 5, 2003 1.4 Added scenario list. Restructured to use sub B. Baker
flows; and alternative flows for repeating
behavior.
Table of Contents
1. Use Case Name: Execute Trade 4
1.1 Brief Description 4
2. Flow of Events 4
2.1 Basic Flow 4
2.2 Sub-Flows 5
2.2.1 Verify That Cash Is Available 5
2.3 Alternative Flows 5
2.3.1 Limit Sell Order (Non-retirement Accounts only) 5
2.3.2 Market Sell Order (Non-retirement or Retirement Accounts) 5
2.3.3 Market Buy Order (Non-retirement or Retirement Accounts) 5
2.3.4 Transfer Order (Retirement Accounts Only) 5
2.3.5 Unidentified Trading Customer 5
2.3.6 Trade Is Rejected 5
2.3.7 Market Trading System Unavailable 6
2.3.8 Insufficient Funds 6
3. Special Requirements 6
4. Preconditions 6
4.1 Trading Customer has a valid trading account 6
4.2 RU e-st Has Connection to Market Trading System 6
5. Postconditions 6
6. Extension Points 6
7. Relationships 6
7.1 Actors 6
7.2 Associations TO other Use Cases 6
7.3 Associations FROM other Use Cases 6
7.4 Generalizations 7
8. Use-Case Diagrams 7
9. Other Diagrams 7
10. Scenarios 7
2. Flow of Events
2.1 Basic Flow
1. Customer Logs On.
5. Display Summary.
In addition to the steps described in the parent, the system offers the option to e-mail the summary
to the Trading Customer’s email account that is on file.
The Trading Customer selects to have the summary emailed.
2.2 Sub-Flows
If there is sufficient cash in the trading account to comply with the rule, the use case resumes at the point in
the alternative flow from whence it came.
If the system determines that there is not enough cash in the trading account, the system notifies the
Trading Customer that the transaction is not possible.
2.3 Alternative Flows
3. Special Requirements
No additional special requirements
4. Preconditions
4.1 Trading Customer has a valid trading account
The Trading Customer must have a valid trading account in the system in order to begin this use case.
5. Postconditions
No additional special requirements.
6. Extension Points
None specified for this use case.
7. Relationships
7.1 Actors
The Actor starting this use case is:
Trading Customer
Actor(s) also involved in this use case:
Market Trading System
7.4 Generalizations
Use cases that are children of this use case (incoming generalization associations)
None
Use cases that are parents of this use case (outgoing generalization associations)
Execute Trade
8. Use-Case Diagrams
Identify Customer
<<include>>
Trading Customer
Figure 1: Local Use-Case Diagram for Execute Securities Trade Use Case
9. Other Diagrams
None specified for this use case.
10. Scenarios
Limit Buy: Basic Flow
Limit Sell: Basic Flow, Limit Sell Order
Market Buy: Basic Flow, Market Buy Order
Market Sell: Basic Flow, Market Sell Order
Transfer: Basic Flow, Transfer Order
Invalid login: Basic Flow, Unidentified Trading Customer
Unauthorized trader: Basic Flow, Unauthorized Trader
Quit before execute: Basic Flow, Quit
Version 1.2
Introduction
This is an example of what a use case report might look like. There is much more detail in the
use-case report than there was in the step-by-step outline that was the first draft of the use case.
In this example, we show the report as it might appear in the middle its developing process.
There are some issues noted directly in the use case, as is typical of a use case under
development.
There are many styles of writing use cases. We show one style here, based on the template and
guidelines for a use-case report in the Rational Unified Process.
Revision History
Date Version Description Author
Nov 17, 2001 1.0 First draft J. Carlos Goti
Oct 30, 2002 1.1 Editorial changes B. Baker
Feb 5, 2003 1.2 Added scenario list. Restructured to use sub B. Baker
flows; and alternative flows for repeating
behavior.
Table of Contents
1. Use Case Name: Execute Trade 4
1.1 Brief Description 4
2. Flow of Events 4
2.1 Basic Flow 4
2.2 Sub-Flows 4
2.3 Alternative Flows 5
2.3.1 Real Estate Buy Order 5
2.3.2 Real Estate Accept Sale Order 5
2.3.3 Real Estate Accept Buy Order 5
2.3.4 Real Estate Cancel Order 5
2.3.5 Real Estate Trading Request Is Rejected 5
2.3.6 Real Estate Exchange System Unavailable 5
3. Special Requirements 5
4. Preconditions 5
4.1 RU e-st Has Connection to Real Estate Exchange System 5
5. Postconditions 6
6. Extension Points 6
7. Relationships 6
7.1 Actors 6
7.2 Associations TO other Use Cases 6
7.3 Associations FROM other Use Cases 6
7.4 Generalizations 6
8. Use-Case Diagrams 7
9. Other Diagrams 7
10. Scenarios 7
2. Flow of Events
2.1 Basic Flow
1. Customer Logs On
2.2 Sub-Flows
None.
If the system determines that there is not enough cash or approved loan value in the account, the system
notifies the Trading Customer that the transaction is not possible. The use case resumes at Step 4.1 of the
Basic Flow.
If the Trading Customer reconsiders and declines to cancel the Real Estate Order, then the use case resumes
at Step 4.1 of the Basic Flow.
3. Special Requirements
No additional special requirements
4. Preconditions
4.1 RU e-st Has Connection to Real Estate Exchange System
The RU e-st system must have a connection to the Real Estate Exchange System in order to begin this use
case.
5. Postconditions
No additional special requirements
6. Extension Points
None specified for this use case.
7. Relationships
7.1 Actors
The Actor starting this Use Case is:
Trading Customer
Actor(s) also involved in this Use Case:
Real Estate Exchange System
7.4 Generalizations
Use Cases that are children of this Use Case (incoming generalization associations)
None
Use Cases that are parents of this Use Case (outgoing generalization associations)
Execute Trade
8. Use-Case Diagrams
Identify Customer
<<include>>
Trading Customer
Figure 1: Local Use-Case Diagram for Execute Real Estate Trade Use Case
9. Other Diagrams
None specified for this use case.
10. Scenarios
Sell Real Estate: Basic Flow
Buy Real Estate: Basic Flow, Real Estate Buy Order
Accept Sale: Basic Flow, Real Estate Accept Sale Order
Accept Buy: Basic Flow, Real Estate Accept Buy Order
Cancel Order: Basic Flow, Real Estate Cancel Order
Trade Rejected: Basic Flow, Real Estate Trading Request is Rejected
Real Estate System Unavailable: Basic Flow, Real Estate System Unavailable
Invalid login: Basic Flow, Unidentified Trading Customer
Unauthorized trader: Basic Flow, Unauthorized Trader
Quit before execute: Basic Flow, Quit
Account not operational: Basic Flow, Account Not Operational
Customer Executes More Trades: Basic Flow, Customer Executes More Trades
Supplementary Specification
Version 1.3
Revision History
Date Version Description Author
Mar 28, 2001 1.0 Added Business Rules and Inputs/Outputs J. Carlos Goti
November 17, 2001 1.2 Additions and reorganization J. Bell
October 30, 2002 1.3 Editorial changes B. Baker
Table of Contents
1. Introduction 5
1.1 Purpose 5
1.2 Scope 5
1.3 Definitions, Acronyms and Abbreviations 5
1.4 References 5
1.5 Overview 5
2. Functionality 5
2.1 Localization 5
2.2 Business Rules 6
2.2.1 Account Cash Minimum 6
2.2.2 Limit Order Allowable Accounts 6
2.2.3 Market Order Allowable Accounts 6
2.2.4 RU e-st terms and conditions 6
2.2.5 Transaction Fees 6
3. Usability 6
3.1 Browser compatibility 6
3.2 Access to information 6
3.3 Online tutorial 6
4. Reliability 6
4.1 Availability 6
4.2 Timeliness and Accuracy 7
5. Performance 7
5.1 Response Time 7
6. Supportability 7
6.1 Installability 7
7. Design Constraints 7
9. Purchased Components 7
10. Interfaces 7
10.1 Inputs 7
10.1.1 Asset Limit Purchase Information 7
10.1.2 Asset Limit Sale Information 8
10.1.3 Asset Purchase Information 8
10.1.4 Asset Sale Information 8
10.1.5 Dollar Transfer Information 8
10.1.6 New Account Information 8
10.1.7 News System Response 8
10.1.8 Quote System Response 9
10.2 Outputs 9
10.2.1 Account List 9
10.2.2 Headline News Display 9
10.2.3 Market Trading Confirmation 9
10.2.4 Market Trading Request 9
10.2.5 Account Display 10
10.2.6 Quote Display 10
10.2.7 Stock Yearly History Chart 10
10.3 Systems with Which to Interface 10
10.3.1 Quote System 10
10.3.2 Market Trading System 10
10.3.3 News System 10
10.3.4 Financial Network System 10
10.3.5 IRS Reporting System 11
Supplementary Specification
1. Introduction
The purpose of this document is to collect, analyze and define the supplementary specifications for the RU
e-st system.
1.1 Purpose
This document records specifications that have general applicability to the RU e-st product with the
objective of achieving agreement of what the system does between stakeholders and developers.
1.2 Scope
This document is a record of specifications that affect the RU e-st product as a whole or large parts of it.
See Glossary.
1.4 References
Vision document
Glossary
Use cases
1.5 Overview
This document contains the supplementary specifications, organized by type of requirement: Functionality,
Usability, Reliability, Performance, Supportability, Design Constraints, Documentation Requirements,
Purchased Components, Interfaces, Licensing Requirements, Legal Requirements, and Applicable
Standards.
2. Functionality
Functionality at a high level is documented in the Vision document. Detailed functional requirements are
primarily documented in the Use Case Reports for individual uses cases of the RU e-st system. Here we
record a localization requirement that pertains to all use cases and business rules for the RU e-st system.
2.1 Localization
The application allows the user to select a language preference of English, Spanish, French, German, or
Swedish. The application displays all information to the customer in their selected language.
RU e-st forecasts the cash value percentage of the account after a transaction proposed by the customer and
prevents the transaction from being executed if it would break this rule.
An account may break this rule without a customer transaction because of market value fluctuations. RU e-
st performs periodic checks and notifies customers of their accounts switched to probationary status
because of this reason, but in no case is a transaction allowed if the account is in probationary state or if the
transaction is estimated to place the account in probationary state.
If it is considered that a transaction will not cause the account to violate this rule, the transaction is allowed.
Once the Trading System returns the final results of the transaction, RU e-st recalculates the cash value
percent and places the account in probationary status if the rule is broken.
2.2.2 Limit Order Allowable Accounts
Limit orders for stock are only allowed on non-retirement accounts.
2.2.3 Market Order Allowable Accounts
Market orders for stock are only allowed on non-retirement accounts.
2.2.4 RU e-st Terms and Conditions
An account cannot be in operational state if the customer has not indicated that he/she agrees with the terms
and conditions.
2.2.5 Transaction Fees
When a transaction is confirmed by the Trading System, the fees are calculated and deducted from the cash
in the account. These monies are transferred to the RU e-st holdings.
3. Usability
3.1 Browser Compatibility
The application can run under either MS Internet Explorer or Netscape Navigator.
4. Reliability
4.1 Availability
The application will be up and available 100 percent of the time during NYSE market hours. The
application should not be down for more than 15 minutes at any other time.
5. Performance
6. Supportability
6.1 Installability
The user does not have to install any additional software to use the application.
7. Design Constraints
TBD
TBD
9. Purchased Components
N/A
10. Interfaces
In this section the interfaces that must be supported by the application are specified. The first two
subsections record the contents of all inputs and outputs that RU e-st has to support/provide. Also, the list
of systems that RU e-st interfaces with is shown.
10.1 Inputs
Each of the following sections specifies the content for a particular kind of input to the RU e-st system.
Version 1.0
Table of Contents
1. Introduction..................................................................................................................................... 5
1.1 Purpose ................................................................................................................................... 5
1.2 Scope ...................................................................................................................................... 5
1.3 Definitions, Acronyms and Abbreviations ............................................................................. 5
1.4 References .............................................................................................................................. 5
1.5 Overview ................................................................................................................................ 5
8. Annexes ........................................................................................................................................ 15
9. Index ............................................................................................................................................. 16
1. Introduction
1.1 Purpose
The objective of this Software Development Plan is to define the development activities in terms
of the phases and iterations required for implementing a computerized stock trading system for
RU Financial Services.
1.2 Scope
This Software Development Plan describes the overall plan to be used by RU Financial Services
Information Systems for developing the RU e-st Stock Trading System for RU Financial Services.
The details of the individual iterations are described in the Iteration Plans.
The plans as outlined in this document are based upon the product requirements as defined in the
Vision Document [1].
1.3 Definitions, Acronyms and Abbreviations
See Glossary [4].
1.4 References
1. Vision for the RU e-st Stock Trading System, RUIT387, V1.0, RU Financial Services IT.
2. System Business Case for the RU e-st Stock Trading System, RUIT388, DRAFT, 1998,
RU Financial Services IT.
3. Stakeholder Requests Document for the RU e-st Stock Trading System, RUT389, V1.0,
1998, RU Financial Services IT.
4. Glossary for the RU e-st Stock Trading System, RUT406, V1.0, 1998, RU Financial
Services IT.
5. RU e-st Stock Trading System High Level Project Schedule, V1.0, 1999, RU Financial
Services IT.
6. Rational Unified Process, 1999, Rational Software Corp.
7. RU e-st Stock Trading System Cost Model and Analysis Report, RUIT390, V1.0 RU
Financial Services IT.
8. RU e-st Stock Trading System Risk List, RUT389, V1.0, RU Financial Services IT.
9. RU e-st Stock Trading System Development Case, RUT390, V1.0, RU Financial
Services IT.
10. RU Financial Services Software Process Website
11. RU e-st Stock Trading System E1 Iteration Plan, RUT391, V1.0, RU Financial Services
IT.
1.5 Overview
This Software Development Plan contains the following information:
Project Overview: provides a description of the project's purpose, scope, and objectives. It also
defines the deliverables that the project is expected to deliver.
Project Organization: describes the organizational structure of the project team.
Management Process: explains the estimated cost and schedule, defines the major phases and
milestones for the project, and describes how the project is monitored.
3. Project Organization
3.1 Organizational Structure
Role Responsibility
Project Manager As described in the Rational Unified Process [6]. Responsible for
managing the overall Project Management discipline. Leads the
extended Project Management Team.
Process Engineer Responsible for the project environment and providing process
related support for the teams in the project as defined in the
Environment discipline in Rational Unified Process. Participates
in an extended Project Management Team.
Configuration Manager/ Responsible for Configuration Control on the project and for
Change Control Manager exercising the RU Financial Services Change Request Process in
the project. Participates in an extended Project Management
Team.
Systems Engineering Team Leads the team primarily responsible for managing the Business
Lead Modeling and Requirements disciplines. Participates in an
extended Project Management Team.
Test Team Lead Leading the team responsible for managing the Test discipline.
Participates in an extended Project Management Team.
Deployment Team Lead Leads the team responsible for installation activities and
infrastructure in the end-user environment. Participates in an
extended Project Management Team.
4. Management Process
4.1 Project Estimates
Project estimates are based on the RU e-st Stock Trading System Cost Model and Analysis Report
[7].
The RU e-st Stock Trading System is similar in complexity and architecture to the Commercial
Banking System, built by RU Financial Services in 2002. The RU e-st Stock Trading System
database is roughly 25% more complex, and the number and complexity of use cases suggests that
the system roughly 20% more complex overall. The time frame and effort estimates from this
report are the basis of the project budget and schedule.
4.2 Project Plan
4.2.1 Phase Plan
A Work Breakdown Structure is being prepared and will be provided in the next version of this
document.
The development of the RU e-st Stock Trading System is conducted using a phased
approach where multiple iterations occur within a phase. The phases and the relative
timeline is shown in the table below:
Table 4.2.1 describes each phase and the major milestone that marks the completion of
the phase.
Inception Phase The Inception Phase develops the product Business Case Review
requirements and establishes the business case for Milestone at the end of
the RU e-st Stock Trading System. The major use the phase marks the
cases are developed as well as the high level Go/No Go decision for
Software Development Plan. At the end of the the project.
Inception Phase, RU Financial Services will decide
whether to fund and proceed with the project based
upon the business case.
Elaboration Phase The Elaboration Phase analyzes the requirements The Architectural
and develops the architectural prototype. At the Prototype Milestone
completion of the Elaboration Phase, all use cases marks the end of the
selected for Release 1.0 will have completed Elaboration Phase. This
analysis and design. In addition, the high-risk use prototype signifies
cases for Release 2.0 will have been analyzed and verification of the major
designed. The architectural prototype tests the architectural components
feasibility and performance of the architecture that that comprise the R1.0
is required for Release 1.0. Release.
Construction Phase During the Construction Phase, remaining use cases The R2.0 Operational
are analyzed and designed. The Beta version for Capability Milestone
Release 1.0 is developed and distributed for marks the end of the
evaluation. The implementation and test activities Construction Phase.
to support the R1.0 and R2.0 releases are Release 2.0 software is
completed. ready for packaging.
Transition Phase The Transition Phase prepares the R1.0 and R2.0 The R2.0 Release
releases for distribution. It provides the required Milestone marks the end
support to ensure a smooth installation including of the Transition Phase.
user training. At this point all
capabilities, as defined in
the Vision Document [1],
are installed and available
for the users.
Section 4.2.4 illustrates the high-level project schedule showing phases, iterations, and major milestones.
The project duration is expected to be 7-8 months.
Determines feasibility of
project from a business
point of view.
Construction C1 Iteration: Implement and test R1 R1 Beta All key features from a
Phase Develop R1 use cases to provide the user and architectural
Beta R1 Beta Version. prospective implemented
in the Beta.
Two-stage release
provides easier transition
for users.
Two-stage release
provides easier transition
for users.
4.2.3 Releases
This Software Development Plan addresses the first two releases of the RU e-st Stock
Trading System. Key features as defined in the Vision Document [1] are targeted for the
first two releases. All features critical to online stock trading are planned for the first
release (R1.0).
The planned content of the releases is expected to change as the project progresses. This
may be due to a number of business and technical factors. To accommodate the changes,
Rational RequisitePro is used to manage the product requirements and to keep track of
release content. In particular, benefit, effort, and risk attributes are used to determine
priority of product requirements and thus the target release.
It is anticipated that the RU e-st Stock Trading System will be released for general use
through two to four main releases.
o Logon
o Get a Quote
o Execute a trade
o Interface to the Market Trading System and Quote System
o Administer customer accounts
o Report tax information to the customer and IRS
The high-level schedule showing project phases, iterations, and milestones is contained in the RU
e-st Stock Trading System High Level Project Schedule [5] as shown below.
T.B.D.
The IT employees identified in the Organizational Chart in Section 8.1 are allocated to
the project. Additional resources will not staffed until the business case is reviewed at the
end of the Inception Phase and a Go/No Go decision is made on the project.
The test organization relies on support from the software engineering organization, as
shown by the dotted line in the organization chart.
Training on the following skills will be conducted for the project team prior to the
commencement of design activities:
RU e-st
Requirements Management Plan
Version 1.3
Revision History
Date Version Description Author
21-Feb-2000 0.1 Initial Session Feedback Applied Stephen Hunt(slh)
26-Feb-2000 0.2 Follow-up interview feedback applied slh
7-Mar-2000 0.3 Revised requirement attributes slh
24-Mar-2000 0.7 First Draft Proof slh
26-Mar-2000 0.9 Revisions from internal reviews slh
29-Nov-2000 1.2 New UC strategy and new RM template J. Bell
30 October 2001 1.3 Editorial changes B. Baker
Table of Contents
1. Introduction 5
1.1 Purpose 5
1.2 Scope 5
1.3 Definitions, Acronyms, and Abbreviations 5
1.3.1 Baseline 5
1.3.2 Business Rule 5
1.3.3 Business Unit Manager 5
1.3.4 Customer 5
1.3.5 Engineering Time 6
1.3.6 NCSS 6
1.3.7 Pareto Chart 6
1.3.8 Product Feature 6
1.3.9 Rational RequisitePro® 6
1.3.10 Rational Rose 6
1.3.11 Rational SoDA 6
1.3.12 Rational TestManager 6
1.3.13 Stakeholder 6
1.3.14 Stakeholder Request 7
1.3.15 Vision Document 7
1.4 References 7
1.5 Overview 8
2. Requirements Management 8
2.1 Organization, Responsibilities, and Interfaces 8
2.2 Tools, Environment, and Infrastructure 9
4. Milestones 21
1.2 Scope
This Requirements Management Plan documents the approach followed to record, structure, and evolve
requirements for the RU e-st project. This Requirements Management Plan is based on guidelines for all
software projects performed by the RU Financial Services IT department.
The Requirements Management Plan described in this document is almost identical to the Composite
Template defined in Rational RequisitePro®. This template combines the best qualities of both use-case
modeling and traditional requirements specification techniques by providing an outline for a modern
software requirements specification package applying both document based techniques and use-case
modeling.
Document types in the Requirements Management Plan include: Vision Document, Glossary, Modern
Software Requirements Specification, Use-Case Specification, Requirements Management Plan,
Stakeholder Request Document, Supplementary Specification, Test Case Specification, and Test Plan.
Requirement types included are: Stakeholder Request, Feature, Glossary Term, Software Requirement, Use
Case, Requirements Management Plan Requirement, Supplementary Specification, and Test Case.
1.3.1 Baseline
A reviewed and approved release of artifacts that constitutes an agreed basis for further evolution or
development and that can be changed only through a formal procedure, such as change management and
configuration control.
1.3.6 NCSS
Non-Commented Source Statements. A metric used to estimate project risk, estimate schedules, and most
importantly, a component of software release decision when used in defect density calculation.
1.3.13 Stakeholder
A stakeholder is defined as anyone who is materially affected by the outcome of the project. Effectively
solving any complex problem involves satisfying the needs of a diverse group of stakeholders.
Stakeholders will typically have different perspectives on the problem, and different needs that must be
addressed by the solution.
1.4 References
Applicable references are:
1. Rational Unified Process v2003.06.00, Copyright 1987–2003 Rational Software Corporation
2. Grady R., Practical Software Metrics For Project Management And Process Improvement,
Englewood Cliffs, NJ: Prentice-Hall, Inc., 1992, pp. 14, 42, 172-174
3. Grady, R. and D. Caswell, Software Metrics: Establishing a Company-Wide Program, Englewood
Cliffs, NJ: Prentice-Hall, Inc., 1987, pp. 34, 65, 111, 112, 113
4. Card, D., V. Church, and W. Agresti, “An Empirical Study of Software Design Practices,” IEEE
Transactions of Software Engineering, Vol. SE-12, no. 2, (Feb. 1986), pp. 264-271
5. Cash, J., F. McFarlan, J. McKenny, and L. Applegate, Corporate Information Systems Management:
Text and Cases, Boston, MA: Richard D. Irwin, Inc., 1992, pp. 418-426
6. Spence, I. and L. Probasco, Tracability Strategies for Managing Requirements with Use-Cases,
Cupertino, CA: Rational Software Corporation, 1998
7. Brooks, F., The Mythical Man-Month, Reading, MA: Addison Wesley Longman, Inc., 1998, pp. 16-26
8. Mc McCabe, T. and A. Watson, "Software Complexity," Crosstalk, Journal of Defense Software
Engineering 7, 12 (December 1994): pp. 5-9.
9. Vision Document Template, V 0.1, Draft, 2000
10. Supplementary Specification Template, V 0.1, Draft, 2000
11. Use-Case Specification Template V 0.1, Draft, 2000
12. Test Plan Template, V 0.1, Draft, 2000
13. Glossary Template, V 0.1, Draft, 2000
14. Assumptions Template, V 0.1, Draft, 2000
15. Issues Template, V 0.1, Draft, 2000
16. Business Rules Template, V 0.1, Draft, 2000
17. Use-Case Model Survey Template, V 0.1, Draft, 2000
1.5 Overview
This Requirements Management Plan is being created to address identified problems in the requirements
management process experienced previously in software projects delivered by RU Financial Services IT.
Problems include:
Poor communication of changes to requirements, including the use of e-mail to communicate
changes.
Data changes out of sync with code changes.
Lack of formal handoffs between team members for software artifacts.
Minimal contact with stakeholders.
Users not knowing what they want until they see it.
Fast pace of requirements change.
Geographically disbursed team, a problem that has been remedied.
Lack of clear understanding of roles within the requirements process.
Separation of the subject matter experts and developers may result in decreased customer
satisfaction.
Inconsistent documentation.
Inability to easily find requirement documents.
What follows is the response to these problems. A standard set of documents used to express requirements
of all levels will be defined. An established set of requirement types to capture stakeholder problems,
needed features of the system, software requirements, test requirements, standard terms, and business rules
will be described. For each requirement type a collection of requirements attributes, used to manage
delivery of the needed system and manage changes to the requirements over the lifecycle of the project,
will be identified along with values and ranges appropriate for each.
A model of traces between requirements will be established to help communicate requirements change to
all members of the project team. An initial list of predefined views of requirements information will be
defined. This list must evolve with use. A set of tool extensions to provide needed functionality specifically
for the RU e-st project will be created. Finally, a list of roles within the requirements management process
will be identified.
The premise of this endeavor from the start was that an initial process and tool configuration for
requirements management be defined, and that these would evolve through use. This being the case, this
document should be considered a “living” document and changes to it over time and experience are
expected. Changes to this document should be made in a controlled manner and only after review by
stakeholders.
The project management strategy taken by RU Financial Services IT is one that places an emphasis on
customer satisfaction. This plan embraces that strategy.
2. Requirements Management
2.1 Organization, Responsibilities, and Interfaces
TBD
3.2 Traceability
Requirements Traceability
Stakeholder Request
(STRQ)
Feature (FEAT)
A feature requirement may also trace to other product feature requirements where the traced-to requirement
represents a feature to which the origin requirement is dependent.
The use-case requirements defined in a RequisitePro database will be traced from the associated actor
requirements defined in a RequisitePro database.
The detailed requirements defined in a use-case specification document will be hierarchically related.
Every use-case requirement must trace from one or more test case requirements. The use-case requirements
will be traced from test case requirements defined in test case specifications.
A use-case requirement may also trace to other use-case requirements where the traced-to requirement
represents a system behavior expressed by that requirement to which the origin requirement is dependent.
3.3 Attributes
Priority
Set by the Business System Manager. Ranking requirements by their relative benefit to the business opens
a dialogue with customers, analysts and members of the development team. Used in managing scope and
determining development priority.
High Essential requirements. Failure to implement means the system will not meet
customer needs. All critical requirements must be implemented in the release.
Medium Requirements important to the effectiveness and efficiency of the system for most
applications. The functionality cannot be easily provided in some other way. Lack
of inclusion of an important requirement may affect customer or user satisfaction,
or even revenue, but release will not be delayed due to lack of any important
requirement.
Low Requirements that are useful in less typical applications will be used less
frequently, or for which reasonably efficient workarounds can be achieved. No
significant revenue or customer satisfaction impact can be expected if such an
item is not included in a release.
Difficulty
Set by the Development Team, it indicates the estimated effort required for implementing and validating
the requirement. Because some requirements require more time and resources than others, estimating the
engineering time is the best way to gauge complexity and set expectations of what can and cannot be
accomplished in a given time frame. Used in managing scope and determining development priority.
Difficulty estimate is based on estimates of many factors, including effort, size, and coordination
complexity.
When estimating effort keep in mind all of the activities associated with the production of a software
product. Rule of thumb: Projects created primarily from reused software take about 23 percent of the time
and resources of those that are new. Measurement will be integer value, unit of engineering weeks.
Size refers to the estimated number of non-commented source statements needed to implement the
requirement. The greater the number of lines of code the greater the complexity of the project. Reused
software lines of code should be counted at a quarter of their number. Measurement will be an integer
value, number of non-commented source statements/1000(KNCSS).
Coordination complexity is estimated by analyst and development teams based on the reliance on
organizations outside their control needed to implement the requirement. Measurement will be qualitative:
high, medium or low.
Risk
Set by the development team based on technology risk, development risk, and other risk factors. Normally
performed at the project level, the Technology Risk Assessment (TRA), Appendix 1, for the requirement,
allows the development team to understand the slope they must climb to deliver the goods. Used to help
establish development risk. Measurement will be an integer value between zero and 150. A value of zero
indicates no assessment has been performed.
Risk can be measured and calculated in a variety of ways. For example, effort, size, coordination
complexity, technology risk, architectural impact is evaluated for its value in the matrix and the resulting
value is multiplied by the weight and totaled. The result is an integer valued between 0 – 100. This
measures the probability the project will experience undesirable events, such as cost overruns, schedule
delays or even cancellation. The result is then recorded as a qualitative category: high, medium, or low.
High It is very likely that implementing this requirement will result in undesirable
events, such as cost overruns, schedule delays or cancellation. The
development team is very concerned about completing this requirement, with
the given constraints. Reasons for the concern are documented in a separate
document.
Medium No indicator exists to predict the likelihood of undesirable events. The
development team feels comfortable implementing this requirement under the
constraints. But, there are some unknown elements that need to be considered.
Reasons for these concerns are documented in a separate document. Default
value.
Low It is very unlikely that implementing this requirement will result in undesirable
events. The development team is fully confident of being able to implement the
requirement within the project’s constraints. The team has done similar work
before with success.
Stability
Set by the Business System Manager and development. Used to help establish development priorities and
determine the items for which additional exploration and discovery is the appropriate next action.
High It is very unlikely that this requirement will change, or that the development team’s
understanding of the requirement will change.
Medium No indicator exists to predict the likelihood of change for the requirement.
DEFAULT
Low It is very likely that this requirement will change, or that the development team’s
understanding of the requirement will change.
Status
Set after negotiation and review by the project management team and Business Unit Managers. Tracks
progress during definition of the project baseline. Used to control scope.
Proposed Requirement is under discussion but has not yet been reviewed and accepted by
the "official channel," such as a working group consisting of representatives from
the project team, product management and user or customer community.
Approved Requirement is deemed useful and feasible and has been approved for
implementation by the official approval channel.
Incorporated Requirement is incorporated into the product baseline at a specific point in time.
Validated Requirement has been implemented and validated.
Planned Iteration
The iteration when this requirement is planned to begin to be implemented. Integer value.
Actual Iteration
The iteration when this requirement actually began to be implemented. Integer value.
Assigned to
Set by the System Analyst. Text giving the analyst’s name who has been assigned to fully describe this
item. The name is given in the format: first-name last-name – Example: Sue Collins.
Origin
Set by the System Analyst. List value giving the source of the requirement: hotline, partners, competitors,
or large customers.
Rationale
Set by the System Analyst. Text giving the rationale for the requirement.
Cost
Set by Development Team based on the estimated cost to fully develop this requirement. Used in managing
scope and determining development priority.
Priority
Set by the Business System Manager. Ranking requirements by their relative benefit to the business opens
a dialogue with customers, analysts and members of the development team. Used in managing scope and
determining development priority. Values: High, Medium, and Low.
Status
Set after negotiation and review by the project management team and Business Unit Managers. Tracks
progress during definition of the project baseline. Used to control scope. Values: Proposed, Approved,
Incorporated, or Validated.
Difficulty
Set by the development team, it indicates the estimated effort required for implementing and validating the
requirement. Used in determining development priority. Values: High, Medium, and Low.
Stability
Set by the Business System Manager and development team. Used to help establish development priorities
and determine the items for which additional exploration and discovery is the appropriate next action.
Values: High, Medium, and Low.
Cost
Set by development team based on the estimated cost to fully develop this requirement. Used in
determining development priority. Real value.
Assigned to
Text giving the analyst’s name who has been assigned to fully describe this item. Set by the System
Analyst. The name is given in the format: first-name last-name – Example: Sue Collins.
Priority
Set by the Business System Manager. Ranking requirements by their relative benefit to the business opens
a dialogue with customers, analysts and members of the development team. Used in managing scope and
determining development priority. Values: High, Medium, and Low.
Status
Set after negotiation and review by the project management team and Business Unit Managers. Tracks
progress during definition of the project baseline. Used to control scope. Values: Proposed, Approved,
Incorporated, or Validated.
Difficulty
Set by the development team, it indicates the estimated effort required implementing and validating the
requirement. Used in determining development priority. Values: High, Medium, and Low.
Stability
Set by the Business System Manager and development. Used to help establish development priorities and
determine the items for which additional exploration and discovery is the appropriate next action. Values:
High, Medium, and Low.
Cost
Set by development team based on the estimated cost to fully develop this use case. Used in managing
scope and determining development priority. Real value.
Assigned to
Set by the System Analyst. Text giving the analyst’s name that has been assigned to fully describe this
item. The name is given in the format: first-name last-name – Example: Sue Collins.
Priority
Set by the Business System Manager. Ranking requirements by their relative benefit to the business opens
a dialogue with customers, analysts and members of the development team. Used in managing scope and
determining development priority. Values: High, Medium, and Low.
Status
Set after negotiation and review by the project management team and Business Unit Managers. Tracks
progress during definition of the project baseline. Used to control scope. Values: Proposed, Approved,
Incorporated, or Validated.
Difficulty
Set by the development team, it indicates the estimated effort required for implementing and validating the
requirement. Used in determining development priority. Values: High, Medium, and Low.
Stability
Set by the Business System Manager and development team. Used to help establish development priorities
and determine the items for which additional exploration and discovery is the appropriate next action.
Values: High, Medium, and Low.
Cost
Set by development team based on the estimated cost to fully develop this requirement. Used in managing
scope and determining development priority. Real value.
Assigned to
Set by the System Analyst. Text giving the analyst’s name that has been assigned to fully describe this
item. The name is given in the format: first-name last-name – Example: Sue Collins.
Origin
Set by the System Analyst. List value giving the source of the requirement: hotline, partners, competitors,
or large customers.
Rationale
Text giving the rationale for the Requirement. Set by the System Analyst
Synchlinks
Text value used for synchronizing information. Set after information has been synchronized.
Priority
Set by the Business System Manager. Ranking requirements by their relative benefit to the business opens
a dialogue with customers, analysts and members of the development team. Used in managing scope and
determining development priority. Values: High, Medium, and Low.
Status
Set after negotiation and review by the project management team and Business Unit Managers. Tracks
progress during definition of the project baseline. Used to control scope. Values: Proposed, Approved,
Incorporated, or Validated.
Difficulty
Set by the development team, it indicates the estimated effort required implementing and validating the
requirement. Used in determining development priority. Values: High, Medium, and Low.
Stability
Set by the Business System Manager and development. Used to help establish development priorities and
determine the items for which additional exploration and discovery is the appropriate next action. Values:
High, Medium, and Low.
Cost
Set by Development Team based on the estimated cost to fully develop this Requirement. Used in
managing scope and determining development priority. Real value.
Assigned to
Text giving the analyst’s name that has been assigned to fully describe this item. Set by the System
Analyst. The name is given in the format first-name last-name – Example: Sue Collins.
Brief Description
Brief textual description of the use case, focusing on the goals and intent of the use case.
Property
Set by the System Analyst. Indicates the location within a Use-Case Report where the requirement lives.
Affects Architecture
Set by the Software Architect, this indicates the requirement has an influence on the software architecture.
Values: True or False.
Planned Iteration
The iteration when this use case or use case section is planned to begin to be implemented. Integer value.
Actual Iteration
The iteration when this use case or use case section actually began to be implemented. Integer value.
Assigned to
Text giving the analyst’s name that has been assigned to fully describe this item. Set by the System
Analyst. The name is given in the format: first-name last-name – Example: Sue Collins.
Rank
Set by the development team based on impact on the architecture or its importance for a release. Ranking
requirements opens a dialogue with customers, analysts and members of the development team. Used in
determining development priority. Integer.
Test
Set by the Test Designer, it indicates if the use case has been tested. Values: True or False.
Priority
Set by the Business System Manager. Ranking requirements by their relative benefit to the business opens
a dialogue with customers, analysts and members of the development team. Used in managing scope and
determining development priority. Values: High, Medium, and Low.
Status
Set after negotiation and review by the project management team and Business Unit Managers. Tracks
progress during definition of the project baseline. Used to control scope. Values: Proposed, Approved,
Incorporated, or Validated.
Difficulty
Set by the development team, it indicates the estimated effort required for implementing and validating the
requirement. Used in determining development priority. Values: High, Medium, and Low.
Stability
Set by the Business System Manager and development. Used to help establish development priorities and
determine the items for which additional exploration and discovery is the appropriate next action. Values:
High, Medium, and Low.
Cost
Set by development team based on the estimated cost to fully develop this use case. Used in managing
scope and determining development priority. Real value.
Synchlinks
Text value used for synchronizing information. Set after information has been synchronized.
4. Milestones
TBD
Answer the questions for each feature, multiply the weight by the weight factor in table A-1 the weight factor for all
questions is five. Then total the weighted answers for the technical risk. Range 10-150. The Solution Center may
want to revise this assessment with experience.
RU e-st
Use-Case-Modeling Guidelines
Version 0.2
Revision History
Date Version Description Author
th
12 February 2003 0.1 Initial version Bryon Baker
5th March 2003 0.2 Incorporated review feedback Bryon Baker
Table of Contents
1. Introduction 4
1.1 Purpose 4
1.2 Scope 4
1.3 Definitions, Acronyms, and Abbreviations 4
1.4 References 4
1.5 Overview 4
2. Use-Case-Modeling Guidelines 5
2.1 Evolution of a Use Case 5
2.1.1 Discovered 5
2.1.2 Briefly Described 5
2.1.3 Outlined 5
2.1.4 Fully Described 5
2.2 Use-Case Model Structure 6
2.3 Communicates Association 6
4. UML Stereotypes 9
4.1 «initiates» stereotype 9
5. Model Structuring 10
5.1 «include» relationship 10
5.2 «extend» relationship 10
5.3 Use-Case Generalization 10
5.4 Actor Generalization 11
Use-Case-Modeling Guidelines
1. Introduction
1.1 Purpose
This document describes the use-case modeling guidelines used by the RU e-st project within RU Financial
Services. It provides guidelines to ensure a consistent look and feel of all use-case related artifacts.
1.2 Scope
1.4 References
[1] Rational Unified Process, Rational Software Corporation
[2] RU e-st project glossary RUCS2
[3] RU Financial Services Corporate Glossary
[4] OMG Unified Modeling Language Specification, Version 1.4. (http://www.omg.org)
1.5 Overview
This use-case modeling guideline is being created to provide project standards for the development and
maintenance of requirements with use cases. This set of guidelines is organized into the following sections.
• Section 1 - Introduction provides an overview of this document.
• Section 2 – Use-Case-Modeling Guidelines describes how a use case evolves, packaging
guidelines and communicates association conventions.
• Section 3 - How to Describe a Use Case describes flow-structuring guidelines.
• Section 4 - UML Stereotypes describes any project specific UML stereotypes that are used in the
use-case model.
• Section 5 - Model Structuring provides guidance on model structuring with «include», «extend»,
use-case generalization and actor generalization.
2. Use-Case-Modeling Guidelines
2.1 Evolution of a Use Case
In all but the most trivial of systems, use cases are not written in one sitting. As with any iterative process,
a use case evolves from the spark of an idea to a fully described description of how your system behaves.
The following diagram shows the lifecycle of a use case.
2.1.1 Discovered
Initially you “discover” a use case. This is done when you identify and name the goal that the actor is trying
to achieve. A use case is discovered once you have named it.
2.1.3 Outlined
The next stage of evolution is to outline the use case. This can be a bulleted list of just the basic flow. You
may also choose to identify (not outline) possible alternate flows. This enables you to identify scenarios
and also gain an understanding of the possible size and complexity of the use case.
flows for subsequent iterations and fully describe (and implement) those during that iteration. At the end of
the project you will have all of your use cases fully described.
3.2 Subflows
3.2.1 Definition
When a particular flow becomes overly complex, a common practice is to factor out the complex flow and
place it in an included use case. While the author had the best intentions of reducing the complexity of the
flow, he/she functionally decomposed the system and made it harder to understand the requirements of the
system. The reader now has to look in two documents to understand the requirements.
An alternative approach is to use subflows. A subflow can be thought of as an “internal include”.
Benefits to this approach
•The flow is still contained in the same use-case specification.
•The flow can be used to increase clarity by factoring out complex flows.
• The flow allows the reuse of flows within the same use case. This is because subflows can be
called from multiple places.
The difference between an alternative flow and a subflow is that alternative flows insert themselves into
another flow. The flow it inserts itself into has no knowledge of the alternative flow. An alternative flow
may also resume at any place within the use case.
Subflows are not described as part of a scenario. By definition, if the calling flow is in the scenario, the
subflow is also in the scenario.
As with any other flow, a subflow may have alternative flows.
4. UML Stereotypes
4.1 «initiates» stereotype
Being able to visually identify which actor initiates the use case is a useful feature of the use-case diagram.
If there is only one inward pointing navigation arrow you can safely assume that the actor at the tail of the
association initiates the use case. If, however, you do encounter the situation where there are two
navigation arrows pointing towards a use case, you should attach an «initiates» stereotype to the
communicates-association from the actor that starts the use case. Refer to Figure 8: «initiates» stereotype
example for an example.
The semantics of an «initiates» stereotype on a communicates-association are identical to the UML
semantics for a communicates-association, plus, it indicates which actor starts the use case.
5. Model Structuring
5.1 «include» relationship
The «include» relationship is only to be used when there are flows that are common to multiple use cases.
Overuse of the «include» relationship increases the complexity for the testers, designers and documentation
authors because each «include» introduces another artifact that must be read in order to understand the
complete requirements. Care must also be taken when using the «include» relationship that the use-case
model does not become functionally decomposed.
by Jim Heumann
Requirements Evangelist
Rational Software
This article looks at the decisions organizations make and what they do as
they move up the scale in requirements management maturity (RMM).
Just as hiking up a mountain has a cost (in energy and time), so does this
climb upward. Therefore, as we look at the benefits of reaching higher
levels of maturity, we will not ignore the investment required in terms of
time, effort, and money. In addition, we will analyze how automated
requirements management (RM) tools can help support organizations
striving for greater RM maturity.
Those familiar with the CMM (Capability Maturity Model) from the Software
Engineering Institute (SEI) will note some similarities to our parallel
model, which has no direct relationship to the CMM save one: Achieving
Level Five of the RMM will assuredly help an organization get to at least
Level Three of the CMM. Of course, it's important to keep in mind that
attaining a high level of maturity in a single area, such as requirements
management, is easier than attaining overall organizational process
maturity.
The five levels of maturity for our RMM are: 1) written 2) organized 3)
structured 4) traced, and 5) integrated. We will use these categories to
partition requirements management practices, starting at the lowest level
(One) and moving up through Level Five.
Chaos: No Requirements
Actually, there is one other level on the requirements maturity scale: Level
Zero -- no requirements. At Level Zero, organizations fly by the seat of
their pants; they make broad assumptions that they know what to build;
they gamble that the time they save by not gathering requirements will
not be squandered later because they deliver either too much or too little.
Sometimes this gamble works, but more often than not, a product is
released that is missing functionality, has functions that are not needed,
or is of poor quality. These problems will have varying degrees of impact,
depending on the customer and the criticality of the software, but if the
consequences are severe enough, they may prompt the organization to
start "doing requirements" (and to create an RM process along the way).
First, you have a real basis for a contract with your customer. If you write
them well, the requirements can clearly state your understanding of what
the customer wants you to build, and they can read the requirements and
agree (or disagree).
Second, everyone on your development team has a basis for doing his or
her work. This obviously includes the architects and designers, who can
start thinking about how to architect the system to meet customer
expectations, but it also includes the testers, who can get a very early
start writing test cases, upon which they can later base test procedures
and scripts.
Third, as you staff up the project, new members, too, will have a source
for figuring out what the application or system is supposed to do. And
because written requirements can be backed up and restored if necessary,
you will have taken a big step toward reducing risk.
How about the cost? Someone -- or perhaps a team of people -- must take
the time to do the writing. And unless the team is making up the
requirements, there is effort involved in talking to the customer to find out
what they want. Maintenance is also a time/cost factor; unless they are
kept up-to-date, the requirements will become useless. And whoever is
responsible for maintenance must learn and implement some "tool" to do
the writing, even if it is simply Word or Notepad.
Is it worth the time and effort? To answer this question, you have to
compare the cost to the potential consequences of not expending the
effort to record the requirements. What will happen if you don't build and
deliver what your customer wants? What will happen if you build too
much? If the answer is "not much," then it's not a problem. But if
delivering the wrong system would mean a major drop in your stock price
or an unhappy customer, well, then you might want to make the
investment.
Formatting
Instituting version control for your requirements can also save time and
prevent frustration by ensuring that you always know whether or not you
are working on the most current versions of the specifications. In addition,
you will always know who has made a change and why they made it.
These are not the only benefits of getting to Level Two, because you will
automatically enhance the advantages of Level One. When your
requirements are more readable and easier to understand (and more
trustworthy), you will have a better basis for a contract with the customer,
the development team will find the requirements easier to use, and new
staff will be able to come up to speed more quickly.
Costs associated with getting to Level Two relate mostly to training and
review. Writing quality requirements is not a simple task. Unless you are
lucky enough to have skilled analysts already on staff, you will have to
train your team. Getting to, and staying at, a given maturity level will
require consistent review of requirements documents and some level of
"process enforcement." These are additional tasks that take time.
As you think about the many possible types of requirements, you should
consider two particular issues.
The first issue arises if you do not distinguish among different types of
requirements. If your current requirements specification simply contains a
big list of requirements with no indication of their type, it is likely that the
list contains a mix of different types. For example, one requirement might
be "The supplier's help desk shall respond to 90 percent of all trouble
tickets within four hours," and another might be "The system shall support
automatic checking of prerequisites."
Although these are both valid requirements, they are clearly directed at
different concerns. The first is a requirement for the support organization
of the company supplying the software; the second is a specification for
what the software must do. Without indications of type, a long list of
requirements can cause confusion and waste readers' time. Those looking
for software requirements will get distracted by the support requirements,
and vice versa. It is also difficult to run a report, for example, to show all
of the software requirements.
Attributes
Implementing the previous three levels will get you to the point where you
can determine and track requirements relationships. Most systems of any
significant complexity will have a hierarchy of requirements. In a systems
engineering environment, this hierarchy starts with system requirements
and moves down to subsystem requirements, program requirements, and
element requirements. In the Rational Unified Process, the hierarchy starts
with user needs, proceeds to features, and then goes on to use cases. The
ability to keep track of these relationships is commonly called traceability,
and it entails identifying and documenting the derivation path (upward)
and allocation/flowdown path (downward) of requirements in the
hierarchy. Traceability provides the ability to understand how changes to
one requirement might affect others (impact analysis) and can also help
determine if your requirements are complete (coverage analysis).
Impact analysis reports are primarily intended for managing change. They
clearly show how a change to one requirement may impact others, which
makes it much easier to either justify or resist changes. For example, if
someone desires to change a feature, and an impact report shows that
doing so will cause changes to several use cases (and slow down the
project schedule), it is easier to see how to weigh costs against benefits
for the feature change.
These benefits of tracing requirements are significant, but again, they are
not without cost. The effort involved in entering and maintaining the trace
relationships is not trivial. Defining, running, and analyzing the coverage
and impact reports takes time and effort. Requirements tracing can be
done manually via simple tables in Word or Excel in very small projects,
but complex projects often need a requirements management tool like
Rational RequisitePro. The benefits of using such a tool are significant, but
as we noted earlier, there is a cost associated with purchasing,
maintaining, and providing training for the tool.
Software that does what the customer expects is built to comply with the
requirements -- that is, the team's software development process uses the
requirements as a key input. The system's architects and designers follow
a process to ensure that all of the requirements are implemented in the
design; the Rational Unified Process does this by treating use cases as the
input artifact for the analysis and design discipline.
Since requirements are the basis for the whole development process,
project managers should have direct access to a project's status in relation
to the requirements. This includes metrics about new requirements,
requirements implemented, requirements tested, and requirement change
requests.
RUP Support
The five levels we have been talking about encompass a requirements
management process. A process determines and documents who does
what, when they do it, and what things they produce. It takes time and
effort to decide what the process should be and then to document it. An
organization can save resources by not reinventing the wheel, and by
adapting a standard process to suit their own needs. The Rational Unified
Process (RUP), for example, is divided into disciplines, one of which is the
Requirements Management Discipline. If you look at that discipline, you
will notice that it contains a workflow detailing many of the concepts we
have talked about here. Starting with RUP can give an organization a
valuable head start on improving RM maturity.
by Dean Leffingwell
Senior Vice President of Process and Project Management
Rational Software
And if this array of answers seems confusing, don't even think about
the range of responses we would have elicited by asking how you would
graphically represent that thing we call an object and a class (e.g., "It's
a rectangle," "It's a cloud," "It's a. . . whatever."). While these
differences might seem inconsequential, the reality is that some of the
most significant shared concepts among our software engineering
leaders -- inheritance, relationships, encapsulation -- were obscured by
minor differences in terminology and notation. In other words, neither
the science of OO engineering nor the benefits to be gained could
advance further because the language to describe the science had not
yet been invented. Of course, gaining agreement among these authors,
methodologists1, and independent thinkers was not a trivial matter, but
eventually, along came the UML, and the science of software
engineering marched forward again.
While it's perhaps not as bad as the Tower of Babel wrought by the pre-
UML competing OO methodologies, the methodology of requirements
management suffers from some of the same issues -- specifically, the
prevalence of ambiguous, inconsistent, and overloaded usage of
common terms. These terms, including such seminal constructs as "Use
Cases," "Features," and "Requirements," we assume are common,
everyday terms that "everyone understands." In truth, however, each
individual attaches his or her own meaning to these terms within a
given context. The result is often ineffective communication. And this
occurs in a domain wherein success is defined simply by having
achieved a common understanding.
If we were really observant, we might see things that look like problems
just waiting to be resolved: "The welder seems really frustrated with his
inability to get the sequence right," or "Notice that nasty time delay
between the time that employee enters her payroll data and the day
she receives her check!"
Fortunately, our fly-over of the problem domain doesn't take very long,
and (usually) what we find there is not too complicated. We start to
appreciate the problem when we leave the airplane, and set off to build
a solution to the problems and needs we have observed. Yes, we've
reached the beginning of the hard part: forming a solution to the
problem. We consider the set of activities (system definition, design,
and so on), the "things" we find and build to solve the problem
(computers, robot arms, and the like), and the artifacts we create in the
process (such as source code, use cases, and tests) part of the
solution domain.
In the solution domain, there are many steps and activities we must
successfully execute to define, build, and eventually deploy a successful
solution to the problem. They include:
Use Cases
As we think further about the way in which the system needs to do its
job for the user, we might find it beneficial to employ the Use Case
Technique for further describing system behavior. This technique has
been well developed in a number of books [Jacobson 1992] and is also
an integral technique in the industry-standard Unified Modeling
Language (UML) [Booch 1999].
In other words, the use case describes a series of user and system
interactions that help users accomplish something they wanted to
accomplish. Stated differently, the use case describes HOW users and
the system work together to realize the identified feature.
For planning purposes, it's likely that more than use cases will be
necessary to describe how a particular feature is implemented. A small
number of use cases (perhaps 3-10) may well be necessary for each
feature. In describing the use cases, we are elaborating on the behavior
of the system. Detail increases as we achieve additional specificity.
Vision Document
Many development projects use a Vision document that
defines the problem, identifies key stakeholders and user
needs, lists system features, and perhaps includes example
use cases. This document may be called by a variety of other
names: Project Charter, Product Requirements Document,
Marketing Requirements Document, and so forth. No matter what it's
called, the Vision document highlights the overall intent and purpose of
the system being built. It captures the "gestalt" of the system, using
stakeholder needs, features, and use cases to communicate the intent.
We cannot, however, simply dump features and initial use cases into
the hands of the development team and expect them to rush off and
develop a system that really satisfies stakeholder needs. We need to be
a lot more definitive about what we want the system to do, and we'll
probably have to add a lot of new stakeholders, including developers,
testers, and the like. That's what happens in the next layer of the
system definition -- the software requirements.
Software Requirements
OR
Applying this definition, the team can develop a more specific set of
requirements to refine, or elaborate, the features list discussed earlier.
Each requirement serves some feature and vice versa. Notice the
simplicity of this approach. We have a list of features, and we then
elaborate those features by writing a set of requirements that serve
those features. We don't write any other requirements. We avoid the
temptation to sit down, stare at the ceiling, and "think up some
requirements for this system."
Functional Requirements
Functional requirements express what the
system does. More specifically, they
describe the inputs and outputs, and how it
is that specific inputs are converted to
specific outputs at various times. Most
business software applications are rich with functional requirements.
When specifying these requirements, it's important to strike a balance
between being too vague ("When you push the 'On' button, the system
turns on") and being too specific about the functionality. It's important
to give designers and implementers as wide a range of design and
implementation choices as possible. If we're too wishy-washy, the team
won't know what the system is supposed to achieve; if we're too
specific, we may impose too many constraints on them.
During the time in which the "Weld Here" input is active, the
system digitizes the position of the electrode tip by reading
the optical encoders every 100 msec.
Since use cases are semantically well defined, they provide a structure
into which we can organize and capture the system behavior. Here is a
representative use case for the Smartbot.
Nonfunctional Requirements
In addition to functional requirements such as inputs translating to
outputs, most systems also require the definition of a set of
nonfunctional requirements that focus on specifying additional system
"attributes," such as performance requirements, throughput, usability,
reliability, and supportability. These requirements are just as important
as the input-output oriented functional requirements. Typically,
nonfunctional requirements are stated declaratively, using expressions
such as "The system should have a mean time between failure of 2,000
hours;" "The system shall have a mean time to repair of 0.5 hours;"
and "The Smartbot shall be able to store and retrieve a maximum of
100 weld paths."
Design Constraints
As opposed to defining the behaviors of the system, this third class of
requirements typically imposes limitations on the design of the system
or process we use to build the system. We'll define a design constraint
as:
Hierarchical Requirements
Many projects benefit from expressing requirements in a hierarchical or
parent-child structure. A parent-child requirement amplifies the
specificity expressed in a parent requirement. Parent-child requirements
give us both a flexible way to enhance and augment a specification, and
a means to organize levels of detail. The parent, or top-level
specification, is easily understandable to all users; implementers can
inspect the more detailed "child" specification to make sure that they
understand all of the implementation details. Note that hierarchical
requirements consist of the standard three types of requirements:
functional, non-functional, and design constraints. The hierarchical
approach simply defines the elaboration relationship among
requirements.
Traceability
In addition to defining the terms we use for things that describe system
requirements, we should now turn to a key relationship, traceability,
which may exist among these things.
Summary
At the beginning, we noted that a goal of this article was to help
practitioners in the field improve their ability to answer the fundamental
question:
Suggested Reading
Leffingwell, Dean, and Don Widrig. Managing Software Requirements:
A Unified Approach. Reading, MA: Addison Wesley Longman, 1999.
Weigers, Karl. Software Requirements. Redmond, WA: Microsoft Press,
1999.
Bibliography
by Philippe Kruchten
Rational Fellow
Rational Software Canada
If the original development was done with the Rational Unified Process,
then most of the artifacts you need would exist already in some form or
another. In this case, evolving the system could mean just adding one
more complete development cycle (inception, elaboration, construction,
and transition); inception and elaboration might be relatively small,
depending on the complexity of the proposed evolution. This is the case,
for example, if there are no significant architectural impacts. I would
classify this as a maintenance cycle, which I will discuss in a separate
article.
So let us assume that your legacy system was not developed with the
RUP. This means that the development artifacts, when they exist, do not
carry the usual RUP names, or are not in the form we expect them in the
RUP. Very often, they are just missing or obsolete, or so old that nobody
can trust them to still be relevant to the system. We can assume that
other techniques were used: the design was not done using object-
oriented technology, the requirements did not employ use cases, and so
on.
The only danger is that the legacy system can be an anchor, stifling the
examination and consideration of fresher approaches.
● Extension
● Cosmetic makeover
● Migration
● Redevelopment
● "All of the above"
Cosmetic makeover. Often you do not need to scrap the whole system,
but only to give it a new look, or perhaps take advantage of a new GUI
technology or interface. A solution based on wrapping certain components
of your system to give them a new interface or allow their re-
implementation can lead to an acceptable result with minimal
development. This is the case for many applications that need to be
rapidly "Web-enabled," for example.
Migration. Often the system has exceeded the useful life of its underlying
hardware, operating system, or middleware. It relies on technologies that
are either no longer maintained or very costly to keep alive. The solution
is to migrate the legacy system to a new platform (hardware or software),
preserving much of the existing software. For example, an application
developed for a DEC VAX VMS environment must rapidly be deployed on a
wide range of Unix- and Linux-based platforms. This was the case when
we migrated the Rational Environment (a product with two million lines of
code) from our own proprietary platform to a range of Unix-based
platforms, which led to the product known today as Rational Apex.
Whereas extension means adding new domain-specific behavior, migration
means adapting the legacy system to a different technology platform.
Migration has less tangible domain-specific value, but failing to do it in a
timely and efficient way can bring the whole show to a halt.
You do not evolve a legacy system just because it is there. You have to
ask whether changing the system makes sense. In general, it really is
reasonable to keep legacy systems around: their development or
acquisition is typically a sunk cost, and most likely there is no business
justification for scrapping them. There is also an opportunity cost,
however: given limited resources and infinite demand to build new things,
to maintain a legacy system is a decision not to spend those scarce
resources on new things. If you find that you are simply engaging in
preservation -- injecting resources into a system for emotional or historical
reasons rather than for meaningful business reasons, or because you have
not examined any alternatives -- then it is probably unreasonable to
continue maintaining the system.
These principles are not specific to "green field" development; they apply
to any type of software development. This already makes the basic RUP
lifecycle template, with its four phases of Inception, Elaboration,
Construction, and Transition fully applicable to a legacy system project.
This in turn makes most of the Project Management activities of the RUP
fully applicable as well. Just because it is a legacy system, there is no
reason not to have a Vision Document, describing what it is you want to
achieve; a Project Plan, showing major milestones and what you want to
accomplish; maybe iterations and their specific objectives; and a Risk List.
You also need a Business Case, to be able to discuss the benefits of doing
the project and the approach you will take. This Business Case will be
based on an estimate of costs: staffing and other requirements (tools,
middleware, training), which, in turn, will depend on the extent of the
work to be accomplished. As you progress toward the Transition phase,
you will need a Deployment Plan, showing how the new system will be
deployed, replacing the old one.
To go beyond simply applying the RUP lifecycle and use other disciplines of
the RUP going forward, you need to establish a starting point. You must
identify a minimal set of essential artifacts describing the legacy system.
Depending on the scope of the evolution, you may need more or less of:
● Requirements
● Architecture and design
● Tests
● User documentation
Once you have established this baseline of RUP artifacts, you can proceed
with the legacy project as if it were a RUP Evolution cycle.
Describing the interfaces and the scenarios of how these interfaces are
exercised is crucial. Later on, you will identify the subsystems that are not
affected by the evolution: the stable, core, reusable chunks of the legacy
system. Do you need a detailed software design documentation as well as
these interface descriptions? If you have it and can trust it, that is nice,
but do not embark on a huge effort to produce it before you know what
pieces need to be changed. And even then, proceed on a case-by-case
basis. Tools can help you do this reverse engineering, which does not need
to exceed a few days of work.
Tests. Whatever tests, test scripts, test cases, and test harnesses were
developed for the legacy system will still be largely applicable for the new
system.
Note that this step of establishing a baseline is not RUP specific. Whatever
process or method you will use to go forward, you will need to do some
reverse engineering of the existing system. The Web site for
"Renaissance," an Esprit project on software reengineering, is a good
source of information on reverse engineering.1
Evolution: Going Forward with the RUP
Once you have established your minimal RUP artifact baseline, much of it
by reference to existing information, you can now proceed. Most of the
activities of the RUP apply, just as they do in Construction and Transition
iterations for a brand new development project. Yet, as always, try to
keep things as light as possible as you choose what to adopt from RUP; do
not execute activities or create artifacts that are unnecessary.
In some limited cases, you might be able to use tools such as Rational
Rose to reverse engineer elements of your existing code into the UML. But
do not rely on using the results blindly; they will always require some
enlightened human interpretation.
Completing the RUP. When creating the development case for a legacy
system evolution project, you will notice that the RUP does not contain
activities or guidelines for reverse engineering, design recovery, database
conversion, or the technique of using "wrappers." These techniques are
very dependent on the state of the legacy system and the technologies it
uses, and it is hard to generalize them. See References 1, 2, and 4 below
for pointers to various approaches and techniques.
The RUP's Inception phase specifies that you produce a Vision Document
and Business Case, as well as an Initial Development Case specifying
which artifacts you need to recreate. In this phase you will also start the
process of reverse engineering for some of the artifacts: requirements and
architecture, mainly, in order to be able to choose the appropriate
evolution strategy and estimate its cost.
In the Elaboration phase, you will complete your RUP baseline, the
minimal set of artifacts that you need to go forward, including the
conversion of some older artifacts to the new tool set. For simple
extensions, this can be done in one short iteration. But if there are a large
number of architectural changes to go through, as in a migration strategy
or redevelopment, then you will have several iterations in this elaboration
phase to implement a new architectural baseline. It may even be that this
Elaboration phase is the dominant phase, and that there will be little to do
in Construction and Transition. Testing is put in place in the new
environment, and regression testing can start early. Unlike Elaboration for
a green-field development, there is from the beginning a large number of
artifacts -- code in particular -- to manage, and activities from the Change
and Configuration Management discipline have to be stressed earlier.
The Construction phase is not significantly different from any other RUP
project. Additional elements are reverse-engineered, redesigned, and
documented as necessary. Or they are just ported or translated into
another language.
Clearly, the RUP is helpful in staging legacy evolutions, with very concrete
and measurable objectives for each iteration. Joe Marasco, the manager
for the Rational Apex project wrote:
We decided which bits of functionality needed to be moved first,
which parts will be moved without touching them at all, which
will be moved in later iterations. The version on Sun OS was
postponed to a later iteration, once the version on AIX was
stable. Instead of seeing the butterfly emerge in one day from
the cocoon, you plan its metamorphosis and track its evolution
iteration by iteration. I cannot imagine managing the evolution
of a complex legacy system by any other means.
Large portions of the RUP can be used for the evolution of a legacy
system, with more or less tailoring and formality, depending on the type of
evolution you envisage and how much information on the legacy system is
at hand. How many of the RUP artifacts you need to actually develop by
extracting from, or reverse engineering, the existing system depends on
the complexity of the evolution and the degree of risk you can tolerate.
One caution: We have seen projects fail when too many changes were
attempted at the same time: A major evolution of a legacy system (e.g., a
migration to a new platform), at the same time as a change of process
(e.g., going to the RUP), and a change of tool set (e.g., going to Rational
Suites). It is preferable to introduce a new process and new tools during
an earlier project, before you undertake a major legacy evolution, so that
developers can become familiar with the RUP, its philosophy, and its
contents, as well as the tools that support it. Avoid multiplying risk for the
project by introducing too many unknowns and changes simultaneously.
Acknowledgments
Many thanks to my friends and colleagues for their help in assembling the
information this article, which is based on their own blood-and-sweat
experiences: Dean Leffingwell, Bruce MacIsaac, Joe Marasco, Walker
Royce, John Smith, Grady Booch, Craig Larman, as well as the many
participants in Rational's internal process discussion forum. They posed
the question, again and again, whether RUP can be used effectively for
legacy evolutions and provided valuable elements of the answer in this
article. Thanks also to Catherine Southwood for ironing out my Frenglish.
References
1. Jesús Bisbal et al, "Legacy Information Systems: Issues and
Directions." IEEE Software 16 (5), Sept. 1999, 103-111.
2. Michael Brodie and Michael Stonebraker, Migrating Legacy Systems.
San Francisco: Morgan Kaufmann Publishers, 1995.
1Michael Brodie and Michael Stonebraker, Migrating Legacy Systems. San Francisco: Morgan
Kaufmann Publishing, 1995.
by Jim Heumann
Requirements Management Evangelist
Rational Software
In this article, we will discuss how using use cases to generate test cases
can help launch the testing process early in the development lifecycle and
also help with testing methodology.
Although few actually do it, developers can begin creating test cases as
soon as use cases are available, well before any code is written. We will
discuss how to do this, and the advantages you can reap from it, below.
The ovals represent use cases, and the stick figures represent "actors,"
which can be either humans or other systems. The lines represent
communication between an actor and a use case. As you can see, this use-
case diagram provides the big picture: Each use case represents a big
chunk of functionality that will be implemented, and each actor represents
someone or something outside our system that interacts with it.
It is a significant step to identify use cases and actors, but now there is
more to be done. Each use case also requires a significant amount of text
to describe it. This text is usually formatted in sections, as shown in Table
1.
The most important part of a use case for generating test cases is the flow
of events. The two main parts of the flow of events are the basic flow of
events and the alternate flows of events. The basic flow of events
should cover what "normally" happens when the use case is performed.
The alternate flows of events covers behavior of an optional or exceptional
character relative to normal behavior, and also variations of the normal
behavior. You can think of the alternate flows of events as "detours" from
the basic flow of events.
Figure 2: Basic Flow of Events and Alternate Flows of Events for a Use Case
Basic Flow
1. Logon
This use case starts when a Student accesses the Wylie
University Web site.
The system asks for, and the Student enters, the student ID
and password.
4. Select Courses
The Student selects four primary course offerings and two
alternate course offerings from the list of available course
offerings.
5. Submit Schedule
The student indicates that the schedule is complete. For each
selected course offering on the schedule, the system verifies
that the Student has the necessary prerequisites.
Figure 3: Textual Description for the University Course Registration Use-Case Basic
Flow of Events
Alternate Flows
1. Unidentified Student
In Step 1 of the Basic Flow, Logon, if the system determines
that the student ID and/or password is not valid, an error
message is displayed.
2. Quit
The Course Registration System allows the student to quit at
any time during the use case. The Student may choose to save
a partial schedule before quitting. All courses that are not
marked as "enrolled in" are marked as "selected" in the
schedule. The schedule is saved in the system. The use case
ends.
As you can see, a significant amount of detail goes into fully specifying a
use case. Ideally, the flows should be written as "dialogs" between the
system and the actors. Each step should explain what the actor does and
what the system does in response; it should also be numbered and have a
title. Alternate flows always specify where they start in the basic flow and
where they go when they end.
Use-Case Scenarios
There is one more thing to describe before we concentrate on how use
cases can be used to generate test cases: a use-case scenario. A use-case
scenario is an instance of a use case, or a complete "path" through the
use case. End users of the completed system can go down many paths as
they execute the functionality specified in the use case. Following the
basic flow would be one scenario. Following the basic flow plus alternate
flow 1A would be another. The basic flow plus alternate flow 2A would be a
third, and so on.
Table 2 lists all possible scenarios for the diagram shown in Figure 2,
beginning with the basic flow and then combining the basic flow with
alternate flows.
Scenario 1 Basic
Flow
These scenarios will be used as the basis for creating test cases.
We will describe a three-step process for generating test cases from a fully-
detailed use case:
Table 3: Partial Scenario Matrix for the Register for Courses Use Case
then additional test cases may be required to test all the possibilities. In
addition, we may wish to add test cases to test boundary conditions.
The next step in fleshing out the test cases is to reread the use-case
textual description and find the conditions or data elements required to
execute the various scenarios. For the Register for Course use case,
conditions would be student ID, password, courses selected, etc.
To clearly document the test cases, once again, a matrix format is useful,
like the one in Table 4. Notice the top row. The first column contains the
test case ID, the second column has a brief description of the test case,
including the scenario being tested, and all other columns except the last
one contain data elements that will be used in implementing the tests. The
last column contains a description of the test case's expected output.
Table 4: Test Case Matrix for the Register for Courses Use Case
RC 6 Scenario 6- V V V V I V Error
cannot message;
enroll -- back to step
course full 3
RC 7 Scenario 6- V V V I V V Error
cannot message;
enroll -- back to step
prerequisite 4
not fulfilled
RC 8 Scenario 6- V V V V V I Error
cannot message;
enroll -- back to step
schedule 4
conflict
Notice that in this matrix no data values have actually been entered. The
cells of the table contain a V, I, or n/a. V indicates valid, I is for invalid,
and n/a means that it is not necessary to supply a data value in this case.
This specific matrix is a good intermediate step; it clearly shows what
conditions are being tested for each test case. It is also very easy to
determine by looking at the Vs and Is whether you have identified a
sufficient number of test cases. In addition to the "happy day" scenarios in
which everything works fine, each row in the matrix should have at least
one I indicating an invalid condition being tested. In the test case matrix
in Table 4, some conditions are obviously missing -- e.g., Registration
Closed -- because RC3, RC4, and RC5 each has the same combination of
Is and Vs.
S101
Introduction
The purpose of this white paper is to summarize and exemplify how use-case relationships
will be defined in the UML 1.3. It is an excerpt of what will be in the Rational Unified
Process 5.0. It is assumed that the reader is familiar with the basics of use cases.
Structuring is, however, not the first you do. There is no point in structuring the use cases
until you know a bit more about their behavior, beyond a one sentence brief description. You
should at least have established a step-by-step outline to the flow of events of the use case, to
make sure that you decisions are based on an accurate enough understanding of the behavior.
To structure the use cases, we have three kinds of relationships. You will use these
relationships to factor out pieces of use cases that can be reused in other use cases, or that are
specializations or options to the use case. The use case that represents the modification we
call the addition use case. The use case that is modified we call the base use case.
• If there is a part of a base use case that represents a function of which the use case only
depends on the result, not the method used to produce the result, you can factor that part
out to an addition use case. The addition is explicitly included in the base use case, using
the include-relationship.
• If there is a part of a base use case that is optional, or not necessary to understand the
primary purpose of the use case, you can factor that part out to an addition use case in
order to simplify the structure of the base use case. The addition is implicitly included in
the base use case, using the extend-relationship.
• If there are use cases that have commonalties in behavior and structure and that have
similarities in purpose, their common parts can be factored out to a base use case (parent)
that is inherited by addition use cases (children). The child use cases can insert new
Structuring the Use-Case Model
behavior and modify existing behavior in the structure they inherit from the parent use
case.
You can also use actor-generalization to show how actors are specializations of one another.
In factoring out behavior to new use cases you may create use cases that never are instantiated
on their own, only as part of some other use case. Such non-instantiable use cases are referred
to as abstract use cases. Use cases that are directly initiated by actors and instantiated on their
own are called concrete use cases.
Example:
Consider part of the use-case model for an Order Management System.
It is useful to separate ordinary Customer from Internet Customer, since they have
slightly different properties. However, since Internet Customer does exhibit all properties
of a Customer, you can say that Internet Customer is a specialization of Customer,
indicated with an actor-generalization.
The concrete use cases in this diagram are Phone Order (initiated by the Customer actor)
and Internet Order (initiated by Internet Customer). These use cases are both variations of
the more general Place Order use case, which in this example is abstract. The Request
Catalog use case represents an optional segment of behavior that is not part of the
primary purpose of Place Order. It has been factored out to an abstract use case to
simplify the Place Order use case. The Supply Customer Data use case represents a
segment of behavior that was factored out since it is a separate function of which only the
result is affecting the Place Order use case and it can also be reused in other use cases.
Both Request Catalog and Supply Customer Data are abstract in this example.
Structuring the Use-Case Model
A use-case diagram showing part of the use-case model for an Order Management System.
The following table shows a more detailed comparison between the three different use-case
relationships:
What is the direction of The addition use case The base use case The addition use case
the relationship? references the base use references the addition (child) references the
case. use case. base use case (parent).
Does the relationship Yes, on the addition No. If you want to No.
have multiplicity? side. include the same
segment of behavior
more than once, that
needs to be stated in the
base use case.
Is the addition use case Often yes, but not Yes. Often no, but it can be.
abstract? necessarily.
Is the base use case The extension implicitly The inclusion explicitly If the base use case
modified by the modifies the behavior of modifies the effect of (parent) is instantiated,
addition? the base use case. the base use case. it is unaffected by the
child. To obtain the
effects of the addition,
the addition use case
(child) must be
instantiated.
Does the base use case Yes. Together with the If it is abstract, no.
have to be complete and additions, yes.
meaningful?
Does the addition use No. No. Together with the base
case have to be use case (parent), yes.
complete and
meaningful?
Can the addition use Yes. No. The inclusion is Yes, by the normal
case access attributes of encapsulated, and only mechanisms of
the base use case? "sees" itself. inheritance.
Can the base use case No. The base use case No. The base use case No. The base use case
access attributes of the must be well-formed in only knows about the (parent) must in this
addition use case? the absence of the effect of the addition. sense be well-formed in
addition. The addition is the absence of the
encapsulated. addition (child).
Another aspect of organizing the use-case model for easier understanding is to group the use
cases into packages. The use-case model can be organized as a hierarchy of use-case
packages, with "leaves" that are actors or use cases.
Structuring the Use-Case Model
Include-Relationship
An include-relationship is a relationship from a base use case to an inclusion use case,
specifying how the behavior defined for the inclusion use case is explicitly inserted into the
behavior defined for the base use case.
The inclusion use case is always abstract. The base use case has control of the relationship to
the inclusion and can depend on the result of performing the inclusion, but neither the base
nor the inclusion may access each other's attributes. The inclusion is in this sense
encapsulated, and represents behavior that can be reused in different base use cases.
• Factor out behavior from the base use case that is not necessary for the understanding of
the primary purpose of the use case, only the result of it is important.
• Factor out behavior that is in common for two or more use cases.
Example:
In an ATM system, the use cases Withdraw Cash, Deposit Cash, and Transfer Funds all
need to include how the customer is identified to the system. This behavior can be
extracted to a new inclusion use case called Identify Customer, which the three base use
cases include. The base use cases are independent of the method used for identification,
and it is therefore encapsulated in the inclusion use case. From the perspective of the base
use cases, it does not matter whether the method for identification is to read a magnetic
bank card, or to do a retinal scan. They only depend on the result of Identify Customer,
which is the identity of the customer. And vice versa, from the perspective of the Identify
Customer use case, it does not matter how the base use cases use the customer identity or
what has happened in them before the inclusion is executed, the method for identification
is still exactly the same.
Structuring the Use-Case Model
Identify Customer
In the ATM system, the use cases Withdraw Cash, Deposit Cash, and Transfer Funds all
include the use case Identify Customer.
The behavior of the inclusion is inserted in one location in the base use case. When a use-case
instance following the description of a base use case reaches a location in the base use case
from which include-relationship is defined, it will follow the description of the inclusion use
case instead. Once the inclusion is performed, the use-case instance will resume where it left
off in the base use case.
Use-Case Instance
Base Use Case
The include-relationship is not conditional, if the use-case instance reaches the location in the
base use case it is defined for, it is always executed. If you want to express a condition, you
need to do that as part of the base use case. If the use-case instance never reaches the location
the include-relationship is defined for, it will not be executed.
Structuring the Use-Case Model
Use-Case Instance #1
Base Use Case
Use-Case Instance #2
Use-case instance #1 follows the base use case and its inclusion. Use-case instance #2 never
reaches the point the inclusion is defined for, and follows only the base use case.
The inclusion use case is one continuous segment of behavior, all of which is included at one
location in the base use case. If you have separate segments of behavior that need to be
inserted at different locations, you should consider an extend-relationship or use-case-
generalization instead.
Extend-Relationship
An extend-relationship is a relationship from an extension use case to a base use case,
specifying how the behavior defined for the extension use case can be inserted into the
behavior defined for the base use case. It is implicitly inserted in the sense that the extension
is not shown in the base use case.
You define where in the base to insert the extension by referring to extension points in the
base use case. The extension use case is often abstract, but does not have to be. The extension
is conditional. The base use case does not control the conditions for the execution of the
extension, those conditions are described within the extend-relationship.
An extension point opens up a base use case to the possibility of an extension. It has a name,
and a list of references to one or more locations within the flow of events of the use case. An
extension point may reference a single location between two behavior steps within the base
use case. It may also reference a set of discrete locations.
• To show that a part of a base use case is optional, or potentially optional, system
behavior. In this way, you separate optional behavior from mandatory behavior in your
model.
• To show that there may be a set of behavior segments of which one or several may be
inserted at an extension point in a base use case. It will depend on the interaction with the
actors during the execution of the base use case which of the behavior segments are
inserted and in what order.
The base use case is implicitly modified by the extensions. You can also say that the base use
case defines a modular framework into which extensions can be added, but the base does not
have any visibility of the specific extensions.
The base use case should be complete in and of itself, meaning that it should be
understandable and meaningful without any references to the extensions.
Example:
Place Call
Caller Callee
<<extend>>
<<extend>>
The use cases Place Conference Call and Show Caller Identity are both extensions to the base
use case Place Call.
In a phone system, the primary service provided to the users is represented by the use
case Place Call. Examples of optional services are to be able to add a third party to a call
(Place Conference Call) and to allow the callee to see the identity of the caller (Show
Caller Identity). We can represent the behaviors needed for these optional services as
extension use cases to the base use case Place Call. This is a correct use of the extend-
relationship, since Place Call is meaningful in itself, you do not need to read the
descriptions of the extension use cases to understand the primary purpose of the base use
case, and the extensions use cases have optional character.
If both the base use case and the "base plus extension" use case must be explicitly
instantiable, or if you want the addition to modify behavior in the base use case, you should
use use-case-generalization instead.
When a use-case instance performing the base use case reaches a location in the base use case
that has an extension point defined for it, the condition on the corresponding extend-
relationship is evaluated. If the condition is true or if it is absent, the use-case instance will
follow the extension. If the condition of the extend-relationship is false, the extension is not
executed. Once the use-case instance has performed the extension, the use-case instance
resumes executing the base use case at the point where it left off.
Structuring the Use-Case Model
Use-Case Instance
Base Use Case
Extension Point
An extension use case can have more than one insertion segment, each related to its own
extension point in the base use case. If this is the case, the use-case instance will resume the
base use case and continue to the next extension point specified in the extend-relationship. At
that point it will execute the next insertion segment of the extension use case. This is repeated
until the last insertion segment has been executed. Note that the condition for the extend-
relationship is checked at the first extension point only, once started all insertion segments
must be performed.
Structuring the Use-Case Model
Use-Case Instance
Base Use Case
Extension Point 2
Extension Point 1
A use-case instance following a base use case and an extension use case, the latter with two
insertion segments.
Use-Case-Generalization
A use-case-generalization is a relationship from a child use case to a parent use case,
specifying how a child can specialize all behavior and characteristics described for the parent.
Neither parent nor child is necessarily abstract, although the parent in most cases is abstract.
A child inherits all structure, behavior, and relationships of the parent. This is generalization
as applicable to use cases.
Generalization is used when you find two or more use cases that have commonalities in
behavior, structure, and purpose. In such case you can describe the shared parts in a new use
case, that then is specialized by child use cases.
Structuring the Use-Case Model
Example:
Place Order
The use cases Phone Order and Internet Order are specializations of the abstract use case
Place Order.
In an Order Management system, the use cases Phone Order and Internet Order share a
lot in structure and behavior. A general use case Place Order is defined where that
structure and common behavior is defined. The abstract use case Place Order need not be
complete in itself, but provides a general behavioral framework which the child use cases
can make complete.
Example:
Consider the Order Management system in the previous example. Say that we want to
add an Order Registry Clerk actor, who can enter orders into the system on behalf of a
customer. This actor would initiate the general Place Order use case, which now must
have a complete flow of events described for it. The child use cases can add behavior to
the structure the parent use case provides, and also modify behavior in the parent.
Structuring the Use-Case Model
Place Order
Order Registry
Clerk
The actor Order Registry Clerk can instantiate the general use case Place Order. Place Order
can also be specialized by the use cases Phone Order or Internet Order.
If two child use cases are specializing the same parent (or base), the specializations are
independent of one another, meaning they are executed in separate use-case instances. This is
unlike the extend- or include-relationships, where several additions implicitly or explicitly
modify one use-case instance executing the same base use case.
Both use-case-generalization and include can be used to reuse behavior among use cases in
the model. The difference is that with use-case generalization, the execution of the children
are dependent on the structure and behavior of the parent (the reused part), while in an
include-relationship the execution of the base use case only depends on the result of the
function the inclusion use case (the reused part) performs. Another difference is that in a
generalization the children share similarities in purpose and structure, while in the include-
relationship the base use cases reusing the same inclusion can have completely different
purposes, they just need the same function to be performed.
A use-case instance executing a child use case will follow the flow of events described for the
parent use case, inserting additional behavior and modifying behavior as defined in the flow
of events of the child use case.
Structuring the Use-Case Model
Use-Case Instance
The use-case instance follows the parent use case, with behavior inserted or modified as
described in the child use case.
Structuring the Use-Case Model