Post on 15-Sep-2015
UNIDAD 1 ASIGNATURA : ARQUITECTURA DE SOFTWARE PROGRAMA: INGENIERIA DE SISTEMA
TUTOR: CARLOS ARTURO CANCHALA E. MAIL: redcolombia@hotmail.com
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: redcolombia@hotmail.com
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: redcolombia@hotmail.com
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: redcolombia@hotmail.com
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: redcolombia@hotmail.com
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: redcolombia@hotmail.com
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: redcolombia@hotmail.com
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: redcolombia@hotmail.com
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: redcolombia@hotmail.com
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: redcolombia@hotmail.com
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: redcolombia@hotmail.com
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: redcolombia@hotmail.com
- 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: redcolombia@hotmail.com
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: redcolombia@hotmail.com
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