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.