Se Unit II Notes
Se Unit II Notes
Software Requirements:
Functional and non-functional requirements, User
requirements, System requirements, Interface specification,
the software requirements document.
SOFTWARE REQUIREMENTS
Requirements abstraction:
• If a company wishes to let a contract for a large software development
project, it must define its needs in a sufficiently abstract way that a
solution is not pre-defined.
• The requirements must be written so that several contractors can bid for
the contract, offering, perhaps, different ways of meeting the client
organisation’s needs.
• Once a contract has been awarded, the contractor must write a system
definition for the client in more detail so that the client understands and
can validate what the software will do.
• Both of these documents may be called the requirements document for
the system.”
Types of requirements:
• User requirements
1. Statements in natural language plus diagrams of the services the system
provides and its operational constraints.
2. Written for customers.
• System requirements
1. A structured document setting out detailed descriptions of the system’s
functions, services and operational constraints.
2. Defines what should be implemented so may be part of a contract
between client and contractor.
Functional requirements
• Statements of services the system should provide how the system should react
to particular inputs and how the system should behave in particular situations
Non-functional requirements
• Constraints on the services or functions offered by the system such as timing
constraints, constraints on the development process, standards, etc.
Domain requirements
• Requirements that come from the application domain of the system and that
reflect characteristics of that domain.
FUNCTIONAL REQUIREMENTS
• Describe functionality or system services.
• Depend on the type of software, expected users and the type of system where
the software is used.
• Functional user requirements may be high-level statements of what the system
should do but functional system requirements should describe the system
services in detail.
The functional requirements for The LIBSYS system:
• A library system that provides a single interface to a number of databases of
articles indifferent libraries.
• Examples of functional requirements
Users can search for, download and print these articles for personal study.
• The user shall be able to search either all of the initial set of databases or
select a subset from it.
• The system shall provide appropriate viewers for the user to read documents
in the document store.
• Every order shall be allocated a unique identifier (ORDER_ID) which the user
shall be able to copy to the account’s permanent storage area.
Requirements imprecision
• Problems arise when requirements are not precisely stated.
• Ambiguous requirements may be interpreted in different ways by developers
and users.
• Consider the term ‘appropriate viewers’
1. User intention - special purpose viewer for each different document type;
2. Developer interpretation - Provide a text viewer that shows the contents
of the document.
Requirements completeness and consistency:
In principle, requirements should be both complete and consistent. Complete
• They should include descriptions of all facilities required. Consistent
• There should be no conflicts or contradictions in the descriptions of the
system facilities. In practice, it is impossible to produce a complete and
consistent requirements document.
1. User Authentication:
o The system must allow users to log in using a username and
password.
o After successful login, the user should be redirected to the
homepage.
2. Search Functionality:
o The system should allow users to search for products by entering
keywords in the search bar.
o The search results should display relevant products sorted by
relevance.
3. Order Processing:
o The system must allow users to place an order by selecting items,
adding them to the shopping cart, and completing the checkout
process.
o The system should send email confirmation after order is placed
NON-FUNCTIONAL REQUIREMENTS
• These define system properties and constraints e.g. reliability, response
time and storage requirements.
• Constraints are I/O device capability, system representations, etc.
• Process requirements may also be specified mandating a particular CASE
system, programming language or development method.
• Non-functional requirements may be more critical than functional
requirements. If these are not met, the system is useless.
Non-functional requirements:
Product requirements
• Requirements which specify that the delivered product must behave in a
particular way e.g. execution speed, reliability, etc.
E.g.: The user interface for LIBSYS shall be implemented as simple HTML
without frames or Java applets.
Organizational requirements
• Requirements which are a consequence of organizational policies and
procedures.
process standards used, implementation requirements, etc.
• E.g.: The system development process and deliverable documents shall
conform to the process and deliverables defined in XYZCo-SP-STAN-95.
External requirements
• Requirements which arise from factors which are external to the system and
its development process e.g. interoperability requirements, legislative
requirements, etc.
• E.g.: The system shall not disclose any personal information about customers
apart from their name and reference number to the operators of the system.
Requirements interaction:
• Conflicts between different non-functional requirements are common in
complex systems.
• Spacecraft system
1. To minimize weight, the number of separate chips in the system should
be minimized.
2. To minimize power consumption, lower power chips should be used.
• However, using low power chips may mean that more chips have to be
used. Which is the most critical requirement?
• A common problem with non-functional requirements is that they can be
difficult to verify.
• Users or customers often state these requirements as general goals such as
ease of use, the ability of the system to recover from failure or rapid user
response.
• These vague goals cause problems for system developers as they leave
scope for interpretation and subsequent dispute once the system is
delivered.
DOMAIN REQUIREMENTS
• Derived from the application domain and describe system characteristics and
features that reflect the domain.
• Domain requirements be new functional requirements, constraints on existing
requirements or define specific computations.
• If domain requirements are not satisfied, the system may be unworkable.
USER REQUIREMENTS
• Should describe functional and non-functional requirements in such a way that
they are understandable by system users who don’t have detailed technical
knowledge.
• User requirements are defined using natural language, tables and diagrams as
these can be understood by all users.
Problems with natural language
Lack of clarity
• Precision is difficult without making the document difficult to read.
Requirements confusion
• Functional and non-functional requirements tend to be mixed-up.
Requirements amalgamation
• Several different requirements may be expressed together.
Requirement problems
Database requirements includes both conceptual and detailed information
• Describes the concept of a financial accounting system that is to be included in
LIBSYS;
• However, it also includes the detail that managers can configure this system -
this is unnecessary at this level.
SYSTEM REQUIREMENTS
More detailed specifications of system functions, services and constraints than
user requirements.
• They are intended to be a basis for designing the system.
• They may be incorporated into the system contract.
• System requirements may be defined or illustrated using system models
Requirements and design
Requirements should state what the system should do and the design should
describe how it does this.
In practice, requirements and design are inseparable
• A system architecture may be designed to structure the requirements
• The system may inter-operate with other systems that generate design
requirements
• The use of a specific design may be a domain requirement.
4) INTERFACE SPECIFICATION
• Most systems must operate with other systems and the operating interfaces
must be specified as part of the requirements.
• Three types of interfaces may have to be defined
• Procedural interfaces where existing programs or sub-systems offer a range of
services that are accessed by calling interface procedures. These interfaces are
sometimes called Application Programming Interfaces (APIs)
• Data structures that are exchanged that are passed from one sub-system to
another. Graphical data models are the best notations for this type of description
• Data representations that have been established for an existing sub-system
• Formal notations are an effective technique for interface specification
THE SOFTWARE REQUIREMENTS DOCUMENT
• The requirements document is the official statement of what is required of the
system developers.
• Should include both a definition of user requirements and a specification of
the system requirements.
• It is NOT a design document. As far as possible, it should set of WHAT the
system should do rather than HOW it should do it
• The constraints and assumption section will underline the lack of any
design imposed by the client on the system design, resulting in removing
some options from being considered by the developers.
• This section also comprises assumptions which are made by the team of
requirement engineering at the time of requirements gathering and
analysis.
• If there is an incorrect assumption, it is needed to re-evaluate the system
requirements specification in order to ensure that the documented
requirements are still valid.
4) Business Drivers
• This part depicts the reasons why the client is hoping to build the system.
• The new system's rationale is significant because it will manage the
choices made by business experts, engineers, and system architects.
• Documentation that absolutely recognizes the business explanations for
the system will help to continue support the project if the original sponsor
proceeds onward.
• The drivers may comprise issues as well as opportunities. Generally, a
mix of issues and opportunities are required to give inspiration to a new
system.
5) System Qualities
• The system qualities are the non-functional requirements which are used
to define the system's quality.
• These qualities are frequently known as "ilities," and the reason behind that
is many of these qualities end with "ility".
• They are comprised of items like availability, maintainability, security,
reliability, and scalability.
• Unlike functional requirements, the quality of the system generally
contains tables of particular metrics that the system should meet to be
acknowledged.
6) Business Models
• This part portrays the fundamental business model of the client that the
system will require to support.
• This contains current-state, future-state and organizational context state
diagrams, key business functions, business context and process flow
diagrams.
• This part is generally made during the functional analysis phase.
7) Acceptance Criteria
• This part will portray the measures by which the client will "sign-off" the
final system.
• Based on the procedure, this may occur toward the end of the testing and
quality assurance stage, or in agile methodology, toward the finish of every
iteration.
• Usually, this measure refers to the requirement in order to complete all user
acceptance tests and fix all bugs/defects which meet a pre-defined priority
or severity limits.
8) Business and System Use Cases
• This segment ordinarily comprises a UML use case diagram, which
shows the main external entities that will collaborate with the system
along with diverse use cases that should be met.
• There will be a formal definition of the steps for every use case which is
required to fulfil the purpose of the business, along with the essential pre-
conditions and post-conditions.
Requirements engineering:
• The requirements engineering process presents the process as a three-
stage activity where the activities are organized as an iterative process
around a spiral.
• The amount of time and effort devoted to each activity in iteration
depends on the stage of the overall process and the type of system being
developed.
• Early in the process, most effort will be spent on understanding high-level
business and nonfunctional requirements and the user requirements.
• Later in the process, in the outer rings of the spiral, more effort will be
devoted to system requirements engineering and system modeling.
• Some people consider requirements engineering to be the process of
applying a structured analysis method such as object-oriented analysis.
This involves analysing the system and developing a set of graphical
system models, such as use-case models, that then serve as a system
specification.
Stages in Software Engineering Process
Requirements engineering is a critical process in software engineering that
involves identifying, analysing, documenting, and managing the requirements
of a software system.
The requirements engineering process consists of the following stages:
• Elicitation: In this stage, the requirements are gathered from various
stakeholders such as customers, users, and domain experts. The aim is to
identify the features and functionalities that the software system should
provide.
• Analysis: In this stage, the requirements are analyzed to determine their
feasibility, consistency, and completeness. The aim is to identify any
conflicts or contradictions in the requirements and resolve them.
• Specification: In this stage, the requirements are documented in a clear,
concise, and unambiguous manner. The aim is to provide a detailed
description of the requirements that can be understood by all stakeholders.
REQUIREMENTS DISCOVERY:
• Requirement discovery is the process of gathering information about the
proposed and existing systems and distilling the user and system requirements
from this information.
• Sources of information include documentation, system stakeholders and the
specifications of similar systems.
• They interact with stakeholders through interview and observation and may
use scenarios and prototypes to help with the requirements discovery
For example,
system stakeholder for a bank ATM includes
1. Bank customers
2. Representatives of other banks
3. Bank managers
4. Counter staff
5. Database administrators
6. Security managers
7. Marketing department
8. Hardware and software maintenance engineers
9. Banking regulators
REQUIREMENTS VALIDATION
• Concerned with demonstrating that the requirements define the system that
the customer really wants.
• Requirements error costs are high so validation is very important – Fixing a
requirements error after delivery may cost up to 100 times the cost of fixing an
implementation error.
Requirements checking:
• Validity: Does the system provide the functions which best support the
customer’s needs?
• Consistency: Are there any requirements conflicts?
• Completeness: Are all functions required by the customer included?
• Realism: Can the requirements be implemented given available budget and
technology
• Verifiability: Can the requirements be checked?
Review checks:
• Verifiability: Is the requirement realistically testable?
• Comprehensibility: Is the requirement properly understood?
• Traceability: Is the origin of the requirement clearly stated?
• Adaptability: Can the requirement be changed without a large impact on other
requirements?
REQUIREMENTS MANAGEMENT
• Requirements management is the process of managing changing requirements
during the requirements engineering process and system development.
• Requirements are inevitably incomplete and inconsistent-
– New requirements emerge during the process as business needs change and a
better understanding of the system is developed;
– Different viewpoints have different requirements and these are often
contradictory.
Requirements change
• The priority of requirements from different viewpoints changes during the
development process.
• System customers may specify requirements from a business perspective that
conflict with end-user requirements.
• The business and technical environment of the system changes during its
development.
Fig-Requirements evolution
Requirements management planning:
• During the requirements engineering process, you have to plan: –
✓ Requirements identification –
How requirements are individually identified
✓ A change management process
The process followed when analysing requirements change
✓ Traceability policies
The amount of information about requirements relationships that is maintained
✓ CASE tool support
The tool support required to help manage requirements change;
Model types
Data processing model shows how the data is processed at different stages.
• Composition model shows how entities are composed of other entities.
• Architectural model showing principal sub-systems.
• Classification model shows how entities have common characteristics.
• Stimulus/response model showing the system’s reaction to events.
1. CONTEXT MODELS:
•Context models are used to illustrate the operational context of a system - they
show what lies outside the system boundaries.
•Social and organisational concerns may affect the decision on where to
position system boundaries.
• Architectural models show the system and its relationship with other systems.
Process models:
• Process models show the overall process and the processes that are supported
by the system.
• Data flow models may be used to show the processes and the flow of
information from one process to another.
2. BEHAVIOURAL MODELS:
• Behavioural models are used to describe the overall behaviour of a
system.
• These models show different perspectives so both of them are
required to describe the system’s behaviour
• Two types of behavioural model are:
✓ Data processing models that show how data is processed as
it moves through the system;
✓ State machine models that show the systems response to
events.
4. OBJECT MODELS:
• Object models describe the system in terms of object classes and their
associations.
• An object class is an abstraction over a set of objects with common attributes
and the services provided by each object.
• Various object models may be produced
✓ Inheritance models
✓ Aggregation models
✓ Interaction models.
• Natural ways of reflecting the real-world entities manipulated by the system
• More abstract entities are more difficult to model using this approach
• Object class identification is recognised as a difficult process requiring a deep
understanding of the application domain
Advantages of Requirements Engineering Process
• Helps ensure that the software being developed meets the needs and
expectations of the stakeholders
• Help identify potential issues or problems early in the development
process, allowing for adjustments to be made before significant
• Helps ensure that the software is developed in a cost-effective and
efficient manner
• Can improve communication and collaboration between the development
team and stakeholders
• Helps to ensure that the software system meets the needs of all
stakeholders.
• Provides an unambiguous description of the requirements, which helps to
reduce misunderstandings and errors.
• Helps to identify potential conflicts and contradictions in the
requirements, which can be resolved before the software development
process begins.
• Helps to ensure that the software system is delivered on time, within
budget, and to the required quality standards.
• Provides a solid foundation for the development process, which helps to
reduce the risk of failure.