Apply Analysis and Design Methods
This post is a definition of terms for analysis and design methods – including exam questions, core components and tags.
In a Nutshell
Analysis structures the problem from a technical perspective and defines the scope. Design converts the results into a technical solution with clear responsibilities, interfaces and quality objectives.
Compact Technical Description
Analysis
Objective: Clarity, testability, system delimitation.
Typical artifacts:
- Use case descriptions
- UML diagrams
- Glossary
- Acceptance criteria
Design
Objective: sound structure and processes.
- Structural models: class diagram
- Behavioral models: sequence/activity/state diagrams
- Refinement: pre/post conditions, possibly OCL
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 architecture tactics.
Exam-Relevant Key Points
- Analysis = “What?”, Design = “How?”
- Formulate acceptance criteria measurably
- Model structure/behavior separately
- GRASP: assign responsibilities meaningfully
- Demonstrate SOLID (IHK-relevant)
- Quality requirements as scenarios
- Traceability: requirement → model → test
- Versioning + approvals
Core Components
- Requirements gathering
- Structural model (class diagram)
- Behavioral model (sequence/activity)
- State model (lifecycle)
- Refinement (pre/post conditions/OCL)
- Design principles (SOLID)
- Responsibilities (GRASP)
- Patterns (patterns/architectural patterns)
- QA (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, ShoppingCart, Payment
- Service: OrderService
- Adapter: PaymentServiceAdapter
- Repository: OrderRepository
Sequence:
- Calculate sum
- Authorize payment
- Save order
- Send confirmation
Advantages and Disadvantages
Advantages
- Better communication
- Higher testability
- Fewer change risks
Disadvantages
- Initial effort
- Risk of over-modeling
- Discipline required for maintenance/versioning
Typical Exam Questions (with Short Answer)
- Analysis vs. Design? Analysis describes the what, design concretizes the how.
- Why GRASP? Assign responsibilities meaningfully.
- Why SOLID? Improve maintainability/testability.
- How do you ensure consistency between use cases and models? Messages in the sequence diagram correspond to operations in the class diagram.
Learning Strategy
- Write use cases + acceptance criteria.
- Sequence diagram for main scenario.
- Assign responsibilities (GRASP).
- SOLID check + unit tests.