Software Engineering Notes - 2 - 1713171960276
Software Engineering Notes - 2 - 1713171960276
stakeholders for a software system. In this article, we’ll learn about it’s
A systematic and strict approach to the definition, creation and verification of requirements for a
software system is known as requirements engineering. In order to guarantee the effective creation
of a software product, the requirements engineering process entails a number of tasks that help in
The requirements engineering process is an iterative process that involves several steps, including:
Requirements Elicitation
This is the process of gathering information about the needs and expectations of stakeholders for
the software system. This step involves interviews, surveys, focus groups, and other techniques to
Requirements Analysis
This step involves analyzing the information gathered in the requirements
elicitation step to identify the high-level goals and objectives of the software
system. It also involves identifying any constraints or limitations that may
affect the development of the software system.
Requirements Specification
This step involves documenting the requirements identified in the analysis
step in a clear, consistent, and unambiguous manner. This step also involves
prioritizing and grouping the requirements into manageable chunks.
Requirements Validation
This step involves checking that the requirements are complete, consistent,
and accurate. It also involves checking that the requirements are testable and
that they meet the needs and expectations of stakeholders.
Requirements Management
This step involves managing the requirements throughout the software
development life cycle, including tracking and controlling changes, and
ensuring that the requirements are still valid and relevant
Requirement Engineering is the process of defining, documenting and
requirements define the results and qualities the user wants; system requirements define
what the system must do to achieve this. User requirements are owned by the users,
demands as basic facilities that the system should offer. It can be a calculation, data
It places constraints on “How should the software system fulfill the functional
It specifies “What should the software system do?”
requirements?”
Helps you verify the functionality of the software. Helps you to verify the performance of the software.
Functional Testing like System, Integration, End to End, API testing, etc are Non-Functional Testing like Performance, Stress, Usability, Security testing,
done. etc are done.
Example
Example
1) Emails should be sent with a latency of no greater than 12 hours from such
1) Authentication of user whenever he/she logs into the system.
an activity.
2) System shutdown in case of a cyber attack.
2) The processing of each request should be done within 10 seconds
3) A Verification email is sent to user whenever he/she registers for the first
3) The site should load in 3 seconds when the number of simultaneous users
time on some software system.
are > 10000
Software Requirements Specification
(SRS)
what the software will do and how it will be expected to perform. It also
describes the functionality the product needs to fulfill the needs of all
stated in the SRS. SRS is said to be perfect if it covers all the needs that are
(b) One condition may state that all lights shall be green while another states
that all lights shall be blue.
4. Unambiguousness: SRS is unambiguous when every fixed requirement has
alternatives for the final system. More specifically, the SRS should not contain any
implementation details.
domain but might not be trained in computer science. Hence, the purpose of formal
notations and symbols should be avoided too as much extent as possible. The language
12. The right level of abstraction: If the SRS is written for the requirements stage, the
details should be explained explicitly. Whereas,for a feasibility study, fewer analysis can
be used. Hence, the level of abstraction modifies according to the objective of the SRS.
Software Requirements Specification
(SRS): The software requirements
The process to gather the software requirements from client, analyze and
Feasibility Study
Requirement Gathering
SRS is a document created by system analyst after the requirements are collected from
various stakeholders.
SRS defines how the intended software will interact with hardware, external interfaces, speed
Technical requirements are expressed in structured language, which is used inside the
organization.
Defining the scope in an SRS document helps the customer understand the
goals and worth of the software. It also has details about how much it will
cost to create and how long it will take, so that the project’s limits are clear.
2. What are functional requirements in an SRS
document, and why are they important?
work, including how it should react to inputs and make outputs. They help
you figure out what the software needs to do and give you a place to start
It is possible to achieve.
It should be deferred and the reason for it.
It is impossible to achieve and should be dropped off
Requirement validation
Defination
A decision table is a brief visual representation
on given conditions
Event Tables
Event Tables
for identifying and organizing the classes that are relevant to system or product
requirements.
CONTINUE……..
CONTINUE……..
CONTINUE……..
CONTINUE……..
How to Create a CRC Model?
1 Find classes
2.Find responsibilities
3. Define collaborators
4. Define use-cases
Finding Class
Look for anything that interacts with the system, or is part of the system
· Ask yourself “Is there a customer?”
· Follow the money
· Look for reports generated by the system
· Look for any screens used in the system
· Immediately prototype interface and report classes
· Look for the three to five main classes right away
· Create a new card for a class immediately
· Use one or two words to describe the class
· Class names are singular
Finding Responsibilities
· Ask yourself what the class knows
· Ask yourself what the class does
· If you’ve identified a responsibility, ask yourself what class it "belongs" to
· Sometimes get responsibilities that we won’t implement, and that’s OK
· Classes will collaborate to fulfil many of their responsibilities
Defining Collaborators
· Collaboration occurs when a class needs information that it doesn’t have
· Collaboration occurs when a class needs to modify information that it
doesn’t have
· There will always be at least one initiator of any given collaboration
· Sometimes the collaborator does the bulk of the work
· Don’t pass the buck
Task