Instituto Nacional de Tecnologías de la Comunicación PROCESO PARA EL DISEÑO Departamento/Proyecto/ Subtítulo Mes 2008 Instituto Nacional de Tecnologías de la Comunicación HISTÓRICO DE CAMBIOS Fecha Versión Descripción Autor Departamento/Proyecto/ Subtítulo 2 Instituto Nacional de Tecnologías de la Comunicación Departamento/Proyecto/ Subtítulo 3 Instituto Nacional de Tecnologías de la Comunicación ÍNDICE 1. OBJETIVOS 5 2. ALCANCE 6 3. CRITERIOS DE ENTRADA 7 4. ENTRADAS 8 5. DESCRIPCIÓN DEL PROCESO 9 5.1. Seleccionar la arquitectura óptima 9 5.2. Desarrollar el diseño de alto nivel (sistema / arquitectura software). 9 5.3. Desarrollo de diseño a bajo nivel 10 5.4. Actualizar la matriz de trazabilidad de requisitos (RTM) 11 5.5. Revisión de diseño, validación y línea base 11 5.6. Actualizaciones del plan 11 6. RECOMENDACIONES 12 7. ADAPTACIONES PERMITIDAS 13 8. MEDIDAS 14 9. VALIDACIONES 15 10. REGISTROS DE CALIDAD 16 11. CRITERIOS DE SALIDA 17 12. REFERENCIAS 18 13. MATRIZ DE PERFILES EN EL PROCESO 19 Departamento/Proyecto/ Subtítulo 4 Instituto Nacional de Tecnologías de la Comunicación 1. OBJETIVOS Llegar a un diseño a partir del cual el sistema / software pueda ser construido y conforme a las especificaciones de requisitos software / sistema (SRS) establecidos en la línea base. Departamento/Proyecto/ Subtítulo 5 Instituto Nacional de Tecnologías de la Comunicación 2. ALCANCE Aplicable para el desarrollo y mejora de proyectos que conlleve diseño software/ sistema. Departamento/Proyecto/ Subtítulo 6 Instituto Nacional de Tecnologías de la Comunicación 3. CRITERIOS DE ENTRADA Línea base del SRS (Documento de especificación de requisitos software/sistema) Petición de cambio (para mejoras en el mantenimiento de los proyectos) Departamento/Proyecto/ Subtítulo 7 Instituto Nacional de Tecnologías de la Comunicación 4. ENTRADAS Propuesta SRS Método de diseño y estándares elegidos Petición de cambio aprobada Departamento/Proyecto/ Subtítulo 8 Instituto Nacional de Tecnologías de la Comunicación 5. DESCRIPCIÓN DEL PROCESO El diseño se estructura en dos fases, una llamada preliminar o diseño de alto nivel y la otra, diseño a bajo nivel dependiendo de la complejidad del sistema y los requisitos. El diseño de alto nivel y el de bajo nivel, se pueden combinar en un diseño completo. 5.1. Diseño de alto nivel (Sistema /Arquitectura Software): nos permite conocer la organización fundamental del sistema atendiendo a sus componentes, sus relaciones y el entorno, así como los principios que gobiernan el diseño y su evolución. Esto incluye particiones del sistema, identificación de componentes, estado del sistema y modos, interfaces entre componentes, e interfaces con sistemas externos. Diseño a bajo nivel: define la estructura y las capacidades de los componentes del sistema (por ejemplo: detalles internos de implementación). SELECCIONAR LA ARQUITECTURA ÓPTIMA Cuando el diseñador llega a este criterio, evalúa la arquitectura, que incluye: Coste Rendimiento Complejidad Robustez Expansión del producto y crecimiento Limitaciones tecnológicas Riesgos Evolución de la tecnología Habilidades de los usuarios finales y operadores El diseñador identifica las propuestas alternativas a evaluar. El experto técnico evalúa las alternativas y selecciona la más óptima, haciendo uso si es posible, de procesos para el análisis de decisiones. La arquitectura seleccionada se evalúa por los arquitectos líderes en revisiones de gestión tecnológica. 5.2. DESARROLLAR EL DISEÑO DE ALTO NIVEL (SISTEMA / ARQUITECTURA SOFTWARE). El diseñador descompone el sistema en módulos o componentes software e identifica las funcionalidades de cada componente atendiendo a un principio de independencia funcional (un módulo – un propósito). El propósito de hacer esto es: comprobar la existencia de posibles módulos reutilizables, generar la flexibilidad requerida para añadir futuras funcionalidades, interconexión con un cliente o producto, problemas de rendimiento debidos a una excesiva interconexión entre módulos, etc. Departamento/Proyecto/ Subtítulo 9 Instituto Nacional de Tecnologías de la Comunicación El diseñador identifica la interfaz interna principal y todas las interfaces externas del sistema / software. El diseñador modela el comportamiento dinámico del sistema a nivel de componente, describiendo los mensajes intercambiados, las pre-post condiciones para cada operación (Ej: diagramas de estado), las posibles restricciones en la composición de componentes, cómo se instancian los componentes y por último, las excepciones generadas. En el caso de sistemas distribuidos o concurrentes, el diseñador mapea los componentes a los procesos físicos del sistema. El diseñador evalúa las diferentes configuraciones posibles contra los requisitos, como puede ser el rendimiento o la escalabilidad. El diseñador identifica los principales elementos reutilizables de la organización obtenidos, en el caso de estar disponible, de una base de datos de históricos de elementos reutilizados. El diseñador identifica los componentes candidatos a ser reutilizados del paso anterior para su incorporación en el proyecto. El equipo de diseño optimiza el análisis de Realizar / Adquirir / Reutilizar para los componentes del producto usando alguna plantilla para la toma de decisiones de la forma apropiada. 5.3. DESARROLLO DE DISEÑO A BAJO NIVEL El diseñador identifica, desarrolla o adquiere métodos y herramientas de diseño apropiadas para el sistema / software. El diseñador conecta las interfaces entre los componentes en términos de control del flujo de datos; la estructura de los datos que pasan a través de las interfaces también se describe en esta etapa. El diseñador describe las interfaces externas en términos de (API) Interfaz de programación de aplicaciones, considerando los parámetros pasados y los valores de retorno, la estructura de datos, etc. El diseñador describe la estructura de datos usada por cada modulo para el procesamiento interno en términos de definición de los datos y estructura y las relaciones entre ellos. El diseñador define cada elemento de la estructura de datos en términos de tipo y tamaño. El diseñador también identifica los eventos que afectan a esa estructura de datos y sus efectos. La base de datos de diseño se debe alinear con los requisitos acerca de los datos, el crecimiento de los mismos, el rendimiento, y otros criterios especificados en el SRS. El diseñador traslada el modelo estructural del módulo de software en procedimental (si se ha adoptado la aproximación al diseño estructural) describiendo la lógica de procesamiento (secuencia de pasos) y interface de usuario (UI) en cada modulo. El pseudocódigo y los diagramas de flujo se utilizan para representar la lógica. El diseñador actualiza el documento SRS basado en los requisitos derivados de la solución de diseño adoptada, si existen. Departamento/Proyecto/ Subtítulo 10 Instituto Nacional de Tecnologías de la Comunicación El diseñador documenta los estándares, criterios, componentes propietarios, frameworks, y APIs que serán utilizados para la construcción del sistema / software. Tras la aprobación del diseño de bajo nivel, el jefe de proyecto prepara el plan de pruebas de integración y los casos de prueba de integración. 5.4. ACTUALIZAR LA MATRIZ DE TRAZABILIDAD DE REQUISITOS (RTM) El equipo de diseño actualiza la matriz de trazabilidad de requisitos para realizar la trazabilidad del diseño de bajo nivel al de alto nivel, y la trazabilidad del diseño de alto nivel con el documento SRS. 5.5. REVISIÓN DE DISEÑO, VALIDACIÓN Y LÍNEA BASE El equipo de diseño realiza una revisión por pares del documento de diseño. Los defectos encontrados son registrados y se realiza un seguimiento hasta su cierre. (En este punto es importante apoyarse en una guía para la clasificación de defectos y su categorización). Los documentos de diseño son revisados por otras personas (por ejemplo el equipo de pruebas si es necesario). El diseñador valida el diseño con el cliente y se establece un línea base que se alinea con la matriz de trazabilidad de requisitos. 5.6. ACTUALIZACIONES DEL PLAN El jefe de proyecto vuelve a revisar la planificación y realiza nuevas estimaciones y actualizaciones si son necesarias. Departamento/Proyecto/ Subtítulo 11 Instituto Nacional de Tecnologías de la Comunicación 6. RECOMENDACIONES Mostrar al cliente las posibles soluciones alternativas e incluso involucrarle en la evaluación de las mismas. Departamento/Proyecto/ Subtítulo 12 Instituto Nacional de Tecnologías de la Comunicación 7. ADAPTACIONES PERMITIDAS Exponer las adaptaciones permitidas para este proceso. Departamento/Proyecto/ Subtítulo 13 Instituto Nacional de Tecnologías de la Comunicación 8. MEDIDAS Esfuerzo realizado en actividades de diseño (Planificado vs Actual). Porcentaje de reutilización. Departamento/Proyecto/ Subtítulo 14 Instituto Nacional de Tecnologías de la Comunicación 9. VALIDACIONES Revisiones de la arquitectura del sistema / software Revisiones de los documentos Revisiones en determinados puntos de verificación Departamento/Proyecto/ Subtítulo 15 Instituto Nacional de Tecnologías de la Comunicación 10. REGISTROS DE CALIDAD Checklist para el diseño de alto nivel Checklist para el diseño de bajo nivel Registro de las revisiones de diseño Informe sobre los puntos de verificación Registro de revisiones acerca de la tecnología a utilizar (cuestionarios, informes, scorecard, etc.) Departamento/Proyecto/ Subtítulo 16 Instituto Nacional de Tecnologías de la Comunicación 11. CRITERIOS DE SALIDA Documentos de diseño bajo la línea base (diseño de alto nivel y diseño de bajo nivel) Punto de verificación de diseños completados Departamento/Proyecto/ Subtítulo 17 Instituto Nacional de Tecnologías de la Comunicación 12. REFERENCIAS Plantilla de especificación de requisitos software / sistema. Plantilla de diseño de alto nivel Plantilla de diseño de bajo nivel Plantilla de matriz de trazabilidad de requisitos Plantilla para el análisis y toma de decisiones Plantilla de informe de puntos de verificación Checklist de diseño de alto nivel Checklist de diseño de bajo nivel Guías de arquitectura y diseño Proceso de revisión de la arquitectura desde un punto de vista tecnológico Guía para la clasificación de defectos Departamento/Proyecto/ Subtítulo 18 Instituto Nacional de Tecnologías de la Comunicación 13. MATRIZ DE PERFILES EN EL PROCESO Roles PM - Jefe de proyecto RM - Gerente PL - Jefe de equipo SQA – Responsable aseguramiento de calidad del software PT - Equipo de proyecto (equipo de diseño) CCB – Equipo de control de configuración DBA - Analista de base de datos Actividad Responsabilidad Preparación Revisión Salidas Aprobación Responsabilidad Desarrollar aproximaciones alternativas y seleccionar la óptima Diseñador Expertos Técnicos Expertos Técnicos Diseñador Documento de toma de decisiones Dividir en módulos el sistema. Identificar la arquitectura del sistema Diseñador Por pares Arquitecto líder Diseñador Diseño de alto nivel Realizar el análisis realizar /comprar /reutilizar Diseñador Por pares Cliente, RM Diseñador Documento de toma de decisiones Crear diseño de la base de datos DBA / Diseñador Por pares Por pares DBA / Diseñador Diseño de bajo nivel Crear el diseño de interfaces Diseñador Por pares Por pares Diseñador Diseño de bajo nivel Crear el procedimiento Diseñador Por pares Por pares Diseñador Diseño de bajo nivel Departamento/Proyecto/ Subtítulo 19 Instituto Nacional de Tecnologías de la Comunicación de diseño Actualizar la matriz de trazabilidad de requisitos Diseñador SQA PM PM Matriz de trazabilidad de requisitos Verificar y validar el diseño. Cierre del mismo. Diseñador Por pares / Cliente PM Documentos de diseño, registros de revisión. Establecer una línea base para el diseño y la matriz de trazabilidad de requisitos. Diseñador SQA PM Documentos de diseño bajo línea base, al igual que la matriz de trazabilidad de requisitos. Preparación del plan de pruebas y los casos de prueba PT / PL Por pares PM Plan de pruebas de integración, casos de prueba de integración Cliente PM Departamento/Proyecto/ Subtítulo 20