CSC/ECE 517 Fall 2010/ch4 4a I: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 10: Line 10:
In the '''execution''' stage of the development life cycle, use cases provide developers key parts of the specification. Some systems are built entirely with only use case descriptions from sponsors
In the '''execution''' stage of the development life cycle, use cases provide developers key parts of the specification. Some systems are built entirely with only use case descriptions from sponsors


===Use case topics ===
===Use case templates ===
====Use case ====
Each use case should have a unique name describing in a manner which describes its purpose. The name usually is a active phrase, in a verb-noun format. Use cases can also have a reference number associated with them, this is to indicate how they relate to other use cases. Also the use case name should maintain creation and modification history of the template, this information should be preceded by the keyword '''history'''.
====Description====
In the description field of the use case template we maintain the goals of the use case. The description should list the source for the functional requirement, this information should be preceded by the keyword '''sources'''.
====Actors====
Use cases identify the intent satisfying the role assumed by external '''actors''' interacting with the “system under discussion/test”. The actors can be classified into '''primary actor''' or '''secondary actor'''. A '''primary actor''' is one having a goal requiring the assistance of the system. A '''secondary actor''' is one from which the system needs assistance to satisfy a goal.
====Assumptions====
Assumptions made in order to achieve the goals defined should be stated in a declarative manner. The assumptions should be evaluated to a true or false and in case if the assumption is false then it is unspecified as to what the use case will do. Behavior in case of an assumption failure can accounted for using use-case extensions.
====Steps====
The sequence of interactions necessary to successfully meet the goal. The interactions between the system and actors are structured into one or more steps which are expressed in natural language. A step completes when all its component interactions have completed. A step has the form
<sequence number><interaction>. If there are multiple steps then each step should have a sequence number showing its position in the list of interactions. The execution of one or more steps can be made conditional by using programming-like IF-then-ELSE constructs.
====Variations====
Variations represent any variation in the steps of the use case. The format of the variation is <step reference> < list of variations separated by or>.
====Non functional requirements====
Non functional requirements related to fault tolerance,performance,etc are listed as <keyword> : < requirement>. Here again the non functional requirements are list in a natural and understandable format.
====Issues====
This section lists the issues which are awaiting the resolution.
====Role====
====Role====
Before defining the actors interaction with the system, the role played by these actors should be defined. A '''role''' is an instance of an encapsulated set of properties and behavior. Roles are defined independent of the object(s) that may implement it.
Before defining the actors interaction with the system, the role played by these actors should be defined. A '''role''' is an instance of an encapsulated set of properties and behavior. Roles are defined independent of the object(s) that may implement it.
====Actors====
Use cases identify the intent satisfying the role assumed by external '''actors''' interacting with the “system under discussion/test”. The actors can be classified into '''primary actor''' or '''secondary actor'''. A '''primary actor''' is one having a goal requiring the assistance of the system. A '''secondary actor''' is one from which the system needs assistance to satisfy a goal.
====Types of Use cases====
====Types of Use cases====
*'''System use cases''': System use case describes the service which the system provides for the actor. The system use case describes <i>what</i> the system would do in response to the actor's actions. An actor in the system use cases can be wither a human user or another system interacting with the system under consideration.
*'''System use cases''': System use case describes the service which the system provides for the actor. The system use case describes <i>what</i> the system would do in response to the actor's actions. An actor in the system use cases can be wither a human user or another system interacting with the system under consideration.

Revision as of 01:31, 21 October 2010

Introduction

A use case is set of interactions between the external actors and the system under consideration with an objective of achieving specific goals as defined by the users of the system. A use case is used to capture the functional requirements of a particular system which in turn are used to capture the intended behavior of the system. The notion of an actor can be used to represent the external users, or the roles of the users, in fact even the systems other than the one under consideration are considered to be and actor.2

Overview

In general use cases are used to capture the who i.e the actors, the what i.e interactions and system reactions, and the purpose i.e the goal of a particular system without having to worry too much about the internal workings of the system. Use cases originated in the Object oriented community but their applicability is not limited to object oriented systems.

Use cases in detail

Purpose of Use cases

Use cases are used in different stages on the development life cycle. In the planning stage, the process of defining important use cases helps to clarify the most important goals of the system. Use cases helps to narrow the scope of the project. They can surface often unspoken assumptions about the desired behavior of the system. In the execution stage of the development life cycle, use cases provide developers key parts of the specification. Some systems are built entirely with only use case descriptions from sponsors

Use case templates

Use case

Each use case should have a unique name describing in a manner which describes its purpose. The name usually is a active phrase, in a verb-noun format. Use cases can also have a reference number associated with them, this is to indicate how they relate to other use cases. Also the use case name should maintain creation and modification history of the template, this information should be preceded by the keyword history.

Description

In the description field of the use case template we maintain the goals of the use case. The description should list the source for the functional requirement, this information should be preceded by the keyword sources.

Actors

Use cases identify the intent satisfying the role assumed by external actors interacting with the “system under discussion/test”. The actors can be classified into primary actor or secondary actor. A primary actor is one having a goal requiring the assistance of the system. A secondary actor is one from which the system needs assistance to satisfy a goal.

Assumptions

Assumptions made in order to achieve the goals defined should be stated in a declarative manner. The assumptions should be evaluated to a true or false and in case if the assumption is false then it is unspecified as to what the use case will do. Behavior in case of an assumption failure can accounted for using use-case extensions.

Steps

The sequence of interactions necessary to successfully meet the goal. The interactions between the system and actors are structured into one or more steps which are expressed in natural language. A step completes when all its component interactions have completed. A step has the form <sequence number><interaction>. If there are multiple steps then each step should have a sequence number showing its position in the list of interactions. The execution of one or more steps can be made conditional by using programming-like IF-then-ELSE constructs.

Variations

Variations represent any variation in the steps of the use case. The format of the variation is <step reference> < list of variations separated by or>.

Non functional requirements

Non functional requirements related to fault tolerance,performance,etc are listed as <keyword> : < requirement>. Here again the non functional requirements are list in a natural and understandable format.

Issues

This section lists the issues which are awaiting the resolution.

Role

Before defining the actors interaction with the system, the role played by these actors should be defined. A role is an instance of an encapsulated set of properties and behavior. Roles are defined independent of the object(s) that may implement it.

Types of Use cases

  • System use cases: System use case describes the service which the system provides for the actor. The system use case describes what the system would do in response to the actor's actions. An actor in the system use cases can be wither a human user or another system interacting with the system under consideration.
  • Business use cases: Business use cases are used to define the processes which will be used by the external actors. The business use cases treat the system under consideration as a black box in which the actors are given a description as to what the process does by specifying a value.

Use case examples

Use cases in UML

The general representation of the use case environment in Unified Modeling Language(UML)is represented in the figure below

UML represents the use cases in a diagrams called as the use case diagrams. Lines in a UML use case between an actor and the system represent a more abstract concept of relationship of communication, acquaintance, or inheritance. A use case circle can be more than a user invoking an on-demand service that passively waits until called upon. A Use case circle can be event-driven, which proactively notifies one or more subscribers when specific events occur. Services that run on their own without formal invocation may be better represented as an (automated) actor rather than as a use case circle.

Example: Consider a scenario in which a customer is visiting a online shopping portal system. In this scenario as we see the customer as the actor interacting with the online shopping portal system

 

The use case diagram covers the basic operations which the customer would normally perform while ordering an item from the shopping portal. This use case diagram can be extended to include extra scenarios such as the multiple item order, order cancellation and so on.

References