Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Centrado en la Arquitectura
La arquitectura de un sistema software se describe mediante diferentes vistas del sistema
en construccin.
El concepto de arquitectura software incluye los aspectos estticos y dinmicos ms
significativos del sistema.
La arquitectura es una vista del diseo completo con las caractersticas ms importantes
resaltadas, dejando los detalles de lado.
Los casos de uso y la arquitectura estn profundamente relacionados. Los casos de uso
deben encajar en la arquitectura, y a su vez la arquitectura debe permitir el desarrollo de
todos los casos de uso requeridos, actualmente y a futuro.
El arquitecto desarrolla la forma o arquitectura a partir de la comprensin de un conjunto
reducido de casos de uso fundamentales o crticos (usualmente no ms del 10 % del
total). En forma resumida, podemos decir que el arquitecto:
- Crea un esquema en borrador de la arquitectura comenzando por la parte no especfica
de los casos de uso (por ejemplo la plataforma) pero con una comprensin general de los
casos de uso fundamentales.
- A continuacin, trabaja con un conjunto de casos de uso clave o fundamental. Cada caso
de uso es especificado en detalle y realizado en trminos de subsistemas, clases, y
componentes.
- A medida que los casos de uso se especifican y maduran, se descubre ms de la
arquitectura, y esto a su vez lleva a la maduracin de ms casos de uso.
Iterativo e Incremental
Es prctico dividir el esfuerzo de desarrollo de un proyecto de software en partes ms
pequeas o mini proyectos.
Cada mini proyecto es una iteracin que resulta en un incremento.
Las iteraciones hacen referencia a pasos en el flujo de trabajo, y los incrementos a
crecimientos en el producto.
Las iteraciones deben estar controladas. Esto significa que deben seleccionarse y
ejecutarse de una forma planificada.
Los desarrolladores basan la seleccin de lo que implementarn en cada iteracin en dos
cosas: el conjunto de casos de uso que amplan la funcionalidad, y en los riesgos ms
importantes que deben mitigarse.
En cada iteracin los desarrolladores identifican y especifican los casos de uso
relevantes, crean un diseo utilizando la arquitectura seleccionada como gua, para
implementar dichos casos de uso. Si la iteracin cumple sus objetivos, se contina con la
prxima. Sino deben revisarse las decisiones previas y probar un nuevo enfoque.
Fases
Cada ciclo constas de cuatro fases: inicio, elaboracin, construccin, y transicin
Cada fase se subdivide en iteraciones. En cada iteracin se desarrolla en secuencia un
conjunto de disciplinas o flujos de trabajos.
Disciplinas
Cada disciplina es un conjunto de actividades relacionadas (flujos de trabajo) vinculadas a
un rea especfica dentro del proyecto total. Las ms importantes son:
Requerimientos, Anlisis, Diseo, Codificacin, y Prueba.
El agrupamiento de actividades en disciplinas es principalmente una ayuda para
comprender el proyecto desde la visin tradicional en cascada.
Cada disciplina est asociada con un conjunto de modelos que se desarrollan. Estos
modelos estn compuestos por artefactos. Los artefactos ms importantes son los
modelos que cada disciplina realiza: modelo de casos de uso, modelo de diseo, modelo
de implementacin, y modelo de prueba.
El Proceso Unificado consiste en una serie de disciplinas o flujos de trabajo que van
desde los requisitos hasta las pruebas. Los flujos de trabajo desarrollan modelos desde el
modelo de casos de uso hasta el modelo de pruebas.
Hitos
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. El ms crtico es que los directores deben tomar
ciertas decisiones antes de que el trabajo contine con la siguiente fase. Los hitos
tambin permiten controlar la direccin y progreso del trabajo. Al final se obtiene un
conjunto de datos a partir del seguimiento del tiempo y esfuerzo consumidos en cada
fase. Estos datos son tiles para las estimaciones en futuros proyectos.
Fase de Inicio
Durante la fase de inicio se desarrolla una descripcin del producto final, y se presenta el
anlisis del negocio. Esta fase responde las siguientes preguntas:
Cules son las principales funciones del sistema para los usuarios ms importantes?
Cmo podra ser la mejor arquitectura del sistema?
Cul es el plan del proyecto y cunto costar desarrollar el producto?
En esta fase se identifican y priorizan los riesgos ms importantes.
El objetivo de esta fase es ayudar al equipo de proyecto a decidir cules son los
verdaderos objetivos del proyecto. Las iteraciones exploran diferentes soluciones
posibles, y diferentes arquitecturas posibles.
Puede que todo el trabajo fsico realizado en esta fase sea descartado. Lo nico que
normalmente sobrevive a la fase de inicio es el incremento del conocimiento en el equipo.
Los artefactos que tpicamente sobreviven a 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.
Fase de Elaboracin
Durante la fase de elaboracin se especifican en detalle la mayora de los casos de uso
del producto y se disea la arquitectura.
Las iteraciones en la fase de elaboracin:
- Establecen una firme comprensin del problema a solucionar.
- Establece la fundacin arquitectural para el software.
- Establece un plan detallado para las siguientes iteraciones.
- Elimina los mayores riesgos.
El resultado de esta fase es la lnea base de la arquitectura.
En esta fase se construyen tpicamente 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.
La fase de elaboracin finaliza con el hito de la Arquitectura del Ciclo de Vida.
Este hito se alcanza cuando el equipo de desarrollo y los stakeholders llegan a un
acuerdo sobre:
- Los casos de uso que describen la funcionalidad del sistema.
- La lnea base de la arquitectura
- Los mayores riesgos han sido mitigados
- El plan del proyecto
Fase de Construccin
Durante la fase de construccin se crea el producto. La lnea base de la arquitectura crece
hasta convertirse en el sistema completo.
Al final de esta fase, el producto contiene todos los casos de uso implementados, sin
embargo puede que no est libre de defectos.
Los artefactos producidos durante esta fase son:
- El sistema software
- Los casos de prueba
- Los manuales de usuario
La fase de construccin finaliza con el hito de Capacidad Operativa Inicial.
Este hito se alcanza cuando el equipo de desarrollo y los stakeholders llegan a un
acuerdo sobre:
- El producto es estable para ser usado
- El producto provee alguna funcionalidad de valor
- Todas las partes estn listas para comenzar la transicin
Fase de Transicin
La fase de transicin cubre el perodo durante el cual el producto se convierte en la
versin beta.
Las iteraciones en esta fase continan agregando caractersticas al sw. Sin embargo las
caractersticas se agregan a un sistema que el usuario se encuentra utilizando
activamente.
Los artefactos construidos en esta fase son los mismos que en la fase de construccin. El
equipo se encuentra ocupado fundamentalmente en corregir y extender la funcionalidad
del sistema desarrollado en la fase anterior.
La fase de transicin finaliza con el hito de Lanzamiento del Producto,.
Este hito se alcanza cuando el equipo de desarrollo y los stakeholders llegan a un
acuerdo sobre:
- Se han alcanzado los objetivos fijados en la fase de Inicio.
- El usuario est satisfecho.
Para cada caso de uso debe especificarse sus caminos o secuencias de acciones
posibles.
Ej.: Secuencia de acciones para un camino del caso de uso Sacar Dinero (simplificada)
La mayora de las clases de diseo normalmente tienen una sola traza a una clase de
anlisis. Esto es habitual para las clases de diseo que son especficas de la aplicacin,
diseadas para dar soporte a una aplicacin o a un conjunto de ellas.
De manera similar a como lo realizamos en el anlisis, debemos identificar la interaccin
detallada entre los objetos de diseo que tiene lugar en la realizacin del caso de uso en
el modelo del diseo. En el diseo sin embargo, utilizaremos principalmente diagramas de
secuencia para representar esta interaccin.
Ej.: Diagrama de secuencia para representar la realizacin del caso de uso Sacar
El modelo de implementacin est formado por componentes, que incluyen todos los
ejecutables (Ej. ActiveX, JavaBeans, .exe), y otro tipo de componentes como ser
componentes de fichero (cdigo fuente, shell scripts, etc.), componentes de tabla
(elementos de base de datos), etc.
Desarrollo de la arquitectura
La arquitectura se desarrolla mediante iteraciones, principalmente en la etapa de
elaboracin.
El resultado de la fase de elaboracin es la lnea base de la arquitectura un esqueleto
del sistema con pocos msculos de software.
Los casos de uso que son relevantes para la arquitectura son resumidamente aquellos
que mitigan los mayores riesgos del proyecto, aquellos que son ms importantes para el
usuario, y aquellos que nos ayudan a cubrir todas las funcionalidades significativas.
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 construccin. Incluye el mismo esqueleto de subsistemas, componentes
y nodos que un sistema definitivo, pero no existe toda la musculatura. Es un sistema
ejecutable.
Descripcin 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.
El papel de la descripcin de la arquitectura es guiar al equipo de desarrollo a travs del
ciclo de vida del sistema.
La descripcin de la arquitectura puede adoptar diferentes formas. Puede ser un extracto
de los modelos que son parte de la lnea base de la arquitectura, o puede ser una
reescritura de los extractos de forma que sea ms fcil leerlos.
La descripcin de la arquitectura tiene cinco secciones, una para cada modelo: una vista
del modelo de casos de uso, una vista del modelo de anlisis (opcional / descartable), una
vista del modelo de diseo, una vista del modelo de despliegue, y una vista del modelo de
implementacin.
.
La vista de la arquitectura del modelo de implementacin
5. Conceptos clave
El propsito fundamental del flujo de trabajo de los requisitos es guiar el desarrollo hacia
el sistema correcto. Hay diferentes puntos de partida para la captura de requisitos. En
algunos casos comenzamos haciendo un modelo del negocio o partimos de uno ya
desarrollado. En otros casos si es un sistema acotado que no da soporte al negocio
podemos partir de un modelo de objetos sencillo como un modelo del dominio. En otros
casos el cliente puede ya haber desarrollado una especificacin completa de requisitos no
basada en objetos, de la cual podemos partir.
7. Anlisis
Introduccin
Durante el anlisis, analizamos los requisitos que se describieron en la captura de
requisitos, refinndolos y estructurndolos. El objetivo de hacerlo es conseguir una
comprensin ms precisa de los requisitos y una descripcin de los mismos que sea fcil
de mantener y que nos ayude a estructurar el sistema entero, incluyendo su arquitectura.
Comparacin del modelo de casos de uso con el modelo del anlisis:
El lenguaje que utilizamos en el anlisis se basa en un modelo de objetos conceptual, que
llamamos modelo de anlisis. El modelo de anlisis nos ayuda a refinar los requisitos.
Analizar los requisitos en la forma de un modelo de anlisis es importante por varios
motivos:
Un modelo de anlisis ofrece una especificacin ms precisa de los requisitos que la
que tenemos como resultado de la captura de requisitos, incluyendo al modelo de casos
de uso.
Un modelo de anlisis se describe utilizando el lenguaje de los desarrolladores, y se
puede por tanto introducir un mayor formalismo y ser utilizado para razonar sobre los
funcionamientos internos del sistema.
Un modelo de anlisis estructura los requisitos de un modo que facilita su comprensin,
su preparacin, su modificacin, y en general, su mantenimiento.
Un modelo de anlisis puede considerarse como una primera aproximacin al modelo
de diseo (aunque es un modelo por s mismo), y es por tanto una entrada fundamental
cuando se da forma al sistema en el diseo y en la implementacin.
Artefactos
8. Diseo
Introduccin
Durante el diseo modelamos el sistema y su arquitectura para que soporte los requisitos
funcionales y no funcionales. Una entrada esencial al diseo es el modelo de anlisis.
Comparacin modelo del anlisis modelo del diseo
El diseo es el centro de atencin al final de la fase de elaboracin y comienzo de las
iteraciones de construccin.
Trabajadores y Artefactos
Artefacto: interfaz
Las interfaces se utilizan para especificar las operaciones que proporcionan las clases y
los subsistemas del diseo.
Se dice que una clase de diseo o un subsistema de diseo realizan o implementan una
interfaz.
Las interfaces constituyen una forma de separar la especificacin de la funcionalidad
en trminos de operaciones de sus implementaciones en trminos de mtodos.
Artefacto: descripcin de la arquitectura (vista del modelo de diseo)
Se consideran significativos para la arquitectura los siguientes artefactos del modelo de
diseo:
- La descomposicin del modelo de diseo en subsistemas, sus interfaces, y las
dependencias entre ellos.
- Clases de diseo fundamentales como clases activas y clases centrales.
- Realizaciones de caso de uso-diseo que describan alguna funcionalidad importante y
crtica.
Artefacto: modelo de despliegue
El modelo de despliegue es un modelo de objetos que describe la distribucin fsica del
sistema en trminos de cmo se distribuye la funcionalidad entre los nodos de cmputo
Artefacto: descripcin de la arquitectura (vista del modelo de despliegue)
La descripcin de la arquitectura contiene una vista de la arquitectura del modelo de
despliegue que muestra sus artefactos relevantes para la arquitectura.
Trabajadores
Trabajador: arquitecto
Responsable del modelo de diseo, modelo de despliegue, y descripcin de la
arquitectura.
Trabajador: ingeniero de casos de uso
Responsable de la realizacin de caso de uso diseo.
Trabajador: ingeniero de componentes
Responsable de Clases de diseo, subsistema de diseo, interfaz.
Flujo de Trabajo
9. Implementacin
Introduccin
En la implementacin empezamos con el resultado del diseo e implementamos el
sistema en trmino de componentes, es decir, ficheros de cdigo fuente, scripts, ficheros
de cdigo binario, ejecutables, y similares.
La implementacin es el centro durante las iteraciones de construccin, aunque tambin
se lleva a cabo trabajo de implementacin durante la fase de elaboracin,para crear la
lnea base ejecutable de la arquitectura, y durante la fase de transicin para tratar
defectos tardos.
Trabajadores y Artefactos
Artefactos
Artefacto: Modelo de Implementacin
El modelo de diseo es un modelo de objetos que describe la realizacin fsica de los
elementos del modelo de diseo.
Artefacto: componente
Un componente es el empaquetamiento fsico de los elementos de un modelo, como son
las clases en el modelo de diseo. Algunos estereotipos tpicos son:
<<executable>> programa ejecutable en un nodo
<<file>> fichero que contiene cdigo fuente o datos
<<library>> librera esttica o dinmica
<<table>> es una tabla de base de datos
<<document>> es un documento
Los componentes tienen relaciones de traza con los elementos que implementan.
Es normal que un componente implemente varios elementos, por ejemplo varias clases.
Stubs
Artefacto: interfaz
En el modelo de implementacin las interfaces pueden ser utilizadas para especificar
las operaciones implementadas por componentes y subsistemas de implementacin.
Artefacto: descripcin de la arquitectura
La descripcin de la arquitectura tiene la visin de la arquitectura del modelo de
implementacin.
Los siguientes artefactos son considerados arquitectnicamente significativos:
- Descomposicin del modelo de implementacin en subsistemas, sus interfaces, y
dependencias entre ellos.
- Componentes clave que siguen la traza de las clases de diseo significativas
arquitectnicamente.
Artefacto: plan de integracin
El sistema se desarrolla incrementalmente a pasos manejables. Cada paso de
construccin debe ser sometido a pruebas de integracin.
Para prepararse ante el fallo de una construccin se lleva un control de versiones para
poder volver atrs a una construccin anterior.
Un plan de integracin de construcciones describe la secuencia de construcciones
necesarias en una iteracin. Un plan de este tipo describe lo siguiente para cada
construccin:
- La funcionalidad que se espera sea implementada en dicha construccin, consiste en
una lista de casos de uso a implementar.
- Las partes del modelo de implementacin que estn afectadas por la construccin (lista
de subsistemas y componentes necesarios para implementar la funcionalidad).
Trabajadores
Trabajador: arquitecto
Durante la fase de implementacin, el arquitecto es responsable de la integridad del
modelo de implementacin y asegura que el modelo como un todo es correcto, completo,
y legible.
El arquitecto es responsable del modelo de implementacin, el modelo de despliegue, y la
descripcin de la arquitectura.
Trabajador: ingeniero de componentes
Define y mantiene el cdigo fuente de uno o varios componentes, garantizando que el
componente implementa la funcionalidad correcta.
A menudo tambin mantiene la integridad de uno o varios subsistemas de
implementacin.
Trabajador: integrador de sistemas
Es responsable del plan de integracin de construcciones.
10. Prueba
Introduccin
Los objetivos de la prueba son:
- Planificar las pruebas necesarias en cada iteracin, incluyendo las pruebas de
integracin y las pruebas de sistema.
- Disear e implementar pruebas creando los casos de prueba (especifican qu probar),
procedimientos de prueba (especifican cmo realizar las pruebas), creando componentes
de prueba para automatizar las pruebas.
- Realizar las pruebas.
Artefactos
Trabajadores
Herramientas
- Herramientas de pago
o Las herramientas nos ayudan a seguir el desarrollo del proceso unificado en un
proyecto
o La divisin de software Rational de IBM tiene un conjunto completo de herramientas que
ayudan a seguir el RUP
Ventajas:
Ayudan a implementar todas las disciplinas y artefactos del proceso unificado generando
documentacin de forma eficiente
Desventajas
Sus herramientas comerciales son caras , alrededor de 600 euros
Requiere de un nivel de aprendizaje de la herramienta, adems del aprendizaje del
proceso unificado
o Alternativas gratuitas
Rational Method Composer
Plataforma para la gestin de procesos que se usa para gestionar , por ejemplo , el RUP
La herramienta no es gratuita per la versin de prueba permite generar el sitio web con
toda la informacin disponible del RUP en sus versiones , Classic , Medium y Small
Incluye guias, planillas , ejemplos que ayudan a realizar el RUP
o Eclipse Process Framework
Es el equivalente libre del Rational Method composer, siendo muy similares incluso en el
interfaz
Incluye como refinamiento del proceso unificado el OpenUP/Basic un versin ligera del
mismo
o ReadySET
El proyecto Tigris.org pretende generar herramientas y documentacin de cdigo abierto
sobre la ingeniera del Software
La conocida herramienta de desarrollo de diagrama UML, ArgoUML se ha desarrollado
dentro de este proyecto
ReadySET es un conjunto de plantillas y guias para el desarrollo del los artefactos de un
producto software
No siguen al pie de la letra el proceso unificado pero su estructura es similar
- Herramientas colaborativas
o Cuando el trabajo es llevado a cabo por muchas personas es fundamental contar con
herramientas que faciliten el trabajo compartido
o Estas herramientas deben de mantener un control de versiones y deben permitir
visualizar las aportaciones de cada usuario
o Para el cdigo fuente la mas utilizada es CVS , Concurrent Versioning System
o Para la documentacin es comn usar un sistema basado en wikis, como por ejemplo
MediaWiki, software utilizado en Wikipedia.