Software Design · Software Engineering

Design Strategies

Watch lectures

Design Strategies

Definition

Design strategies are the high-level approaches used to derive a software design from the requirements — the overall "game plan" for how a designer moves from the problem (SRS) to the solution (design).

Major Design Strategies

1. Function-Oriented (Process-Oriented) Design

  • Focuses on the functions/processes the system performs
  • Decomposes the system into functions/sub-functions (top-down)
  • Uses Structured Design, DFDs, Structure Charts
  • Data and functions are treated separately

2. Data-Oriented Design

  • Focuses on data structures first — design is built around how data is organized and flows
  • Uses Entity-Relationship models, Jackson Structured Programming (JSP)

3. Object-Oriented Design (OOD)

  • Focuses on objects — bundling data (attributes) and behavior (methods) together
  • Uses UML diagrams (class, sequence, use case)
  • Emphasizes encapsulation, inheritance, polymorphism

4. Component-Based Design

  • Assembles the system from pre-built, reusable components
  • Emphasizes integration over building from scratch

5. Formal Design (Formal Methods)

  • Uses mathematical models to specify and verify design (e.g., Z notation, VDM)
  • Rare in industry, common in safety-critical systems (aviation, medical devices)

Comparison

Strategy Focus Best For
Function-Oriented Processes/functions Data-processing systems, legacy systems
Data-Oriented Data structure/flow Data-centric systems (databases)
Object-Oriented Objects (data+behavior) Large, complex, evolving systems
Component-Based Reusable components Rapid development, enterprise systems
Formal Methods Mathematical rigor Safety-critical, high-assurance systems

Choosing a Strategy

The choice depends on: problem domain, team expertise, tools available, criticality of the system, and how requirements are structured (function-heavy vs. data-heavy vs. object-heavy).


Exam tip: Be ready to briefly explain each strategy with one example domain, and know that Function-Oriented and Object-Oriented are the two most heavily tested strategies in this syllabus (topics 5 and 11 go deeper into each).

Official AppAndroid App

PYQDeck for Android

Solve BEU previous-year exam papers anywhere, anytime. Fast search, offline paper viewing, and step-by-step solutions designed specifically for your phone.

← All Software Engineering modules