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
- Requirements gathering
- Structural model (class diagram)
- Behavioral model (sequence/activity)
- State model (lifecycle)
- Specification (pre/postconditions/OCL)
- Design principles (SOLID)
- Responsibilities (GRASP)
- Patterns (design and architectural)
- Quality assurance (reviews, prototypes, TDD)
- 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)
- Analysis vs. Design? Analysis describes the what; design specifies the how.
- Why use GRASP? To assign responsibilities intelligently.
- Why use SOLID? To improve maintainability and testability.
- How do you ensure consistency between use cases and models? Messages in sequence diagrams correspond to operations in class diagrams.
Learning Strategy
- Write use cases and acceptance criteria.
- Create a sequence diagram for the main scenario.
- Assign responsibilities using GRASP.
- 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.



