Unit 2.docx
Unit 2.docx
Unit 2.docx
Verification is checking that the requirements are complete, consistent, and accurate.
It involves reviewing the requirements to ensure that they are clear, testable, and free
of errors and inconsistencies. This can include reviewing the requirements document,
models, and diagrams, and holding meetings and walkthroughs with stakeholders.
Validation is the process of checking that the requirements meet the needs and
expectations of the stakeholders. It involves testing the requirements to ensure that
they are valid and that the software system being developed will meet the needs of the
stakeholders. This can include testing the software system through simulation, testing
with prototypes, and testing with the final version of the software.
5. Requirements Management: Handling changes and closing the requirement phase.
Requirement management is the process of analyzing, documenting, tracking,
prioritizing, and agreeing on the requirement and controlling the communication with
relevant stakeholders. This stage takes care of the changing nature of requirements. It
should be ensured that the SRS is as modifiable as possible to incorporate changes in
requirements specified by the end users at later stages too. Modifying the software as
per requirements in a systematic and controlled manner is an extremely important part
of the requirements engineering process.
Types of Requirements
1. Functional Requirements:
o Definition: Specify what the system should do. They describe the interactions
between the system and its environment, independent of the implementation.
o The functional requirements for a system describe what the system should
do. These requirements depend on the type of software being developed, the
expected users of the software, and the general approach taken by the
organization when writing requirements.
o When expressed as user requirements, functional requirements are usually
described in an abstract way that can be understood by system users.
However, more specific functional system requirements describe the system
functions, its inputs and outputs, exceptions, etc., in detail.
o Functional system requirements vary from general requirements covering what
the system should do to very specific requirements reflecting local ways of
working
or an organization’s existing systems.
o Examples: User login process, data processing logic, and report generation
capabilities.
2. Non-Functional Requirements:
o Definition: Outline the quality attributes or constraints the system must
exhibit. They are not about specific behaviours but how the system performs
under certain conditions or constraints.
o These are basically the quality constraints that the system must satisfy
according to the project contract. Nonfunctional requirements, not related to
the system functionality, rather define how the system should perform The
priority or extent to which these factors are implemented varies from one
project to other. They are also called non-behavioral requirements. They
basically deal with issues like:
o Portability
o Security
o Maintainability
o Reliability
o Scalability
o Performance
o Reusability
o Flexibility
3. Domain Requirements:
Definition: Domain requirements are specific to the domain or industry in which the
software operates. They include terminology, rules, and standards relevant to that
particular domain.
Domain requirements reflect the unique needs and constraints of a particular industry.
They ensure that the software is relevant and compliant with industry-specific regulations
and standards.
Examples:
● Healthcare: The software must comply with HIPAA regulations for handling patient
data.
● Finance: The system should adhere to GAAP standards for financial reporting.
● E-commerce: The software should support various payment gateways like PayPal,
Stripe, and credit cards.
Classifications of Software Requirements
Other common classifications of software requirements can be:
System Requirements:
o Definition: Detailed specifications describing the software system’s functions,
features, and constraints. These can be further divided into software and
hardware requirements.
o are more detailed descriptions of the software system’s functions, services, and
operational constraints.
o The system requirements document (sometimes called a functional
specification) should define exactly what is to be implemented. It may be part
of the contract between the system buyer and the software developers.
o Examples: Hardware specifications (CPU, memory, disk space), software
dependencies (operating systems, middleware), system integrations, and
system behaviors.
User Requirements:
o Definition: Express the needs and desires of the end-users in terms of tasks
they need to perform with the system, often documented in natural language or
through use cases.
o User requirements are statements, in a natural language plus diagrams, of what
services the system is expected to provide to system users.
o User requirements define the results and qualities the user wants.
o A user requirement concerned with security, such as a statement limiting
access to authorized users, may appear to be a nonfunctional requirement.
o Examples: Ability to export data into various formats, user-friendly interfaces
for on-technical users, and custom notification settings.
SRS(Software Requirement Specification)
SRS Template:
1. Correctness:
User review is used to ensure the correctness of requirements stated in the SRS. SRS
is said to be correct if it covers all the requirements that are actually expected from the
system.
2. Completeness:
Completeness of SRS indicates every sense of completion including the numbering of
all the pages, resolving the to be determined parts to as much extent as possible as
well as covering all the functional and non-functional requirements properly.
3. Consistency:
Requirements in SRS are said to be consistent if there are no conflicts between any set
of requirements. Examples of conflict include differences in terminologies used at
separate places, logical conflicts like time period of report generation, etc.
4. Unambiguousness:
A SRS is said to be unambiguous if all the requirements stated have only 1
interpretation. Some of the ways to prevent unambiguousness include the use of
modelling techniques like ER diagrams, proper reviews and buddy checks, etc.
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:
A SRS is verifiable if there exists a specific technique to quantifiably measure the
extent to which every requirement is met by the system. For example, a requirement
starting that the system must be user-friendly is not verifiable and listing such
requirements should be avoided.
8. Traceability:
One should be able to trace a requirement to design component and then to code
segment in the program. Similarly, one should be able to trace a requirement to the
corresponding test cases.
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.
7. Ethnography
Ethnography comes from anthropology, literally means "writing the culture"
• Essentially seeks to explore the human factors and social organization of activities
understand work.
• Studies have shown that work is often richer and more complex than is suggested by
simple models derived from interviews
• Social scientists are trained in observation and work analysis
• Discoveries are made by observation and analysis, workers are not asked to explain
what they do
• Collect what is ordinary/what is it that people do (aim at making the implicit
explicit)
• Study the context of work and watch work being done
Data Dictionary
A data dictionary is an alphabetic list of the names included in the system models. As well as
the name, the dictionary should include an associated description of the named entity and, if
the name represents a composite object, a description of the composition.
• Other information such as the date of creation, the creator and the representation of the
entity may also be included depending on the type of model being developed.
Ex.
Data element- Order
• Release plan
The release plan should include required steps to release the product to customers. It
may involve training for teams, a tie-in with sales and marketing activity, or
something else relevant to the market your product is entering.
• Managing the product
Managing the product involves defining the product’s lifecycle, outlining the
maintenance and upgrade plan, and establishing the product’s support and training
needs. It’s essential to ensure that the product continues to meet the customer’s needs
and expectations throughout its lifecycle and to identify opportunities for
improvement.
Structural English:
Decision Tree:
Decision Table: