Ingenieria De Software
Enviado por pablo1778 • 22 de Abril de 2014 • 7.995 Palabras (32 Páginas) • 225 Visitas
Definición Ing de Software
Aplicación de un enfoque sistemático, disciplinado y cuantificable, al desarrollo, operación y mantenimiento del software
Tipos de Procesos de Desarrollo
Proceso Tradicional (Modelo Secuencial)
Requerimientos-> Análisis -> Diseño -> Implementación -> Prueba
Contras del enfoque tradicional: Los errores los detecto al final
Proceso en cascada
R->A->D->I->P (1era iteracion)
R->A->D->I->P (2da iteracion)
R->A->D->I->P (... iteracion)
Proceso Iterativo e Incremental
Obtengo la naturaleza iterativa de la construcción de prototipos + los aspectos sistemáticos del modelo lineal secuencial.
En este esquema reviso siempre cada parte del proceso y a medida que va pasando el tiempo tengo que comprobar lo nuevo con lo anterior ya testeado
Producto Software
Def: Es una solución (Sistema informático) conformado por fuente, ejecutable, documentación y datos para que funcione.
Fuentes - Ejecutable
Documentación:
De la creación del software
Del usuario final
Datos necesarios para que funcione el software
El Software no se rompe en el sentido clásico, solo se tiene que ir renovando para seguir incrementando su usabilidad.
Unidad 1: El Proceso Unificado
Es un proceso de desarrollo de software.
Def: Un proceso de desarrollo de software son actividades necesarias para transformar los requisitos de un usuario en un sistema de software.
El proceso unificado esta:
1. Basado en componentes de software interconectados mediante interfaces
2. Utiliza el lenguage unificado de Modelado (UML)
El proceso unificado tiene 3 características principales:
1. Dirigido por casos de uso
2. Centrado en la Arquitectura
3. Iterativo e Incremental
1. Proceso dirigido por casos de uso
Un caso de uso es un fragmento de funcionalidad del sistema que proporciona al usuario un resultado. Estos representan los requisitos funcionales ( me dice que debe hacer el sistema). Es un método para podar requerimientos (tomo lo que debe hacer el sistema realmente).
No tiene que haber un requisito funcional que no esté expresado en un caso de uso.
Todo el conjunto de casos de uso constituyen el Modelo de Casos de Uso.
Dirigido por casos de uso quiere decir que el proceso de desarrollo sigue un hilo ( avanza a través de una serie de flujos de trabajos, siempre teniendo en cuenta a las funcionalidades requeridas plasmadas en los CUs).
2. Centrado en la Arquitectura
La Arquitectura es una vista parcial de los modelos (ej: modelo de casos de uso) que voy necesitando durante los flujos de trabajo, destacan las características más importantes, dejando de lado los detalles, es decir refleja el Esqueleto del sistema.
Las restricciones pueden formar nuevos requisitos, y los mismos requisitos, forman nueva arquitectura, dando una relación de ida y vuelta entre Arquitectura - Casos de uso. Es decir la arquitectura se ve alimentada por los Casos de uso más importantes y además la arquitectura debe permitir el desarrollo de los casos de uso. Ambos evolucionan en paralelo
Que esté centrado en la arquitectura significa que, siempre que trabajo en el proceso de desarrollo, tengo muy en cuenta la arquitectura, ya que las actividades se centran en ella.
3. Iterativo e Incremental
Es práctico dividir, el esfuerzo de desarrollo de un proyecto de SW, en mini proyectos para bajar su complejidad.
Cada miniproyecto es una iteración, que resulta en un incremento.
Las iteraciones hacen referencia a pasos por los flujos de trabajo (recorro todas las disciplinas, cumpliendo objetivos en cada una de ellas, dentro en una fase), y los incrementos a crecimientos en el producto.
Las iteraciones deben ser controladas, lo que significa que deben seleccionarse y ejecutarse de forma planificada.
Baso la selección de lo implementado en cada iteración en:
Conjunto de casos de uso que amplían la funcionalidad
Riesgos más importantes que deben mitigarse
En cada iteración:
1. Se identifican y especifican casos de uso relevantes
2. crean un diseño usando la arquitectura seleccionada como guía
3. implementan los casos de uso
Si la iteración cumple con sus objetivos, se continúa con la próxima, sino se revisan las decisiones previas y se busca un nuevo enfoque.
Ventajas del enfoque iterativo
Reducir el coste de riesgo a un solo incremento
Reducir el riesgo de retrasos, atacando los CUs más importantes
Acelerar el desarrollo de software
Los requisitos se van refinando en las iteraciones (no se pueden definir completos al inicio)
Vida del Proceso unificado
El proceso unificado se repite a lo largo de una serie de ciclos que conforman la vida de un sistema. Cada ciclo completo concluye con una versión de producto.
Cada ciclo consta de 4 fases:
Inicio: Determino el alcance del proyecto. si es viable construirlo con las herramientas que tenemos.
Elaboración: Planificar el proyecto, elaborar una arquitectura base para mi sistema.
Construcción: Construir el sistema (fase que mayor recursos implica)
Transición: Es la parte cuando el software esta instalado y funcionando.
Cada fase tiene n iteraciones, donde se van cumpliendo distintos objetivos de la fase
En cada iteración, se desarrolla en secuencia un conjunto de disciplinas o flujos de trabajos ( Req,An,Dis,Imp,Pru).
Cada fase finaliza con un hito. Cada hito se determina por la disponibilidad de un conjunto de artefactos, es decir un conjunto de modelos o documentos que han sido desarrollados hasta alcanzar un estado predefinido.
Los hitos tienen muchos objetivos dentro asociados a los distintos flujos de trabajos. Estos también permiten controlar la dirección y el progreso del trabajo.
Fase de Inicio
Durante la fase de inicio se desarrolla una descripción del producto final y se presenta el análisis de negocio. Además se identifican y priorizan los riesgos más importantes
La fase de inicio finaliza con el hito de objetivos del ciclo de vida.
Fase de Elaboración
Se especifican en detalle la mayoría de los CUs y se diseña la arquitectura. El resultado de esta fase es la línea base de la arquitectura.
...