Skip to main content
  1. Resources/
  2. Study Materials/
  3. Information & Communication Technology Engineering/
  4. ICT Semester 5/
  5. Software Engineering (4353202)/

2 mins· ·
Milav Dabgar
Author
Milav Dabgar
Experienced lecturer in the electrical and electronic manufacturing industry. Skilled in Embedded Systems, Image Processing, Data Science, MATLAB, Python, STM32. Strong education professional with a Master’s degree in Communication Systems Engineering from L.D. College of Engineering - Ahmedabad.
Unit 3: Requirement Analysis and Design

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.

graph TD A[External Entity] -- Data Input --> B(Process) B -- Data Output --> A B -- Data to Store --> C{Data Store}

3.5: UML - Use Case & Class Diagrams

Use Case Diagram

graph TD A[Actor] --> B(Use Case)

A use case diagram shows the interaction between the user and the system to achieve a particular goal.

Class Diagram

classDiagram class BankAccount { +owner: string +balance: double +deposit(amount: double) +withdraw(amount: double) }

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.