
1. Objetivos de un proceso de desarrollo ✔ Disminuir el número de fallos ✔ Bajar la severidad de los defectos ✔ Mejorar la reusabilidad ✔ Mejorar la estabilidad del desarrollo y el costo de mantenibilidad
1.1. Elementos básicos de un proceso de desarrollo de software definir los papeles que juegan los trabajadores, las actividades que desarrollan y los productos que deben generarse.
1.2. Llaves tecnológicas para los procesos de desarrollo ✔Modelado Visual ✔Modelos Ejecutables ✔Relación biunívoca entre modelos y códigos ✔Automatización de las pruebas a partir de las especificaciones ✔Frameworks ✔Desarrollo incremental e iterativo.
1.2.1. Niveles de madurez de los procesos de desarrollo. Primitivo: No existe. Programado: Tiene definido una secuencia de etapas y los resultados que deben generar cada una de ellas. Sistemático: Esta formulado de forma sistemática. Administrado: Incorpora criterios para cuantificar el rendimiento de cada fase y del proceso. Optimizado: Dispone de parámetros de control
2. Subfase Análisis de Objetos (Análisis). Implementa los casos de uso a través de la definición deconjuntos de objetos y de colaboraciones entre ellos. Fase Diseño Arquitectural. ✔ Vista de Subsistemas y Componentes. ✔ Vista de Concurrencia y Recursos. ✔ Vista de Distribución. ✔ Vista de Seguridad y Fiabilidad. ✔ Vista de Despliegue.
2.1. Subfase Ingeniería de Sistemas (Análisis). ✔ Definir la arquitectura de subsistemas. ✔ Definir las interfaces de los subsistemas y los protocolos de interacción. ✔ Definir como los subsistema colaboran para realizar al sistema. ✔ Descomponer los casos de uso del sistema en casos de usos y requerimientos de los subsistemas.
2.2. Subfase Diseño de Mecanismos ✔ Estructuras de datos. ✔ Elaboración y descomposición de algoritmos. ✔ Aspectos relativos a la visibilidad y encapsulación
2.2.1. Subfase Análisis de Requerimientos (Análisis) ✔ Diagramas de clases de uso. ✔ Diagramas secuencias. ✔ Diagramas de estados. ✔ Descripciones textuales.
2.2.1.1. Proceso de desarrollo de Rational (USPD). Propone un proceso basado en tres criterios: ✔ Guiado por “Casos de Uso”. ✔ Centr ado sobre la “Arquitectura”. ✔ Estrategia “Iterativa e Incremental”.
2.2.1.1.1. Proceso ROPES Es una variante del proceso USPD concebido para desarrollo de sistemas en aplicaciones de tiempo real y embarcadas de tipo medio y grandes.
3. Modelo de procesos lineales. Modelo Túnel: ✔ Ausencia de modelo ✔ No hay ningún control ✔ Sólo válido en proyectos muy pequeños.
3.1. Proceso en espiral Es desarrollada en sucesivas fases por evolución de sistemas más simples a sistemas más complejos. La programación orientada a objetos facilita la programación evolutiva: ✔ Se diseñan prototipos con solo algunos objetos. ✔ Se diseñan prototipos con objetos con funcionalidad limitada
3.1.1. proceso iterativo. se basa en producir sucesivos prototipos (sistemas ejecutables) que van evolucionando desde requerimientos muy simples hasta los completos.
3.1.1.1. Casos de uso ✔ Especificación ✔ Análisis ✔ Diseño ✔ Verificación y prueba
3.1.1.1.1. Arquitectura ✔ La arquitectura trata la estructura global de la aplicación ✔ La arquitectura arquitectura se preocupa preocupa de la integridad, uniformidad, simplicidad, reusabilidad y estética.
4. Es la descripción de secuencia de actividades que deben ser seguidas por un equipo de trabajadores para generar un conjunto coherente de productos. objetivo. ✔Predecir el costo. ✔ Mantener un nivel de calidad. ✔ Predecir el tiempo de desarrollo.
5. Naturaleza de las aplicaciones software Tipos de aplicaciones: Aplicaciones Monoprocesadoras: Se ejecutan en un solo computador. Aplicaciones Embebidas: Se ejecuta en un entorno computarizado Aplicaciones de Tiempo Real: Tiene entre sus especificaciones requerimientos temporales. Aplicaciones Distribuidas: Se ejecuta en múltiples procesadores.
5.1. Principales tareas de los procesos software Entender la naturaleza de la aplicación. Establecer el plan de trabajo Generar y gestionar la documentación. Captura de los requerimientos. Diseñar y construir el producto. Probar y validar el producto. Entregar y mantener el producto
5.1.1. Escalabilidad es una propiedad importante de un proceso, ya que la dimensión de los proyectos software son muy variables. Describe, si el esfuerzo que se requiere en el desarrollo de un proyecto varia suavemente (linealmente) con su complejidad.
6. Fase Transducción y Elaboración Incluye las tareas: ✔ Generación del código: codificación en lenguaje fuente en el entorno de ejecución. v La prueba de que el código opera correctamente.
6.1. Fase Test Se compone de dos fases: ✔ Integración y prueba que hace referencia al acoplamiento de los elementos arquitecturales del prototipo. ✔ Validación que hace referencia a la comprobación de que el prototipo
6.1.1. Sincronización entre gestión y desarrollo técnico: El proceso de desarrollo técnico y las fases de gestión del proyecto se sincronizan al final de cada fase, sobre el resultado tangible de una iteración.
6.1.1.1. Gestión de un proyecto orientado a objetos ✔ Estudio del mercado, especificación del producto Fase de Elaboración. ✔ Especificación detallada, Fase de Construcción. ✔ (Diseño detallado de clases Fase de Transferencia: ✔ (Fabricación del prototipo final, fabricación industrial, so orte técnico técnico manteni mantenimiento