Unit 3: Requirement Analysis and Design
Software Engineering (4353202)
3.1: Requirement Gathering & SRS
Requirement Gathering Techniques
- Interviews
- Questionnaires
- Observation
- Document Analysis
- Prototyping
- Brainstorming
Software Requirement Specification (SRS)
A Software Requirements Specification (SRS) is a document that describes what the software will do and how it will be expected to perform.
Characteristics of a good SRS:
- Complete
- Consistent
- Unambiguous
- Verifiable
- Modifiable
Functional vs. Non-Functional Requirements
Functional Requirements: Define what the system should do.
Non-Functional Requirements: Define how the system should perform.
3.2: Software Design Principles
Analysis vs. Design: Analysis is "what" the system will do, Design is "how" it will do it.
Characteristics of a good software design:
- Modularity
- Abstraction
- Encapsulation
- Hierarchy
- Simplicity
- Flexibility
3.3: Cohesion & Coupling
Cohesion: The degree to which the elements inside a module belong together. (Aim for HIGH cohesion)
Coupling: The degree of interdependence between software modules. (Aim for LOW coupling)
3.4: Data Flow Diagrams (DFD)
A DFD shows how data enters and leaves a system, what changes the information, and where data is stored.
3.5: UML - Use Case & Class Diagrams
Use Case Diagram
A use case diagram shows the interaction between the user and the system to achieve a particular goal.
Class Diagram
A class diagram is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among objects.
3.6: UML - Sequence & Activity Diagrams
Sequence Diagram
A sequence diagram shows object interactions arranged in time sequence.
Activity Diagram
An activity diagram is a behavioral diagram that shows the flow from one activity to another activity.

