Requirement and Domain Analysis
Requirement and Domain Analysis
Introduction to Software
Engineering
INSTRUCTOR
Prof. Dr Rashidah Funke Olanrewaju
Email: [email protected]
2 Requirement Engineering
The process to gather the software requirements from client, analyze and
document them is known as requirement engineering. l The goal of requirement
engineering is to develop and maintain sophisticated and descriptive ‘System
Requirements Specification’ document.
preencoded.png
REQUIREMENT ENGINEERING
1. Software requirement specification (SRS) SRS is a document created by system analyst after the requirements are
collected from various stakeholders. L SRS defines how the intended software will interact with hardware, external
interfaces, speed of operation, response time of system, portability of software across various platforms,
maintainability, speed of recovery after crashing, security, quality, limitations etc.
2. Software requirement validation after requirement specifications are developed, the requirements mentioned in this
document are validated. User might ask for illegal, impractical solution or experts may interpret the requirements
incorrectly. This results in huge increase in cost if not nipped in the bud
3. Software requirement elicitation is a process can be depicted using the following diagram: l requirements gathering
- the developers discuss with the client and end users and know their expectations from the software.
1. organizing requirements - the developers prioritize and arrange the requirements in order of importance, urgency and
convenience.
2. negotiation & discussion - if requirements are ambiguous or there are some conflicts in requirements of various stakeholders, if
they are, it is then negotiated and discussed with stakeholders. Requirements may then be prioritized and reasonably
compromised. The requirements come from various stakeholders. To remove the ambiguity and conflicts, they are discussed for
clarity and correctness. Unrealistic requirements are compromised reasonably.
3. Documentation - all formal & informal, functional and non-functional requirements are documented and made
available for next phase processing
▪ Gathering software requirements is the foundation
of the entire software development project. Hence
they must be clear, correct and well-defined. L
▪ A complete Software Requirement Specifications
must be:
▪ Clear
▪ Correct
Software ▪ Consistent
▪ Coherent
Requirements ▪ Comprehensible
Characteristics ▪ Modifiable
▪ Verifiable
▪ Prioritized
▪ Unambiguous
▪ Traceable
▪ Credible source
Types of Requirements 15
Requirement Categories
Requirement
Categories
17
18
Software Requirement
Specification
SOFTWARE REQUIREMENTS
SPECIFICATION DOCUMENT
1.Complete: the SRS should include all the requirements for the software system, including both
functional and non-functional requirements.
2.Consistent: the SRS should be consistent in its use of terminology and formatting, and should be
free of contradictions.
3.Unambiguous: the SRSshould be clear and specific, and should avoid using vague or imprecise
language.
4.Traceable: the SRS should be traceable to other documents and artifacts, such as use cases and
user stories, to ensure that all requirements are being met.
5.Verifiable: the SRS should be verifiable, which means that the requirements can be tested and
validated to ensure that they are being met.
6. Modifiable: the SRS should be modifiable, so that it can be updated and changed as the
software development process progresses.
7.Prioritized: the SRS should prioritize requirements, so that the most important requirements are
addressed first.
SOFTWARE REQUIREMENTS SPECIFICATION
DOCUMENT…
7. Testable: the SRS should be written in a way that allows the requirements to be tested and
validated.
8.High-level and low-level: the SRS should provide both high-level requirements (such as overall
system objectives) and low-level requirements (such as detailed functional requirements).
9.Relevant: the SRS should be relevant to the software system that is being developed, and should
not include unnecessary or irrelevant information.
10.Human-readable: the SRS should be written in a way that is easy for non-technical stakeholders
to understand and review.
11.Aligned with business goals: the SRS should be aligned with the overall business goals and
objectives of the organization, so that the software system meets the needs of the business.
12.Agile methodologies: agile methodologies, such as scrum and kanban, provide an iterative
approach to requirements capturing and validation, where requirements are captured and
validated in small chunks of functionality and feedback is gathered from the customer.
21
Software Requirement
Validation
Requirements validation These techniques help identify
techniques are essential and fix issues early in the
processes used to ensure that development process,
software requirements are reducing the risk of costly
complete, consistent, and errors later on. By thoroughly
accurately reflect what the validating requirements,
Requirement customer wants. teams can ensure that the final
product meets user needs and
validation expectations.