A1: Definición preliminar del proyecto Descripción: Identificación de las necesidades del sistema en cuanto a procesos, datos, limitaciones, infraestructuras, presupuesto, ... Salida: Definición informal de los requerimientos. Nota: La creación de una definición preliminar correcta reduce la ambigüedad del sistema, lo que favorece el establecimiento del ámbito del proyecto y de la definición de los principales componentes o sistemas. A2: Establecimiento de líneas prioritarias Descripción: Una vez recopilados los requisitos generales, es necesario organizarlos y dividir el desarrollo del proyecto en fases o etapas de desarrollo. Si el sistema que tenemos que desarrollar es grande, es conveniente dividirlo en fases de desarrollo. De esta forma, trabajaremos con unidades más pequeñas y manejables. Aquí debemos establecer la secuencia de ejecución y tener en cuenta posibles planes estratégicos o prioridades del cliente. Salida: Identificación de las fases de desarrollo. A3: Definición del entorno técnico Descripción: Antes de proceder al diseño, debemos tener en cuenta si existe algún tipo de limitación o requisito tecnológico que pueda afectar al desarrollo del proyecto como puede ser: la plataforma hardware utilizada, el sistema operativo elegido, el SGBD utilizado, el lenguaje de desarrollo a utilizar, y demás. A4: Formalización de los requerimientos Descripción: Una vez recopilados los requerimientos y establecidas las fases de desarrollo, tenemos que asegurarnos de lo siguiente: • Los requerimientos están recopilados y son completos • Los requerimientos están organizados • Los requerimientos son legibles y están al suficiente nivel de detalle para ser efectivos • No hay requerimientos en conflicto ni solapados Salida: Especificación formal de requerimientos en forma de un conjunto conciso, legible, realizable, completo y útil de requerimientos que está listo para proceder al diseño. BD1: Creación del diagrama Entidad-Relación Descripción: A partir de la definición de requisitos, identificaremos las entidades, relaciones y restricciones existentes en el problema. Salida: Diagrama Entidad-Relación BD2: Creación del esquema lógico de la base de datos Descripción: Si vamos a utilizar un SGBD relaciona, transformaremos en tablas y vistas el diagrama Entidad-Relación, incluyendo cada una de las limitaciones presentes. Salida: Definición de tablas y vistas del esquema de la base de datos BD3: Ajuste del diseño lógico para mejorar el desarrollo Descripción: A partir del conjunto de tablas del esquema lógico, puede ser necesaria la reorganización y/o la desnormalización de algunas de ellas para mejorar el rendimiento. Salida: Definición refinada de tablas y vistas del esquema de la base de datos BD4: Diseño físico de la base de datos Descripción: La elección de un SGBD concreto y la necesidad de establecer un rendimiento adecuado hace necesario tener en cuenta cuestiones como la indexación, agrupación/división de tablas, gestión de datos de tamaño variable, tratamiento de valores nulos, y demás. Salida: Diseño físico de la base de datos F1: Descomposición funcional Descripción: A partir de la definición formal de requisitos dividiremos sucesivamente en funciones cada vez más pequeñas la función o funciones básicas que realiza el sistema. Salida: Conjunto de funciones de menor a mayor nivel de detalle que describen las actividades a realizar F2: Creación de diagramas de conjunto y contexto Descripción: A partir de la descomposición funcional, identificar al mayor nivel de abstracción las principales actividades que hay que desarrollar. Salida: Diagramas de conjunto y contexto en los que especificamos las entidades externas, los flujos de datos de entrada y salida al sistema, y los procesos de alto nivel. F3: Creación de DFDs Descripción: Para cada una de los procesos de alto nivel identificados establecer la entrada, salida, datos que necesitan almacenarse o recuperarse y una descripción concisa del proceso. Los procesos que no admitan más descomposición contendrán las miniespecificaciones o especificación algorítmica del proceso. Salida: DFDs incluyendo las fichas del diccionario de datos D1: Creación del pseudocódigo Descripción: Crear el pseudocódigo de cada una de las funciones que van a implementar los procesos descritos en los DFDs.. El pseudocódigo se crea a partir de la especificación algorítmica de nuestros procesos y del diseño de la base de datos. Salida: Pseudocódigo de los módulos que componen el proyecto D2: Diseñar los casos de prueba Descripción: Crear casos de pruebas de caja blanca y de caja negra para los paquetes diseñados. Salida: Batería de especificaciones concretas de casos de prueba a realizar sobre el software implementado. I: Implementación Descripción: Traducir el pseudocódigo creado a código fuente en el lenguaje elegido. Si el pseudocódigo ha sido diseñado correctamente atendiendo a la especificación algorítmica de la descomposición funcional y al diseño de la base de datos, este paso debe ser algo sencillo. P: Prueba del software Descripción: Pasar los casos de prueba diseñados al software implementado. También se deben pasar las pruebas de unidad. Salida: Resultado de las pruebas realizadas. D: Despliegue del proyecto Descripción: Una vez construido y probado el software pasaremos a la instalación, formación, carga/conversión de datos y establecimiento del plan de mantenimiento. También debemos desarrollar los manuales necesarios. Salida: El sistema funcionando correctamente Secuenciación de las etapas del desarrollo del proyecto Definición preliminar del proyecto Establecimiento de líneas prioritarias Definición del entorno técnico Formalización de los requerimientos Descomposición funcional Creación del diagrama Entidad-Relación Creación de diagramas de conjunto y contexto Creación del esquema lógico de la base de datos Creación de DFDs Ajuste del diseño lógico para mejorar el desarrollo Diseño físico de la base de datos Creación del pseudocódigo Diseñar los casos de prueba Implementación Prueba del software Despliegue del proyecto