SE Unit2
SE Unit2
me/jntuh
Software Requirements
Software requirements are essential to:
What is a Requirement?
A requirement for the system entails the description of the services provided by the
system and its operational constraints. It can range from a high-level abstract
statement of a service or system constraint to a detailed mathematical functional
specification. Requirements may serve a dual function:
The basis for a bid for a contract, thus must be open to interpretation.
The basis for the contract itself, therefore must be defined in detail.
Requirements Engineering
Requirements engineering is the process of finding out, analyzing, documenting,
and checking services and constraints. It involves establishing the services that the
customer requires from a system and the constraints under which it operates and is
developed. The requirements themselves are the descriptions of the system services
and constraints generated during the requirements engineering process.
When letting a contract for a large software development project, a company must
define its needs in an abstract way to allow multiple contractors to bid, offering
Types of Requirement
User Requirements: Statements in natural language plus diagrams of the
services the system provides and its operational constraints, written for
customers.
System Requirements: A structured document outlining detailed descriptions
of the system's functions, services, and operational constraints. It defines what
should be implemented and may be part of a contract between the client and
contractor.
Requirements Readers
Functional and Non-functional Requirements
Functional Requirements
Functional requirements describe the functionality or system services, depending on
the type of software, expected users, and the system's type of use. While functional
user requirements may be high-level statements of what the system should do,
functional system requirements should provide a detailed description of the system
services.
1. The user shall be able to search either all of the initial set of databases or
select a subset from it.
2. The system shall provide appropriate viewers for the user to read documents
in the document store.
3. 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
User intention: Special purpose viewer for each different document type.
Developer interpretation: Provide a text viewer that shows the contents of the
document.
Non-functional Requirements
Non-functional requirements define system properties and constraints such as
reliability, response time, and storage requirements. These requirements may be
more critical than functional requirements, as the system becomes useless if they
are not met.
Goal: The system should be easy to use by experienced controllers and should
be organized in such a way that user errors are minimized.
Verifiable Non-functional Requirement: Experienced controllers shall be able
to use all system functions after a total of two hours of training. After training,
the average number of errors made by experienced users shall not exceed two
per day.
Requirements Measures
Property Measure
Speed Processed transactions/second, User/Event response time, Screen
Property Measure
refresh time
Size M Bytes, Number of ROM chips
Ease of use Training time, Number of help frames
Reliability Mean time to failure, Probability of unavailability, Rate of failure
occurrence, Availability
Robustness Time to restart after failure, Percentage of events causing failure,
Probability of data corruption on failure
Portability Percentage of target-dependent statements, Number of target
systems
Requirements Interaction
Conflicts between different non-functional requirements are common in complex
systems, as illustrated by the example of a spacecraft system trying to minimize
weight and power consumption simultaneously. Resolving such conflicts is crucial
for successful system development.
User Requirements
User Requirements
User requirements serve as a bridge between system developers and end-users who
may not possess detailed technical knowledge. It is essential to describe both
functional and non-functional requirements in a way that is easily understandable
by users. This involves utilizing natural language, tables, and diagrams to ensure
clarity for all users.
System Requirements
System Requirements
System Requirements
System requirements provide more detailed specifications of system functions,
services, and constraints than user requirements. They serve as the basis for
designing the system and may be incorporated into the system contract. These
requirements can be defined or illustrated using system models.
Alternatives to NL Specification
1. Structured Natural Language Specifications: This approach relies on defining
standard forms or templates to express requirements.
2. Design Description Languages: Using a language resembling a programming
language with more abstract features to define an operational model of the
system.
3. Graphical Notations: Utilizing graphical languages, supplemented by text
annotations, to define functional requirements. Examples include use-case
descriptions and sequence diagrams.
4. Mathematical Specifications: Notations based on mathematical concepts,
such as finite-state machines or sets, providing unambiguous specifications.
However, customers may find formal specifications challenging to understand.
Form-based Specifications
Tabular Specifications
Graphical Models
Interface Specification
Interface Specification
1. Procedural Interfaces
These interfaces involve existing programs or subsystems that provide a set of
services accessible through interface procedures. Such interfaces are commonly
referred to as Application Programming Interfaces (APIs).
2. Data Structures
Interfaces may involve the exchange of data structures between subsystems.
Graphical data models are often the most effective notations for describing this
type of interface.
3. Data Representations
This type of interface specification deals with established data representations for
existing subsystems. Formal notations are highly effective in specifying these
interfaces.
Structure
1. Introduction
2. General Description
Product Perspective: Describes how the software product fits into the broader
context, including dependencies on other systems.
Product Functions: Enumerates the primary functions and features of the
software.
User Characteristics: Details the characteristics of the anticipated users.
General Constraints: Outlines any overarching limitations or constraints.
Assumptions and Dependencies: Specifies any assumptions made during the
requirements analysis and identifies external dependencies.
3. Specific Requirements
4. Appendices
5. Index
1. Feasibility Study
Objective: Assess whether the system is valuable and beneficial to the
business.
3. Specification
Objective: Convert requirements into a standardized form for documentation.
Activities: Clearly articulate and document the requirements, often using
standardized templates and forms. This involves defining functional and non-
functional aspects.
4. Validation
Objective: Ensure that the documented requirements accurately reflect the
system the customer desires.
Activities: Verify the requirements by checking against the customer's needs
and expectations, addressing any discrepancies or ambiguities.
Requirement Management
Objective: Manage changes in requirements throughout the development
process.
Activities: Track, control, and document changes to requirements, ensuring
that the evolving system aligns with the changing needs and priorities.
Feasibility Studies
Feasibility Studies
2. Technological Feasibility:
Evaluate if the system can be engineered using current technology and
within budget constraints.
3. Integration Feasibility:
Determine if the system can be effectively integrated with other existing
systems.
The feasibility study is a focused effort to make informed decisions about the
system's viability, considering organizational objectives, technological feasibility,
and integration requirements. The resulting report guides stakeholders in
determining the next steps in the system development process.
1. Requirements Discovery:
Process Cycle
Requirement Documentation
Requirements Validation
Requirements Validation
Description:
Systematic manual analysis of the requirements.
Involvement:
Both client and contractor staff should participate in reviews.
Types:
Reviews can be formal (with completed documents) or informal.
2. Prototyping
Description:
Using an executable model of the system to validate requirements.
Coverage:
Detailed coverage in Chapter 17.
3. Test-Case Generation
Description:
Developing tests for requirements to assess testability.
Requirements Reviews
www.android.previousquestionpapers.com | www.previousquestionpapers.com | https://telegram.me/jntuh
www.android.universityupdates.in | www.universityupdates.in | https://telegram.me/jntuh
Timing:
Regular reviews during the formulation of requirements are crucial.
Participants:
Involvement of both client and contractor staff.
Formality:
Reviews can be formal (with completed documents) or informal.
Review Checks
1. Verifiability:
Is the requirement realistically testable?
2. Comprehensibility:
Is the requirement clearly understood by all stakeholders?
3. Traceability:
Is the origin of the requirement clearly stated and understood?
4. Adaptability:
Can the requirement be changed without causing significant impacts on
other requirements?
Requirements Management
Requirements Management
Requirements Management
Requirements management is a critical process in the requirements engineering
and system development lifecycle. It involves handling changing requirements,
which are inherently incomplete and often inconsistent due to evolving business
needs and a developing understanding of the system.
Requirements Evolution
Enduring and Volatile Requirements
1. Enduring Requirements:
Stable requirements derived from the core activities of the customer
organization.
Example: A hospital will always have doctors and nurses.
2. Volatile Requirements:
Requirements that change during development or system use.
Example: Requirements derived from changes in health-care policy.
Requirements Classification
Type Description
Mutable Changes due to environmental shifts.
Emergent Develop during system development.
Consequential Result from the introduction of the computer system.
Compatibility Depend on specific systems or business processes.
1. Requirements Identification:
How requirements are individually identified.
2. Change Management Process:
The process followed when analyzing a requirements change.
3. Traceability Policies:
Amount of information about requirements relationships maintained.
4. CASE Tool Support:
Tool support required to manage requirements change.
Traceability
Source Traceability:
Links from requirements to stakeholders who proposed them.
Requirements Traceability:
Links between dependent requirements.
Design Traceability:
Links from requirements to the design.
1. Problem Analysis:
Discuss requirements problem and propose change.
2. Change Analysis and Costing:
Assess effects of change on other requirements.
3. Change Implementation:
Modify requirements document and other documents to reflect change.
Requirements change management should apply to all proposed changes, and the
process involves analyzing, assessing impacts, and implementing modifications to
the requirements document.
System Modeling
System modeling aids analysts in understanding system functionality and
communicates effectively with customers. Different models offer various
Model Types
1. Data Processing Model:
Illustrates how data is processed at different stages.
2. Composition Model:
Shows how entities are composed of other entities.
3. Architectural Model:
Reveals principal sub-systems.
4. Classification Model:
Demonstrates how entities share common characteristics.
5. Stimulus/Response Model:
Depicts the system's reaction to events.
Context Models
Context models illustrate the operational context of a system, showing what lies
outside the system boundaries. Social and organizational considerations may
influence decisions regarding system boundaries. Architectural models depict the
system and its relationships with other systems.