1 Puds

40
El Proceso El Proceso Unificado de Unificado de Desarrollo de Desarrollo de Software Software Ing. Angélica Garzón Cuéllar Agosto - 2008

Transcript of 1 Puds

Page 1: 1 Puds

El Proceso El Proceso Unificado de Unificado de Desarrollo de Desarrollo de

SoftwareSoftwareIng. Angélica Garzón Cuéllar

Agosto - 2008

Page 2: 1 Puds

22agc-2008agc-2008

AntecedentesAntecedentes1960’s - 70’s1960’s - 70’s COBOL, FORTRAN, CCOBOL, FORTRAN, C Structured analysis and design techniquesStructured analysis and design techniques

1980’s - early 1990’s1980’s - early 1990’s Smalltalk, Ada, C++, Visual BasicSmalltalk, Ada, C++, Visual Basic Early generation OO methodsEarly generation OO methods

Mid/late 1990’sMid/late 1990’s JavaJava UMLUML Unified Process/Unified Process/Unified ApproachUnified Approach:Ali Bahrami:Ali Bahrami

Page 3: 1 Puds

33agc-2008agc-2008

Métodos de Desarrollo de Métodos de Desarrollo de SoftwareSoftware

Conjunto de pasos y procedimientos que deben Conjunto de pasos y procedimientos que deben seguirse para el desarrollo de softwareseguirse para el desarrollo de software Cómo se debe dividir un proyecto en etapas.Cómo se debe dividir un proyecto en etapas. Qué tareas se llevan a cabo en cada etapa.Qué tareas se llevan a cabo en cada etapa. Heurísticas para llevar a cabo dichas tareas.Heurísticas para llevar a cabo dichas tareas. Qué salidas se producen y cuándo se deben producir.Qué salidas se producen y cuándo se deben producir. Qué restricciones se aplican.Qué restricciones se aplican. Qué herramientas se van a utilizar.Qué herramientas se van a utilizar. Cómo se gestiona y controla un proyecto.Cómo se gestiona y controla un proyecto.

Page 4: 1 Puds

44agc-2008agc-2008

¿Qué es un método de ¿Qué es un método de desarrollo de software?desarrollo de software?

Definición alternativa de (Sommerville 2002)Definición alternativa de (Sommerville 2002)

““Un método de ingeniería de software es un enfoque Un método de ingeniería de software es un enfoque sistematico para el desarrollo de software cuyo propósito sistematico para el desarrollo de software cuyo propósito es facilitar la producción de software de alta calidad de es facilitar la producción de software de alta calidad de una forma costeable.” una forma costeable.”

Todos los métodos se basan en la idea de modelos Todos los métodos se basan en la idea de modelos gráficos de desarrollo de un sistema y en el uso de estos gráficos de desarrollo de un sistema y en el uso de estos

modelos como un sistema de especificación o diseño.modelos como un sistema de especificación o diseño.

Page 5: 1 Puds

55agc-2008agc-2008

Métodos de desarrolloMétodos de desarrolloAdaptación del métodoAdaptación del método

No existe un método “universal” o “ideal”No existe un método “universal” o “ideal” Métodos diferentes tienen distintas áreas donde son Métodos diferentes tienen distintas áreas donde son

aplicablesaplicablesP.ej., los métodos OO son adecuados para sistemas P.ej., los métodos OO son adecuados para sistemas interactivos, pero no para sistemas en tiempo real con interactivos, pero no para sistemas en tiempo real con requisitos severos (Sommerville 2002)requisitos severos (Sommerville 2002)

El método está condicionado por el tamaño y estructura El método está condicionado por el tamaño y estructura de la organización, y el tipo de aplicaciones.de la organización, y el tipo de aplicaciones.

““No es razonable pensar que dos organizaciones No es razonable pensar que dos organizaciones utilicen la misma metodología sin realizar cambios sobre utilicen la misma metodología sin realizar cambios sobre ella”.ella”.

Page 6: 1 Puds

66agc-2008agc-2008

Métodos. EjemplosMétodos. Ejemplos

EstructuradosEstructurados De Marco 79De Marco 79 Gane & Sarson 79Gane & Sarson 79 Yourdon 89Yourdon 89 SSADMSSADM MeriseMerise MÉTRICA 2.1MÉTRICA 2.1

Orientados a datosOrientados a datos JSP/JSD JacksonJSP/JSD Jackson Warnier 74Warnier 74

OOOO OMT OMT (Rumbaugh et al. 91)(Rumbaugh et al. 91) Booch 94Booch 94 Objectory/OOSE (Jacobson 93)Objectory/OOSE (Jacobson 93) FUSION (Coleman 94)FUSION (Coleman 94) OOram (Reenskaug 96)OOram (Reenskaug 96) Proceso Unificado (Jacobson et Proceso Unificado (Jacobson et

al. 99)al. 99) Rational Unified Process (RUP) Rational Unified Process (RUP)

(Krutchen et al. 99)(Krutchen et al. 99)

Tiempo realTiempo real Ward & Mellor 85Ward & Mellor 85 Hatley & Pirbhay 87Hatley & Pirbhay 87

Page 7: 1 Puds

77agc-2008agc-2008

Equipo de Desarrollo

UML no es suficienteUML no es suficiente

Lenguaje deModelado

ProcesoUnificado

Page 8: 1 Puds

88agc-2008agc-2008

Que es un Proceso? Que es un Proceso?

Define Define Quien lo hace Que hacer, Cuando lo hace, y Como lo hace para alcanzar metas.

Proceso de desarrollo de

Software

Proceso de desarrollo de

Software

Requisitosdel usuario Sistema software

Page 9: 1 Puds

99agc-2008agc-2008

Evolucion del Proceso UnificadoEvolucion del Proceso Unificado

Rational Unified Process 5.0

Rational Objectory Process 4.1

Rational Objectory Process 4.0

Rational Inicio

1998

1997

1996

1995

Ericsson method1987

Objectory Process

Page 10: 1 Puds

1010agc-2008agc-2008

PersonasPersonas

Arquitectos, desarrolladores, ingenieros de Arquitectos, desarrolladores, ingenieros de prueba, personal de gestión, usuarios, clientesprueba, personal de gestión, usuarios, clientesEl proceso de desarrollo afecta a las personas El proceso de desarrollo afecta a las personas (viabilidad, gestión del riesgo, estructura de los (viabilidad, gestión del riesgo, estructura de los equipos, planificación, comprensión, equipos, planificación, comprensión, cumplimiento)cumplimiento)Formación, entrenamiento y experienciaFormación, entrenamiento y experienciaDe recurso a De recurso a trabajadortrabajador (puestos que asumen (puestos que asumen las personas)las personas)Cada trabajador tiene un conjunto de Cada trabajador tiene un conjunto de responsabilidadesresponsabilidades

Page 11: 1 Puds

1111agc-2008agc-2008

ProyectoProyecto

Elemento organizativo de gestiónElemento organizativo de gestión

El proyecto construye el productoEl proyecto construye el producto

Secuencia de cambio. El sistema evolucionaSecuencia de cambio. El sistema evoluciona

Serie de iteraciones. Cada iteración implementa un Serie de iteraciones. Cada iteración implementa un conjunto de casos de uso o atenúa algunos conjunto de casos de uso o atenúa algunos riesgos. Mini-proyectoriesgos. Mini-proyecto

Patrón organizativo. Tipos de trabajadores y Patrón organizativo. Tipos de trabajadores y artefactos a conseguirartefactos a conseguir

Page 12: 1 Puds

1212agc-2008agc-2008

ProductoProductoArtefactosArtefactos que se crean durante la vida del que se crean durante la vida del proyectoproyecto

Artefactos: Modelos, código, ejecutables, Artefactos: Modelos, código, ejecutables, documentación, diagramas UML, bocetos de la documentación, diagramas UML, bocetos de la interfaz de usuario, prototipos, componentes, interfaz de usuario, prototipos, componentes, planes de pruebaplanes de prueba

Artefactos de ingeniería y de gestiónArtefactos de ingeniería y de gestión

Colección de modelosColección de modelos

Modelo de casos de uso

Modelo de implementación

Modelo de diseño

Modelo de análisis

Modelo de despliegue

Modelo de prueba

traza traza traza

Page 13: 1 Puds

1313agc-2008agc-2008

ProcesoProceso

Conjunto de actividades para crear el productoConjunto de actividades para crear el producto

Es una plantilla para crear proyectos Es una plantilla para crear proyectos (Instancia del (Instancia del proceso)proceso)

Se define en términos de Se define en términos de flujos de trabajoflujos de trabajo (conjunto de (conjunto de actividades)actividades)

Se identifican Se identifican trabajadorestrabajadores y y artefactosartefactos

Adaptación o especialización del procesoAdaptación o especialización del proceso

Se utilizan diagramas de actividad de UML para Se utilizan diagramas de actividad de UML para describir los flujos de trabajodescribir los flujos de trabajo

Page 14: 1 Puds

1414agc-2008agc-2008

La vida del proceso unificadoLa vida del proceso unificado

Inicio Elaboración Construcción Transición

Requisitos

Análisis

Diseño

Implementación

Prueba

Flujos de trabajofundamentales

Fases

iter #1 iter #2 --- --- --- --- --- iter #n-1 iter #n

Iteraciones

una iteración en lafase de elaboración

Page 15: 1 Puds

1515agc-2008agc-2008

Caracteristicas del PUDSCaracteristicas del PUDS

El Proceso Unificado es:El Proceso Unificado es:

Dirigido por los Casos de Uso

Centrado en laArquitectura

Iterativo e Incremental

Page 16: 1 Puds

1616agc-2008agc-2008

Dirigido por casos de usoDirigido por casos de uso

Se centra en la funcionalidad que el sistema debe Se centra en la funcionalidad que el sistema debe poseer para satisfacer las necesidades de un usuario poseer para satisfacer las necesidades de un usuario (persona, sistema externo, dispositivo) que interactua (persona, sistema externo, dispositivo) que interactua con élcon él

Casos de uso como el hilo conductor que orienta las Casos de uso como el hilo conductor que orienta las actividades de desarrolloactividades de desarrollo

Casos de UsoCasos de Uso

AnálisisAnálisisRecopilar,Recopilar,

Clarificar y Clarificar y Validar los Validar los

requerimientosrequerimientos

DiseñoDiseño

Realizar losRealizar loscasos de usocasos de uso

PruebasPruebas

Verificar que seVerificar que sesatisfacen los satisfacen los casos de usocasos de uso

<<realiza>><<realiza>> <<verifica>><<verifica>><<defineNecesidades>><<defineNecesidades>>

Page 17: 1 Puds

1717agc-2008agc-2008

Dirigido por casos de UsoDirigido por casos de Uso

Requisitos Implement. Prueba

Casos de uso enlaza todos los flujos de trabajo

Analisis Diseño

Page 18: 1 Puds

1818agc-2008agc-2008

Centrado en la arquitecturaCentrado en la arquitectura

Concepto similar a la arquitectura de un edificioConcepto similar a la arquitectura de un edificio Varios planos con diferentes aspectos del edificioVarios planos con diferentes aspectos del edificio Tener una imagen completa del edificio antes que comience la Tener una imagen completa del edificio antes que comience la

construcciónconstrucción

Arquitectura en sofwareArquitectura en sofware Diferentes vistas del sistema: estructural, funcional, dinámico, Diferentes vistas del sistema: estructural, funcional, dinámico,

etc.etc. Plataforma en la que va a operarPlataforma en la que va a operar Determina la forma del sistemaDetermina la forma del sistema

Arquitectura: determina la forma del sistemaArquitectura: determina la forma del sistemaCasos de uso: determinan la función del sistemaCasos de uso: determinan la función del sistema

Page 19: 1 Puds

1919agc-2008agc-2008

Architecture and ModelsArchitecture and Models

Views

Models

Use CaseModel

DesignModel

Depl.Model

Impl.Model

TestModel

AnalysisModel

Page 20: 1 Puds

2020agc-2008agc-2008

Funcion versus FormaFuncion versus Forma

Use cases Architecture

• Casos de uso especifica la funcion y la arquitectura especifica la forma

• Casos de Uso y Arquitectura deben estar balanceados

Page 21: 1 Puds

2121agc-2008agc-2008

Iterativo e incrementalIterativo e incrementalDescomposición de un proyecto grande en mini-Descomposición de un proyecto grande en mini-proyectosproyectosCada mini-proyecto es una iteraciónCada mini-proyecto es una iteraciónLas iteraciones deben estar controladasLas iteraciones deben estar controladasCada iteración trata un conjunto de casos de Cada iteración trata un conjunto de casos de uso uso

Ventajas del enfoque iterativoVentajas del enfoque iterativo Detección temprana de riesgosDetección temprana de riesgos Administración adecuada del cambioAdministración adecuada del cambio Mayor grado de reutilizaciónMayor grado de reutilización Mayor experiencia para el grupo de desarrolloMayor experiencia para el grupo de desarrollo

Page 22: 1 Puds

2222agc-2008agc-2008

InicioInicio ConstrucciónConstrucción TransiciónTransiciónElaboración

FaseFase Hito a AlcanzarHito a Alcanzar

Inicio:Inicio: Definir el alcance del proyectoDefinir el alcance del proyecto

Elaboración:Elaboración: Planificar el proyecto, elaborar una arquitectura basePlanificar el proyecto, elaborar una arquitectura base

Construcción:Construcción: Construir el sistemaConstruir el sistema

Transición:Transición: Transición a los usuariosTransición a los usuarios

Etapa de Ingeniería Etapa de Producción

Arquitectura Base

Tiempo

Hitos en PUDS

Page 23: 1 Puds

2323agc-2008agc-2008

Fase InicioFase InicioObjetivo: Definir la razón de ser y el alcance del Objetivo: Definir la razón de ser y el alcance del proyecto. proyecto. Establecer casosEstablecer casos de negocios para un nuevo de negocios para un nuevo

sistema o para alguna actualización importante sistema o para alguna actualización importante de un sistema existentede un sistema existente

ActividadesActividades Especificación de los criterios de éxito del proyectoEspecificación de los criterios de éxito del proyecto Definición de los requerimientos Definición de los requerimientos Estimación de los recursos necesariosEstimación de los recursos necesarios Cronograma inicial de fasesCronograma inicial de fases

ArtefactosArtefactos Documento de definición del proyectoDocumento de definición del proyecto

Page 24: 1 Puds

2424agc-2008agc-2008

Fase ElaboraciónFase Elaboración

Objetivo: establecer un plan de proyecto y una arquitectura Objetivo: establecer un plan de proyecto y una arquitectura correcta del sistemacorrecta del sistemaActividadesActividades

Análisis del dominio del problemaAnálisis del dominio del problema Definición de la arquitectura básica Definición de la arquitectura básica Análisis de riesgosAnálisis de riesgos Planificación del proyectoPlanificación del proyecto

ArtefactosArtefactos Modelo del dominioModelo del dominio Modelo de procesosModelo de procesos Modelo funcional de alto nivelModelo funcional de alto nivel Arquitectura básicaArquitectura básica

Page 25: 1 Puds

2525agc-2008agc-2008

Fase ConstrucciónFase Construcción

Objetivo: desarrollar el sistema a lo largo Objetivo: desarrollar el sistema a lo largo de una serie de iteracionesde una serie de iteraciones

ActividadesActividades Análisis, Diseño, Codificación.Análisis, Diseño, Codificación. Pruebas (individuales, de integración)Pruebas (individuales, de integración)

ArtefactoArtefacto Liberaciones de productos ejecutables de Liberaciones de productos ejecutables de

funcionalidad incrementalfuncionalidad incremental Documentación de usuarioDocumentación de usuario Una liberación “beta” del productoUna liberación “beta” del producto

Page 26: 1 Puds

2626agc-2008agc-2008

Fase TransiciónFase Transición

Objetivo: Objetivo: Hacer la transición final del producto de Hacer la transición final del producto de software al usuariosoftware al usuario

ActividadesActividades Liberaciones ejecutables de productoLiberaciones ejecutables de producto Validar el nuevo sistema vs. las expectaciones Validar el nuevo sistema vs. las expectaciones

del usuario. Está el usuario satisfecho?del usuario. Está el usuario satisfecho? Gastos reales de los recursos vs. Gastos Gastos reales de los recursos vs. Gastos

previstos previstos Aceptables? Aceptables?

ArtefactoArtefacto Liberación de versión “operativa” del productoLiberación de versión “operativa” del producto

Page 27: 1 Puds

2727agc-2008agc-2008

Distribución de RecursosDistribución de Recursos

Tipico 10% 30% 50% 10%Complejos: 20% 33% 40% 7%

Recurso

Tiempo

InicioElaboracion

Construccion

Transicion

Page 28: 1 Puds

2828agc-2008agc-2008

Modelos y DiagramasModelos y DiagramasUn modelo es una descripción completa

de un sistema de una perspectiva particular

Use CaseDiagramsDiagramas

Caso de Uso

ScenarioDiagramsDiagramasColaboración

StateDiagramsDiagramas

Componentes

ComponentDiagramsDiagramasDespliegue

StateDiagramsDiagramas

Objecto

ScenarioDiagramsDiagramas

Estado

Use CaseDiagramsDiagramasSecuencia

StateDiagramsDiagramas

Clase

DiagramasActividades

Modelos

Page 29: 1 Puds

2929agc-2008agc-2008

Flujo de trabajos y ModelosFlujo de trabajos y Modelos

Requisitos

Diseño

Implementacion

Prueba

Analisis

Caso UsoModel

DesignModel

Depl.Model

Impl.Model

AnalysisModel

PruebaModel

Los diagramas de UML proporcionan las vistas en cada modelo

Cada flujo de trabajo es asociado con uno o más modelos

Page 30: 1 Puds

3030agc-2008agc-2008

Modelo de Casos de UsosModelo de Casos de UsosUse CaseDiagrams

CollaborationDiagrams

ComponentDiagrams

DeploymentDiagrams

ObjectDiagrams

StatechartDiagrams

SequenceDiagrams

ClassDiagrams

ActivityDiagrams

Use CaseModel

DesignModel

Depl.Model

Impl.Model

AnalysisModel

TestModel

Page 31: 1 Puds

3131agc-2008agc-2008

Modelo de Analisis y DiseñoModelo de Analisis y DiseñoUse CaseDiagrams

CollaborationDiagrams

ComponentDiagrams

DeploymentDiagrams

ObjectDiagrams

StatechartDiagrams

SequenceDiagrams

ClassDiagrams

ActivityDiagrams

Use CaseModel

DesignModel

Depl.Model

Impl.Model

AnalysisModel

TestModel

Incluye SubSistemas y Paquetes

Page 32: 1 Puds

3232agc-2008agc-2008

Modelo de Despliegue e Modelo de Despliegue e ImplementacionImplementacionUse Case

Diagrams

CollaborationDiagrams

ComponentDiagrams

DeploymentDiagrams

ObjectDiagrams

StatechartDiagrams

SequenceDiagrams

ClassDiagrams

ActivityDiagrams

Use CaseModel

DesignModel

Depl.Model

Impl.Model

AnalysisModel

TestModel

Incluye clases activas y componenetes

Page 33: 1 Puds

3333agc-2008agc-2008

Modelo de PruebasModelo de PruebasUse CaseDiagrams

CollaborationDiagrams

ComponentDiagrams

DeploymentDiagrams

ObjectDiagrams

StatechartDiagrams

SequenceDiagrams

ClassDiagrams

ActivityDiagrams

Use CaseModel

DesignModel

Depl.Model

Impl.Model

AnalysisModel

TestModel

Modelo de la prueba se refiere a todos los otros modelos y usa los diagramas correspondientes

Page 34: 1 Puds

3434agc-2008agc-2008

El Proceso Unificado es El Proceso Unificado es IngenieriaIngenieria

Describe a Use Case

Caso de UsoEmpaquetado

Caso de Uso

Responsable de

Analyst

Artefacto

Una pieza de informacion que es producida, modificada o usada por un proceso

Trabajador

Un rol de un individuo o equipo

Actividad

Una unidad de trabajo

Page 35: 1 Puds

3535agc-2008agc-2008

Flujo de Trabajo:Flujo de Trabajo: Captura de Requisitos Captura de Requisitos

Analista

Arquitecto

Especificador

Diseñador

Priorizar los casos de uso

Detallar un caso de uso

Estructurar el modelo de casos de uso

Prototipar la interfaz de usuario

Encontrar actores y casos de uso

Page 36: 1 Puds

3636agc-2008agc-2008

Flujo de Trabajo:Flujo de Trabajo:ANALISISANALISIS

Arquitecto

Ing. de Caso de Uso

Ing. de Componente

Analizar una Caso de Uso

Analizar una Clase Analizar un Paquete

Análisis de la Arquitectura

Page 37: 1 Puds

3737agc-2008agc-2008

Flujo de Trabajo: DISEÑOFlujo de Trabajo: DISEÑO

Arquitecto

Ing. de Caso de Uso

Ing. de Componente

Diseñar un Caso de Uso

Diseñar un subsistema

Diseño de la Arquitectura

Diseñar una Clase

Page 38: 1 Puds

3838agc-2008agc-2008

Flujo de Trabajo:Flujo de Trabajo:IMPLEMENTACIONIMPLEMENTACION

Arquitecto

Integrador de sistemas

Ing. de Componentes

Implementar una Clase

Realizar Prueba de Unidad

Implementación de la Arquitectura

Implementar un Subsistema

Integrar Sistemas

Page 39: 1 Puds

3939agc-2008agc-2008

Flujo de Trabajo: PRUEBAFlujo de Trabajo: PRUEBA

Ing. de Prueba

Ing. de prueba de integración

Ing. de Componentes

Realizar Prueba de Integración

Realizar Prueba de Sistema

Evaluar Prueba

Implementar Pruebas

Planificar Prueba

Ing. de Prueba de Sistemas

Diseñar Prueba

Page 40: 1 Puds

4040agc-2008agc-2008

Dos Partes de un Metodo Dos Partes de un Metodo UnificadoUnificado

El lengujeUnificado

de Modelado

El ProcesoUnificado

• Convergencia en el futuro

• Convergencia a traves del patrones de procesos

• Convergencia en el futuro

• Convergencia a traves del patrones de procesos

• OMG standard

• OMG standard