Especificación y Planificación en Desarrollo de Software
Este artículo es una aclaración de conceptos sobre especificación y planificación, incluyendo preguntas de examen, componentes clave y tags.
En Pocas Palabras
La especificación define qué debe hacer un sistema (no cómo). Es la base central para el desarrollo, pruebas y aceptación. La planificación organiza la implementación.
Descripción Técnica Compacta
En la fase inicial del proyecto, a partir de una especificación de requisitos se elabora una especificación de programa. Esta define requisitos funcionales y técnicos de manera detallada.
De los requisitos funcionales se derivan modelos de datos y estructuras de datos, frecuentemente en forma de modelos ER o diagramas de clases UML. Además, se establecen interfaces (formatos de datos, protocolos, autenticación, comportamiento ante errores). Una buena especificación es completa, coherente, comprensible y verificable.
Esta fase influye significativamente en el esfuerzo, calidad y mantenibilidad.
Puntos Clave Relevantes para Examen
- Especificación de programa como base para desarrollo y pruebas
- Derivar modelado de datos a partir de requisitos funcionales
- Diseñar estructuras de datos según su propósito y tipo de acceso
- Definir interfaces entre módulos y sistemas externos (relevante para IHK)
- Documentar y versionear especificaciones (aplicación práctica)
- Los errores en esta fase conllevan costos muy altos (eficiencia económica)
- Una especificación precisa ahorra tiempo de desarrollo
- Debe documentarse en el pliego de condiciones o concepto técnico (obligación de documentación)
Componentes Clave
- Requisitos funcionales
- Requisitos técnicos
- Especificación de programa
- Modelo ER o diagrama de clases UML
- Estructuras de datos (arrays, listas, mapas)
- Interfaces (REST, SOAP, importes de archivos)
- Pliego de condiciones como documento vinculante
- Reglas de validación y restricciones
- Documentación de API
- Criterios de prueba basados en la especificación
Ejemplo Práctico Simple
Requisito funcional (tienda online): nombre, apellido, correo electrónico, historial de pedidos.
Modelo de datos:
Tabla Cliente(id, nombre, apellido, email)
Tabla Pedido(cliente_id, fecha, precio_total)
Interfaz:
REST API POST /pedidos
Request-Body: JSON con IDs de productos y número de cliente
Explicación: A partir de requisitos se derivan estructuras de datos (tablas) e interfaces.
Ventajas e Inconvenientes
Ventajas
- Base para comunicación clara entre partes interesadas
- Permite desarrollo y pruebas dirigidos
- Reduce malentendidos y errores posteriores
- Mejora mantenibilidad y escalabilidad
Inconvenientes
- Demanda mucho tiempo si los requisitos no están claros
- Requiere una coordinación intensa
- Alto esfuerzo en documentación
Preguntas Típicas de Examen (con Respuesta Breve)
- ¿Cuál es el propósito de una especificación de programa? Describir en detalle qué debe hacer el programa, siendo la base para desarrollo y pruebas.
- ¿Cómo se deriva un modelo de datos? Identificar entidades, atributos y relaciones, por ejemplo con diagramas ER.
- ¿Qué debe especificarse en interfaces? Formato de datos, protocolo, autenticación, comportamiento de respuesta, códigos de error.
- ¿Por qué es importante la especificación para aseguramiento de calidad? Permite pruebas precisas y previene desarrollos incorrectos.
- ¿Qué incluye un pliego de condiciones? Objetivos, funciones, flujos de datos, interfaces, requisitos, escenarios de prueba.
Respuesta Libre
Una buena especificación proporciona directrices claras, medibles y verificables. Especialmente relevante para examen es la derivación de modelos de datos y la definición de interfaces incluyendo detalles técnicos, casos límite y estados de error. Las buenas especificaciones también consideran la extensibilidad y el mantenimiento.



