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
- Requirements gathering
- Structure model (class diagram)
- Behavior model (sequence/activity)
- State model (lifecycle)
- Refinement (preconditions/postconditions/OCL)
- Design principles (SOLID)
- Responsibilities (GRASP)
- Patterns (design and architectural patterns)
- Quality assurance (reviews, prototypes, TDD)
- 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)
- Analysis vs. Design? Analysis describes the what; design specifies the how.
- Why GRASP? To assign responsibilities in a sensible way.
- Why 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.
- 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.



