Skip to content
IRC-CodingIRC-Coding
UMLUse CaseGRASPSOLIDDesign PatternsArchitectural Patterns

Analysis and Design: UML, Use Cases, GRASP & SOLID

Master software analysis vs design: requirements structuring, UML modeling, GRASP responsibilities, SOLID principles, design patterns and architecture.

S

schutzgeist

2 min read
Analysis and Design: UML, Use Cases, GRASP & SOLID

Applying Analysis and Design Techniques

This article defines analysis and design techniques—covering exam questions, core components, and key concepts.

In a Nutshell

Analysis structures the problem from a business perspective and defines scope boundaries. Design translates those findings into a technical solution with clear responsibilities, interfaces, and quality objectives.

Core Technical Overview

Analysis

Goal: clarity, testability, system boundaries.

Typical artifacts:

  • Use case descriptions
  • UML diagrams
  • Glossary
  • Acceptance criteria

Design

Goal: sustainable structure and workflows.

  • Structure models: class diagrams
  • Behavior models: sequence, activity, and state diagrams
  • Refinement: preconditions/postconditions, OCL where needed

Principles and heuristics:

  • GRASP (e.g., Controller, Creator, Low Coupling, High Cohesion)
  • SOLID (SRP, OCP, LSP, ISP, DIP)

Quality attributes (security, performance, reliability) are captured as non-functional requirements and addressed through architectural tactics.

Exam-Relevant Points

  • Analysis = “What?”, Design = “How?”
  • Express acceptance criteria measurably
  • Model structure and behavior separately
  • GRASP: assign responsibilities sensibly
  • Demonstrate SOLID principles (relevant for professional exams)
  • Capture quality requirements as scenarios
  • Traceability: requirement → model → test
  • Versioning and sign-offs

Core Components

  1. Requirements gathering
  2. Structure model (class diagram)
  3. Behavior model (sequence/activity)
  4. State model (lifecycle)
  5. Refinement (preconditions/postconditions/OCL)
  6. Design principles (SOLID)
  7. Responsibilities (GRASP)
  8. Patterns (design and architectural patterns)
  9. Quality assurance (reviews, prototypes, TDD)
  10. Traceability

Practical Example (Online Shop: Order)

Analysis:
- Actor: Customer
- Use Case: "Place order"
- Acceptance Criterion: Payment authorized → Order created

Design (excerpt):
- Classes: Order, Cart, Payment
- Service: OrderService
- Adapter: PaymentServiceAdapter
- Repository: OrderRepository

Flow:
- Calculate total
- Authorize payment
- Store order
- Send confirmation

Advantages and Disadvantages

Advantages

  • Better communication
  • Higher testability
  • Lower change risk

Disadvantages

  • Initial overhead
  • Risk of over-modeling
  • Discipline required for maintenance and versioning

Common Exam Questions (with Brief Answers)

  1. Analysis vs. Design? Analysis describes the what; design specifies the how.
  2. Why GRASP? To assign responsibilities in a sensible way.
  3. Why SOLID? To improve maintainability and testability.
  4. How do you ensure consistency between use cases and models? Messages in sequence diagrams correspond to operations in class diagrams.

Learning Strategy

  1. Write use cases and acceptance criteria.
  2. Create a sequence diagram for the main scenario.
  3. Assign responsibilities using GRASP.
  4. Check SOLID compliance and write unit tests.

Continue the SOLID Learning Path

All SOLID articles are now complete. Return to the first article: Clean Code and SOLID Principles.

Key Sources

  1. https://www.omg.org/spec/UML
  2. https://refactoring.guru/design-patterns
Back to Blog
Share:

Related Posts