Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Diseño de Sistemas - Resumen Completo v1.1
Diseño de Sistemas - Resumen Completo v1.1
Diseo de
Sistemas
Autor:
Adrin Botta
Ao:
2010
Fuentes:
UML: proceso unificado y Manual de referencia Rumbaugh, Jacobson, Booch
UML y patrones Larman
Apuntes de Ctedra
RUP - A.U.S. Gustavo Torossi
Wikipedia
*Resumen Realizado en base al Programa 2010
[v.1.1] Pgina 1
PROGRAMA 2010
UNIDAD
CONTENIDO
Introduccin al Diseo
1.1. Qu es el diseo? Conceptos-Caractersticas
1.2. Diferencia entre anlisis y diseo
1.3. Objetivos y Alcances
1.4. Lmites de Automatizacin
1.5. Revisin de los principios de Diseo Orientado a Objetos
El Proceso de Desarrollo Unificado
2.1. Qu es el Proceso unificado? Conceptos-Caractersticas
2.2. Conceptos Bsicos del Proceso: Flujos, artefactos, trabajadores, actividades
2.3. Tipos de Flujos: Centrales y de Iteracin
2.4. Flujo de Trabajo de Captura de Requerimientos
2.5. Modelo de Casos de uso
2.6. Modelo del Dominio
2.6.1. Visualizacin de Conceptos
2.6.2. Identificacin de clases conceptuales
2.6.3. Relaciones y Atributos
2.7. Prototipo de interfaz de usuario
2.8. Flujo de Trabajo de Anlisis
2.9. Artefactos del modelo de anlisis
2.10. Modelo de Anlisis
Flujo de Trabajo de Diseo
3.1. Workflow de Diseo: Consideraciones
3.2. El rol del diseo en el ciclo de vida del software
3.3. Artefactos de Diseo: Subsistema de diseo, Interfaz, Descripcin Arquitectura
(VMDi), Modelo de Despliegue, Descripcin Arquitectura (VMDe)
3.4. Trabajadores del diseo
3.5. Actividades del Diseo
3.6. Frameworks
3.7. Patrones GRASP: Experto, Creador, Bajo acoplamiento, Alta Cohesin, Controlador,
Polimorfismo, Indireccin, Fabricacin Pura, Variaciones Protegidas
3.8. Patrones GoF: Estrategia, Adaptador, Observador, Composite, DTO
3.9. Modelo Entidad Relacin
Flujo de Trabajo de Implementacin y Pruebas
3.1. Workflow de Implementacin: Consideraciones
3.2. El rol de la Implementacin en el ciclo de vida del software
3.3. Artefactos, Trabajadores y Actividades de la Implementacin
3.4. Workflow de Pruebas: Consideraciones
3.5. El rol de la Prueba en el ciclo de vida del software
3.6. Artefactos, Trabajadores y Actividades de la Prueba
[v.1.1] Pgina 2
[v.1.1] Pgina 3
[v.1.1] Pgina 4
El Proceso unificado se repite a lo largo de una serie de ciclos que constituyen la vida de un sistema.
Cada ciclo consta de 4 fases, (cada una de las cuales se divide en iteraciones):
1- Fase de inicio: Se desarrolla una descripcin del producto final a partir de una buena idea y se
presenta el anlisis de negocio para el producto
2- Fase de Elaboracin: Se especifican en detalle la mayora de los casos de uso del producto y se
disea la arquitectura del sistema. El resultado de esta fase es una lnea base de la
arquitectura, y la disposicin del director de planificar las actividades y estimar los recursos
necesarios para terminar el proyecto
3- Fase de Construccin: Se crea el producto. Aqu la lnea base de la arquitectura crece hasta
convertirse en el sistema completo. Al final de esta fase, el producto tiene todos los casos de
uso que la direccin y el cliente han acordado para el desarrollo de esta versin. Sin embargo,
puede tener defectos
4- Fase de Transicin: Cubre el periodo comprendido durante el cual el producto se convierte en
versin beta. Esta fase corrige errores antes de la entrega. El equipo de mantenimiento divide
los errores en 2 categoras: los que tienen suficiente impacto en la operacin para justificar
una versin incrementada y los que pueden corregirse en la siguiente versin normal.
Cada ciclo produce una nueva versin del sistema, y cada versin es un producto preparado para su
entrega. El producto terminado incluye los requisitos, casos de uso, especificaciones no funcionales y
casos de prueba. Incluye el modelo de la arquitectura y el modelo visual.
1.2 Conceptos Bsicos del Proceso: Flujos, artefactos, trabajadores, actividades
Trabajadores (quin): Define el comportamiento y responsabilidades (rol) de un individuo, grupo
de individuos, sistema automatizado o mquina, que trabajan en conjunto como un equipo. Ellos
realizan las actividades y son propietarios de elementos.
Actividades (cmo): Es una tarea que tiene un propsito claro, es realizada por un trabajador, que
manipula elementos. Las actividades se consideran en la planificacin y evaluacin de progresos del
proyecto
Artefactos (qu): Productos tangibles del proyecto que son producidos, modificados y usados por
las actividades. Pueden ser modelos, elementos dentro del modelo, cdigo fuente y ejecutables.
Flujo de actividades (Cundo): Secuencia de actividades realizadas por trabajadores y que produce
un resultado de valor observable. Los flujos de trabajo principales son:
[v.1.1] Pgina 5
Requisitos
Trabajador
1 Encontrar
Actores y CU
Analista en
Sistemas
2 Priorizar CU
Arquitecto
3 Detallar CU
Especificador
de CU
4 Estructurar
Modelo de CU
Analista en
Sistemas
5 Prototipar IU
Diseador de
IU
Anlisis
1 Anlisis de la
Arquitectura
2 Analizar un
CU
3 Analizar una
Clase
4 Analizar un
Paquete
Diseo
1 Diseo de la
Arquitectura
2 Diseo de un
CU
3 Diseo de
una Clase
4 Diseo de un
Subsistema
Artefacto Entrada
+ Modelo Negocio o Dominio
+ Requisitos Adicionales
+ Lista de Caractersticas
+ Modelo CU (esbozado)
+ Glosario
+ Requisitos Adicionales
Artefacto Salida
+ Modelo CU (esbozado)
+ Glosario
+ Modelo CU (esbozado)
+ Glosario
+ Requisitos Adicionales
+ CU Detallado
+ Modelo CU
+ Glosario
+ Requisitos Adicionales
+ CU Detallado
+ Modelo CU (terminado)
Arquitecto
+ Modelo de CU
+ Requisitos Adicionales
+ Modelo de Anlisis
+ Descripcin Arquitectura (VMA)
+ Modelo de CU
+ Requisitos Adicionales
Ing. En CU
+ Modelo de Anlisis
+ Modelo de Diseo
+ Modelo de Despliegue
+ Realizacin de un CU (diseo)
Ing. En
+ Interfaz (esbozada)
Componentes + Clase de anlisis (terminada)
+ Clase de diseo (esbozada)
+ Descripcin Arquitectura (VMD)
Ing. En
+ Subsistema (esbozado)
Componentes
+ Interfaz (esbozada)
Descripcin de la Arquitectura
(Vista del MCU)
+ CU Detallado
Prototipo de IU
+ Subsistema (terminado)
+ Interfaz (terminada)
[v.1.1] Pgina 6
Implementacin
1 Impl. De la
Arquitectura
2 Integrar el
Sistema
3 Impl. Un
subsistema
4 Implementar
Una clase
5 Realizar
prueba de
unidad
1 Planificar
Prueba
Prueba
2 Disear
Prueba
3 Implementar
Prueba
4 Pruebas de
Integracin
5 Pruebas de
Sistema
6 Evaluar
Prueba
+ Componente (esbozado y
posiblemente asignado a nodos)
+ Descripcin Arquitectura (VMI)
+ Plan de Int. de Construcciones
+ Modelo de Implementacin
(construcciones anteriores)
+ Requisitos Adicionales
+ Modelo de CU
Ing. De
+ Modelo de Diseo
Pruebas
+ Modelo de Implementacin
+ Descripcin de la Arquitectura
(Vistas arquitec. de los modelos)
+ Requisitos Adicionales
+ Modelo de CU
+ Modelo de Diseo
Ing. De
+ Modelo de Implementacin
Pruebas
+ Descripcin de la Arquitectura
(Vistas arquitec. de los modelos)
+ Plan de Prueba
+ Caso de Prueba
Ing. En
+ Procedimiento de Prueba
Componentes + Modelo de Implementacin
(construida para ser probada)
Ing. Pruebas + Caso de Prueba
Integracin + Procedimiento de Prueba
+ Componente de Prueba
Ing. Pruebas
+ Modelo de Implementacin
de Sistema
(construccin a probar)
+ Plan de Prueba
Ing. De
+ Modelo de Prueba
Pruebas
+ Defecto
+ Plan de Prueba
Arquitecto
+ Subsistema de Implementacin
(impl. Para una construccin)
+ Interfaz
(impl. Para una construccin)
+ Componente (implementado)
+ Componente (probado)
+ Caso de Prueba
+ Procedimiento de Prueba
+ Componente de Prueba
+ Defecto
+ Evaluacin de prueba
(para una iteracin)
[v.1.1] Pgina 7
Captura de
Requisitos
1- Artefactos
2- Trabajadores y
responsabilidades
1234-
3- Flujo de trabajo
Disciplina de Requisitos: Ejecuta la identificacin y captura de las necesidades que el proyecto debe cubrir con
lo desarrollado.
El propsito fundamental del flujo de trabajo de los requisitos es guiar el desarrollo hacia el sistema
correcto. Esto se consigue mediante una descripcin de los requisitos del sistema suficientemente
buena como para que pueda llegarse a un acuerdo entre el cliente y los desarrolladores sobre qu
debe y qu no debe hacer el sistema.
Actor: Es toda entidad externa que demanda funcionalidad del sistema, ya sea un ser humano
o un sistema de software. Los actores nos sirven para capturar a los usuarios del sistema pero
tambin, son la forma en la que podemos expresar el contexto del mismo. Es decir, que los
actores toman el lugar de cualquier entidad de inters con la que nuestro sistema interacta.
Caso de uso: Especifica una secuencia de acciones, incluyendo variantes, que el sistema puede
llevar a cabo, y que producen un resultado observable de valor para un actor concreto.
Modelo de CU: Describe los procesos de negocio de una empresa en trminos de casos de uso
y actores del negocio que se corresponden con los procesos del negocio y los clientes,
respectivamente. El modelo de casos de uso del negocio presenta un sistema desde la
perspectiva de su uso, y esquematiza cmo proporciona valor a sus usuarios. Este modelo se
describe mediante diagramas de casos de uso.
Descripcin de la Arquitectura
Prototipo de IU
[v.1.1] Pgina 8
ii. Modelo de negocio: es ms amplio que el modelo del dominio. Describe los procesos
con el objetivo de comprenderlos. El modelado del negocio especifica que procesos
de negocio soportar el sistema. Un modelo de objetos del negocio describe como
cada caso de uso del negocio es llevado a cabo por parte de un conjunto de
trabajadores que utilizan un conjunto de entidades del negocio y de unidades de
trabajo.Una entidad del negocio representa algo que los trabajadores toman,
manipulan, inspeccionan, producen o utilizan en un negocio.
c. Capturar requisitos funcionales: Un requisito funcional es una caracterstica requerida del
sistema que expresa una capacidad de accin del mismo (una funcionalidad); generalmente
expresada en una declaracin en forma verbal. Se traducen directamente en casos de uso
d. Capturar requisitos no funcionales: Especifican propiedades del sistema, como restricciones
del entorno o de la implementacin, rendimiento, dependencias de la plataforma, facilidad
de mantenimiento, extensibilidad y fiabilidad. Los requisitos no funcionales ms genricos
se denominan requisitos adicionales.
2- Priorizar casos de uso: El propsito de esta actividad es determinar cules casos de uso son
necesarios para el desarrollo en las primeras iteraciones, y cules pueden dejarse para ms
tarde.
3- Detallar un caso de uso: Consiste en describir su flujo de sucesos en detalle, incluyendo cmo
comienza el CU, termina e interacta con los actores. El especificador detalla paso a paso la
descripcin de cada caso de uso en una especificacin precisa de la secuencia de acciones.
4- Estructurar el Modelo de Casos de Uso
5- Prototipar la interfaz de usuario: Consiste en construir un prototipo de interfaz de usuario.
Necesitamos disear la interfaz de usuario que permita al usuario llevar a cabo los casos de
uso de manera eficiente.
Diseo De Sistemas Adrin Botta
[v.1.1] Pgina 9
Artefactos
Trabajadores y
Responsabilidades
Anlisis
1- Modelo de Anlisis
2-Clase de Anlisis
3-Realizacin de un CU-Anlisis
4-Paquete del Anlisis
5-Descripcin de la Arquitectura (Vista del modelo de Anlisis)
1- Arquitecto Modelo de Anlisis; Descripcin Arquitectura (VMA)
2- Ing. De Casos de Uso Realizacin CU-Anlisis
3- Ing. De Componentes Clase y Paquete de Anlisis
1- Anlisis de la
Arquitectura
2- Analizar un
Caso de Uso
3- Analizar una
Clase
1- Identificar Responsabilidades
2- Identificar Atributos
3- Identificar Asociaciones y negociaciones
4- Identificar Generalizaciones
5- Captura de requisitos especiales
Flujo de
Trabajo
4- Analizar un
paquete
Modelo de Anlisis
Descrito con el lenguaje del desarrollador
Vista interna del sistema
Estructurado por clases y paquetes
Utilizado por los desarrolladores para comprender como se
debera disear e implementar el sistema
No debera contener redundancias, inconsistencias, etc.,
entre requisitos
Esboza cmo llevar a cabo la funcionalidad dentro del
sistema, incluida la funcionalidad significativa para la
arquitectura. Sirve como una 1 aproximacin al diseo.
Define realizaciones de casos de uso, y cada una de ellas
representa el anlisis de un caso de uso del modelo de casos
de uso
[v.1.1] Pgina 10
Modelo de Anlisis
Clase del anlisis: Representa una abstraccin de una o varias clases y/o subsistemas del
diseo del sistema. Este tipo de clase se centra en el tratamiento de los requisitos funcionales
y pospone los no funcionales (especiales). Adems define atributos, pero con gran abstraccin.
Participa en relaciones del tipo conceptual, es decir, son distintas a las relaciones de
implementacin. Encajan en uno de los 3 estereotipos siguientes:
o Clase de Interfaz: Se utilizan para modelar la interaccin entre el sistema y sus
actores. Esta interaccin a menudo implica recibir (y presentar) informacin y
peticiones de (y hacia) los usuarios y los sistemas externos. Las clases de
interfaz representan a menudo abstracciones de ventanas, formularios,
sensores, APIs, etc. Cada clase de interfaz debera asociarse con un actor y viceversa.
o Clase de Entidad: Usadas para modelar informacin de vida larga y que es a
menudo persistente. Reflejan la informacin de un modo que beneficia a los
desarrolladores al disear e implementar el sistema, incluyendo persistencia
o Clase de Control: Representan coordinacin, secuencia, transacciones y control
de otros objetos. Se usan para encapsular el control de un CU en concreto, y
para representar derivaciones y clculos complejos, que no pueden asociarse
con ninguna informacin concreta. Los aspectos dinmicos del sistema se
modelan con clases de control
Realizacin de caso de uso-anlisis: Es una colaboracin dentro del modelo de anlisis que
describe cmo se lleva a cabo y se ejecuta un CU determinado en trminos de las clases del
anlisis y de sus objetos del anlisis en interaccin.
Paquete del anlisis: Proporcionan un medio para organizar los artefactos del modelo de
anlisis en piezas manejables. Un paquete de anlisis puede constar de clases de anlisis,
realizaciones de casos de uso, e incluso otros paquetes. Los paquetes del anlisis deberan ser
cohesivos y dbilmente acoplados. Adems, los paquetes del anlisis pueden representar una
separacin de intereses de anlisis. Deberan crearse basndose en los requisitos funcionales y
en el dominio del problema, y deberan ser reconocibles por las personas con conocimiento
del dominio. Probablemente estos paquetes se conviertan en subsistemas a futuro.
o Paquetes de Servicio: Son un tipo particular de paquete, proporcionado por el sistema
al cliente, para que ofrezca a sus usuarios los casos de uso necesarios para llevar a cabo
su negocio. Los paquetes de servicio contienen un conjunto de clases relacionadas
funcionalmente. Estos paquetes son indivisibles, reutilizables, y son fundamentales
para el diseo y la implementacin.
Descripcin de la Arquitectura (Vista del modelo de anlisis): Permite ver la descomposicin
del modelo de anlisis en paquetes de anlisis y sus dependencias; las clases fundamentales
del anlisis y las realizaciones de casos de uso
[v.1.1] Pgina 11
atributos,
asociaciones,
agregaciones,
[v.1.1] Pgina 12
Artefactos
Diseo
Trabajadores y
Responsabilidades
Flujo de
Trabajo
Diseo de la Arquitectura
Diseo de un CU
Diseo de una clase
Diseo de un Subsistema
Diseo. Actividad mental de disponer las cosas para que al desarrollarse, se alcance la situacin deseada. En
otras palabras, es la disposicin de estructuras temporales que son necesarias para que un algo se desarrolle
segn nuestros deseos
Disciplina de Diseo: Encuentra una forma de sistema, cdigo o arquitectura, que al momento de su puesta
en ejecucin da lugar a lo delineado en el anlisis, siempre teniendo en foco los requisitos a cumplir.
El diseo es la etapa de un sistema que describe como se implementar el sistema, en un nivel lgico
sobre el cdigo real. En el diseo, las decisiones estratgicas y tcticas se toman para resolver los
requisitos funcionales y de calidad requeridos de un sistema. Los resultados de esta etapa son
representados por los modelos a nivel de diseo, especialmente la vista esttica, vista de mquina de
estados, y vista de interaccin. Una entrada esencial al diseo es el modelo de anlisis.
Modelo de Anlisis
Modelo conceptual.
Genrico respecto al diseo (aplicable a varios diseos)
Tres estereotipos: entidad, control, interface.
Menos formal.
Menos caro de desarrollar
Menos capas.
Dinmico (no muy centrado en la secuencia)
Creado principalmente como trabajo manual
Puede no mantenerse todo el ciclo de vida.
Modelo de Diseo
Modelo fsico (implementacin)
Especfico para una implementacin
Cualquier n de estereotipos fsicos.
Mas formal.
Ms caro.
Ms capas.
Dinmico (muy centrado en la secuencia)
Creado fundamentalmente como programacin
visual en ing.de ida y vuelta.
Debe ser mantenido todo el ciclo de vida.
[v.1.1] Pgina 13
Modelo del Diseo: Es un modelo de objetos que describe la realizacin fsica de los casos de
uso centrndose en los requisitos funcionales como en los no funcionales. Las abstracciones
del modelo de diseo tienen una correspondencia directa con los elementos fsicos del
ambiente de implementacin.
Clase del Diseo: Es una abstraccin sin costuras con una clase o construccin similar en la
implementacin del sistema. A diferencia de la clase de anlisis, se especifica el lenguaje de
programacin, visibilidad de atributos y operaciones; se implementan las relaciones con
atributos; y se pueden usar estereotipos del lenguaje de programacin elegido.
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.
[v.1.1] Pgina 14
[v.1.1] Pgina 15
Artefactos
Implementacin
Trabajadores y
Responsabilidades
Flujo de
Trabajo
1- Modelo de Implementacin
2- Componente (y stubs)
3- Subsistema de Implementacin
4- Interfaz
5- Descripcin Arquitectura (VMI)
6- Plan de Integracin
1- Arquitecto Modelo de Impl. Y Despliegue; Descripcin Arquitectura
2- Integrador de sistema Plan de Integracin
3- Ing. Componentes Componente, Interfaz, Impl. Subsistema
12345-
Implementacin de la Arquitectura
Integrar el sistema
Implementar un subsistema
Implementar una clase
Realizar prueba de unidad
[v.1.1] Pgina 16
Interfaz: Pueden ser utilizadas para especificar las operaciones implementadas por
componentes y subsistemas de implementacin.
Descripcin de la arquitectura: Tiene la visin de la arquitectura del modelo de
implementacin. Los siguientes artefactos son considerados arquitectnicamente
significativos:
o Descomposicin del modelo de implementacin en subsistemas, sus interfaces, y
dependencias entre ellos.
o Componentes clave que siguen la traza de las clases de diseo significativas
arquitectnicamente.
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:
o La funcionalidad que se espera sea implementada en dicha construccin, consiste en
una lista de casos de uso a implementar.
o Las partes del modelo de implementacin que estn afectadas por la construccin
(lista de subsistemas y componentes necesarios para implementar la funcionalidad).
[v.1.1] Pgina 17
Artefactos
Pruebas
Trabajadores y
Responsabilidades
Flujo de
Trabajo
1234567-
Modelo de Pruebas
Caso de Prueba
Procedimiento de prueba
Componente de prueba
Plan de prueba
Defecto
Evaluacin de prueba
Planificar prueba
Disear prueba
Implementar prueba
Realizar pruebas de integracin
Realizar pruebas de sistema
Evaluar la prueba
Disciplina de Pruebas: Define los esquemas de evaluacin con los que se determinar si lo desarrollado
cumple con los requisitos identificados.
1-
Las pruebas tienen por objetivo encontrar defectos en el software. Hay 2 tipos de pruebas:
De caja negra: los casos de prueba pretenden demostrar que las funciones del software son
operativas, que la entrada se acepta de forma adecuada y que se produce una salida correcta.
Las pruebas de caja negra se llevan a cabo sobre la interfaz del software, obviando el
comportamiento interno y la estructura del programa. Los casos de prueba de la caja negra
pretenden demostrar que:
o Las funciones del software son operativas
o La entrada se acepta de forma correcta
o Se produce una salida correcta
o La integridad de la informacin externa se mantiene
De caja blanca: se realiza un examen minucioso de los detalles procedimentales,
comprobando los caminos lgicos del programa, comprobando los bucles y condiciones, y
examinado el estado del programa en varios puntos. Las pruebas de caja blanca intentan
garantizar que:
o Se ejecutan al menos una vez todos los caminos independientes de cada mdulo
o Se utilizan las decisiones en su parte verdadera y en su parte falsa
o Se ejecuten todos los bucles en sus lmites
o Se utilizan todas las estructuras de datos internas
[v.1.1] Pgina 18
[v.1.1] Pgina 19
UNIDAD 3: PATRONES
Los patrones de diseo son la base para la bsqueda de soluciones a problemas comunes en el
desarrollo de software y otros mbitos referentes al diseo de interaccin o interfaces.
Un patrn de diseo es una solucin a un problema de diseo. Para que una solucin sea considerada
un patrn debe poseer ciertas caractersticas. Una de ellas es que debe haber comprobado su
efectividad, resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reusable,
lo que significa que es aplicable a diferentes problemas de diseo en distintas circunstancias.
PATRONES GRASP
GRASP (General Responsibility Assignment Software Patterns) son patrones generales de software
para asignacin de responsabilidades. Aunque se considera que ms que patrones propiamente
dichos, son una serie de "buenas prcticas" de aplicacin recomendable en el diseo de software.
En cuanto a las responsabilidades UML define una responsabilidad como un contrato u obligacin de
un clasificador. Las responsabilidades estn relacionadas con las obligaciones de un objeto en cuanto
a su comportamiento. Bsicamente, estas responsabilidades son de los siguientes dos tipos:
Conocer:
o Conocer los datos privados encapsulados.
o Conocer los objetos relacionados.
o Conocer las cosas que puede derivar o calcular.
Hacer:
o Hacer algo l mismo, como crear un objeto o hacer un clculo.
o Iniciar una accin en otros objetos.
o Controlar y coordinar actividades en otros objetos.
[v.1.1] Pgina 20
CREADOR
El patrn creador nos ayuda a identificar quin debe ser el responsable de la creacin
(o instanciacin) de nuevos objetos o clases.
Problema: Quin Crea?
Solucin: Asignar a la clase B la responsabilidad de crear una instancia de la clase A si:
B Tiene la informacin necesaria para realizar la creacin del objeto A
B Usa directamente las instancias creadas del objeto A
B Almacena o maneja varias instancias de la clase A
B Contiene o agrega la clase A
Beneficios: Una de las consecuencias de usar este patrn es la visibilidad entre la clase creada y la
clase creador. Se mantiene bajo acoplamiento, mayor claridad, encapsulacin y reutilizacin
Patrones Relacionados: Bajo Acoplamiento, Todo-Parte (Agregacin-Composicin)
CONTROLADOR
Sirve como intermediario entre una determinada interfaz y el algoritmo que la implementa, de tal
forma que es la que recibe los datos del usuario y la que los enva a las distintas clases segn el
mtodo llamado. Este patrn sugiere que la lgica de negocios debe estar separada de la capa de
presentacin. Se recomienda dividir los eventos del sistema en el mayor nmero de
controladores para poder aumentar la cohesin y disminuir el acoplamiento.
Problema: Quin debera encargarse de atender un evento del sistema?
Solucin: Asignar la responsabilidad del manejo de un mensaje de los eventos de un sistema a
una clase que represente una de las siguientes opciones:
El sistema global, empresa u organizacin global (controlador de fachada)
Algo en el mundo real que es activo y que puede participar de la tarea (controlador de
tareas)
Un manejador artificial de todos los eventos del sistema de un CU (Controlador de Caso
de uso)
Beneficios: Aumentar la reutilizacin de cdigo y a la vez tener un mayor control
ALTA COHESIN
La cohesin es una medida de cun relacionadas y enfocadas estn las responsabilidades de una
clase. Una alta cohesin caracteriza a las clases con responsabilidades estrechamente
relacionadas que no realicen un trabajo enorme. Una clase con baja cohesin hace muchas cosas
no afines o un trabajo excesivo. Estas clases no convienen porque son difciles de reutilizar,
comprender, conservar, y adems son muy delicadas.
Problema: Cmo mantener la complejidad dentro de lmites manejables?
Solucin: Asignar una responsabilidad de modo que la cohesin siga siendo alta
Beneficios:
Mejoran la claridad y facilidad con que se entiende el diseo
Se simplifican el mantenimiento y las mejoras en funcionalidad
A menudo se genera un bajo acoplamiento
Permite la reutilizacin
[v.1.1] Pgina 21
BAJO ACOPLAMIENTO
El acoplamiento es una medida de fuerza con que una clase est conectada a otras, con que las
conoce y con que recurre a ellas. Una clase con bajo acoplamiento, no depende de muchas otras.
Una clase con alto acoplamiento, recurre a muchas otras. Este tipo de clases no es conveniente,
ya que disminuye la reutilizacin, los cambios son difciles de realizar, y son difciles de entender.
Problema: Cmo dar soporte a una dependencia escasa y a un aumento de la reutilizacin?
Solucin: Asignar una responsabilidad para mantener bajo acoplamiento
Beneficios: No se afectan por cambios de otros componentes. Son fciles de entender por
separado. Son fciles de reutilizar
POLIMORFISMO
Se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo
mtodo de forma diferente.
Problema: Cmo manejar las alternativas basadas en el tipo?
Solucin: Las responsabilidades del comportamiento se asignarn (mediante operaciones
polimrficas) a los tipos en que el comportamiento presenta variantes.
No se deben realizar pruebas con el tipo de un objeto ni utilizar lgica condicional para plantear
diversas alternativas basadas en el tipo.
Beneficios: Es fcil agregar futuras extensiones que requieran variaciones imprevistas
FABRICACIN PURA
Los diseos orientados a objetos se caracterizan por implementar como clases de software las
representaciones de conceptos en el dominio de un problema del mundo real; por ejemplo, una
clase Venta y Cliente. Pese a ello, se dan muchas situaciones donde el asignar responsabilidades
exclusivamente a las clases del dominio origina problemas de mala cohesin o acoplamiento o
bien por un escaso potencial de reutilizacin.
Problema: A quin asignar la responsabilidad cuando uno est desesperado y no quiere violar
Alta Cohesin y Bajo acoplamiento?
Solucin: Asignar un conjunto cohesivo de responsabilidades a una clase artificial que no
representa nada en el dominio del problema: una cosa inventada para dar soporte a una alta
cohesin, un bajo acoplamiento y reutilizacin
Beneficios: Alta cohesin y reusabilidad
Patrones Relacionados: Bajo Acoplamiento, Alta cohesin, Experto
INDIRECCIN
El patrn de indireccin nos aporta mejorar el bajo acoplamiento entre dos clases asignando la
responsabilidad de la mediacin entre ellos a un tercer elemento (clase) intermedio
Problema: A quin se asignarn las responsabilidades a fin de evitar el acoplamiento directo?
Cmo desacoplar objetos, permitiendo reutilizacin?
Solucin: Se asigna la responsabilidad a un objeto intermedio para que medie entre otros
componentes o servicios, y stos no terminen directamente acoplados.
Beneficios: Bajo Acoplamiento
Patrones Relacionados: Bajo Acoplamiento, Mediador, Fabricacin Pura
[v.1.1] Pgina 22
VARIACIONES PROTEGIDAS
Es el principio fundamental de protegerse del cambio, de tal forma que todo lo que preveamos
en un anlisis previo que es susceptible de modificaciones, lo envolvamos en una interfaz,
utilizando el polimorfismo para crear varias implementaciones y posibilitar implementaciones
futuras, de manera que quede lo menos ligado posible a nuestro sistema, de forma que cuando
se produzca la variacin, nos repercuta lo mnimo
Problema: Cmo disear objetos, subsistemas y sistemas de manera que las variaciones o
inestabilidades en estos elementos no tengan un impacto no deseable en otros elementos?
Solucin: Identificar los puntos de variaciones previstas o de inestabilidad asignando
responsabilidades para crear una interfaz estable alrededor de ellos
Beneficios:
Se aaden fcilmente las extensiones que se necesitan para nuevas variaciones;
Se pueden introducir nuevas implementaciones sin afectar a los clientes;
Se reduce el acoplamiento;
Puede disminuirse el impacto o coste de los cambios.
Plantilla (Template)
Un mtodo plantilla es un patrn de diseo que define una estructura
algortmica en la sper clase, delegando la implementacin a las subclases. Es
decir, define una serie de pasos, en donde los pasos sern redefinidos en las
subclases.
Se define una estructura de herencia en la cual la superclase sirve de plantilla de
los mtodos en las subclases, es decir, la superclase define mtodos abstractos y
las subclases los implementan. Una de las ventajas de este mtodo es que evita
la repeticin de cdigo, por tanto la aparicin de errores.
Este patrn se vuelve de especial utilidad cuando es necesario realizar un
algoritmo que sea comn para muchas clases, pero con pequeas variaciones
entre una y otras.
[v.1.1] Pgina 23
DTO_Camas
:Sector
Internacion
:Cama
new()
DTO_Camas
- Numero: int
- Nombre: String
Experto
+ getNumero():int
+ setNumero(int)
+ getNombre():String
+ setNombre(String)
getNumero()
numero
setNumero(numero)
getSectorInternacion()
SectorInternacion
Cama
:SectorInternacion
- Numero
- Tamao
...
getNombre()
nombre
1 - Nombre
- Tipo
- Responsable
....
setNombre(nombre)
Obra
- fecha
- tipo
DTO_Detalle
MovimientoStock
+ get...()
+ set...()
+ addDetalle(...)
+ getDetalle()
+ removerDetalle(...)
- cantidad
+ get...()
+ set...()
Producto
Experto
[v.1.1] Pgina 24
Estrategia (Strategy)
Problema:
Singleton
Fabrica Estrategias
Experto
getInstancia()
getEstrategia(algunParametro)
Interfaz
Estrategia Generica
Singleton
Fabrica Estrategias
+ RealizarAlgo(...)
- Instancia
new()
:EstrategiaGenerica
+ getInstancia()
+ getEstrategia(algunParametro):
EstrategiaGenerica
Estrategia
Especifica n1
RealizarAlgo(...)
Debemos desarrollar
el contenido de
las estrategias
Estrategia
Especfica n1
Estrategia
Especfica n2
+ RealizarAlgo(...)
+ RealizarAlgo(...)
Ejemplo
Singleton Fabrica
Estrategias Descuento
Experto
Experto
Abonado
- Nombre
...
getInstancia()
Singleton
Fabrica Estrategias Descuento
getEstrategiaDescuento(:Empresa)
new()
:EstrategiaDescuento
Estrategia Descuento
Movistar
calcularDescuento(:Abonado)
descuento
- Instancia
Interfaz
Estrategia Descuento
+ calcularDescuento(:Abonado):real
+ getInstancia()
+ getEstrategia(Empresa):
EstrategiaDescuento
.....
Estrategia Movistar
Estrategia Personal
+ calcularDescuento(:Abonado):real
+ calcularDescuento(:Abonado):real
El patrn estrategia permite mantener un conjunto de algoritmos de los que el objeto cliente puede
elegir aquel que le conviene e intercambiarlo segn sus necesidades.
Cualquier programa que ofrezca un servicio o funcin determinada, que pueda ser realizada de varias
maneras, es candidato a utilizar el patrn estrategia. Al utilizar las estrategias, cuando esa parte vara,
no debemos modificar el cdigo del experto del C.U. Puede haber cualquier nmero de estrategias y
cualquiera de ellas podr ser intercambiada por otra en cualquier momento, incluso en tiempo de
ejecucin. Lo importante de esta clase es que cada una de las estrategias que diseemos tendr que
sobrescribir un mtodo RealizarAgo() y proveer un algoritmo concreto para dicha estrategia.
El contexto es la clase que decide qu estrategia utilizar en cada momento, la decisin se realiza
normalmente mediante algn parmetro que le enva el cliente aunque puede ser l mismo el que
elija la estrategia ms adecuada, por ejemplo, segn la fecha.
Diseo De Sistemas Adrin Botta
[v.1.1] Pgina 25
Adaptador (Adapter)
Problema: Cmo resolver interfaces incompatibles, o proporcionar una interfaz estable para
componentes parecidos con diferentes interfaces?
Solucin: Convierta la interfaz original de un componente en otra interfaz mediante un objeto
adaptador intermedio.
Experto
Singleton
Fabrica Adaptador
Experto
getInstancia()
getAdaptador(algunParametro)
Interfaz
AdaptadorGenerico
Singleton
Fabrica Adaptador
+ RealizarAlgo(...)
- Instancia
new()
:AdaptadorGenerico
Adaptador
Especfico n1
+ getInstancia()
+ getAdaptador(algunParametro):
AdaptadorGenerico
RealizarAlgo(...)
NO hay que desarrollar el
cdigo del adaptador, ya
que se comunica con un
sistema externo, desconocido
Adaptador
Especfico n1
Adaptador
Especfico n2
+ RealizarAlgo(...)
+ RealizarAlgo(...)
Ejemplo
Ver Patrn DTO
Experto
Singleton
Fabrica Adaptador Impresion
DTO_Impresion
Experto
getInstancia()
Al pasar fecha, podra
elegirse el adaptador
que se est usando
actualmente
getAdaptador(fecha)
new()
:AdaptadorGenerico
Imprimir(:DTO_Impresion)
Adaptador
Impresion
HP
Interfaz
AdaptadorImpresion
Singleton
Fabrica Adaptador Impresion
+ Imprimir (:DTO_Impresion)
- Instancia
+ getInstancia()
+ getAdaptador(fecha):
AdaptadorImpresion
AdaptadorImpresion
EPSON
AdaptadorImpresion
HP
+ Imprimir (:DTO_Impresion)
+ Imprimir (:DTO_Impresion)
El Adaptador se utiliza para conectarse con sistemas externos. Suele utilizarse en conjunto con el
Patrn DTO, y uno de los usos principales es el de impresin de Factura, Ticket, etc. Cabe aclarar que
tambin puede usarse sin el patrn DTO.
[v.1.1] Pgina 26
Objeto
- Nombre
- Tipo
-objetos
*
+ Objeto()
- Nombre
- Tipo
-objetos
*
+ Objeto()
1
ObjetoSimple
ObjetoCompuesto
- Color
+ ObjetoSimple()
ObjetoCompuesto
1
- cantidad
+ ObjetoCompuesto()
+ agregarObjeto(:Objeto)
+ getObjetos(): Objeto[]
+ ObjetoCompuesto()
+ agregarObjeto(:Objeto)
+ getObjetos(): Objeto[]
[v.1.1] Pgina 27
Experto
Entrega
Materiales
Singleton
Suscriptor Stock
+ agregarObservador(ObservadorStock)
+ notificar()
NOTA:
- Si se registra un controlador, es para que al
notificarsele algo, muestre por pantalla algo
(Ej: Entradas Agotadas, No hay stock, etc)
- Si se registra un experto, es para disparar
un C.U., sin mostrar por pantalla
Interfaz
Observador Stock
+ actualizar()
Controlador
Consultar Stock
IU Consultar Stock
+ actualizar()
Registro de Observadores
:Controlador
ConsultarStock
Singleton
Suscriptor Stock
agregarObservador(this)
Notificacin a Observadores
IU
Actor
Singleton
Suscriptor Stock
Experto
Entrega Materiales
Controlador
interfaz
Observador Stock
EjecutarCU()
EjecutarCU()
entregarMateriales()
Secuencia del C.U
getInstancia()
notificar()
actualizar()
Singleton
Suscriptor Stock
:Controlador
ConsultarStock
actualizar()
[v.1.1] Pgina 28
Singleton
Fabrica Expertos
Pagar Factura
Controlador Pagar
Factura
Decorador
Experto P.F.
singleton
FachadaInterna
singleton
FachadaExterna
Cajero Ingresar
(codigo,monto)
Ingresar(codigo,monto)
getInstancia()
getExperto()
new()
:ExpertoPF
Ingresar(codigo,monto)
getInstancia()
IniciarTX()
super.Ingresar(codigo,monto)
{Codigo del Metodo}
Ingresar
(cantPesos)
Ingresar
(cantPesos)
CalcularVuelto(cantPesos)
super.CalcularVuelto(cantPesos)
{Codigo del Metodo}
Confirmar()
Confirmar()
Confirmar()
super.Confirmar()
{Codigo del Metodo}
getInstancia()
FinalizarTX()
Recordar:
- El Experto se comunica con la Fachada Externa
- El Decorador se comunica con la Fachada Interna
[v.1.1] Pgina 29
Comando
Este patrn permite solicitar una operacin a un objeto sin conocer realmente el contenido de esta
operacin, ni el receptor real de la misma. Para ello se encapsula la peticin como un objeto, con lo
que adems se facilita la parametrizacin de los mtodos (por eso se llama siempre con ejecutar() )
Experto
Singleton
Fabrica Comandos
Experto
getInstancia()
Singleton
Fabrica Comandos
+ ejecutar()
- Instancia
new()
:ComandoGenerico
Interfaz
ComandoGenerico
+ getInstancia()
+ getComando(algunParametro):
ComandoGenerico
Comando
Especfico n1
ejecutar()
ComandoConcreto1()
Comando
Especfico n1
Comando
Especfico n2
+ ComandoConcreto1()
+ ejecutar()
+ ComandoConcreto1()
+ ejecutar()
[v.1.1] Pgina 30
Solidez
Capacidad de mantenimiento
[v.1.1] Pgina 31
Para favorecer la reutilizacin de cdigo, muchas veces aplicamos el concepto de la herencia, sin
embargo cuando heredamos de una clase, heredamos un contexto de ejecucin y por tanto tenemos
visibilidad del estado de la clase heredada, y esto puede llegar a ser problemtico por que una clase
derivada que utilice el contexto que hereda (los mtodos heredados) puede romperse por cambios en
la clase padre si dichos cambios alteran el contrato.
Para favorecer la reutilizacin de cdigo, disponemos de dos opciones:
La composicin de objetos, conlleva crear un objeto que cree un envoltorio donde alojar una
instancia del objeto que deseamos reutilizar y que se referencie a travs de un miembro privado,
Cuando creamos un objeto envoltorio, estamos favoreciendo la composicin sobre la herencia, pero
entonces, Cuando usar herencia?, usaremos herencia cuando:
Con la composicin los cambios en el objeto compuesto no afectan al objeto interno, adems los
cambios del objeto interno, no afectan al objeto contenedor mientras no impliquen modificar la
interfaz pblica.
Ms Principios
Responsabilidad nica: Cada clase debe ser responsable de realizar solo una actividad del
sistema
Clase Abierta y Cerrada: Una clase debe ser abierta a la extensin y cerrada a la modificacin
Principio de Substitucin de Liskov: Cada clase que hereda de otra puede usarse como su
padre sin necesidad de conocer las diferencias entre ellas
Principio de Inversin de Dependencia: Los mdulos de nivel superior no deben depender sino
de las abstracciones. Los detalles deben depender a su vez de las abstracciones, no al
contrario
Principio de Segregacin de Interfaces: La implementacin de las abstracciones (que
contradictorio) debe estar en la medida de lo posible en interfaces y no en clases
Principio de Equivalencia de Reso y Distribucin: Solo los componentes que se distribuyen de
manera final pueden ser reutilizados, el elemento ms importante es entonces el paquete.
Principio de Cierre Comn: Los componentes que comparten funciones entre ellos o que
dependen uno del otro deberan ser colocados juntos
Principio de Reso Comn: Si se reutiliza una clase de un paquete entonces se reutilizan todas
Principio de Dependencias acclicas: Los paquetes y sus dependencias no deben formar ciclos
entre si
Principio de Dependencias Estables: Los paquetes menos estables han de depender de los
paquetes ms estables
Principio de Abstraccin Estable: Los paquetes deben ser ms abstractos mientras ms
estables son
Diseo De Sistemas Adrin Botta
[v.1.1] Pgina 32
No compuestos: Ej: Domicilio, tiene nmero, calle, etc. Debera dividirse en varios atributos
No nulo
Determinante (ID, llave o clave primaria): Es una tributo especial nico entre todas las
instancias, que identifica unvocamente a cada instancia. El ID puede ser:
o Simple: Formado por un solo atributo. Ej: Legajo
o Compuesto: Formado por 2 o ms atributos. Ej: Tipo y Nro. Documento
[v.1.1] Pgina 33
Debe haber al menos 1 atributo en comn, en alguna de las 2 entidades, como clave fornea. Para
el caso del ejemplo, DNI en Empleado es la clave fornea (referida a Cnyuge)
1 a N:
Se desprende obligatoriamente una clase asociativa, que tiene como clave primaria los IDs de las
2 relaciones.
Formas Normales
Son principios para hacer ptima una base de datos. Son 9 formas, de las cuales veremos 3.
1. Se define una clave nica, no nula, para una tabla
2. Todos los atributos no llave dependen totalmente de la llave compuesta (Solo se aplica a
claves compuestas)
3. Los atributos no llave no dependen entre s
Tomemos un ejemplo para ver la aplicacin de las formas normales:
Diseo De Sistemas Adrin Botta
[v.1.1] Pgina 34
Nombre Cliente:
Cantidad
4
3
2
..
Pedro Fuentes
Precio Unitario
10
1
0.5
..
Total:
Subtotal
40
3
1
$ 44
fecha
12/12/03
12/12/03
12/12/03
codCliente
A33
A33
A33
nombreCliente
Pedro Fuentes
Pedro Fuentes
Pedro Fuentes
codProd
205
306
002
descripcionProd
Cuaderno
Lpiz
Goma
cantidad
4
3
2
$unit
$ 10
$1
$ 0.5
Los registros en rojo forman un grupo repetitivo, por lo que NFactura por si mismo, no puede ser
clave primaria (porque no es nica).
Para esto, podemos tomar como clave primaria, a NFactura + codProd, quedando la entidad en 1FN
como:
NFactura + fecha + codCliente + nombreCliente + codProd + descripcionProd + cantidad + $unit
2FN: Todos los atributos no llave dependen totalmente de la llave compuesta
Esta forma se aplica SOLO A CLAVES COMPUESTAS
En este ejemplo, nuestra super-entidad en 1FN qued con una clave compuesta.
Procedemos a analizar que atributo depende de cual de las claves (simbolizamos esto con flechas).
[v.1.1] Pgina 35
[v.1.1] Pgina 36
4.3 FRAMEWORKS
La palabra inglesa framework define, en trminos generales, un conjunto estandarizado de conceptos,
prcticas y criterios para enfocar un tipo de problemtica particular, que sirve como referencia para
enfrentar y resolver nuevos problemas de ndole similar.
En el desarrollo de software, un framework es una estructura conceptual y tecnolgica de soporte
definida, normalmente con artefactos o mdulos de software concretos, con base en la cual otro
proyecto desoftware puede ser organizado y desarrollado. Tpicamente, puede incluir soporte de
programas, bibliotecas y un lenguaje interpretado entre otros programas para ayudar a desarrollar y
unir los diferentes componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de las entidades del
dominio. Provee una estructura y una metodologa de trabajo la cual extiende o utiliza las
aplicaciones del dominio.
Nota: Ver Apuntes de:
Herencia y Persistencia
Esquema de Persistencia
[v.1.1] Pgina 37
UNIDAD 5: UML
UML es un lenguaje de modelado para Visualizar, Especificar, Construir y Documentar los artefactos
de un sistema con gran cantidad de software.
Un lenguaje de modelado es un lenguaje cuyo vocabulario y reglas se centran en la representacin
conceptual y fsica de un sistema.
El vocabulario y las reglas de UML indican cmo crear y leer modelos bien formados, pero no dicen
qu modelos se deben crear ni cuando se deberan crear. sta es la tarea del proceso de desarrollo de
software.
Normalmente, los proyectos y las organizaciones desarrollan su propio lenguaje, y es difcil
comprender lo que est pasando para alguien nuevo o ajeno al grupo. Adems, hay cuestiones sobre
un sistema que no se pueden entender a menos que se construyan modelos que trasciendan el
lenguaje de programacin textual. Otro punto a destacar, es que si el desarrollador que escribi el
cdigo no dej documentacin escrita sobre los modelos que haba en su cabeza, esa informacin se
perder para siempre, o como mucho, ser slo parcialmente reproducible a partir de la
implementacin.
Para comprender UML, se necesita adquirir un modelo conceptual del lenguaje, y esto requiere
aprender 3 elementos principales:
1- Bloques Bsicos de construccin UML: Son 3, elementos, relaciones y diagramas
1. Elementos
a. Estructurales o Clasificadores: Son las partes estticas de los modelos
Clase: Es una descripcin de un conjunto de objetos que comparten los mismos atributos,
operaciones, relaciones y semntica
Interfaz: Es una coleccin de operaciones que especifican un servicio de una clase o
componente. Una interfaz describe el comportamiento visible externo de ese elemento
Colaboracin: Define una interaccin y es una sociedad de roles y otros elementos que
colaboran para proporcionar un comportamiento cooperativo mayor que la suma de los
comportamientos de sus elementos
Caso de uso
Clase Activa: Es una clase cuyos objetos tienen uno o ms procesos o hilos de ejecucin y,
por tanto, pueden dar origen a actividades de control.
Componente: Es una parte modular del diseo del sistema que oculta su implementacin
tras un conjunto de interfaces externas.
Artefacto: Es una parte fsica y reemplazable de un sistema que contiene informacin fsica.
Representa tpicamente el empaquetamiento fsico de cdigo o informacin en tiempo de
ejecucin.
[v.1.1] Pgina 38
[v.1.1] Pgina 39
3. Diagramas de
Restricciones
[v.1.1] Pgina 40
ARQUITECTURA
La arquitectura de un sistema puede describirse mediante 5 vistas:
1. Vista de Casos de Uso: Comprende los casos de uso que describen el comportamiento del sistema
tal y como es percibido por los usuarios finales, analistas y encargados de las pruebas. Esta vista
no especifica realmente la organizacin de un sistema software.
a. Aspectos Estticos Diagrama de Casos de Uso
b. Aspectos Dinmicos Diagramas de Interaccin, Estados y Actividades
2. Vista de Diseo: Comprende las clases, interfaces y colaboraciones que forman el vocabulario del
problema y su solucin. Esta vista soporta principalmente los requisitos funcionales del sistema.
a. Aspectos Estticos Diagramas de Clases y Objetos
b. Aspectos Dinmicos Diagramas de Interaccin, Estados y Actividades
3. Vista de Interaccin: Muestra el flujo de control entre sus diversas partes. Abarca el rendimiento,
escalabilidad y capacidad de procesamiento del sistema.
Los aspectos son los mismos que en la vista de diseo.
4. Vista de Implementacin: Comprende los artefactos que se utilizan para ensamblar y poner en
produccin el sistema fsico.
a. Aspectos Estticos Diagramas de Artefactos
b. Aspectos Dinmicos Diagramas de Interaccin, Estados y Actividades
5. Vista de Despliegue: Contiene los nodos que forman la topologa hardware sobre la que se
ejecuta el sistema. Esta vista se ocupa de la distribucin, entrega e instalacin de las partes que
constituyen el sistema fsico.
a. Aspectos Estticos Diagramas de Despliegue
b. Aspectos Dinmicos Diagramas de Interaccin, Estados y Actividades
[v.1.1] Pgina 41
VISTA ESTTICA
La vista esttica es la base de UML. Los elementos de la vista esttica de un modelo son todo tipo de
conceptos encontrados en los sistemas. Esta vista captura la estructura del objeto, e incluye todo lo
concerniente a las estructuras de datos tradicionales, as como la organizacin de las operaciones
sobre los datos. Los datos y las operaciones son cuantificados en clases.
La vista esttica describe entidades de comportamiento, pero no contiene los detalles de su
comportamiento dinmico. Los trata como elementos para ser nombrados, posedos por las clases e
invocados. Hay 2 elementos clave en esta vista:
1. Clasificadores
Un clasificador es un concepto discreto en el modelo, que tiene identidad, estado, comportamiento
y relaciones. Algunos clasificadores son las clases, actores, rol, componente, caso de uso, nodo,
seal, interfaz, etc.
2. Relaciones
Asociacin: Lleva la informacin entre objetos en un sistema. Sin asociaciones, habran slo
clases aisladas. Una clase se puede asociar a s misma, o hacia otra clase. Los extremos de la
asociacin pueden tener multiplicidad, es decir, cuntas instancias de una clase se pueden
relacionar con una instancia de otra. Si una asociacin puede tener atributos por s misma,
surge una clase asociativa. Durante el anlisis, las asociaciones representan relaciones lgicas
entre objetos. La asociacin se representa con una lnea continua. Hay 2 subtipos:
o Agregacin: Es una asociacin que representa una relacin todo-parte. Se muestra
adornado con un diamante hueco en el extremo de la trayectoria unida a la clase
agregada
o Composicin: Es una asociacin ms fuerte, en la cual el compuesto es el responsable
nico de gestionar sus partes. Se muestra con un diamante relleno adornando el
extremo compuesto.
Generalizacin: Es una relacin taxonmica entre una descripcin ms general (padre) y una
descripcin ms especfica (hijo), que se construye sobre ella y la extiende. La descripcin ms
especfica es completamente consistente con la ms general, y puede contener informacin
adicional. En el caso de clases, se habla de superclase y subclase. Una generalizacin se dibuja
como una flecha que va desde el padre al hijo, con un tringulo hueco en el extremo del
padre. La generalizacin tiene 2 propsitos:
o Principio de sustitucin (del padre por el hijo, que es ms especializado), lo que
posibilita el polimorfismo
o Permitir la herencia
Realizacin: Conecta un elemento del modelo con otro que especifica su comportamiento,
pero no su estructura o implementacin. Se indica con una flecha de lnea discontinua con una
punta hueca cerrada
Dependencia: Indica que un elemento conoce la existencia de otro. Se denota con una lnea
punteada y con flecha. En el diagrama de clases sirve para describir la visibilidad global entre
atributos.
[v.1.1] Pgina 42