Unidades temáticas de Ingeniería del Software Fases del proceso de desarrollo 4ª edición (2008) Facultad de Informática organización del desarrollo El ciclo de vida del software abarca el proceso de desarrollo, el cual está constituido por un conjunto de actividades que se estructuran en fases. El ciclo de vida clásico se considera el paradigma más representativo de la ingeniería del software. Las fases y actividades del ciclo de vida clásico se pueden considerar representativas del desarrollo de productos software. ...si despojamos a cualquiera de los demás paradigmas de las técnicas que utilizan y de los enfoques que adoptan se observa que la estructura básica de desarrollo es la misma. Fases del desarrollo 2 contenidos Definición de requisitos del usuario Definición de requisitos del software Diseño arquitectónico Diseño detallado y producción Transferencia Referencias bibliográficas Fases del desarrollo 3 definición de requisitos del usuario Se trata de la fase de definición del problema y es un proceso iterativo donde el usuario es el máximo responsable. Objetivo: obtener una definición de lo que el usuario espera del sistema computacional. Entradas: resultados de entrevistas, encuestas, estudios y ejercicios de prototipado. Salidas: documento de requerimientos de usuario (DRU), donde se describen todos los requerimientos con claridad y consistencia. Fases del desarrollo 4 definición de requisitos del usuario (cont.) Actividades Capturar los requerimientos del usuario. • Reconocer las necesidades y problemas del usuario. Determinar el entorno operacional (se trata del mundo real en el que operará el software) • Describir la interacción del usuario con las entidades externas. Especificar los requerimientos del usuario. • Describir los requerimientos en términos de sus atributos. • Organizar los requerimientos en base a la categoría a la que pertenezcan. Revisar y comprobar las salidas de la fase. Fases del desarrollo 5 definición de requisitos del usuario (cont.) Categorías de requerimientos de usuario • Capacidades para resolver un problema o alcanzar un objetivo. Qué funciones y qué operaciones necesita el usuario. • Restricciones sobre cómo resolver el problema o alcanzar un objetivo. Cómo se debe construir el software y cómo debe operar (comunicaciones externas, interfaces hardware y software, interacción hombre-máquina y atributos de calidad). Atributos de los requerimientos de usuario Identificador, Necesidad, Prioridad, Estabilidad, Fuente, Claridad y Verificabilidad. Fases del desarrollo 6 definición de requisitos del software Se trata de la fase de análisis del problema, donde se debe adoptar un método de análisis y en la que el desarrollador es el máximo responsable. Objetivo: obtener una definición del software que se va a construir. Entradas: documento de requerimientos del usuario (DRU). Salidas: documento de requerimientos del software (DRS), donde se representa la visión que el desarrollador tiene del software y la descripción del ámbito del software. Fases del desarrollo 7 definición de requisitos del software (cont.) Actividades Construir el modelo lógico del software. • Definir el ámbito del software (lo que abarca). • Determinar el entorno operacional del software (interface usuariosoftware). • Representar el modelo lógico del software. Especificar los requerimientos del software. • Describir los requerimientos en términos de sus atributos asegurando la completitud y consistencia, y evitando la duplicidad de los mismos. • Organizar los requerimientos en base a la categoría a la que pertenezcan. Revisar y comprobar las salidas de la fase. El modelo lógico debe... omitir cualquier información de implementación Fases del desarrollo 8 definición de requisitos del software (cont.) Categorías de requerimientos de software • Funcionales: especifican qué tiene que hacer el software. • De rendimiento: especifican valores numéricos para ciertas variables como frecuencia, capacidad y velocidad de cada función. • De interface: especifican el hardware, software o la base de datos. • Operacionales: especifican cómo funcionará el sistema y cómo se comunicará con los operadores del sistema (mensajes de error, sistemas de ayuda). • De recursos: especifican los límites superiores de recursos (potencia de procesamiento, memoria principal, espacio de disco). • De verificación: especifican las restricciones sobre cómo debe ser verificado el software (simulaciones, emulaciones...). Fases del desarrollo 9 definición de requisitos del software (cont.) Categorías de requerimientos de software • De validación: especifican las restricciones sobre cómo debe ser validado el software. • De documentación: especifican requerimientos para la especificación del proyecto. • De garantía: especifican requerimientos para asegurar el sistema frente a amenazas relativas a la confidencialidad, integridad y disponibilidad. • De portabilidad: especifican lo fácil que es modificar el software para que se ejecute en otros sistemas y bajo otros sistemas operativos. • De calidad: especifican atributos del software que aseguran que éste se ajusta a los objetivos. • De fiabilidad: especifican el intervalo aceptable entre fallos. Fases del desarrollo 10 definición de requisitos del software (cont.) Categorías de requerimientos de software • De mantenimiento: especifican lo fácil que es reparar fallos y adaptar el software a nuevos requerimientos. • De seguridad: especifican los requisitos para reducir la posibilidad de daños que puede provocar un fallo del software. Atributos de los requerimientos de software Identificador, Necesidad, Prioridad, Estabilidad, Fuente, Claridad y Verificabilidad. Fases del desarrollo 11 diseño arquitectónico Se trata de la fase de solución, en la que se debe adoptar un método de diseño y donde el ingeniero de software es el máximo responsable. Objetivo: definir la estructura del sistema software. Entradas: documento de requerimientos del software (DRS). Salidas: documento de diseño arquitectónico (DDA) donde se resume la solución adoptada, se definen los componentes del software y sus interfaces y se describen las interfaces externas. Fases del desarrollo 12 diseño arquitectónico (cont.) Actividades Construir el modelo físico del software. • Dividir el software en componentes. • Implementar los requerimientos no funcionales. • Considerar criterios de calidad del diseño y alternativas de diseño. Especificar el diseño arquitectónico. • Describir los elementos del diseño arquitectónico (definición funcional de los componentes, de las estructuras de datos, de los flujos de control y del uso de recursos). Seleccionar un lenguaje de programación. • Compatibilidad con el método de diseño. • Considerar requerimientos no funcionales y la tecnología necesaria. Revisar y comprobar las salidas de la fase. Fases del desarrollo 13 diseño detallado y producción Se trata de la fase de implementación, en la que es necesario tener en cuenta la adecuación y disponibilidad de recursos para el desarrollo de software y donde el ingeniero del software es el máximo responsable. Objetivo: obtener un sistema software probado. Entradas: documento de diseño arquitectónico (DDA). Salidas: código, documento de diseño detallado (DDD) y manual del usuario (manuales de referencia y tutoriales). Fases del desarrollo 14 diseño detallado y producción (cont.) Actividades Diseño detallado. • Refinar el diseño arquitectónico hasta obtener detalles de implementación que puedan expresarse en términos del lenguaje de programación. Producción. • Codificar. Traducir el diseño al lenguaje de programación seleccionado. • Integrar. Construir el sistema software ensamblando componentes. • Probar. Pruebas de unidad, de integración y del sistema. Revisar y comprobar las salidas de la fase. Fases del desarrollo 15 transferencia Se trata de la fase de entrega donde el desarrollador es el máximo responsable. Objetivo: obtener la aceptación provisional del producto software. Entradas: código, documento de diseño detallado (DDD) y manual del usuario (manuales de referencia y tutoriales). Salidas: declaración de aceptación provisional, sistema software aceptado provisionalmente, documento de transferencia del software (DTS). Fases del desarrollo 16 transferencia Actividades Instalación. • Implantar un sistema ejecutable configurándolo para que sea operativo en el entorno del usuario. Pruebas de aceptación. • Realizar pruebas de aceptación para validar el software, demostrando sus capacidades en el entorno operacional. • Obtener la aceptación provisional del usuario, para lo cual se requiere un período de operación. Fases del desarrollo 17 marco de trabajo genérico Se puede aplicar a la mayoría de los proyectos de software (Pressman, 2005). Se compone de cinco actividades que permanecen iguales en el desarrollo de cualquier tipo de producto software. • • • • • Comunicación: Inicio del proyecto y recopilación de requisitos. Planificación: Estimación, itinerario y seguimiento de los trabajos. Modelado: Creación de modelos de análisis y de diseño. Construcción: Generación de código y prueba. Despliegue: Entrega soporte, evaluación final y retroalimentación. Cada actividad se compone de acciones y cada acción de un conjunto de tareas de trabajo. Una acción se puede adaptar a las necesidades específicas de un proyecto de software y a las características del equipo de trabajo. Fases del desarrollo 18 referencias bibliográficas Mazza, C. Software engineering standars. Prentice-Hall, 1994. Pressman, R.S. Ingeniería del software. Un enfoque práctico. McGraw-Hill, 2006 Fases del desarrollo 19