Module 2
Module 2
•MODULE 2
REQUIREMENTS ENGINEERING
ESTABLISHING THE GROUND WORK
ELICITING REQUIREMENTS
DEVELOPING USE CASES
BUILDING THE REQUIREMENT MODEL
NEGOTIATING REQUIREMENTS
VALIDATING REQUIREMENTS
5
REQUIREMENTS ENGINEERING…
Requirements engineering is a major software engineering action that begins during the
communication activity and continues into the modeling activity.
Inception: It establishes a basic understanding of the problem, the people who want a solution, the nature of
the solution that is desired, and initiate the communication and collaboration between the other stakeholders
and the software team.
Elicitation: In this stage, proper information is extracted to prepare and document the requirements. The
requirements are difficult because the following problems occur in elicitation.
Problem of scope: The customer give the unnecessary technical detail rather than clarity of the overall
system objective.
Problem of understanding: Poor understanding between the customer and the developer regarding
various aspect of the project like capability, limitation of the computing environment.
Problem of volatility: In this problem, the requirements change from time to time and it is difficult
while developing the project.
7
Sowmya H N , ASSISTANT PROFESSOR DEPT. OF CSE, SVIT
REQUIREMENTS ENGINEERING TASK
Requirements Engineering Task:
Elaboration :In this task, the information taken from user during inception and elicitation are expanded and
refined in elaboration. Analyzing phase. Its main task is developing pure model of software using functions,
feature and constraints of a software.
Negotiation: In negotiation task, Conflicts are identified and resolved. Customers, users, and other stakeholders
are asked to rank requirements and then discuss conflicts in priority. Using an iterative approach that
prioritizes requirements, assesses their cost and risk, and addresses internal conflicts, requirements are
eliminated, combined, and/or modified so that each party achieves some measure of satisfaction.
8
Sowmya H N, ASSISTANT PROFESSOR DEPT. OF CSE, SVIT
REQUIREMENTS ENGINEERING TASK
• Specification: In this task, the requirement engineer constructs a final work product. The work
product is in the form of software requirement specification.
Requirements received from the clients are written in natural language.
After collecting, system analyst to document the requirement in technical language.
SRS include dataflow diagram, data dictionary, entity relationship diagram.
SRS defines
How the intended software will interact with hardware.
External interface/ GUI
Response time of system
Maintainability, portability
Security, quality, limitations
Dept. Of CSE, SVIT 9
REQUIREMENTS ENGINEERING TASK
Validation :The work product is built as an output of the requirement engineering and that is accessed for the
quality through a validation step. The formal technical reviews from the software engineer, customer and
other stakeholders helps for the primary requirements validation mechanism.
After SRS developed, the requirements discussed in this documents are validated or tested.
Requirement validation done through reviews taken by customers.
Requirements can be check against the following conditions
If they can practically implement or possible to implement.
If they are correct and as per the functionality and specially of software.
If there are any ambiguities.
if they can describe each and every requirements properly.
Any changing or additional requirements
Hence by following the below steps we can start a requirement engineering process.
1. Identifying Stakeholders
2. Recognizing Multiple View Points
3. Working toward Collaboration
12
ESTABLISHING THE GROUNDWORK
Identifying Stakeholders
Stakeholder is the one who directly or indirectly benefits from the system.
Software Engineers, Internal or external customers, End users, product engineers, marketing people,
support and maintenance engineers.
Each stakeholders has a different view of the system.
Stake holders face both different benefits and risks.
Decision makers will select consistent set of requirements for the system.
13
ESTABLISHING THE GROUNDWORK
Working toward Collaboration
Stakeholders collaborate by providing their view of requirements.
To generate a successful or quality product all should work in collaboration.
Requirement engineers identify the areas of commonality and conflict requirement.
Project head and requirement engineer decide which requirements are accepted.
14
ESTABLISHING THE GROUNDWORK
Asking the First Questions
The first set of context - free questions focuses on the customer and other stakeholders, the overall project
goals and benefits. –
• 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.
15
MADHURA N , ASSISTANT PROFESSOR DEPT. OF CSE, SVIT
ELICITING REQUIREMENTS
Requirements elicitation is to collect requirements in a proper way by communicating with the
clients, end users, system users who are involved in the software development.
It combines elements of problem solving, elaboration, negotiation, and specification.
To encourage collaborative approach to requirements gathering, stakeholders work together to
identify the problems and solutions.
Gathering the requirements by conducting the meetings between stakeholders and customer.
Rules for preparation and participation.
Agenda : formal and informal views.
A “facilitator” (can be a customer, a developer) controls the meeting.
A “definition mechanism” (can be work sheets, flip charts, or wall stickers or an electronic bulletin board, chat
room, or virtual forum) is used.
The main motive is to identify the problem, give the solutions for the elements, negotiate the different approaches
and specify the primary set of solution requirements in an environment which is valuable for achieving the goal.
16
ELICITING REQUIREMENTS
1. Collaborative requirements gathering ----HOME SAFETY PROJECT
•Organize a kickoff meeting with all stakeholders to introduce the project and its goals.
•Use this meeting to explain the importance of gathering accurate requirements and how it will impact the final
product.
•FEATURES: Control pannel, smoke detector, window and door sensors, motion detectors, an alarm, a display, telephone
number, call.
•List of constraints: the system must recognize when sensors are not working, user friendly, interface directly to standard phone
line, sensor event should be recognized within one second.
17
DEPT. OF CSE, SVIT
ELICITING REQUIREMENTS
• Step 3: Use Collaborative Techniques
• Develop mini specification about for entries on the list.
• Mini specification of safe home object is control pannel.
• Ex:
Control pannel is approximately 9X5 inches.
It
has wireless connectivity to sensors and pc
User interaction occurs through keyboard
Quality function deployment (QFD) is a quality management technique that translates the needs of
the customer into technical requirements for software.
The QFD system designs software according to the demands of the customer.
It concentrate on customer satisfaction
Normal requirements
The objective and goal are stated for the system through the meetings with the customer.
For customer satisfaction these requirements should be there.
Examples of normal requirements might be requested types of graphical displays.
19
ELICITING REQUIREMENTS
Expected requirements
These requirements are implicit to the product or system and may be so fundamental that the customer does
not explicitly state them. Their absence will be a cause for significant dissatisfaction.
These are the basic requirements that are not clearly told by the customer, but also the customer expects that
requirement.
Examples of expected requirements are: ease of human/machine interaction, overall operational correctness
and reliability, and ease of software installation.
Exciting requirements
These features are beyond the expectation of the customer. Developer embedded some extra features in
software.
The developer adds some additional features or unexpected features into the software to make the customer
more satisfied.
For example, the mobile phone with standard features, but the developer adds few additional functionalities
like voice searching, multi-touch screen etc. then the customer is more excited about that feature.
20
ELICITING REQUIREMENTS Continued..
3. Usage scenarios
Until the software team does not understand how the features and function are used by the end users it is
difficult to move technical activities.
To achieve the above problem the software team produces a set of structures that identify the usage for the
software.
This structure is called 'Use Cases’ provide a description of how the system will be used.
The work product created as a result of requirement elicitation that is depending on the size of the system or
product to be built.
The work product consists of a statement of need, feasibility, statement of scope for the system and
stakeholders.
It also consists of a list of users participate in the requirement elicitation.
Each of these work products is reviewed by all people who have participated in requirements elicitation.
21
MADHURA N , ASSISTANT PROFESSOR DEPT. OF CSE, SVIT
DEVELOPING USECASES
A use case tells a story about how an end user interacts with the system under a specific set of situations.
A Use Case depicts a system from the end users point of view.
Use cases are defined from actors point of view.
Actors could be people/ users / devices 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.
Every actor has one or more goals when using the system.
Once actors have been identified, use cases can be developed.
Primary actors interact to achieve required system function and derive the intended benefits from the
system. They work directly and frequently with the software.
Secondary actors support the system so that primary actors can do their work.
22
DEVELOPING USECASES
Basic bank locker or safe home requirements, it invovles four
actors:
• 1) home owner
• 2) Setup manager
• 3) Sensors (devices attached to the system or react with
software)
• 4)The monitoring and response subsystem. ex:- alarm.
The homeowner actor interacts with the home security
function in a number of different ways using either the
control panel or a PC:
• 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.
DEVELOPING USECASES
• DETAILED Description of Use Case OF ATM MACHINE:
USE CASE ATM MACHINE
Primary actor Customer
Goal in context Perform transaction
Preconditions: Insert card to the machine
Scenario: 1. Withdraw cash
2. Check balance
3. Change pin or set pin
4. Deposit
Exceptions: 1. NETWORK DOWN
2. BANK DATABASE NOT AVAILABLE
DEVELOPING USECASES
USE CASE ATM machine
Priority: Essential, must be implemented
Frequency of use: Many times per day
Channel to actor ATM machine interface
Secondary actors: Bank employees, Support technician
Channels to secondary 1. Bank employes: cash , recover account.
actors: 2. Technical support:
Open issues: 1. Balance slip is not coming? At least display message on screen or send message to
mobile.
2. Out of cash, message should be displayed.
3. Pin is incorrect it should give atleast 3 chance to enter pin.
26
MADHURA N , ASSISTANT PROFESSOR
NEGOTIATING REQUIREMENTS
The negotiation is to develop a project plan that meets stakeholder needs while at the same time reflecting the real-
world constraints (e.g., time, people, budget) that have been placed on the software team.
Discussion between two parties to reach an agreement.
That is, stakeholders win by getting the system or product that satisfies the majority of their needs and you (as a
member of the software team) win by working to realistic and achievable budgets and deadlines.
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?
Is each requirement bounded and unambiguous?
Do any requirements conflict with other requirements?
Is each requirement achievable in the technical environment that will house the system or product?
Is each requirement testable, once implemented?
Does the requirements model properly reflect the information, function, and behavior of the system to be built?
Has the requirements model been “partitioned” in a way that exposes progressively more detailed
information about the system?
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.
Dept. Of CSE, SVIT 31
CHAPTER 2 –REQUIREMENTS MODELLING SCENARIOS,
INFORMATION AND ANALYSIS CLASSES
REQUIREMENTS ANALYSIS
Requirements analysis allows you to elaborate on basic requirements established during the inception,
elicitation, and negotiation tasks that are part of requirements engineering.
The requirements modeling action results in one or more of the following types of models:
Scenario-based models of requirements from the point of view of various system “actors”
Class-oriented models that represent object-oriented classes (attributes and operations) and the manner in which
classes collaborate to achieve system requirements.
Flow-oriented models that represent the functional elements of the system and how they transform data as it
moves through the system.
Behavioral models that depict how the software behaves as a consequence of external “events.
33
REQUIREMENTS ANALYSIS
The primary focus is on what, not how. What user interaction occurs in a particular circumstance, what objects
does the system manipulate, what functions must the system perform, what behaviors does the system exhibit, what
interfaces are defined, and what constraints apply?
Scenario-based elements depict how the user interacts with the system and the specific sequence of activities
that occur as the software is used.
To capture details of the system from outside view.
What to write about
The first two requirements engineering tasks inception and elicitation provide you with the information you’ll
need to begin writing use cases.
Requirements gathering meetings, QFD, and other requirements engineering mechanisms are used to identify
stakeholders, define the scope of the problem, establish priorities, outline all known functional requirements,
and describe the things (objects) .
To begin developing a set of use cases, list the functions or activities performed by a specific actor.
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:
Answers to these questions result in the creation of a set of secondary scenarios. (Considering 6 & 7 steps of primary
scenarios).
Formal usecase
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.
Preliminary Use-Case diagram for
Exceptions identify the situations uncovered as the preliminary use case is the Safe-Home Systems
refined.
Allows you to represent the flow of activities described by the use case and at the same time indicate which
actor (if there are multiple actors involved in a specific use case) or analysis class as responsibility for the action
described by an activity rectangle.
Responsibilities are represented as parallel segments that divide the diagram vertically, like the lanes in a
swimming pool.
Three analysis classes—Homeowner, Camera, and Interface—have direct or indirect responsibilities in the
context of the activity diagram represented in Figure 6.5.
Data modeling is the process of documenting a complex software system design as an easily understood
diagram, using text and symbols to represent the way data needs to flow.
The most widely used data Model by the Software engineers is Entity-Relationship Diagram (ERD), it
addresses the issues and represents all data objects that are entered, stored, transformed, and produced within an
application.
Data Objects :
A data object is a representation of composite information that must be understood by software. Ex: width (a
single value) would not be a valid data object, but dimensions (height, width, and depth) could be defined as an
object.
A data object can be an external entity (e.g., anything that produces or consumes information), a thing (e.g., a
report or a display), an occurrence (e.g., a telephone call) or event (e.g., an alarm), a role (e.g., salesperson), an
organizational unit (e.g., accounting department), a place (e.g., a warehouse), or a structure (e.g., a file).
Dept. Of CSE, SVIT 48
MADHURA N , ASSISTANT PROFESSOR
DATA MODELING CONCEPTS
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 elements of a class-based model include classes and objects, attributes, operations,
class responsibility collaborator (CRC) models, collaboration diagrams, and packages.
2) Attributes
Attributes are the set of data objects that define a complete class within the context of the problem.
For example, 'employee' is a class and it consists of name, Id, department, designation and salary of the employee
are the attributes.
3) Defining Operations
Operations define the behavior of an object.
(1) Operations that manipulate data in some way (e.g., adding, deleting, selecting),
(2) Operations that perform a computation.
(3) Operations that inquire about the state of an object,
(4) Operations that monitor an object for the occurrence of a controlling event.
• Ex: one object collaborate with another if it needs to send some message to other objects.
• Collaborations are identified by determining whether a class can fulfill each responsibility itself.
If it cannot, then it needs to interact with another class.
The FloorPlan class is responsible for managing the layout of the house,
including walls and cameras.
Responsibilities:
Responsibilities:
3. Scale floor plan for display: Adjust the floor plan to fit different display sizes or zoom levels, ensuring it is
viewable on various devices.
4. Show position of window cameras: Display the locations of window cameras within the floor plan, allowing
users to see camera coverage.
Collaborators:
1.Wall: Represents walls within the floor plan. The FloorPlan class interacts with the Wall class to define and
manage wall placements.
2.Camera: Represents cameras (specifically window cameras) within the floor plan. The FloorPlan class collaborates
with the Camera class to display camera positions.
An association defines a relationship between classes or objects of another Each classes exchange information there
is a communication between them.
An association may be further defined by indicating multiplicity.
Multiplicity defines how many of one class are related to how many of another class.
Dependency- it is a relationship between two things in which change in one element also affects the other.
Whenever there is a change in either the structure or the behavior of the class that affects the other class, such a
relationship is termed as a dependency. Or, simply, we can say a class contained in other class is known as
dependency.
Dept. Of CSE, SVIT 60
61
FLOW ORIENTED MODELING
• It shows how data objects are transformed by processing the functions.
• How information is transformed as it flows through the system.
Data flow diagram:
• Data flow diagram is a graphical representation of flow of data in an information system.
• It is capable of depicting incoming data flow, outgoing data flow and stored data.
• The data objects flow into the software, are transformed by processing elements and resultant data
objects flow out of the software.
• Data flow diagram may be used to represent a system or software at any level of abstraction
• DFDs are commonly used in the early stages of system development to analyze the current system
and design the new system.
• DFDs can also be used to communicate system requirements to developers, ensuring that
everyone has a clear understanding of how the system should function.
62
FLOW ORIENTED MODELING
Components of DFD:
Level0- brief view of the system
• The level 0 DFD should depict the software system as a single unit.
• A Level 0 Data Flow Diagram (DFD) is a high-level representation of the system’s overall
structure, which shows how information flows between external entities and processes within the
system. It provides an overview of the system’s major processes and the interactions between
them.
• Primary input and output should be carefully noted.
• Refinement should begin by isolating candidate process data objects data stores to be represented
at next level.
• All arrows and bubbles should be labelled with meaningful names.
• Information flow continuity must be maintained from level to level.
• One bubble at a time should be refined.
Level o DFD
Grammatical parse
• Verbs- bubbles
• nouns – boxes
• Data/control objects- arrows
• Data stores- double lines
Level 1 DFD
• A Level 1 DFD for an online shopping system may show sub-processes such as
“Browse Products,” “Select Product,” “Add to Cart,” “Proceed to Checkout,” and
“Confirm Order.” Each of these sub-processes represents a specific task or activity
that is required to complete the overall process of online shopping.
Application which contains collection of classes are dependent on event rather than data,
produce control information rather than reports or displays.
Guidelines for control flow model
List all process(bubbles) that are performed by the software (alarm / telephone)
List all the interrupt conditions.
List all data conditions.
List all activities that are performed by operator or actor
Describe the behaviour of a system by identifying its states.
• By reviewing the state diagram, a software engineer can determine the behaviour of the system
and can discover whether there are “holes” in specified behaviour.
It includes narrative text, a program design language(PDL) description of the process algorithm,
mathematical equations, table, diagrams or charts.
When you make use of PSEPC , for each bubbles refined with in the flow model, this makes a list
of “ mini specification” , i.e list of activities embedded in the software these mini specification
acts as a guide for designing the software components, intern going to implement the process.