Se Unit-2 Notes
Se Unit-2 Notes
UNIT-2
1.Requirement Analysis and Specification
Software requirement analysis simply means complete study, analyzing, describing
software requirements so that requirements that are genuine and needed can be fulfilled to
solve problem.
1. Problem Recognition
The main aim of requirement analysis is to fully understand main objective of
requirement
3. Modeling :
After complete gathering of information from above tasks, functional and behavioral
models are established after checking function and behavior of system using a domain
model that also known as the conceptual model.
4. Specification :
The software requirement specification (SRS) which means to specify the requirement
whether it is functional or non-functional should be developed.
5. Review:
After developing the SRS, it must be reviewed to check whether it can be improved or
not and must be refined to make it better and increase the quality.
1
The success of a project often depends on the accuracy and completeness of the gathered
requirements in software.
2
Step 6- Prioritize Requirements:
• Prioritize the requirements based on their importance to the project goals and
constraints. This step helps in creating a roadmap for development, guiding the
team on which features to prioritize. Prioritization is essential, especially when
resources and time are limited.
Advantages:
• Cost Reduction
• Customer Satisfaction
• Improved Communication
• Enhanced Quality
Disadvantages:
• Poor Stakeholder Involvement
• Changing Requirements
• Communication Barriers
3.SRS
• Software Requirement Specification (SRS) Format as the name suggests, is a
complete specification and description of requirements of the software that need to
be fulfilled for the successful development of the software system.
• These requirements can be functional as well as non-functional depending upon the
type of requirement.
Purpose
Key Components
1. Introduction:
o Purpose: The goal of the SRS document.
o Scope: Boundaries and limits of the software system.
o Definitions: Acronyms, abbreviations, and terms used in the document.
2. Overall Description:
o Product Perspective: Context of the software in its environment.
o Product Functions: Major functions the system performs.
o User Characteristics: Types and characteristics of end users.
o Assumptions and Dependencies: Assumptions made and dependencies on
external factors.
3
3. Specific Requirements:
o Functional Requirements: Detailed description of each function the system
must perform.
o Non-Functional Requirements: System attributes such as performance,
security, usability, and reliability.
o External Interface Requirements: Interactions with other systems, hardware,
and software.
4. Appendices:
o Supporting Information: Glossary, references, and index.
Best Practices
Importance
4
4.Formal System Specification
Definition
• Formal System Specification: The use of formal methods, mathematical models, and
languages to describe the system's requirements and behavior with precision and rigor.
Techniques
1. Formal Languages:
o Z: A formal specification language based on set theory and first-order predicate
logic.
o VDM (Vienna Development Method): Uses model-based specifications to
describe system behavior.
o B-Method: Employs abstract machines to model systems and support formal
proof of correctness.
2. Mathematical Models:
o State Machines: Models that describe system states and transitions.
o Petri Nets: Graphical and mathematical modeling tools suitable for describing
concurrent processes.
o Process Algebras: Mathematical models for analyzing and verifying concurrent
systems (e.g., CSP, CCS).
Objectives
Advantages
Disadvantages:
5
• Time-Consuming: Can be labor-intensive and time-consuming to develop formal
specifications.
• Complexity: May be difficult for non-technical stakeholders to understand and engage
with formal specifications.
• Cost: Implementation and training can be costly.
Applications
• Safety-Critical Systems: Widely used in domains where system failures can have
severe consequences, such as aerospace, medical devices, and nuclear power.
• High Assurance Systems: Applied in systems requiring high assurance of correctness,
such as financial systems and critical infrastructure.
Examples
• NASA’s Software: Utilizes formal methods to ensure the reliability of software for
space missions.
• Railway Signaling Systems: Employs formal specifications to ensure safety and
correctness in signaling protocols.
Importance
Using formal system specification in software engineering is essential for projects that demand
high levels of accuracy, reliability, and safety.