Date post: | 30-Jan-2016 |
Category: |
Documents |
Upload: | juan-jose-chiri |
View: | 215 times |
Download: | 0 times |
El Proceso El Proceso Unificado de Unificado de Desarrollo de Desarrollo de
SoftwareSoftwareIng. Angélica Garzón Cuéllar
Abril 2012
22
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
33
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.
44
¿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.
55
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”.
66
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
77
Equipo de Desarrollo
UML no es suficienteUML no es suficiente
Lenguaje deModelado
ProcesoUnificado
88
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
99
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
1010
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
1111
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
1212
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
1313
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
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
1515Agc-2012Agc-2012
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
1616agc-2012agc-2012
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>>
1717
Dirigido por casos de UsoDirigido por casos de Uso
Requisitos Implement. Prueba
Casos de uso enlaza todos los flujos de trabajo
Analisis Diseño
1818
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
1919
Architecture and ModelsArchitecture and Models
Views
Models
Use CaseModel
DesignModel
Depl.Model
Impl.Model
TestModel
AnalysisModel
2020
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
2121
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
2222
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
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
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
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
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
2727
Distribución de RecursosDistribución de Recursos
Tipico 10% 30% 50% 10%Complejos: 20% 33% 40% 7%
Recurso
Tiempo
InicioElaboracion
Construccion
Transicion
2828
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
2929
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
3030
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
3131
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
3232
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
3333
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
3434
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
3535
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
3636
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
3737
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
3838
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
3939
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
4040
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