Se Unit 2
Se Unit 2
Se Unit 2
A functional requirement
A non-functional requirement defines the
defines a system or its
quality attribute of a software system.
component.
Helps you verify the Helps you to verify the performance of the
functionality of the software. software.
1. Correctness:
Provide accurate functional and non-functional requirements as discussed with client
2. Completeness:
Should complete all essential features like functionality, performance, features ,
design, constraints and external interfaces.
3. Consistency:
Same abbreviation, tabular format, diagram format, naming format follow.
4. Unambiguousness:
should not be confusion regarding understanding of the requirements. Everything
mention uniquely and clearly
5. Ranking for importance and stability:
There should a criterion to classify the requirements as less or more important or more
specifically as desirable or essential. An identifier mark can be used with every
requirement to indicate its rank or stability.
6. Modifiability:
SRS should be made as modifiable as possible and should be capable of easily
accepting changes to the system to some extent. Modifications should be properly
indexed and cross-referenced.
7. Verifiability:
The requirements are verified with the help of reviewers and stake holders
8. Traceability:
Every requirement having unique number that is easy to use in future development
9. Design Independence:
There should be an option to choose from multiple design alternatives for the final
system. More specifically, the SRS should not include any implementation details.
10. Testability:
A SRS should be written in such a way that it is easy to generate test cases and test
plans from the document.
11. Understandable by the customer:
The language should be kept easy and clear.
12. Right level of abstraction:
If the SRS is written for the requirements phase, the details should be explained
explicitly. Whereas, for a feasibility study, fewer details can be used. Hence, the level
of abstraction varies according to the purpose of the SRS.
Chapter-2
Requirement engineering process:
Requirements engineering (RE) refers to the process of defining, documenting, and
maintaining requirements in the engineering design process.
The process to gather the software requirements from customer, analyse and
document them is known as requirement engineering
Requirement Engineering Process
It is a four-step process, which includes -
Feasibility Study
1. Requirement Elicitation and Analysis
2. Software Requirement Specification
3. Software Requirement Validation
4. Software Requirement Management
Feasibility Study:
The objective behind the feasibility study is to create the reasons for developing the software
that is acceptable to users.
To check aim and goal of the customer and organization behind implementation of software.
Types of Feasibility:
1. Technical Feasibility - Technical feasibility evaluates the current technologies, which
are needed to achieve customer requirements within the time and budget.
2. Operational Feasibility - Operational feasibility assesses required software solve
business problems and customer requirements.
3. Economic Feasibility - Economic feasibility decides whether the necessary software can
generate financial profits for an organization.
1. Requirement Elicitation and Analysis:
Requirements elicitation is the process of gathering actual requirements about the
needs and expectations of stakeholders/customer for a software system
Analysis of requirements starts with requirement elicitation. The requirements are analysed to
identify inconsistencies, defects, omission, etc. We describe requirements in terms of
relationships and also resolve conflicts if any.
Techniques of Requirement Elicitation:
Interview: one-to-one conversation with stakeholders to gather information about their needs
and expectations
Survey: These are questionnaire that are distributed to stakeholders to gather information.
Focus groups: small groups of stakeholders who are brought together to discuss their needs
Observation: Observing the stakeholders in their work environment to gather information
Prototyping: Creating a work model of the software system, which can be used to gather
feedback from customers an to validate requirements
Problems of Elicitation and Analysis
o Getting all, and only, the right people involved.
o Stakeholders often don't know what they want
o Stakeholders express requirements in their terms.
o Stakeholders may have conflicting requirements.
o Requirement change during the analysis process.
o Organizational and political factors may influence system requirements.
2. Software Requirement Specification:
Software requirement specification is a kind of document which is created by a
software analyst after the requirements collected from the various sources - the requirement
received by the customer written in ordinary language. It is the job of the analyst to write the
requirement in technical language so that they can be understood and beneficial by the
development team.
SRS include ER diagrams, data flow diagrams (DFDs), function decomposition diagrams
(FDDs), data dictionaries, etc.
o Data Flow Diagrams: Data Flow Diagrams (DFDs) are used widely for modeling the
requirements. DFD shows the flow of data through a system. The system may be a
company, an organization, a set of procedures, a computer hardware system, a
software system, or any combination of the preceding. The DFD is also known as a
data flow graph or bubble chart.
o Data Dictionaries: Data Dictionaries are simply repositories to store information
about all data items defined in DFDs. At the requirements stage, the data dictionary
should at least define customer data items, to ensure that the customer and developers
use the same definition and terminologies.
o Entity-Relationship Diagrams: Another tool for requirement specification is the
entity-relationship diagram, often called an "E-R diagram." It is a detailed logical
representation of the data for the organization and uses three main constructs i.e. data
entities, relationships, and their associated attributes.
3. Software Requirement Validation:
After Software requirement specifications (SRS) developed, the requirements
discussed in this document are validated or tested.
Requirements reviews taken by the customer, After developing prototyping check
with customer and test case generation.
Requirements can be the check against the following conditions -
o If they can practically implement
o If they are correct and as per the functionality and specially of software
o If there are any ambiguities
o If they are full
o If they can describe
Requirements Validation Techniques
o Requirements reviews/inspections: systematic manual analysis of the requirements.
o Prototyping: Using an executable model of the system to check requirements.
o Test-case generation: Developing tests for requirements to check testability.
o Automated consistency analysis: checking for the consistency of structured
requirements descriptions.
4. Software Requirement Management:
Requirement management is the process of managing changing requirements during the
requirements engineering process and system development.
Activities in Requirement Management:
Tracking and controlling changes: Handling changing requirements from the customer.
Version control: Keeping track of different version of system
Traceability: Trace to software is design, develop or test as per requirements or not
Communication: If changing requirements has any issues contact with clients within time
Monitoring and reporting: Monitoring development process and report the status
Figure – transition
3. State – We use a rounded rectangle to represent a state. A state represents the conditions
or circumstances of an object of a class at an instant of time.
Start Idle
Start
Waiting First Call ends Connected
Call ends
Stop
Activity diagram
Activity diagram is basically a flowchart to represent the flow from one activity to another
activity. The activity can be described as an operation of the system.
An activity diagram visually presents a series of actions or flow of control in a system
similar to a flowchart or a data flow diagram. Activity diagrams are often used in business
process modeling. They can also describe the steps in a use case diagram. Activities modeled
can be sequential and concurrent. In both cases an activity diagram will have a beginning (an
initial state) and an end (a final state).
Basic Activity Diagram Notations and Symbols
Initial State or Start Point
A small filled circle followed by an arrow represents the initial action state or the start point
for any activity diagram. For activity diagram using swimlanes, make sure the start point is
placed in the top left corner of the first column.
Action Flow
Action flows, also called edges and paths, illustrate the transitions from one action state to
another. They are usually drawn with an arrowed line.
Decisions and Branching
A diamond represents a decision with alternate paths. When an activity requires a decision
prior to moving on to the next activity, add a diamond between the two activities. The
outgoing alternates should be labeled with a condition or guard expression. You can also
label one of the paths "else."
Guards
In UML, guards are a statement written next to a decision diamond that must be true before
moving next to the next activity. These are not essential, but are useful when a specific
answer, such as "Yes, three labels are printed," is needed before moving forward.
Start
valid check
Prompt for
Invalid Re-Entry
Enter user
Acct.No.
End
check1
Main Menu
valid
Invalid
Re-Enter
Acct.No.
Select Money
Transfer
Enter Dest.
Acct.No
Invalid
checking
Enter Amt.to
valid Transfer
Activity
Start
valid check
Prompt for
Invalid Re-Entry
Enter Acct.No.
End
check1
Main Menu
valid
Invalid
Re-Enter
Acct.No.
Select Balance
Enquiry
Use-case diagrams
Use-case diagrams describe the high-level functions and scope of a system. These
diagrams also identify the interactions between the system and its actors. The use cases
and actors in use-case diagrams describe what the system does and how the actors use it, but
not how the system operates internally.
`
UML use case diagrams are ideal for:
Representing the goals of system-user interactions
Defining and organizing functional requirements in a system
Specifying the context and requirements of a system
Modeling the basic flow of events in a use case
Data Model:
Data Flow Diagram
In software engineering, a data flow diagram (DFD) is a visual representation of the flow of
data within a system. It allows developers to understand the system at a high level and plan
changes or improvements.
What is a Data Flow Diagram?
.
DFD is graphical representation which provides information flow and transformation
between input, processed and output
DFD shows the movement of data through different transformation on process in the system
It is also known as bubble chart / data flow graph
Components/Notations of Data Flow Diagrams
Process
A function that transforms data from input to output.
Data Store
A repository of data that persists over time.
External Entity
Represents a source or destination of data outside the scope of the system.
Data Flow
The movement of data from one component to another.