Académique Documents
Professionnel Documents
Culture Documents
Semana 6 - Sesin 11
Temario
Documentacin de la arquitectura
Modelo de arquitectura 4+1.
Diagramas del UML para las vistas de arquitectura.
Hagamos un recuento de lo recorrido hasta el momento y
de lo que falta recorrer
Diseo de la
Modelo de casos de uso
Arquitectura
Metas, mecanismos y
vistas de la
Arquitectura
Especificaciones
Suplementarias
(requerimientos
arquitectnicos)
Fuente: Rational Unified Process
Visin de la arquitectura
Documentacin de la arquitectura
Para qu es til la documentacin
de la arquitectura?
Para tener informacin:
Lo suficientemente abstracta
para que nuevos miembros del
equipo de desarrollo y los
stakeholders puedan
entenderla con facilidad.
Lo suficientemente detallada, a
modo de bosquejo, para la
construccin del cdigo.
Suficiente, como base de
anlisis y entrenamiento. Fuente: Imgenes prediseadas de office.com
Para qu es til la documentacin
de la arquitectura?
Para establecer una declaracin de
la misin del sistema, til para los
desarrolladores.
Para explicar la divisin del
sistema y sus dependencias
Para establecer el punto de inicio
en la comprensin del sistema,
como instalarlo y como
recuperarlo en caso de fallas.
Para establecer el correcto plan de
desarrollo, resaltando la
funcionalidad y atributos de Fuente: Imgenes prediseadas de office.com
mayor impacto.
Documento de arquitectura
Caera-y-Filtro (Pipes-Filters)
Tipos de Componente-y- Datos compartidos
vistas y Conector Publicar suscribir
estilos Cliente servidor
Peer-to-peer
Procesos que se comunican
..
Despliegue
Asignacin Implementacin
Asignacin de tareas
Cmo se documenta la arquitectura?
Existe un documento de la arquitectura.
Dependiendo de la complejidad del sistema el documento
deber tener un mayor detalle en la descripcin de las
vistas.
Este documento incluye:
Un descripcin textual de la filosofa de la arquitectura (las
vistas) y las claves de conduccin a travs de
requerimientos.
Concesiones hechas o alternativas consideradas.
Vistas de alto nivel de diferentes aspectos del software.
Qu ms puede ir en el documento de
arquitectura?
El modelo 4+1
El modelo 4+1
Fue creado por Philippe Krutchen
El modelo 4+1 describe la arquitectura del
software usando cinco vistas concurrentes como
se muestra en el siguiente diagrama.
Las Vistas 4+1 del Modelo
Ejemplos
Clases fundamentales (Foundation clases)
Conjuntos (Sets), Listas(lists), Colas (queues), etc.
Paquete Paquete
Cliente Proveedor
Vista lgica
Es deseable que la jerarqua de paquetes no sea
cclica.
Esto significa que la dependencia circular debe ser
evitable
Esta se da cuando un paquete A usa el B y viceversa.
Esta dependencia implica que el paquete A y el B deben
ser tratados como un paquete nico.
Crculos mas amplios deben ser igualmente evitados.
Estas dependencias se pueden romper dividiendo
uno de los paquetes en dos mas pequeos.
Ejemplo de dependencia circular
Interfaces Reglas de
Negocio
Interfaces Reglas de
de Input Negocio
Interfaces
de Output
Vista lgica
En la vista lgica va:
Paquetes que representan
mdulos y sus relaciones
Si el desarrollo se divide en
capas
Se muestra el diagrama de
capas.
Si el sistema se ha dividido
en subsistemas
El diagrama de subsistemas. Fuente: http://www.bredemeyer.com/howto.htm
Ms las descripciones de
cada uno de estos
elementos.
Capas
Una capa (layer) proporciona una particin lgica
de un sistema o subsistema
Las capas se ordenan de arriba abajo.
Las capas de arriba estn ms cercanas al usuario final
Las capas de abajo estn ms cercanas al sistema
operativo.
El resultado es que el sistema tiene bajo
acoplamiento y por lo tanto es ms fcil su
mantenimiento.
Capas
Relaciones entre capas
La relacin es de uso permitido (Allowed to use)
Establece una jerarqua de capas.
Los mdulos de una capa no pueden utilizar
arbitrariamente los de una capa superior.
Reglas de uso: nicamente el nivel inmediatamente
inferior, o cualquier nivel inferior, etc.
Caractersticas
Reusabilidad, portabilidad y tolerancia a fallas
Ejemplo de Capas en .Net
Fuente: http://msdn.microsoft.com/en-us/library/ms954601.aspx
Las Vistas 4+1 del Modelo
Ictutor.exe
Msdbgen.dll
Epirpe20.ini <<estereotipo>>
HostControl.h Componente
Amovie.ocx
Cliente.asp
Dialog.cpp
La extensin o estereotipo de
TextJump.java un componente depende del
lenguaje de programacin
Cmprgco.idl
49
Qu es una interfaz?
Es un tipo de estructura especial que sirve como
vehculo de comunicacin entre dos
componentes.
Muestra las operaciones del o de los componentes
que la realizan.
No ejecuta ninguna funcin sino que la deriva al
componente encargado de hacerla.
Diagrama de componentes
Un diagrama de componentes en la vista de
desarrollo, muestra la asignacin de clases y
objetos a componentes de implementacin.
Tambin muestra las dependencias de compilacin de
ser requeridas.
Se requiere un nombre para cada componente.
Este nombre tpicamente debe ser simple y corto para
poder localizarlo fcilmente en el correspondiente
archivo fsico del espacio de trabajo de desarrollo.
Tambin describen en qu orden han de conversar
o ser compilados los componentes.
Adems del diagrama debe quedar especificado el
mapeo de las clases con los componentes
implementados.
Ejemplo de Diagrama de componentes
Matricula.exe Conta.exe
Usuarios
Cursos
Agentes.dll
Curso Oferta de
Cursos
Nombre
del nodo
Elementos de la vista del despliegue
Tipos de nodo.
Procesador (Processor).
Procesador
Nodo con capacidad de
procesamiento por lo que puede
ejecutar un componente.
En el UML 1.X se representaba
con un cubo sombreado.
Dispositivo (Device).
Nodo sin capacidad de
procesamiento. Por lo general Dispositivo
representa una mquina
necesaria para la
implementacin del sistema.
Ejemplo: impresora, modem, etc.
Elementos de la vista del despliegue
Conexin
Una conexin indica comunicacin.
Usualmente significa enlaces de hardware entre nodos y
dispositivos.
Se denota por una lnea etiquetada con el tipo de conexin
Tipo de conexin
Ejemplo de diagrama de despliegue
Fuente: http://www.robertz.com/Papers/AspMarch1998/Developing%20Applications%20with%20Java,%20IIS,%20and%20ASP.html
Despliegue de los componentes
Nombre
del
Procesador
Fuente: http://yed.yworks.com/support/qa/1572/can-yed-draw-uml-deployment-diagram
Diagrama de despliegue no UML
Fuente: http://www.tutorialspoint.com/uml/uml_deployment_diagram.htm
Consideraciones especiales en el despliegue
Al vincular paquetes de desarrollo con procesos
ejecutables hay que tomar en cuenta que:
Este proceso involucra la comprensin de la topologa
del sistema y sus prioridades:
La arquitectura del procesador, su velocidad y capacidad.
Conservar las asociaciones de clases juntas para minimizar la
comunicacin interprocesos (IPC)
Estrategia IPC -- cliente/servidor u otra?
Tcnicas de distribucin de procesos.
Se debe resolver puntos relacionados con mltiples
procesadores o sistemas distribuidos durante el diseo.
Consideraciones especiales en el despliegue
Al vincular procesos ejecutables al hardware
Los procesos deben ser asignados a dispositivos de
hardware para su ejecucin.
Hay que tomar en cuenta aspectos como:
Tiempo de respuesta y de puesta en marcha del sistema.
Ancho de banda de comunicacin y sus capacidad.
Medio ambiente del hardware requerido.
Necesidades de procesamiento distribuido.
Sobrecarga o balance del procesador en un sistema
distribuido.
Tolerancia a fallas.
...
Las Vistas 4+1 del Modelo
Vista de
Casos de Uso
Diagramas de
Casos de Uso
Vista de Procesos Vista de Despliegue
Para representar un
subsistema, UML 2.x tiene
un estereotipo especial.
Otro elemento es la interfaz,
que es el lmite que permite
la comunicacin entre
subsistemas.
Cuando un subsistema
requiere de una interfaz
para publicar sus servicios
utiliza la relacin de
realizacin <<realizatin>>.
Cuando un subsistema
requiere los servicios de
otro subsistema utiliza una
relacin de dependencia
con el estereotipo <<use>>
para comunicarse con la
interfaz de dicho
subsistema.
Diagrama de subsistemas
Relacin de
dependencia entre
Interfaz subsistemas.
Relacin de
realizacin entre un
Subsistema subsistema y su
interfaz
UML y las vistas de desarrollo, de procesos y
de implementacin
Para todas las vistas que tienen que ver con el desarrollo de cdigo se
utiliza el diagrama de componentes (component diagram) del UML.
Los elementos bsicos de un diagrama de componentes son:
Componentes
Interfaces
Relacin de realizacin entre un componente y su interfaz
Una interfaz realizada expone los servicios de un componente.
Relacin de dependencia entre un componente y la interfaz de otro
componente.
Cuando un componente necesita los servicios de otro componente lo hace a travs de su
interfaz.
Relacin de dependencia entre componentes.
Cuando un componente necesita de otro componente servidor y este no expone una
interfaz, la dependencia es directa.
Diagrama de componentes
Componente
Dependencia
directa
Relacin de uso
(dependencia)
Interfaz
Relacin de
realizacin
Diagrama de implementacin
UML y la vista de despliegue
Para la vista de despliegue se utiliza el diagrama de despliegue
(deployment diagram) del UML
EL Diagrama de Despliegue tiene los siguientes elementos:
Nodos
Asociaciones
Puertos
Conectores
Los nodos se vinculan a travs de asociaciones que reflejan la
comunicacin que existe entre ellos.
Las asociaciones se pueden documentar con el tipo de enlace y el protocolo
Los puertos se vinculan entre si a travs de conectores que denotan un
enlace fsico.
Adems, muestra la asociacin de los componentes de la vista de
implementacin a los nodos de procesamiento.
Diagrama de Despliegue
Nodo
Procesador
Asociacin con
Puerto
protocolo
Conector
Nodo
Dispositivo
Diagrama de despliegue con asociacin de
componentes
Componentes
asociados
Ejemplo diagrama de despliegue
No olvides que
En la vista lgica se puede usar ms de un
diagrama del UML, dependiendo de cmo se ha
organizado la agrupacin de la funcionalidad.
En las vistas relacionadas con el desarrollo se usa
el diagrama de componentes que establece los
componentes de desarrollo y la dependencia
entre ellos.
En la vista de despliegue se usa el diagrama de
despliegue que muestra los elementos de
hardware de la arquitectura que ejecutarn los
componentes del software.
96
Conclusiones
El UML proporciona los artefactos y diagramas
necesarios para documentar las vistas de la
arquitectura
Bibliografa