Professional Documents
Culture Documents
Diagrama del Paquete
Diagrama del Paquete
Modelo de Proyecto
El Modelo del proyecto detalla el plan del proyecto global, fases, hitos y requisitos de recursos
para el proyecto actual.
Los administradores del proyecto pueden usar Microsoft Project para asignar recursos a los
elementos, medidas de riesgo y esfuerzo y para estimar el tamaño del proyecto.
Diagrama de Análisis
Un diagrama del Análisis es un diagrama de actividad simplificado, que se usa para
capturar procesos del negocio del alto nivel y modelos tempranos del comportamiento y de
los elementos del sistema. Es menos formal que algunos otros diagramas, pero proporciona
buenos medios de capturar las características y las necesidades esenciales del negocio.
modelo de requisitos
El Modelo de requisitos es un catálogo estructurado de requerimientos del usuario final y las
relaciones entre ellos. La Administración de requisitos se puede usar para definir elementos de
requerimientos, vincular requerimientos para los elementos del modelo, vincular requerimientos
juntos en una jerarquía y reportar requerimientos.
Diagrama de Requisitos
Un diagrama de Requisitos es un diagrama personalizado usado para describir los
requisitos o características de un sistema como un modelo visual.
Los requisitos se definen usando elementos de requisitos (elementos personalizados de
tipo Requisito). Para ver la descripción detallada de un requisito, haga doble clic en el
elemento para mostrar sus propiedades. Los elementos de requisito se pueden vincular
para los casos de uso y componentes en el sistema para mostrar como se cumple un
requisito del sistema en particular.
Diagrama Personalizado
Un diagrama Personalizado es un diagrama de Clase extendido que se usa para capturar
requisitos, interfaces de usuario o modelos de diseño personalizado.
El ejemplo de abajo refleja un diagrama de requisitos. Los elementos requisito se pueden
vincular a los casos de uso y a los componentes en el sistema para ilustrar cómo se cumple
el requisito en un sistema en particular.
Diagrama de Capas
modelo de casos de uso(999)
El Modelo de casos de uso describe la funcionalidad de un sistema en términos de Casos de uso.
Cada Caso de uso representa una sola interacción repetida que el usuario o "actor"
experimenta cuando usa el sistema, acentuando la perspectiva de los usuarios del sistema y las
interacciones.
Diagrama de Casos de Uso
Un diagrama de Casos de Uso captura las interacciones de los casos de uso y los actores.
Describe los requisitos funcionales del sistema, la forma en la que las cosas externas (actores)
interactúan a través del límite del sistema y la respuesta del sistema.
Diagrama de Actividades
Los diagramas de actividades se usan para modelar el comportamiento de un sistema, y la
manera en que éste comportamiento está relacionado con un flujo global del sistema. Se usan
los caminos lógicos que sigue un proceso basado en varias condiciones, concurrencia en el
proceso, los datos de acceso, interrupciones y otras alternativas del camino lógico para
construir un proceso, sistema o procedimiento.
Diagrama de Secuencia
Un diagrama de Secuencia es una representación estructurada de comportamiento como una serie de
pasos secuenciales a lo largo del tiempo. Se usa para representar el flujo de trabajo, el paso de
mensajes y cómo los elementos en general cooperan a lo largo del tiempo para lograr un resultado.
• Cada elemento de la secuencia está ordenado en una secuencia horizontal, con paso de mensajes hacia
atrás y hacia adelante entre los elementos.
• Un elemento actor se puede utilizar para representar al usuario iniciando el flujo de eventos.
• Los elementos estereotipados, tales como límite, control y entidad, se puede utilizar para ilustrar
pantallas, controladores e ítems de bases de datos, respectivamente.
• Cada elemento tiene una línea de trazos llamada línea de vida, en donde este elemento existe y
potencialmente toma parte en las interacciones.
Diagrama de Secuencia
Diagramas de Comunicaciones (formalmente
Diagrama de Colaboraciones)
Un diagrama de Comunicaciones muestra las interacciones entre los elementos en tiempo de
ejecución en forma semejante a un diagrama de Secuencia. No obstante, los diagramas de
Comunicación se usan para visualizar relaciones inter-objetos, mientras que los diagramas de
Secuencia son más efectivos para visualizar procesamiento a lo largo del tiempo.
Los diagramas de Comunicaciones emplean asociaciones ordenadas y etiquetadas para ilustrar el
procesamiento. Es importante la numeración para indicar el orden y el anidamiento del
procesamiento. Un esquema de numeración podría ser 1, 1.1, 1.1.1, 1.1.2, 1.2, etc. Comienza un
nuevo segmento de números para una nueva capa de procesamiento, y sería equivalente a la
invocación de un método.
Diagrama de Descripción de la Interacción
Los diagramas de Descripción de
las Interacciones muestran la
cooperación entre otros
diagramas de interacción para
reflejar el flujo de control que
responde a un propósito
abarcativo. Como los Diagramas
de Descripción de las
Interacciones son una variante de
los diagramas de actividades, la
mayor parte de la notación es
similar, al igual que el proceso de
construcción del diagrama. Los
puntos de decisión, bifurcación,
unión, puntos de inicio y final son
los mismos. En lugar de
actividades se usan elementos
rectangulares. Hay dos tipos de
estos elementos:
Los elementos de interacción
muestran un diagrama de
interacción en línea , el cual puede
ser un diagrama de Secuencias,
Comunicaciones, de Tiempos, o de
Descripción de las Interacciones.
Diagrama de Máquina de Estado
Un diagrama de Máquina de estados ilustra cómo un elemento (a menudo una clase) se puede
mover entre estados, clasificando su comportamiento de acuerdo con los disparadores de
transiciones y las guardas de restricciones. Otros aspectos de los diagramas de Máquinas de
Estados describen y explican el movimiento y el comportamiento.
Diagrama de Máquina de Estado
Diagrama de Tiempos
El diagrama de Tiempo define el comportamiento de los diferentes objetos con una escala de tiempo.
Provee una representación visual de los objetos cambiando de estado e interactuando a lo largo del tiempo.
Puede usar diagramas de tiempos para definir componentes de software dirigidos por hardware o
embebidos; por ejemplo, aquellos usados en un sistema de inyección de combustible, un controlador de
microondas. También puede usar diagramas de tiempo para especificar procesos de negocio dirigidos por
tiempo.
modelo de clases
El Modelo de clase es un modelo riguroso y lógico del sistema de software bajo
construcción.
Las clases generalmente tienen una relación directa con el código fuente y otros
artefactos de software que se pueden agrupar juntos en componentes ejecutables.
Diagrama de Clases
El diagrama de Clases captura la estructura lógica del sistema - las clases y cosas que
constituyen el modelo -. Es un modelo estático, describiendo lo que existe y qué
atributos y comportamiento tiene, más que cómo se hace algo. Los diagramas de Clases
son los más útiles para ilustrar las relaciones entre las clases e interfaces. Las
generalizaciones, las agregaciones y las asociaciones son todas valiosas para reflejar la
herencia, la composición o el uso y las conexiones respectivamente.
Diagrama de Objetos
Un diagrama de Objetos está relacionado de cerca con un diagrama de Clases, con la
diferencia de que éste describe las instancias de los objetos de clases en un punto en el
tiempo. Esto podría parecer similar al diagrama de Estructura Compuesta, que modela el
comportamiento en tiempo de ejecución; la diferencia es que el diagrama de Objetos
ejemplifica al diagrama de Clases estático, mientras que los diagramas de Estructura
Compuesta refleja las arquitecturas diferentes de sus contrapartes estáticas. Los diagramas
de Objetos no presentan arquitecturas que varíen de sus correspondientes diagramas de
Clases, pero reflejan la multiplicidad y los roles a los que las clases instanciadas podrían
servir. Ellos son muy útiles en la comprensión de diagramas de Clases complejos, al crear
diferentes casos en los que se aplican las relaciones y las clases. Un diagrama de Objetos
puede ser también un tipo de diagrama de Comunicaciones, el cual modela también las
conexiones entre pares de objetos y además las secuencias de eventos a lo largo de cada
camino.
modelo de los componentes
El Modelo del componente define como las clases, artefactos y otros elementos de bajo nivel
se agrupan en componentes de alto nivel, y las interfaces y conexiones entre ellos.
Los componentes son artefactos de software compilados que trabajan juntos para proveer el
comportamiento requerido dentro de las restricciones de operación definidas en el modelo de
requisitos.
Diagrama de Componentes
Un diagrama de Componentes ilustra los fragmentos de software, controladores
embebidos, etc. que conformarán un sistema. Un diagrama de componentes tiene un nivel
de abstracción más elevado que un diagrama de clase - usualmente un componente se
implementa por una o más clases (u objetos) en tiempo de ejecución. Estos son bloques de
construcción, como así eventualmente un componente puede comprender una gran porción
de un sistema.
modelo de base de datos
El Modelo de base de datos describe la información que debe ser almacenada y recuperada
como parte del sistema completo.
Normalmente esto referirá a los modelos de base de datos relacional que describen las tablas y
datos en detalle y permitirá la generación de scripts DDL para crear e instalar base de datos.
Esquema de Base de Datos
Diagrama de la Interfaz del Usuario
Los Diagramas de la Interfaz del Usuario usados para imitar visualmente la interfaz del
usuario del sistema usando formas, controles y etiquetas.
El siguiente diagrama de la Interfaz del Usuario de ejemplo, las formas, controles y
etiquetas se organizan en el diagrama para describir su apariencia. Los elementos UI
también se pueden rastrear a otros elementos del modelo vinculando el UI con la
implementación de base.
modelo de despliegue
El Modelo de despliegue describe cómo y dónde un sistema se desplegará.
Las máquinas físicas y los procesadores son representados por nodos, y la construcción interna
se puede describir embebiendo nodos y artefactos.
Como los artefactos se ubican en los nodos para modelar el despliegue del sistema, la ubicación
se guía por el uso de especificaciones de despliegue.
Diagrama de Despliegue
Un diagrama de Despliegue muestra cómo y dónde se desplegará el sistema. Las máquinas
físicas y los procesadores se representan como nodos, y la construcción interna puede ser
representada por nodos o artefactos embebidos. Como los artefactos se ubican en los nodos
para modelar el despliegue del sistema, la ubicación es guiada por el uso de las
especificaciones de despliegue.
Modelo de Mantenimiento
El Modelo de mantenimiento permite una representación visual de incidencias que surgen
durante y después del desarrollo del producto de software.
El modelo puede ser mejorado con la integración de elementos de cambios y pruebas.
Diagrama de Mantenimiento
Un diagrama de Mantenimiento es un diagrama personalizado usado para describir pedidos de cambios
e items de incidencia dentro de un modelo del sistema.
El siguiente ejemplo ilustra un diagrama de mantenimiento de ejemplo. Los elementos de cambios,
tareas e incidencias se pueden luego vincular a otros elementos del modelo en el sistema para ilustrar
como necesitan ser modificados, fijados o actualizados.
Los modelos de Mantenimiento proveen extensiones al modelo UML y permiten la administración de
cambios de los items de cambios, y los elementos del modelo que requieren hacer los cambios en ellos
modelo de pruebas
El Modelo de pruebas describe y mantiene un catálogo de pruebas, planes de prueba
y resultados que se ejecutan en comparación con el modelo actual.
Unidad II
Diseño orientado a objetos.
◦ • Unidades modulares
◦ • Pocas interfaces
◦ • Interfaces pequeñas (acoplamiento
débil)
◦ • Interfaces explícitas
◦ • Ocultamiento de información
Principios de diseño
Para conseguir un acoplamiento débil, se debe minimizar el
número de interfaces entre módulos y minimizar la cantidad
de información que se mueve a través de una interfaz.
La realización del software del problema del mundo real debe describirse de
forma sencilla y correcta para que permita a los ingenieros del software que
trabajan en el proyecto comprender el problema de forma sencilla y uniforme.
El cometido del AOO es el de aislar todos los nombres y frases del texto
explicativo del procesamiento que describe que es lo que ha de realizar el
sistema.
Esta primera selección nos puede ayudar a definir las clases, subclases y objetos
del sistema.
◦ a) Un nombre común suele representar una clase de objetos (una abstracción de datos),
como puede ser automóvil.
◦ b) Un nombre propio suele representar una instancia de una clase, como puede ser Juan.
PROCESO DEL ANÁLISIS Y DISEÑO ORIENTADO A LOS
OBJETOS (99)
Como podemos observar, algunas asociaciones cíclicas como Indice <-> Documento.
Estas asociaciones pueden simplificarse.
También existen otras implícitas que examinaremos más adelante, como Usuario-
>Documento->Indice.
Clasificacion
LA RELACION DE HERENCIA.
A continuación vamos a centrarnos en la relación de herencia.
Como ya sabemos ésta puede agrupar objeto son similares característica o
bien especializar objetos a partir de una genérico. Observemos nuevamente
los requerimientos de nuestro sistema:
Asociaciones
Las asociaciones entre dos clases se representan mediante una línea
que las une. La línea puede tener una serie de elementos gráficos
que expresan características particulares de la asociación.
A continuación se verán los más importantes de entre dichos
elementos gráficos.
El nombre de la asociación es opcional y se muestra como un texto
que está próximo a la línea.
Se puede añadir un pequeño triángulo negro sólido que indique la
dirección en la cual leer el nombre de la asociación. En el ejemplo
de la Figura se puede leer la asociación como “Director manda
sobre Empleado”.
Multiplicidad
La multiplicidad es una restricción que se pone a una asociación, que limita
el número de instancias de una clase que pueden tener esa asociación con
una instancia de la otra clase. Puede expresarse de las siguientes formas:
◦ · Con un número fijo: 1.
◦ · Con un intervalo de valores: 2..5.
◦ · Con un rango en el cual uno de los extremos es un asterisco. Significa que es un
intervalo abierto. Por ejemplo, 2..* significa 2 o más.
◦ · Con una combinación de elementos como los anteriores separados por comas:
1, 3..5, 7, 15..*.
◦ · Con un asterisco: * . En este caso indica que puede tomar cualquier valor (cero
o más).
Roles
Para indicar el papel que juega una clase en una asociación se puede
especificar un nombre de rol. Se representa en el extremo de la asociación
junto a la clase que desempeña dicho rol.
Agregación
El símbolo de agregación es un diamante colocado en el extremo en el que
está la clase que representa el “todo”.
Clases Asociación
Cuando una asociación tiene propiedades propias se representa como una
clase unida a la línea de la asociación por medio de una línea a trazos.
Tanto la línea como el rectángulo de clase representan el mismo elemento
conceptual: la asociación.
Por tanto ambos tienen el mismo nombre, el de la asociación.
Cuando la clase asociación sólo tiene atributos el nombre suele ponerse
sobre la línea (como ocurre en el ejemplo de la Figura).
Por el contrario, cuando la clase asociación tiene alguna operación o
asociación propia, entonces se pone el nombre en la clase asociación y se
puede quitar de la línea.
Asociaciones N-Arias
En el caso de una asociación en la que participan más de dos clases, las
clases se unen con una línea a un diamante central. Si se muestra
multiplicidad en un rol, representa el número potencial de tuplas de
instancias en la asociación cuando el resto de los N-1 valores están fijos.
En la Figura 12 se ha impuesto la restricción de que un jugador no puede
jugar en dos equipos distintos a lo largo de una temporada, porque la
multiplicidad de “Equipo” es 1 en la asociación ternaria.
Herencia
La relación de herencia se representa mediante un triángulo en el extremo
de la relación que corresponde a la clase más general o clase “padre”.
Si se tiene una relación de herencia con varias clases subordinadas, pero en
un diagrama concreto no se quieren poner todas, esto se representa
mediante puntos suspensivos.
En el ejemplo de la Figura, sólo aparecen en el diagrama 3 tipos de
departamentos, pero con los puntos suspensivos se indica que en el modelo
completo (el formado por todos los diagramas) la clase “Departamento”
tiene subclases adicionales, como podrían ser “Recursos Humanos” y
“Producción”.
Conceptos básicos de la OxO
Polimorfismo
Polimorfismo significa que la misma
operación puede comportarse diferentemente
sobre distintas clases. Por ejemplo, la
operación "mover" ejemplo puede
comportarse diferentemente sobre una clase
llamada Ventana y una clase llamada
Piezas_ajedrez.
Conceptos básicos de la OxO
Polimorfismo Paramétrico: Se obtiene cuando una
función trabaja uniformemente sobre un rango de tipos;
esos tipos normalmente exhiben una estructura común y
puede comportarse de manera distinta para cada tipo.
Nombre
Persona Edad
Dirección
Sexo
Cargo
Profesión
Director
Simple.
Múltiple
Conceptos básicos de la OxO
Nombre
Persona Edad
Dirección
Sexo
Cargo
Profesión
Director
Vehículos
Vehículos
Carros Bote
Anfibios
Conceptos básicos de la OxO
Encadenamiento Dinámico:
Una de las ventajas que promueve el estilo de
programación orientada por objeto es la
característica del encadenamiento dinámico,
también llamado encadenamiento tardío. En
efecto, no se tendrían sistemas orientados por
objeto sin esa poderosa capacidad.
Simplemente, la declaración encadenamiento
dinámico significa que el sistema encadenará
una rutina a un selector para un método
particular que está implantado sobre un objeto
clase.
Patrones de Diseño
Patrones de Diseño
• El diseño OO es difícil y el diseño de software
orientado a objetos reutilizable lo es aún más.
• Los diseñadores expertos no resuelven los
problemas desde sus principios; reutilizan
soluciones que han funcionado en el pasado.
◦ – Se encuentran patrones de clases y objetos de
comunicación recurrentes en muchos sistemas
orientados a objetos.
◦ – Estos patrones resuelven problemas de diseño
específicos y hacen el diseño flexible y reusable.
Definición de un patrón
Alexander(arquitecto/urbanista)
Cada patrón describe un problema que ocurre
una y otra vez en nuestro entorno y describe
también el núcleo de la solución al problema, de
forma que puede utilizarse un millón de veces
sin tener que hacer dos veces lo mismo.
Definición de un patrón de diseño
[Gamma]
Un patrón de diseño es una descripción de clases
y objetos comunicándose entre sí adaptada para
resolver un problema de diseño general en un
contexto particular.
Introducción
• Es un tema importante en el desarrollo de
software actual: permite capturar la experiencia
• Busca ayudar a la comunidad de
desarrolladores de software a resolver
problemas comunes, creando un cuerpo literario
de base
◦ – Crea un lenguaje común para comunicar
ideas y experiencia acerca de los problemas y
sus soluciones
• El uso de patrones ayuda a obtener un software
de calidad (reutilización y extensibilidad)
Elementos de un patrón
• Nombre: describe el problema de
diseño.
• El problema: describe cuándo aplicar el
patrón.
• La solución: describe los elementos que
componen el diseño, sus relaciones,
responsabilidades y colaboración.
Clasificación de los patrones
Según su propósito:
– De creación: conciernen al proceso de
creación de objetos.
– De estructura: tratan la composición
de clases y/o objetos.
– De comportamiento: caracterizan las
formas en las que interactúan y reparten
responsabilidades las distintas clases u
objetos.
Clasificación de los patrones
GoF (gang of Four) [Gamma]
Patrones de diseño fundamentales
Son patrones que no aparecen la tabla
definida por Gamma, pero se utilizan
habitualmente:
◦ • DELEGATION
◦ • INTERFACE
◦ • MARKER INTERFACE
Patrón DELEGATION
Utilidad:
◦ Cuando se quiere extender y reutilizar la
funcionalidad de una clase SIN UTILIZAR
LA HERENCIA
Ventajas:
◦ • En vez de herencia múltiple
◦ • Cuando una clase que hereda de otra quiere
ocultar algunos de los métodos heredados
◦ • Compartir código que NO se puede heredar
Patrón DELEGATION
El problema
- El lenguaje utilizado NO PERMITE
HERENCIA MÚLTIPLE
- La clase C no desea TODOS los
métodos de B
Patrón DELEGATION
La solución
Patrón DELEGATION
Implementación
Class C extends A {
B objB;
C ( ) { // En la constructora se puede crear obj. de B
objB=new B();
}
void b1( )
{
objB.b1( );
}
….
Patrón INTERFACE
Utilidad y Ventajas
Utilidad
◦ Definir un comportamiento independiente de donde
vaya a ser utilizado
Ventajas
◦ Desacople entre comportamiento y clase.
Realización de clases “Utilities”
Patrón INTERFACE
El problema
Patrón INTERFACE
La solución
Patrón INTERFACE
Implementación
Patrón INTERFACE
Ejemplo
Patrón MARKER INTERFACE
Utilidad y Ventajas
• Utilidad
◦ – Sirve para indicar atributos semánticos de una
clase.
• Ventajas:
◦ – Se puede preguntar si un objeto pertenece a una
clase de un determinado tipo o no.
◦ – Habitualmente se utiliza en clases de utilidades que
tienen que determinar algo sobre objetos sin asumir
que son instancias de una determinada clase o no.
Patrón MARKER INTERFACE
Patrón MARKER INTERFACE
Ejemplo