🖥️

Software Design Approaches

Jul 30, 2024

Notes on Software Design Approaches

Introduction

  • Welcome to Gate Smashers!
  • Lecture Topic: Various approaches for software design.

Software Design Overview

  • Occurs after completion of:
    • Requirement analysis
    • Risk analysis
    • Software project management
  • Important to design before coding/implementation.
  • Analogy: Building construction requires architectural design before starting.

Design Approaches

1. Functional-Oriented Design

  • Focus on functions related to the system.
  • Divide the system into smaller subsystems/modules (top-down approach).
  • Key aspects:
    • Divided & conquer approach.
    • Final system created by merging completed functional modules.
  • Example systems:
    • ATM
    • Library Management System (LMS)
    • Functions include:
      • Issue book
      • Return book
  • Uses Data Flow Diagrams (DFD) for graphical representation.

2. Object-Oriented Design

  • Focus on objects and their interactions.
  • Define classes consisting of objects (bottom-up approach).
  • Key aspects:
    • Each object belongs to a class with members (data and functions).
    • Identify classes such as student, faculty, and book.
  • Example for LMS:
    • Student Class: ID, name.
    • Faculty Class: ID, name.
    • Book Class: ID, name, availability.
  • Uses Unified Modeling Language (UML) for graphical representation.

Comparison of Approaches

  • Functional-oriented design is older and mature.
  • Object-oriented design is newer with evolving concepts.
  • Both approaches are not mutually exclusive and can coexist in practice.

Next Lecture

  • Topics to cover:
    • What are DFDs?
    • How to design DFDs?
    • Levels of DFDs.
    • Introduction to UML.

Conclusion

  • Thank you for attending!