Software Design · Software Engineering

Design Methodologies

Watch lectures

Design Methodologies

Definition

A design methodology is a systematic, step-by-step procedure (with defined notations and rules) for producing a software design — it's the concrete "how-to" that implements a broader design strategy.

Major Design Methodologies

1. Structured Design Methodology

  • Based on Function-Oriented strategy
  • Uses DFDs → converted into Structure Charts
  • Key techniques: Transform Analysis, Transaction Analysis
  • Emphasizes low coupling, high cohesion between modules

2. Jackson Structured Programming (JSP) / Jackson System Development (JSD)

  • Data-Oriented methodology — design structure mirrors the structure of input/output data
  • Program structure derived directly from data structure

3. Object-Oriented Design Methodology (e.g., UML-based, Booch, OMT, Rumbaugh)

  • Identify objects/classes from the problem domain
  • Define relationships (inheritance, association, aggregation)
  • Model using UML diagrams: Class, Sequence, State, Use Case diagrams

4. Structured Systems Analysis and Design Method (SSADM)

  • Combines structured analysis + structured design in one comprehensive methodology (popular in UK government projects)

Comparing Methodology vs. Strategy

  • Strategy = the overall philosophy (e.g., "focus on functions")
  • Methodology = the concrete steps, notations, and tools used to execute that strategy (e.g., "draw DFD, convert to Structure Chart, apply Transform Analysis")

Selecting a Methodology

Depends on:

  • Nature of the problem (data-heavy vs. process-heavy vs. object-heavy)
  • Team's familiarity with the methodology
  • Tool/CASE support available
  • Criticality and scale of the project

Exam tip: Be ready to name at least 3 methodologies (Structured Design, JSP, OO methodology) and briefly explain what each is based on — often confused with "Design Strategies," so be clear a methodology is the concrete technique, a strategy is the philosophy.

AI LearningWeb Platform

Coursify — Personal AI Course Generator

Struggling with a difficult subject or concept? Turn any engineering topic into a structured course with interactive lessons, quizzes, and research-backed explanations.

← All Software Engineering modules