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

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

Master analysis vs. design: structure requirements with Use Cases and UML, apply GRASP responsibilities, SOLID principles, and derive testable acceptance criteria.

S

schutzgeist

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

Analysis and Design Methods

This post explains analysis and design methods—covering exam topics, core components, and key concepts.

In a Nutshell

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

Technical Overview

Analysis

Goal: clarity, testability, and system boundaries.

Common artifacts:

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

Design

Goal: sound structure and workflows.

  • Structural models: class diagrams
  • Behavioral models: sequence, activity, and state diagrams
  • Specification: preconditions, postconditions, and 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 Takeaways

  • Analysis asks “What?”, design answers “How?”
  • Frame acceptance criteria measurably
  • Model structure and behavior separately
  • GRASP: assign responsibilities thoughtfully
  • Demonstrate SOLID principles
  • Express quality requirements as scenarios
  • Traceability: requirement → model → test
  • Versioning and approvals

Core Components

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

Practical Example (Online Shop: Order Processing)

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

Workflow:
- Calculate total
- Authorize payment
- Save order
- Send confirmation

Strengths and Weaknesses

Strengths

  • Better communication
  • Higher testability
  • Reduced change risk

Weaknesses

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

Common Exam Questions (Quick Answers)

  1. Analysis vs. Design? Analysis describes the what; design specifies the how.
  2. Why use GRASP? To assign responsibilities intelligently.
  3. Why use 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. Run a SOLID check 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 References

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

Nächster Artikel in Software Engineering

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

Related Posts