Proceso Unificado

14
UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected] Proceso Unificado de Desarrollo de Software Visión general Es un conjunto de actividades necesarias para transformar los requisitos del usuario en un sistema software. Es un marco genérico que puede especializarse para una variedad de tipos de sistemas, diferentes áreas de aplicación, tipos de organizaciones, niveles de aptitud y diferentes tamaños de proyectos. Está basado en componentes. El SW está formado por componentes software interconectados a través de interfaces. Esta dirigido por casos de uso, centrados en la arquitectura y es iterativo e incremental. Dirigido por casos de uso Un caso de uso es un fragmento de funcionalidad del sistema que proporciona un resultado de valor a un usuario. Todos los casos de uso de un sistema constituyen un modelo de caso de uso. Los casos de uso guían el proceso de desarrollo de un sistema (diseño, implementación y prueba). Centrado en la arquitectura La arquitectura de un software se describe mediante diferentes vistas del sistema de construcción. Incluye los aspectos estáticos y dinámicos más significativos del sistema. La arquitectura de un sistema se define como un conjunto de decisiones significativas acerca de la organización de un sistema software, la selección de los elementos estructurales a partir de los cuales se compone el sistema, las interfaces, su comportamiento, sus colaboraciones y su composición. Iterativo e incremental Es práctico dividir el desarrollo de un proyecto de software en partes pequeñas (miniproyectos). Cada mini proyecto es una iteración que resulta en un incremento.

Transcript of Proceso Unificado

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Proceso Unificado de Desarrollo de Software

    Visin general

    Es un conjunto de actividades necesarias para transformar los requisitos del

    usuario en un sistema software.

    Es un marco genrico que puede especializarse para una variedad de tipos de

    sistemas, diferentes reas de aplicacin, tipos de organizaciones, niveles de

    aptitud y diferentes tamaos de proyectos.

    Est basado en componentes. El SW est formado por componentes software

    interconectados a travs de interfaces.

    Esta dirigido por casos de uso, centrados en la arquitectura y es iterativo e

    incremental.

    Dirigido por casos de uso

    Un caso de uso es un fragmento de funcionalidad del sistema que proporciona un

    resultado de valor a un usuario.

    Todos los casos de uso de un sistema constituyen un modelo de caso de uso.

    Los casos de uso guan el proceso de desarrollo de un sistema (diseo,

    implementacin y prueba).

    Centrado en la arquitectura

    La arquitectura de un software se describe mediante diferentes vistas del sistema

    de construccin. Incluye los aspectos estticos y dinmicos ms significativos del

    sistema.

    La arquitectura de un sistema se define como un conjunto de decisiones

    significativas acerca de la organizacin de un sistema software, la seleccin de los

    elementos estructurales a partir de los cuales se compone el sistema, las

    interfaces, su comportamiento, sus colaboraciones y su composicin.

    Iterativo e incremental

    Es prctico dividir el desarrollo de un proyecto de software en partes pequeas

    (miniproyectos). Cada mini proyecto es una iteracin que resulta en un

    incremento.

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Las iteraciones hacen referencia a pasos en el flujo de trabajo y los incrementos a

    crecimientos del producto.

    Las iteraciones deben ser controladas, deben seleccionarse y ejecutarse de una

    forma planificada.

    El ciclo de vida del proceso unificado

    El ciclo de vida del proceso unificado se divide en 4 fases:

    1. Inicio: Define el alcance del proyecto

    2. Elaboracin: planificar el proyecto, elaborar una arquitectura base.

    3. Construccin: construir el sistema

    4. Transicin: transicin a los usuarios

    Cada fase se divide en iteraciones y en cada iteracin se desarrollo en secuencia

    un conjunto de disciplinas o flujos de trabajos, las cuales son:

    Disciplinas ms importantes:

    Modelado de Negocio

    Requerimientos

    Analisis y Diseo

    Codificacin

    Prueba

    Instalacin

    Disciplinas de soporte:

    Adm. Configuracin y cambios

    Adm. De Proyecto

    Ambiente

    Cada disciplina est asociada a un conjunto de modelos que se desarrollan. Estos

    modelos estn compuestos por artefactos. Los artefactos ms importantes son los

    modelos de cada disciplina realiza.

    Disciplina Modelos

    Requisitos Modelo de casos de uso

    Anlisis Modelo de anlisis

    Diseo Modelos de Diseo Modelo de despliegue

    Implementacin Modelo de implementacin

    Prueba Modelo de prueba

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Hito

    Cada fase finaliza en 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.

    Descripcin de Fases

    Fase de Inicio

    Durante esta fase se desarrolla una descripcin del producto final y se presenta el

    anlisis del negocio. Esta fase responde a las siguientes preguntas:

    Cules son las principales funciones del sistema para los usuarios ms

    importantes?

    Cmo podra ser la mejor arquitectura?

    Cul es el plan del proyecto y cuanto costar desarrollar el producto?

    En esta fase se identifican y priorizan los riesgos ms importantes.

    Los artefactos que sobreviven en esta fase son:

    Un enunciado de los mayores requerimientos planteados generalmente como

    casos de uso.

    Un boceto inicial de la arquitectura.

    Una descripcin de los objetivos del proyecto.

    Una versin muy preliminar del plan del proyecto.

    Un modelo del negocio.

    Esta fase finaliza con el hito de objetivos del ciclo de vida.

    Fase de elaboracin

    Aqu se especifican en detalle la mayora de los casos de uso y se disea la

    arquitectura.

    Las iteraciones en esta fase son:

    Establecen una firme comprensin del problema a solucionar

    Establecen la fundacin arquitectural para el software

    Establece un plan detallado para las siguientes iteraciones

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Elimina los mayores riesgos

    El resultado de esta fase es la lnea base de la arquitectura.

    En esta fase se construyen los siguientes artefactos:

    El cuerpo bsico del sw en la forma de un prototipo arquitectural

    Casos de prueba

    La mayora de los casos de uso (80%) que describen la funcionalidad del

    sistema

    Un plan detallado para las siguientes iteraciones

    Esta fase finaliza con el hito de la arquitectura del ciclo de vida.

    Fase de construccin

    Durante esta fase se crea el producto. La lnea base arquitectural crece hasta

    convertirse en el sistema completo.

    Los artefactos producidos durante esta fase son:

    El sistema software

    Los casos de prueba

    Los manuales de usuario

    Esta fase finaliza con el hito de capacidad operativa inicial.

    Fase de transicin

    Esta fase cubre el periodo durante el cual el producto se convierte en la versin

    beta.

    Las iteraciones en esta fase continan agregando caractersticas al sw. Sin

    embargo estas caractersticas se agregan a un sistema que el usuario ya se

    encuentra utilizando.

    Los artefactos construidos durante esta fase son los mismos que en la fase de

    construccin.

    Esta fase finaliza con el hito de lanzamiento del producto.

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Un Proceso dirigido por casos de uso

    Un caso de uso es una descripcin de los pasos o las actividades que debern

    realizarse para llevar a cabo algn proceso. Los personajes o entidades que

    participarn en un caso de uso se denominan actores.

    En el contexto de ingeniera del software, un caso de uso es una secuencia de

    interacciones que se desarrollarn entre un sistema y sus actores en respuesta a

    un evento que inicia un actor principal sobre el propio sistema.

    Los diagramas de casos de uso sirven para especificar la comunicacin y el

    comportamiento de un sistema mediante su interaccin con los usuarios y/u otros

    sistemas. O lo que es igual, un diagrama que muestra la relacin entre los actores

    y los casos de uso en un sistema.

    Una relacin es una conexin entre los elementos del modelo, por ejemplo la

    especializacin y la generalizacin son relaciones. Los diagramas de casos de uso

    se utilizan para ilustrar los requerimientos del sistema al mostrar cmo reacciona a

    eventos que se producen en su mbito o en l mismo.

    Un caso de uso es un fragmento de funcionalidad del sistema que proporciona un

    resultado de valor a un usuario. Los casos de uso modelan los requerimientos

    funcionales del sistema.

    El modelo de casos de

    uso representa los

    requisitos funcionales

    La primer disciplina que se

    desarrolla en cada iteracin es la

    de los requerimientos. Los

    requerimientos del sistema son

    plasmados a travs de casos de

    uso en un Modelo de Casos de

    Uso.

    Ejemplo de un Modelo de casos de uso de

    un sistema Cajero Automtico.

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Para cada caso de uso debe especificarse sus caminos o secuencias de acciones

    posibles:

    Ejemplo: secuencia de acciones para un camino del uso de sacar dinero.

    - El cliente del banco se identifica.

    - El cliente elige de que cuenta sacar dinero y especifica la cantidad

    - El sistema deduce la cantidad de la cuenta y entrega el dinero

    Los casos de uso tambin se utilizan como contenedores para los requisitos no

    funcionales.

    Creacin de un modelo de anlisis a partir de los casos de uso

    El modelo de anlisis es opcional. En este modelo se describen un conjunto de

    clases del anlisis que se utiliza para realizar una descripcin abstracta de la

    realizacin de los casos de uso de un modelo de casos de uso.

    Este modelo crece a medida que se analizan ms y ms casos de uso.

    Ejemplo de la realizacin de un caso de uso en el modelo de anlisis.

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Una clase puede participar en varias realizaciones.

    Durante el analisis se utilizan diagramas de colaboracin para describir la

    realizacin de un caso de uso.

    Cada clase debe cumplir todos los roles de colaboracion: las responsabilidades de

    una clase son la recopilacin de todos los roles que cumple en todas las

    realizaciones de casos de uso.

    Creacin del modelo de diseo a partir del modelo de analisis

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    El modelo de diseo se crea tomando el modelo de analisis como entrada

    principal, y se lo adapta a un entorno de implementacion particular.

    Este modelo incluye clasificadores, relaciones y realizaciones de casos de uso y

    existe una relacion de traza entre cada artefacto de diseo que debe adecuarse al

    entorno de implementacin especfico.

    Loas clases del diseo refinan las clases del analisis.

    En el modelo de diseo debemos identificar la interaccin detallada entre los

    objetos de diseo que tiene lugar en la realizacin del caso de uso. Utilizaremos

    diagramas de secuencia para representar esta inteaccin.

    Diagram de secuencia que representa el caso de uso Sacar dinero en el modelo de diseo.

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Agrupacin de clases en subsistemas

    Un subsistema es un agrupamiento semnticamente til de clases o de otros

    subsistemas.

    Los subsistemas de bajo nivel se denominan subsistemas de servicio. Estos

    subsistemas constituyen una unidad manejable de funcionalidad opcional.

    Los subsistemas pueden disearse en forma descendente o ascendente.

    El ascendente se realiza a partir de la agrupacin de clases ya identificadas. El

    descendente implica la definicin previa de los sistemas de ms alto nivel y las

    interfaces entre ellos, antes de que se hayan identificado las clases.

    Ejemplo:

    Interfaz del CA: agrupa todas las clases que proporciona la

    interfaz grfica del CA:

    Lector de tarjetas

    Dispositivo de visualizacin

    Teclado

    Alimentador de la salida

    Sensor de salida

    Contador de efectivo

    Gestor de cliente

    Gestin de transacciones

    o Gestion de transacciones

    o Gestin de retirada de efectivo

    Retirada de efectivo

    Gestin de cuentas

    o Clase persistente

    o Gestor de Cuentas

    o Cuenta

    Colocar todas la clases de interfaz en un subsistema permitira reemplazar el

    subsistema completo para adecuerlo a otra interfaz sin mayores cambios en el

    resto del sistema.

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Los subsistemas implementan interfaces. Las interfaces se representan por un

    circulo vinculado con una lnea de trazo continuo a la clase dentro del subsistema

    que proporciona la interfaz.

    Creacin del modelo de implementacin a partir del modelo de diseo.

    Este modelo esta conformado por componentes, que incluyen los ejecutables

    (activex, javabeans,.exe, etc ) y otro tipo de componentes como los componentes

    de fichero (cdigo fuente, shell scripts, etc.), componentes de tabla (bases de

    datos), etc.

    Un componente se define como una parte fsica y reemplazable del sistema que

    cumple y proporciona la relalizacin de un conjunto de interfaces.

    Ejemplo de componentes en una clase de diseo

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Prueba de casos de uso

    Verificar que el sistema implementa correctamente su especificacin.

    El modelo de prueba esta compuesto por casos de prueba y procedimientos de

    prueba.

    Un caso de prueba es un conjunto de entradas de prueba, condiciones de

    ejecucin y resultados esperados, desarrollados por un objetivo concreto, tal como

    probar un camino concreto a travs de un caso de uso o verificar que cumple un

    requisito especfico.

    Un procedimiento de prueba es la especificacin de cmo llevar a cabo la

    preparacin, ejecucin, y evaluacin de los resultados de un caso de prueba

    particular.

    Ejemplo:

    Un caso de prueba especifica la entrada, los resultados esperados y otras

    condiciones relevantes para verificar el flujo bsico del caso de uso Sacar Dinero.

    Entradas:

    - La cuenta 12-121-1211 del cliente de banco tiene un saldo de $ 350

    - El cliente del banco se identifica correctamente

    - El cliente del banco solicita la retirada de $ 200 de la cuenta 12-121-1211

    - Hay suficiente dinero en el cajero automtico

    Resultados:

    - El saldo de la cuenta 12-121-1211 disminuye a $ 150

    - El cliente del banco recibe $ 200 del cajero automatico

    Condiciones:

    - No se permite que ningun otro caso de uso (instancias de) acceda a la

    cuenta 12-121-1211 durante la ejecucin del caso de prueba.

    Un proceso centrado en la arquitectura

    Importancia y necesidad de una arquitectura

    Se necesita uan arquitectura para:

    - Comprender el sistema

    - Organizar el desarrollo

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    - Fomentar la reutilizacin

    - Hacer evolucionar el sistema

    Desarrollo de la arquitectura

    Se desarrolla mediante iteraciones, principalmente en la etapa de elaboracin.

    El resultado de la fase de elaboracin es la lnea de la arquitectura.

    Los casos de uso son relevantes para la arquitectura.

    Al final de la fase de elaboracin hemos desarrollado modelos del sistema que

    representan los casos de uso ms importantes y sus realizaciones desde el punto

    de vista de la arquitectura.

    Esta agregacin de modelos es la lnea base de la arquitectura. Es un sistema

    pequeo y delgado. Tiene las versiones de todos los modelos que un sistema

    terminado contiene al final de la fase de cnstruccin. Incluye el mismo esqueleto

    de subsistemas, componentes y nodos de un sistsme definitivo, pero no existe

    toda la musculatura. Es un sistema ejecutable.

    Descripicin de la arquitectura.

    La lnea base de la arquitectura es la versin interna del sistema al final de la fase

    de elaboracin. El conjunto de modelos que describen esta lnea base se

    denomina Descripcin de la Arquitectura y su objetivo es guar al equipo de

    desarrollo a travs del ciclo de vida del sistema.

    La descripcin puede ser un extracto de modelos o una reescritura de los

    extractos de forma que se ms fcil leerlos.

    La descripcin de la arquitectura tiene cinco secciones: una vista del modelo de

    casos de uso, una del modelo de analisis (opcional/descartable), una vista del

    modelo diseo, una vista del modelos despliegue y una vista del modelo de

    implementacin.

    Vista de la arquitectura del modelo de casos de uso

    Presenta los actores y casos de uso ms importantes.

    Ejemplo:

    El el CA el caso de uso ms importante es Sacar Dindero, sin l no tendra sentido

    el CA. Para definir la arquitectura por tanto, se sugiere que el caso de uso sacar

    dinero se implemente en su totalidad durante la fase de elaboracin.

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Vista de la arquitectura del modelo de diseo

    Presenta los clasificadores ms importantes para la arquitectura pertenecientes al

    modelo de diseo: los subsistemas e interfaces ms importantes, as como

    algunas clases muy importantes, fundamentalmente clases activas.

    Tambien presentan como se realizar los casos de uso en trminos de esos

    clasificadores.

    Vista de la arquitectura del modelo de despliegue

    Presenta los nodos interconectados y las clases activas que se ejecutan en ellos

    identificados durante el diseo. Esto puedo mostrarse por diagramas de

    despliegue.

    Ejemplo:

    Vista de la arquitectura de despliegue CA.

    Se incluyen los siguientes nodos y objetos activos:

    - Nodo: cliente CA Objeto activo: Gestor de clientes

    - Nodo: Servidor de aplicaciones CA Objeto activo: Gestor de

    transacciones

    - Nodo: Servidor de datos CA Objeto activo: Gestor de Cuentas

  • UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA

    TUTOR: CARLOS ARTURO CANCHALA E. MAIL: [email protected]

    Vista de la arquitectura del modelo de implementacin

    Es una correspondencia directa de los modelos diseo y despliegue.

    Cada subsistema de servicio del diseo normalmente termina siendo un

    componente por cada tipo de nodo en el que deba instalarse.

    Un proceso iterativo e incremental

    Desarrollo de pequeos pasos

    Una clave importante del RUP (Proceso Unificado Rational) consiste en desarrollar

    un producto software en pequeos manejables:

    - Planificar un poco

    - Especificar, disear, e implementar un poco

    - Integrar, probar y ejecutar un poco en cada iteracin

    Por qu un desarrollo iterativo e incremental?

    Para prevenir riesgos crticos

    Para poner en marcha una arquitectura que gue el desarrollo del software

    Para gestionar de buena forma los cambios del software

    Para construir el sistema a lo largo del tiempo en lugar de una sola vez

    cerca del final

    Para proporcionar un proceso de desarrollo ms eficaz

    La iteracin generica

    Una iteracin es un miniproyecto, un recorrido ms o menos completo a lo largo

    de todos los flujos de trabajo y que obtiene como resultado una vision interna del

    sistema y su desarrollo.

    Bibliografa

    El proceso unificado de desarrollo software, AUS Gustavo Torossi, pp. 1-20