Specification and Planning in Software Development
This post is a glossary entry on the topic of specification and planning – including exam questions, core components, and tags.
In a Nutshell
Specification defines what a system should do (not how). It is the central foundation for development, testing, and acceptance. Planning organizes the implementation.
Compact Technical Description
In the early project phase, a program specification is created on the basis of a requirements specification. This defines business and technical requirements in detail.
Data models and data structures are derived from functional requirements – often in the form of ER models or UML class diagrams. In addition, interfaces are defined (data formats, protocols, authentication, error behavior). A good specification is complete, consistent, comprehensible, and verifiable.
This phase significantly influences effort, quality, and maintainability.
Exam-Relevant Key Points
- Program specification as basis for development and testing
- Derive data modeling from business requirements
- Design data structures based on purpose and access type
- Define interfaces between modules and external systems (IHK-relevant)
- Document and version specifications (practical relevance)
- Errors in this phase lead to high costs (cost-effectiveness)
- Precise specification saves development time
- Must be documented in requirements specification/technical concept (documentation requirement)
Core Components
- Business requirements
- Technical requirements
- Program specification
- ER model or UML class diagram
- Data structures (arrays, lists, maps)
- Interfaces (REST, SOAP, file imports)
- Requirements specification as binding document
- Validation rules and constraints
- API documentation
- Test criteria based on specification
Simple Practical Example
Business 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: Data structures (tables) and interfaces are derived from requirements.
Advantages and Disadvantages
Advantages
- Foundation for clear communication between stakeholders
- Enables targeted development and testing
- Reduces misunderstandings and later errors
- Improves maintainability and scalability
Disadvantages
- Time-consuming with unclear requirements
- High coordination effort required
- High documentation effort
Typical Exam Questions (with Short Answers)
- Purpose of a program specification? Describe in detail what the program should do – basis for development and testing.
- How do you derive a data model? Identify entities, attributes, and relationships, e.g., with 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 specification? Goals, functions, data flows, interfaces, requirements, test scenarios.
Free Answer
A good specification provides clear, measurable, and testable specifications. Particularly relevant for exams is the derivation of data models and the definition of interfaces including technical details, edge cases, and error states. Good specifications also consider extensibility and maintainability.