Module 2
Module 2
Hence by following the below steps we can start a requirement engineering process.
Stakeholder is the one who benefits in a direct or indirect way from the
system which is being developed.
As many stakeholders exist, they all have different views regarding the
system to be developed, hence it is the duty of software engineers to
consider all the viewpoints of stakeholders in a way that allows decision
makers to choose an internally consistent set of requirements for the system.
For example, the marketing group is interested in functions and features that
will excite the potential market, making the new system easy to sell and End
users may want features that are easy to learn and use.
These questions help to identify all stakeholders who will have interest in the
software to be built. In addition, the questions identify the measurable benefit of a
successful implementation and possible alternatives to custom software
development.
The next set of questions enables you to gain a better understanding of the problem
and allows the customer to voice his or her perceptions about a solution:
How would you characterize “good” output that would be generated by a successful
solution?
What problem(s) will this solution address?
Can you show me (or describe) the business environment in which the
solution will be used?
Will special performance issues or constraints affect the way the solution is
approached?
The final set of questions focuses on the effectiveness of the communication activity itself.
Gause and Weinberg call these “meta-questions” and propose the following list:
Are you the right person to answer these questions? Are your answers “official”?
Are my questions relevant to the problem that you have?
Am I asking too many questions?
Can anyone else provide additional information?
Should I be asking you anything else?
These questions will help to “break the ice” and initiate the communication that is
essential to successful elicitation.
The goal is to identify the problem, propose elements of the solution, negotiate
different approaches, and specify a preliminary set of solution requirements in an
atmosphere that is conducive to the accomplishment of the goal.
During inception basic questions and answers establish the scope of the
problem and the overall perception of a solution. Out of these initial meetings, the
developer and customers write a one- or two-page “product request.”
A meeting place, time, and date are selected; a facilitator is chosen; and
attendees from the software team and other stakeholder organizations are invited to
participate. The product request is distributed to all attendees before the meeting
date.
While reviewing the product request in the days before the meeting, each
attendee is asked to make a list of objects that are part of the environment that
surrounds the system, other objects that are to be produced by the system, and
objects that are used by the system to perform its functions. In addition, each
attendee is asked to make another list of services that manipulate or interact with
the objects. Finally, lists of constraints (e.g., cost, size, business rules) and
performance criteria (e.g., speed, accuracy) are also developed. The attendees are
informed that the lists are not expected to be exhaustive but are expected to reflect
each person’s perception of the system.
The lists of objects can be pinned to the walls of the room using large sheets of
paper, stuck to the walls using adhesive-backed sheets, or written on a wall board.
After individual lists are presented in one topic area, the group creates a combined
Asst [Type here] [Type here]
BCS501 SE&PM
list by eliminating redundant entries, adding any new ideas that come up during the
discussion, but not deleting anything.
Normal requirements. The objectives and goals that are stated for a product
or system during meetings with the customer. If these requirements are
present, the customer is satisfied. Examples of normal requirements might
be requested types of graphical displays, specific system functions, and
defined levels of performance.
Although QFD concepts can be applied across the entire software process,
QFD uses customer interviews and observation, surveys, and examination of
historical data as raw data for the requirements gathering activity. These data are
then translated into a table of requirements— called the customer voice table—that
is reviewed with the customer and other stakeholders.
3) Usage Scenarios
Each of these work products is reviewed by all people who have participated in
requirements elicitation.
Use cases are defined from an actor’s point of view. An actor is a role that
people (users) or devices play as they interact with the software.
The first step in writing a use case is to define the set of “actors” that will
be involved in the story. Actors are the different people (or devices) that use the
system or product within the context of the function and behavior that is to be
Asst [Type here] [Type here]
BCS501 SE&PM
described.
Actors represent the roles that people (or devices) play as the system
operates. Formally, an actor is anything that communicates with the system or
product and that is external to the system itself.
Every actor has one or more goals when using the system. It is important to
note that an actor and an end user are not necessarily the same thing. A typical
user may play a number of
different roles when using a system, whereas an actor represents a class of external
entities (often, but not always, people) that play just one role in the context of the
use case. Different people may play the role of each actor.
Primary actors interact to achieve required system function and derive the
intended benefit from the system. Secondary actors support the system so that
primary actors can do their work. Once actors have been identified, use cases can
be developed.
1. The homeowner observes the SafeHome control panel as shown in Fig 5.1 to
determine if the system is ready for input. If the system is not ready, a not ready
message is displayed on the LCD display.
2. The homeowner uses the keypad to key in a four-digit password. The password
is compared with the valid password stored in the system. If the password is
incorrect and reset itself for additional input. If the password is correct, the control
panel awaits further action.
3. The homeowner select the keys in stay or away to activate the system.
✓ Stay activates only perimeter sensors (inside motion detecting sensors are
deactivated).
✓ Away activates all sensors.
4. When activation occurs, a red alarm light can be observed by the homeowner.
The basic use case presents a high-level story that describes the interaction
between the actor and the system.
The basic use case presents a high-level story that describes the interaction
between the actor and the system.
The specific elements of the requirements model are dictated by the analysis
modeling method that is to be used. However, a set of generic elements is common
to most requirements models.
Scenario Based Elements: The system is described from the user’s point of view
using a scenario- based approach Ex: Use Case diagrams and Activity diagrams.
Class-based Elements: Each usage scenario implies a set of objects that are
manipulated as an actor interacts with the system. These objects are categorized
into classes—a collection of things that have similar attributes and common
behaviors(operations). Ex: Class diagram, Collaboration diagram.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Diagram.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Analysis patterns suggest solutions (e.g., a class, a function, a behavior) within the
application domain that can be reused when modeling many applications.
Geyer-Schulz and Hahsler suggest two benefits that can be associated with the use
of analysis patterns:
First, analysis patterns speed up the development of abstract analysis models that
capture the main requirements of the concrete problem by providing reusable
analysis models with examples as well as a description of advantages and
limitations.
Second, analysis patterns facilitate the transformation of the analysis model into a
design model by suggesting design patterns and reliable solutions for common
problems. Analysis patterns are integrated into the analysis model by reference to
the pattern name. They are also stored in a repository so that requirements
engineers can use
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
• Is each requirement consistent with the overall objectives for the system/product?
• Is the requirement really necessary or does it represent an add-on feature that may
not be essential to the objective of the system?
• Does the requirements model properly reflect the information, function, and
behavior of the system to be built?
• Have all patterns been properly validated? Are all patterns consistent
with customer requirements?
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
These and other questions should be asked and answered to ensure that the
requirements model is an accurate reflection of stakeholder needs and that it
provides a solid foundation for design.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
MODULE 2
CHAPTER 2—REQUIREMENT MODELLING SCENARIOS,
INFORMATION AND ANALYSIS CLASSES
The requirements modeling action results in one or more of the following types of
models:
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Data models that depict the information domain for the problem.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
(3) to define a set of requirements that can be validated once the software is built.
The analysis model bridges the gap between a system-level description that
describes overall system or business functionality as it is achieved by
applying software, hardware, data, human, and other system elements and a
software design that describes the software’s application architecture, user
interface, and component-level structure.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
The model should focus on requirements that are visible within the
problem or business domain. The level of abstraction should be relatively
high.
Keep the model as simple as it can be. Don’t create additional diagrams
when they add no new information. Don’t use complex notational forms,
when a simple list will do.
2.1.2Domain Analysis
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Scenario-based elements depict how the user interacts with the system and
the specific sequence of activities that occur as the software is used.
Class-based elements model the objects that the system will manipulate, the
operations that will be applied to the objects to effect the manipulation,
relationships between the objects, and the collaborations that occur between
the classes that are defined.
Behavioral elements depict how external events change the state of the
system or the classes that reside within it.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
depicting how data objects are transformed as they flow through various
system functions.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Scenario-based elements depict how the user interacts with the system and the
specific sequence of activities that occur as the software is used.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Use case: Access camera surveillance via the Internet—display camera views
(ACS-DCV) Actor: homeowner
Each step in the primary scenario is evaluated by asking the following questions:
Can the actor take some other action at this point?
Is it possible that the actor will encounter some error condition at this point?
If so, what might it be?
Is it possible that the actor will encounter some other behavior at this point
(e.g., behavior that is invoked by some event outside the actor’s control)? If
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Are there cases in which some “validation function” occurs during this
use case? This implies that validation function is invoked and a potential
error condition might occur.
Are there cases in which a supporting function (or actor) will fail to respond
appropriately? For example, a user action awaits a response but the function
that is to respond times out.
When a use case involves a critical activity or describes a complex set of steps with
a significant number of exceptions, a more formal approach may be desirable.
The typical outline for formal use cases can be in following manner:
The goal in context identifies the overall scope of the use case.
The precondition describes what is known to be true before the use case is initiated.
The trigger identifies the event or condition that “gets the use case started”
The scenario lists the specific actions that are required by the actor and the
appropriate system responses.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Exceptions identify the situations uncovered as the preliminary use case is refined
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
The UML activity diagram supplements the use case by providing a graphical
representation of the flow of interaction within a specific scenario. Similar to the
flowchart,
An activity diagram uses:
Rounded rectangles to imply a specific system function
Arrows to represent flow through the system
Decision diamonds to depict a branching decision.
Solid horizontal lines to indicate that parallel activities are occurring.
A UML activity diagram represents the actions and decisions that occur as some
function is performed.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
2.3.2Swimlane Diagrams
The UML swimlane diagram is a useful variation of the activity diagram and
allows you to represent the flow of activities described by the use case and at the
same time indicate which actor or analysis class has responsibility for the action
described by an activity rectangle.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
For example, a person or a car can be viewed as a data object in the sense
that either can be defined in terms of a set of attributes. The description of the data
object incorporates the data object and all of its attributes.
A data object encapsulates data only—there is no reference within a data
object to operations that act on the data. Therefore, the data object can be
represented as a table as shown in following table. The headings in the table reflect
attributes of the object.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
2.4.3Relationships
Data objects are connected to one another in different ways. Consider the
two data objects, person and car. These objects can be represented using the
following simple notation and relationships are 1) A person owns a car, 2) A
person is insured to drive a car.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
The elements of a class-based model include classes and objects, attributes, operations,
class responsibility collaborator (CRC) models, collaboration diagrams, and packages.
Things (e.g., reports, displays, letters, signals) that are part of the
information domain for the problem.
Roles (e.g., manager, engineer, salesperson) played by people who interact with the
system.
Organizational units (e.g., division, group, team) that are relevant to an application.
Places (e.g., manufacturing floor or loading dock) that establish the context
of the problem and the overall function of the system.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Coad and Yourdon suggest six selection characteristics that should be used as you
consider each potential class for inclusion in the analysis model:
1. Retained information. The potential class will be useful during analysis only if
information about it must be remembered so that the system can function.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
2. Needed services. The potential class must have a set of identifiable operations
that can change the value of its attributes in some way.
4. Common attributes. A set of attributes can be defined for the potential class and
these attributes apply to all instances of the class.
5. Common operations. A set of operations can be defined for the potential class
and these operations apply to all instances of the class.
6. Essential requirements. External entities that appear in the problem space and
produce or consume information essential to the operation of any solution for the
system will almost always be defined as classes in the requirements model.
2.5.2Specifying Attributes
Attributes describe a class that has been selected for inclusion in the
requirements model. In essence, it is the attributes that define the class—that
clarify what is meant by the class in the context of the problem space.
To develop a meaningful set of attributes for an analysis class, you should
study each use case and select those “things” that reasonably “belong” to the class.
2.5.3Defining Operations
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
about the state of an object, and (4) operations that monitor an object for the
occurrence of a controlling event.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
A CRC model is really a collection of standard index cards that represent classes.
The cards are divided into three sections. Along the top of the card, you write the
name of the class. In the body of the card, you list the class responsibilities on the
left and the collaborators on the right. The CRC model may make use of actual or
virtual index cards. The intent is to develop an organized representation of classes.
Responsibilities are the attributes and operations that are relevant for the class.
i.e., a responsibility is “anything the class knows or does” Collaborators are those
classes that are required to provide a class with the information needed to complete
a responsibility. In general, a collaboration implies either a request for information
or a request for some action.
Classes: The taxonomy of class types can be extended by considering the following
categories:
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Entity classes, also called model or business classes, are extracted directly
from the statement of the problem. These classes typically represent things
that are to be stored in a database and persist throughout the duration of the
application.
Boundary classes are used to create the interface that the user sees and
interacts with as the software is used. Boundary classes are designed with
the responsibility of managing the way entity objects are represented to
users.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Controller classes manage a “unit of work” from start to finish. That is,
controller classes can be designed to manage (1) the creation or update of
entity objects, (2) the instantiation of boundary objects as they obtain
information from entity objects, (3) complex communication between sets of
objects, (4) validation of data communicated between objects or between the
user and the application. In general, controller classes are not considered
until the design activity has begun.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
1. A class can use its own operations to manipulate its own attributes,
thereby fulfilling a particular responsibility, or
When a complete CRC model has been developed, stakeholders can review
the model using the following approach:
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
1. All participants in the review (of the CRC model) are given a subset of the
CRC model index cards. Cards that collaborate should be separated (i.e.,
no reviewer should have two cards that collaborate).
3. The review leader reads the use case deliberately. As the review leader
comes to a named object, she passes a token to the person holding the
corresponding class index card.
4. When the token is passed, the holder of the card is asked to describe the
responsibilities noted on the card. The group determines whether one (or
more) of the responsibilities satisfies the use-case requirement.
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.
BCS501 SE&PM
Asst,Prof.Varsharani K.Shirolkar,BLDEACET,VIJAYAPUR.