TCS 611 Unit2
TCS 611 Unit2
Introduction
In software engineering, requirement analysis is a systematic process of identifying,
documenting, and validating the needs and expectations of stakeholders for a software
application. It forms the foundation for system design and development. Misunderstood or
poorly documented requirements often lead to project delays, budget overruns, or even
complete failure.
Example
If a client wants an online ticket booking system, clear requirement analysis ensures:
Introduction
A successful software system must address the actual needs of its intended users. To
achieve this, developers must clearly understand three interconnected concepts:
• User Needs
• Software Features
• Software Requirements
Misunderstanding these concepts can lead to building a system that, while technically
sound, fails to satisfy its users.
User Needs
User needs are high-level desires or problems that stakeholders expect the software to
address. They usually lack technical precision and are often described in layman’s terms.
Characteristics:
• Often vague and subjective.
• Focus on what users want to achieve.
• Serve as a foundation for deriving software features and requirements.
Example:
A user wants an online library system where books can be reserved remotely.
Software Features
Software features are specific, user-facing functionalities derived from user needs. They
bridge the gap between informal user needs and formal software requirements.
Characteristics:
• Focus on what the software will offer.
• Directly visible to the end-user.
• Typically grouped under product marketing and UI discussions.
Example:
From the earlier user need:
Software Requirements
Software requirements are precise, testable, and formal statements detailing what the
software system must do.
Types:
• Functional Requirements: Define specific behaviors or functions.
• Non-Functional Requirements: Define system qualities or attributes
(performance, security, usability).
Example:
Functional Requirement:
• The system shall allow registered users to reserve books through an online
interface.
Non-Functional Requirement:
Comparison Table
Aspect User Needs Software Features Software Requirements
Definitio High-level goals or User-visible Formal, testable system
n problems. functionalities. specifications.
Specificit Vague Moderately specific Highly specific
y
Audience End-users, clients Users, marketers, Developers, testers,
developers managers
Formality Informal Semi-formal Formal
Demerits if Ignored
• Risk of building unnecessary features.
• Potential user dissatisfaction.
• Project delays due to misalignment.
• Wasted resources on unimportant aspects.
• Enduring Requirements
• Volatile Requirements
Enduring Requirements
Enduring requirements are those that reflect the core business needs of a system and tend
to remain stable over time. They typically originate from organizational policies, essential
business functions, or domain-specific rules.
Characteristics:
• Stable and long-lasting.
• Tied to fundamental business operations.
• Rarely subject to change.
Example:
A hospital management system must securely store patient medical records.
Volatile Requirements
Volatile requirements are those likely to change during a system’s lifecycle. They evolve
due to shifting user needs, market trends, or technological advancements.
Characteristics:
• Frequently updated.
• Driven by external influences.
• Need regular reassessment.
Example:
An online shopping platform should integrate with the latest digital payment APIs.
Comparison Table
Feature Enduring Requirements Volatile Requirements
Stability Stable over time Likely to change during system
evolution
Origin Core business policies, essential User feedback, market trends,
functions new tech
Change Frequency Rare Frequent
Impact on System Forms the base of system Requires modular, flexible
Design architecture design
Merits of Categorization
• Simplifies change management.
• Helps prioritize requirement implementation.
• Aids in project scope control.
• Supports risk assessment.
Demerits if Ignored
• Uncontrolled changes may disrupt project timelines.
• Risk of overlooking core system functionalities.
• Difficulty in project estimation and resource allocation.
Sub-phases Explained
Requirements Discovery (Elicitation)
• Involves interacting with stakeholders to gather initial requirements.
• Tools: interviews, questionnaires, observation, document analysis.
Requirements Classification and Organization
• Grouping related requirements.
• Organizing them into categories: functional, non-functional, enduring, volatile.
Requirements Specification
• Converting gathered and organized requirements into formal, documented form.
• Typically results in an SRS document.
Merits
• Structured process ensures completeness.
• Simplifies conflict resolution.
• Enhances requirement traceability.
Demerits if Skipped
• Increased chance of missing critical requirements.
• Poorly prioritized features.
• Incomplete or conflicting specifications.
Summary
Dividing requirement analysis into sub-phases ensures systematic, accurate, and efficient
documentation of what the system must achieve.
Functional Requirements
These describe what the system should do. They outline specific behaviors or functions.
Examples
• User authentication and login functionality.
• Generating monthly sales reports.
• Sending notifications to users.
Merits
• Clear system behavior description.
• Helps in system validation.
• Guides developers in feature implementation.
Demerits
• Overlooking operational aspects like performance or security.
Non-Functional Requirements
These describe how the system performs its functions. They relate to system attributes
like performance, reliability, and usability.
Categories
• Product Requirements: Performance, reliability, usability.
• Organizational Requirements: Standards, legal constraints.
• External Requirements: Interoperability, legal compliance.
Examples
• The system shall respond to any user action within 1 second.
• The software shall comply with GDPR regulations.
Merits
• Ensures the system meets quality standards.
• Enhances user satisfaction.
Demerits
• Difficult to quantify.
• Often overlooked in early development.
Differences Table
Feature Functional Requirements Non-Functional Requirements
Defines What the system should do How the system should perform
Type Behavior-based Performance/attribute-based
Example User can reset password System shall respond within 1 sec
Testing By functional test cases By measuring attributes like speed
Importance Core operations Quality assurance
Common Barriers
Ambiguity
Users might express requirements vaguely or use non-technical language, leading to
misunderstanding. - Example: “The system should be fast” — fast in terms of what metric?
Conflicting Requirements
Different stakeholders may have differing or opposing needs. - Example: Marketing wants
frequent UI updates; Operations prefers long-term stability.
Changing Requirements
Business, technology, and market conditions evolve, causing requirements to shift during
development.
Communication Gaps
Stakeholders and developers may not share a common vocabulary or technical
understanding.
Organizational Politics
Internal power struggles or hidden agendas may prioritize certain features over others
irrationally.
Merits of Recognizing These Barriers
• Proactively planning mitigation strategies.
• Improves elicitation accuracy.
• Enhances communication clarity.
Demerits if Ignored
• Leads to incomplete, inconsistent, or invalid requirements.
• Increased rework and development costs.
Demerits if Ignored
• Poor system performance.
• Overlooked safety and legal requirements.
• Costly post-deployment fixes.
• User dissatisfaction and operational hazards.
Decision Tables
• A tabular representation of different conditions and corresponding actions.
• Ideal for systems with complex decision logic.
• Merits:
o Simplifies handling of numerous conditions.
o Uncovers missing or conflicting rules.
• Demerits:
o Can grow unwieldy with too many conditions.
o Difficult to modify without software tools.
Decision Trees
• A graphical way to visualize conditions and outcomes as branches.
• Easier to interpret than tables when dealing with few conditions.
• Merits:
o Intuitive and readable.
o Highlights decision paths clearly.
• Demerits:
o Becomes large and cluttered with many branches.
o Harder to update than tables for frequent changes.
Data Dictionary
• Repository containing definitions, formats, and usage of all data elements in a
system.
• Ensures consistency and clarity of data usage across documentation.
• Merits:
o Promotes data integrity.
o Reduces data ambiguity.
• Demerits:
o Needs regular updates with requirement changes.
o Can become complex for large systems.
Statecharts
• Extended FSMs with hierarchy, concurrency, and broadcast communication.
• Better for modeling complex, reactive systems.
• Merits:
o Manage complex states elegantly.
o Incorporate parallel and nested states.
• Demerits:
o Steep learning curve.
o Requires advanced tooling support.
Petri Nets
• Mathematical modeling tool for concurrent, distributed systems.
• Consist of places, transitions, and tokens.
• Merits:
o Good for detecting deadlocks and resource conflicts.
o Supports formal analysis.
• Demerits:
o Complex for non-mathematical users.
o May require specialized software.