1 - Use Cases
1 - Use Cases
Specification
Use Cases
2. Non-functional
General system properties.
2
Functional Requirements
(http://en.wikipedia.org/wiki/Functional_requirement)
Use Cases
What Is A Use Case?
A use case in software engineering and systems
engineering is a description of a systems behavior as
it responds to a request that originates from outside
of that system. In other words, a use case describes
"who" can do "what" with the system in question. The
use case technique is used to capture a system's
behavioral requirements by detailing scenario-driven
threads through the functional requirements.
(http://en.wikipedia.org/wiki/Use_case)
Name. The name should implicitly express the user's intent or purpose of the use case, such as "Enroll Student in Seminar."
Identifier [Optional]. A unique identifier, such as "UC1701," that can be used in other project artifacts (such as your class model)
to refer to the use case.
Actors [Optional]. The list of actors associated with the use case. Although this information is contained in the use case itself, it
helps to increase the understandability of the use case when the diagram is unavailable.
Status [Optional]. An indication of the status of the use case, typically one of: work in progress, ready for review, passed review,
or failed review.
Frequency. How often this use case is invoked by the actor. This is often a free-form answer such as once per each user login or
once per month.
Preconditions. A list of the conditions, if any, that must be met before a use case may be invoked.
Postconditions. A list of the conditions, if any, that will be true after the use case finishes successfully.
Extended use case [Optional]. The use case that this use case extends (if any). An extend association is a generalization
relationship where an extending use case continues the behavior of a base use case. The extending use case accomplishes this by
inserting additional action sequences into the base use-case sequence. This is modeled using a use-case association with the
<<extend>> stereotype.
Included use cases [Optional]. A list of the use cases this one includes. An include association is a generalization relationship
denoting the inclusion of the behavior described by a use case within another use case. This is modeled using a use-case
association with the <<include>> stereotype. Also known as a uses or a has-a relationship.
Assumptions [Optional]. Any important assumptions about the domain that you have made when writing this use case. At some
point you should verify these assumptions and evolve them either into decisions (see below) or simply into parts of the basic
course or alternate courses of action.
Basic course of action. The main path of logic an actor follows through a use case. Often referred to as the happy path or the
main path because it describes how the use case works when everything works as it normally should.
Alternate courses of action. The infrequently used paths of logic in a use case, paths that are the result of an alternate way to
work, an exception, or an error condition.
Change history [Optional]. Details about when the use case was modified, why, and by whom.
Issues [Optional]. A list of issues or action items, if any, that are related to the development of this use case.
Decisions. A list of critical decisions, typically made by your SMEs, pertaining to the content of the use case. It is important to
record these decisions to maintain a group memory.
(http://www.ibm.com/developerworks/webservices/library/ws-tip-docusecase.html)
18
Non-functional
Requirements
Non-functional requirements are general
system properties including:
1.Qualities of the system
2.Constraints on the system
These are often described as those
system properties that do not lend
themselves well to being described in a
use case.
25
Non-functional
Requirements
Non-functional Requirements should
not be specific and not vague
Whenever possible they should be
expressed in terms of a metric.
e.g. The system should have a MTTF of
48 hours.
26
Functional or Non-functional
1.
2.
3.
4.
5.
6.
7.
Response time
Ability to login
System and/or data security
Reliability
Useability
Adding a course
Maintainabitlity
27