Specification and Planning in Software Development
This article explains specification and planning – including exam questions, core components, and key concepts.
In a Nutshell
A specification defines what a system should do (not how). It serves as the foundation for development, testing, and acceptance. Planning organizes the execution.
Core Technical Description
In the early project phase, a program specification is created based on a requirements specification. This document details both functional and technical requirements comprehensively.
From functional requirements, data models and data structures are derived – often using ER diagrams or UML class diagrams. You also define interfaces (data formats, protocols, authentication, error handling). A solid specification is complete, consistent, traceable, and verifiable.
This phase significantly influences effort, quality, and maintainability.
Exam-Relevant Points
- Program specification as the foundation for development and testing
- Derive data modeling from functional requirements
- Design data structures according to purpose and access patterns
- Define interfaces between modules and external systems (IHK-relevant)
- Document and version specifications (practical relevance)
- Errors at this stage lead to high costs (economic impact)
- Precise specification saves development time
- Must be documented in requirements document or design specification (documentation requirement)
Core Components
- Functional requirements
- Technical requirements
- Program specification
- ER diagram or UML class diagram
- Data structures (arrays, lists, maps)
- Interfaces (REST, SOAP, file imports)
- Requirements document as binding document
- Validation rules and constraints
- API documentation
- Test criteria based on the specification
Practical Example
Functional requirement (online shop): first name, last name, email, order history.
Data model:
Table Customer(id, first_name, last_name, email)
Table Order(customer_id, date, total_price)
Interface:
REST API POST /orders
Request body: JSON with product IDs and customer number
Explanation: Requirements translate into data structures (tables) and interfaces.
Strengths and Weaknesses
Strengths
- Foundation for clear communication among stakeholders
- Enables focused development and testing
- Reduces misunderstandings and later defects
- Improves maintainability and scalability
Weaknesses
- Time-consuming with unclear requirements
- High coordination overhead
- Significant documentation effort
Typical Exam Questions (with Brief Answers)
- Purpose of a program specification? Describe in detail what the program should do – the foundation for development and testing.
- How do you derive a data model? Identify entities, attributes, and relationships, for example using ER diagrams.
- What must be specified for interfaces? Data format, protocol, authentication, response behavior, error codes.
- Why is specification important for QA? It enables precise testing and prevents incorrect implementations.
- What belongs in a requirements document? Goals, functions, data flows, interfaces, requirements, test scenarios.
Extended Answer
A good specification provides clear, measurable, and testable requirements. Particularly important for exams are deriving data models and defining interfaces with technical details, edge cases, and error conditions. Solid specifications also consider extensibility and maintainability.



