Professional Documents
Culture Documents
CSE_2014 SE MODULE 2 V1
CSE_2014 SE MODULE 2 V1
CSE_2014 SE MODULE 2 V1
(CSE 2014)
Requirements Engineering:
1. Eliciting requirements
2. Functional and non- Functional requirements
3. Software Requirements Specification (SRS)
4. Requirement Analysis and validation.
Introduction
• The requirements of a system are the descriptions of the features or services that the
system exhibits within the specified constraints.
• The requirements collected from the customer are organized in some systematic
manner and presented in the formal document called software requirements
specification (SRS) document.
• The process of establishing the services that the customer requires from a
process.
Software Requirements
• A requirement is a detailed, formal description of system functionalities. It specifies a
function that a system or component must be able to perform for customer satisfaction.
1. Functional Requirements
• These are the requirements that the end user
specifically demands as basic facilities that
the system should offer.
• All these functionalities need to be
necessarily incorporated into the system as a
part of the contract.
TYPES OF REQUIREMENTS
• performance
• usability
• scalability
• security
• portability
An example nonfunctional requirement related
to performance and UX could state:
TYPES OF REQUIREMENTS
• It is important to learn:
•Requirements analysis and
specification techniques carefully.
Requirements Analysis and
Specification
• Goals of requirements analysis and
specification phase:
• Fully understand the user requirements.
• Remove inconsistencies, anomalies, etc. from
requirements.
• Document requirements properly in an SRS
document.
Requirements Analysis and
Specification
• Consists of two distinct activities:
• Requirements Gathering and
Analysis
• Specification
Who Carries Out Requirements
Analysis and Specification?
• The person who undertakes requirements
analysis and specification:
• Known as systems analyst:
• Collects data pertaining to the product
• Analyzes collected data:
• To understand what exactly needs to be done.
• Writes the Software Requirements Specification
(SRS) document.
Requirements Analysis and
Specification
• Final output of this phase:
• Software Requirements Specification (SRS)
Document.
• The SRS document is reviewed by the customer.
• Reviewed SRS document forms the basis of all
future development activities.
Requirements Analysis
• It provides basis for later stages of software development, viz., design, coding, testing,
standard compliances, delivery, and maintenance.
• It acts as the reference document for the validation and verification of the work products
and final software.
• It is treated as an agreement on the features incorporated in the final system of project
between customer and the supplier.
• A good quality SRS ensures high quality software product.
• A high quality SRS reduces development effort (schedule, cost, and resources) because
unclear requirements always lead to unsuccessful projects.
Characteristics of a good SRS
3. Functional Requirements:
In this, possible outcome of software system which includes
effects due to operation of program is fully explained. All
functional requirements which may include calculations,
data processing, etc. are placed in a ranked order.
Software Requirement Specification
(SRS) Format
4. Interface Requirements:
5. Performance Requirements:
7. Non-Functional Attributes :
In this, non-functional attributes are explained that are required
by software system for better performance. An example may
include Security, Portability, Reliability, Reusability, Application
compatibility, Data integrity, Scalability capacity, etc.
Software Requirement Specification
(SRS) Format
8. Preliminary Schedule and Budget :
9. Appendices :
Is each requirement consistent with the overall objective for the system/product?
Have all requirements been specified at the proper level of abstraction? That is,
do some requirements provide a level of technical detail that is inappropriate at
this stage?
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?
Does each requirement have attribution? That is, is a source (generally, a
specific individual) noted for each requirement?
Do any requirements conflict with other requirements?
Requirements Validation
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.
Have requirements patterns been used to simplify the
requirements model. Have all patterns been properly validated?
Are all patterns consistent with customer requirements?
Requirements Modelling
• Requirements modelling uses a combination
of diagrams and text to depict requirements in
a way that is easier to understand.
• It is required to validate the software
requirements because through modelling we
can examine the system from various
perspectives.
Requirements Modelling
• USE CASE DIAGRAM:
• UML, short for Unified Modeling Language, is a
standardized modeling language consisting of an
integrated set of diagrams, developed to help
system and software developers for specifying,
visualizing, constructing, and documenting the
artifacts of software systems, as well as for
business modeling and other non-software
systems.
Requirements Modelling
• USE CASE DIAGRAM:
It is a behavior diagram show the dynamic behavior of
the objects in a system, which can be described as a series
of changes to the system over time.
A use-case model describes a system's functional
requirements in terms of use cases. It is a model of the
system's intended functionality (use cases) and its
environment (actors). Use cases enable you to relate what
you need from a system to how the system delivers on
those needs.
Requirements Modelling
• USE CASE DIAGRAM:
A use case diagram doesn't go into a lot of detail
—for example, don't expect it to model the
order in which steps are performed. Instead, a
proper use case diagram depicts a high-level
overview of the relationship between use cases,
actors, and systems.
Requirements Modelling
• Use case diagram components
• System :
• Actor
Actors are basically users of the SUD who are external entities (people or other
systems) who interact with the SUD to achieve a desired goal. Actors are represented as
stick figures.
Types of Actors:
• Primary Actor
The Actor(s) using the system to achieve a goal.
• Secondary Actor
Actors that the system needs assistance from to achieve the primary actors goal.
• Use Case
A use case is a collection of possible sequences of interactions between the SUD and its
Actors, relating to a particular goal. The collection of Use Cases should define all
system behavior relevant to the actors to assure them that their goals will be carried out
properly.
A use case is drawn as a horizontal ellipse.
Requirements Modelling
• Use case diagram components
Use Cases:
• Hold Functional Requirements in an easy to read, easy to track text format.
• Represents the goal of an interaction between an actor and the system. The
goal represents a meaningful and measurable objective for the actor.
• Records a set of paths (scenarios) that traverse an actor from a trigger event
(start of the use case) to the goal (success scenarios).
• Records a set of scenarios that traverse an actor from a trigger event toward a
goal but fall short of the goal (failure scenarios).
• Are multi-level: one use case can use/extend the functionality of another.
• Use Case Names Begin With a Strong Verb
• Use Cases are named using the domain terminologies
Requirements Modelling
•Use case diagram components
Use Cases Do Not…
• Specify user interface design. They specify the intent, not
the action detail
Mock up screens/ Prototype may be included depicting
the functionality
• Specify implementation detail (unless it is of particular
importance to the actor to be assured that the goal is
properly met)
Requirements Modelling
• Use case diagram components
• Use Case Relationships (Associations)
Associations between actors and use cases are indicated in use case
diagrams by solid lines. An association exists whenever an actor is
involved with an interaction described by a use case.
There are several types of relationships that may appear on a use
case diagram:
• An association between an actor and a use case
• An association between two use cases
• A generalization between two actors
• A generalization between two use cases
Requirements Modelling
• Use case diagram components
• Includes Relationship
"X includes Y" indicates that the task "X" has a subtask "Y"; that is,
in the process of completing task "X", task "Y" will be completed at
least once.
• Extends Relationship
"X extends Y" indicates that "X" is a task of the same type as "Y",
but "X" is a special, more specific case of doing "Y". That is, doing X is
a lot like doing Y, but X has a few extra processes to it that go above
and beyond the things that must be done in order to complete Y.
Requirements Modelling
Association
Use Case 1 <<include>> Use Case 3
relationship
Generalization
Actor
Use Case 2 <<extend>> Use Case 4
Use Case Diagram
Airline Reservation System
Reservation System
Add Reservation
Cancel Reservation
Ticket Clerk
Check-in Passenger <<include>> Weigh Luggage
<<include>>
<<extend>>
Connector
Activity Diagrams
Activity Diagrams
Swimlane Diagrams
UML has no specific Swimlane diagram.
It is a special case under Activity diagram.
Swimlane diagram is also graphical representation of
the System. Swimlane diagrams are also known as the
Rummler-Brache diagram or a cross-functional
diagram. Swimlanes are sometimes called functional
bands.
It simply describes who is responsible for the
activities being performed in the activity diagram and
how they are responsible.
Swimlane Diagrams
Symbols used in Swimlane Diagram :
“Parallel Segment” is the extra symbol in
swimlane diagram along with all symbols of
Activity Diagram.
Responsibilities are represented as “Parallel
Segments” that divide the diagram vertically ,
like the lanes in a swimming pool hence the
name “swimlane”.
Swimlane Diagrams
Swimlane Diagrams
Swimlane Diagrams
CASE
1. CASE support in Software Life Cycle
2. Characteristics of CASE Tools
3. Architecture of a CASE Environment.
CASE support in Software Life Cycle
Computer aided software engineering
(CASE) is the implementation of computer
facilitated tools and methods in software
development. CASE is used to ensure a high-
quality and defect-free software. CASE
ensures a check-pointed and disciplined
approach and helps designers, developers,
testers, managers and others to see the project
milestones during development.
CASE support in Software Life Cycle
CASE can also help as a warehouse for
documents related to projects, like business
plans, requirements and design specifications.
One of the major advantages of using CASE is
the delivery of the final product, which is more
likely to meet real-world requirements as it
ensures that customers remain part of the
process.
CASE support in Software Life Cycle
CASE can also help as a warehouse for
documents related to projects, like business
plans, requirements and design specifications.
One of the major advantages of using CASE is
the delivery of the final product, which is more
likely to meet real-world requirements as it
ensures that customers remain part of the
process.
CASE support in Software Life Cycle
CASE illustrates a wide set of labor-saving
tools that are used in software development.
It generates a framework for organizing
projects and to be helpful in enhancing
productivity.
CASE tools
The essential idea of CASE tools is that in-
built programs can help to analyze developing
systems in order to enhance quality and
provide better outcomes. Throughout the 1990,
CASE tool became part of the software
lexicon, and big companies like IBM were
using these kinds of tools to help create
software.
CASE tools Diagramming Tools
Helps in diagrammatic and graphical
representations of the data and system
processes.
Represents system elements, control flow and
data flow among different software
components and system structure in a pictorial
form.
For example, Flow Chart Maker tool for
making state-of-the-art flowcharts.
CASE tools Computer Display and
Report Generators
Helps in understanding the data requirements
and the relationships involved.
CASE tools Analysis Tools
Focuses on inconsistent, incorrect specifications
involved in the diagram and data flow.
Helps in collecting requirements, automatically check
for any irregularity, imprecision in the diagrams, data
redundancies or erroneous omissions.
For example,
(i) Accept 360, Accompa, CaseComplete for
requirement analysis.
(ii) Visible Analyst for total analysis.
CASE tools Central Repository
Provides the single point of storage for data diagrams,
reports and documents related to project
management.
CASE tools Documentation Generators
Helps in generating user and technical documentation
as per standards.
Creates documents for technical users and end users.
• Chances to meet real-world requirements are more likely and easier with
a computer-aided software engineering approach.
A design should lead to data structures that are appropriate for the
classes to be implemented and are drawn from recognizable data patterns.
Quality Guidelines
A design should lead to components that exhibit independent
functional characteristics.
Data-centered architectures
Data flow architectures
Call and return architectures
Layered architectures
Easy to learn?
Easy to use?
Easy to understand?
lack of consistency
too much memorization
no guidance / help
no context sensitivity
poor response
unfriendly
Your user must see the path in his action, by offering him
the end of an interaction through feedback you reduce his
mental load and improve his experience on your interface.
Before designing any solution, you need to know what actually you have
to design. In this framework, you have to study the user’s profile who will
use this interface.
The designer must also analyze the environment where the user will
interact with the system via an interface.
Interface Design
The designer also has to define the events that would change the
state of the user interface. Further, the designer has to outline each
state of the user interface as it would appear to the end-user.
150
Cohesion
Cohesion is an indication of the relative functional strength of a module.
Lethbridge and Laganiére [Let01] define a number of different types of
cohesion
Functional. Exhibited primarily by operations, this level of cohesion
occurs when a component performs a
targeted computation and then returns a result.
Layer. Exhibited by packages, components, and classes, this type of
cohesion occurs when a higher layer
accesses the services of a lower layer, but lower layers do not access
higher layers.
Communicational. All operations that access the same data are defined
within one class. In general, such
classes focus solely on the data in question, accessing and storing it