Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Metodología
Concepto:
Planteamiento paso a paso completo, para el tratamiento de sistemas, que guían en el
proceso de desarrollo e influyen en la calidad del producto final.
Características de RUP:
1. Está basada en componentes. Estos, a su vez, están conectados entre sí a través
de interfaces.
2. Utiliza el UML como notación básica.
3. Dirigido por casos de uso.
4. Centrado en la arquitectura.
5. Ciclo de vida interactivo e incremental.
Objetivo:
Asegurar la producción de software de calidad dentro de plazos y presupuestos prede-
cibles.
Fases:
1. Inicio (o concepción)
2. Elaboración
3. Construcción
4. Transición
2. Elaboración
Analizar el dominio del problema.
Establecer una arquitectura base sólida.
Desarrollar un plan de proyecto.
Eliminar los elementos de riesgo para el desarrollo exitoso del proyecto.
A partir de aquí, la arquitectura, los requerimientos y las fases de desa-
rrollo son estables.
Ya hay nuevos riesgos.
3. Construcción
Aquí se desarrollan los componentes restantes y se incorporan al produc-
to.
Todo se prueba en profundidad.
Puede hacerse construcción en paralelo, pero exige una planificación de-
tallada y una arquitectura muy estable.
4. Transición
El objetivo es traspasar el software desarrollado a la comunidad de usua-
rios. Una vez instalado surgirán nuevos elementos que implicarán nuevos
desarrollos (ciclos).
UML es un lenguaje:
Un lenguaje proporciona un vocabulario y las reglas para combinar palabras de ese
vocabulario con el objeto de posibilitar la comunicación.
UML lenguaje para visualizar: Porque facilita la comunicación ya que es
un lenguaje grafico fácil de comprender y también porque detrás de cada
símbolo grafico hay una semántica bien definida.
UML lenguaje para especificar: Porque construye modelos precisos no
ambiguos y completos, y cubre la especificación de todas las necesidades de
análisis, diseño y por ende la implementación.
UML lenguaje para construir: Si bien no es un lenguaje de programación
visual sus modelos pueden conectarse de forma directa a una gran variedad
de lenguajes de programación.
UML lenguaje para documentar: UML cubre la documentación de la ar-
quitectura de un sistema y todos sus detalles.
Objetos
Concepto:
Es una unidad atómica formada por la unión de un estado y de un comportamiento,
que proporciona una relación de encapsulación que asegura a la vez la cohesión interna
muy fuerte y un débil acoplamiento con el exterior. El objeto se manifiesta por medio
del envió de mensajes dándose de esta manera la comunicación.
Un objeto se representa bajo la forma de:
Nombre
Juan
Libreta de ahorro
Un automóvil
azul
979 Kg
12 cv
Identidad: además de su estado un objeto posee una identidad que caracteriza su pro-
pia existencia. La identidad permite distinguir a los objetos independientemente de su
estado, aun poseyendo dos estados idénticos. Ejemplo: todos los automóviles se identi-
fican por su numero de matricula, nosotros mismos nos identificamos por nuestro núme-
ro de DNI.
Categorías de Comportamiento:
Según la dirección de los mensajes intercambiados hay tres categorías de comporta-
miento: los actores, los servidores y los agentes. Ejemplo:
Un Agente
Un Actor Un Servidor
Mensaje
Concepto:
La unidad de comunicación entre objetos se llama mensaje. Es el soporte de una rela-
ción de comunicación que vincula de forma dinámica los objetos que han sido separa-
dos por el proceso de descomposición.
Los mensajes se representan por flechas ubicadas a lo largo de los enlaces que unen
los objetos. Un mensaje agrupa los flujos de control y los flujos de datos dentro de una
entidad única. Ejemplo:
mensaje
Objeto1 Objeto 2
Dato A Dato B
La flecha simple indica el flujo de control y las decoradas con un pequeño circulo in-
dican el flujo de datos.
Categorías de mensajes:
Los constructores que crean objetos.
Los destructores que destruyen objetos.
Los selectores que devuelven todo o parte del estado de un objeto.
Los modificadores que cambian todo o parte del estado de un objeto.
Los iteradotes que visitan el estado de un objeto o el contenido de una es-
tructura de datos que contiene varios objetos.
Expeditor Destinatario
Expeditor Destinatario
Expeditor Destinatario
Expeditor Destinatario
(reloj)
5. Mensaje Asíncrono: no interrumpe la ejecución del expeditor. El expeditor en-
vía el mensaje sin saber cuando, ni siquiera si el mensaje será tratado por el des-
tinatario (desde el punto de vista del destinatario lo atenderá en cualquier mo-
mento).
Expeditor Destinatario
UNIDAD II
Clases
Concepto:
La Clase describe el ámbito de definición de un conjunto de objetos, cada objeto per-
tenece a una clase. Las generalidades están contenidas en una clase y las particularida-
des en un objeto. Los objetos informáticos se construyen a partir de la clase por un pro-
ceso llamado instanciación. De este modo, todo objeto es una instancia de clase.
Nombre
Atributos
Operaciones
Motocicleta
Color
Cilindrada
Velocidad máx.
Arrancar
Acelerar
Frenar
enlace
California Universidad Gastón Estudiante
Gabriela Estudiante
enlace
Estamburgo Universidad
José Estudiante
enlace
Los enlaces entre las universidades y los estudiantes son instancias de la asociación
entre la clase Universidad la clase Estudiante.
Para mejor legibilidad, la asociación puede ir acompañada por una forma verbal activa
o pasiva usando el signo “>”. Ejemplo
1
Automóvil Motor
1
Persona padre
hijos *
Reglas que gobiernan la transición entre los Diagramas de Clases y los Diagramas de
Objetos:
Cada objeto es instancia de una clase y la clase del objeto no puede cambiar du-
rante la vida del objeto.
Ciertas clases llamadas abstractas no pueden ser instanciadas.
Cada enlace es instancia de una relación.
Los enlaces vinculan los objetos, las relaciones vinculan las clases.
Un enlace entre dos objetos implica una relación entre las clases de los dos obje-
tos.
Un enlace entre dos objetos indica que estos se conocen y que pueden intercam-
biar mensajes.
Los diagramas de objetos que contienen objetos y enlaces son instancias de dia-
gramas de clases que contienen clases y relaciones.
Jerarquía de Clases
Las jerarquías de clases o clasificaciones permiten gestionar la complejidad, ordenan-
do los objetos dentro de árboles de clases de abstracción creciente.
Generalización y Especialización: son puntos de vista centrados en las jerarquías
de clases.
La generalización consiste en factorizar los elementos comunes (atributos, operacio-
nes y restricciones) de un conjunto de clases en una clase más general llamada supercla-
se. Las clases se ordenan según su jerarquía, una superclase es una abstracción de sus
subclases. Ejemplo:
Vehículo
Superclases y Subclases
Resulta más difícil encontrar las superclases, pero los programas son más simples de
desarrollar. Es más fácil encontrar las subclases, pero es difícil realizarlas. La generali-
zación no recibe ni nombre particular ni valor de multiplicidad.
Características o Propiedades
La generalización es una relación No Reflexiva: una clase no puede derivar de si
misma. Ejemplo:
Imposible
B Imposible
C
Sobre la dificultad de Clasificar
La determinación de los criterios de clasificación es difícil y en ciertos casos no es po-
sible determinarla.
Las clasificaciones deben ante todo, discriminar claramente los objetos. Las clasifica-
ciones se efectúan según criterios dependientes del punto de vista. No hay pues una sola
clasificación, son diversas y cada una adaptada a un uso dado. Ejemplo: para los anima-
les pueden observarse numerosos criterios:
Estación
Tipo de alimentación
Protección
Una vez establecidos los criterios hay que seguirlos de manera coherente y uniforme
según el orden determinado, siendo este último arbitrario. En este caso el criterio de la
estación se ha aplicado antes del criterio de alimentación.
Animal
Conejo
Vehiculo Terrestre
La Delegación
La Herencia no es una necesidad absoluta y siempre puede remplazarse por la delega-
ción. La Delegación presenta la ventaja de reducir el acoplamiento en el modelo: por
una parte el cliente no conoce directamente el proveedor, por otra el proveedor puede
ser modificado sobre la marcha. Esta aproximación permite implementar la generaliza-
ción múltiple con los lenguajes que solo poseen la herencia simple. Ejemplo:
Animal
Estación Alimento
Principio de Sustitución
El Principio de Sustitución afirma que “debe ser posible sustituir cualquier instancia
de una superclase por cualquier objeto instancia de una subclase sin que la semántica
del programa escrito en los términos de la superclase sea afectado”. Ejemplo:
CP :CP :CP
:CP :CP
:CP
CE :CE
El Polimorfismo
Describe la característica de un elemento que puede tomar varias formas. Un nombre
de objeto puede designar instancias de clases diferentes surgidas de un mismo árbol.
Principio General: las interacciones entre los objetos se escriben según los términos de
las especificaciones definidas, en sus superclases.
El polimorfismo permite desencadenar operaciones diferentes en respuesta a un mis-
mo mensaje. Cada subclase hereda de la especificación de las operaciones de sus super-
clases, pero tiene la posibilidad de modificar localmente el comportamiento de estas
operaciones, a fin de tener en cuenta mejor las peculiaridades relacionadas con un nivel
de abstracción dado.
Los beneficios del polimorfismo se recogen principalmente durante el mantenimiento.
El polimorfismo no influye en el análisis, pero depende de él, no hay que pensar el aná-
lisis en términos de polimorfismo hay que pensarlo en términos de abstracción y así por
efecto secundario beneficiarse de esta abstracción, hacer posible el polimorfismo.
Ejemplo: el siguiente Diagrama representa una colección polimorfa: el zoológico.
El zoológico contiene muchos animales. El nombre Animal conocido de la clase
ZOO, describe colectivamente todos los tipos de animales. El programa al nivel de abs-
tracción del ZOO no necesita conocer los detalles propios de cada animal.
ZOO Animal
Todos los animales del ejemplo saben dormir pero cada raza tiene sus costumbres par-
ticulares. La especificación del animal dice que los animales pueden dormir. Las subcla-
ses particularizan la operación Dormir, según los gustos de cada raza. Ejemplo:
ZOO Animal
1
Dormir
*
BLOQUES DE CONSTRUCCIÓN:
1. Elementos
2. Relaciones
3. Diagramas
Elementos de UML:
1. Estructurales
2. De Comportamiento
3. De Agrupación
4. De Anotación
Elementos Estructurales
Son las partes estáticas de un modelo y representan cosas que son conceptuales o ma-
teriales. Son siete tipos:
Nombre
Atributos
Operaciones
Nombre
Nombre
4. Caso de Uso. Gráficamente se representa:
Nombre
Nombre
Atributos
Operaciones
Nombre
Nombre
Elementos De Comportamiento
Son las partes dinámicas de un modelo y representan comportamientos en el tiempo y
el espacio. Son dos tipos:
1. Interacción. Gráficamente se representa:
Nombre
Nombre
Elementos De Agrupación
Son las partes organizativas de un modelo y representan las cajas en las que puede
descomponerse un modelo. Hay un tipo:
1. Paquete. Gráficamente se representa:
Nombre
Elementos De Anotación
Son las partes explicativas de un modelo son comentarios que se pueden aplicar para
describir, clasificar y hacer observaciones sobre cualquier elemento del modelo. Hay un
tipo:
1. Nota. Gráficamente se representa:
Nota
Relaciones de UML:
1. Dependencia
2. Asociación
3. Generalización
4. Realización
Diagramas de UML:
1. De Clases
2. De Objetos
3. De Casos de Uso
4. De Secuencia
5. De Colaboración
6. De Estados
7. De Actividades
8. De Componentes
9. De Despliegue
REGLAS:
1. Nombre: como llamar a los elementos, relaciones y diagramas.
2. Alcance: el contexto que da un significado al nombre.
3. Visibilidad: como pueden ser vistos esos nombres por otros.
4. Integridad: como se relacionan apropiada y consistentemente unos ele-
mentos con otros.
5. Ejecución: que significa ejecutar o simular un modelo dinámico.
MECANISMOS COMUNES:
1. Especificaciones
2. Adornos
3. Divisiones comunes
4. Mecanismos de extensibilidad
Divisiones Comunes:
Juan: Cliente
: Cliente
Elisa
Mecanismos de Extensibilidad:
1. Estereotipos
2. Valores Etiquetados
3. Restricciones
ARQUITECTURA:
La Arquitectura de UML comprende:
La organización de un sistema software.
La selección de elementos estructurales y sus interfaces a través de las
cuales se construye el sistema.
Su comportamiento, cómo se especifica en las colaboraciones entre esos
elementos.
La composición de esos elementos estructurales y de comportamiento en
subsistemas progresivamente más grandes.
El estilo arquitectónico que guía esta organización; los elementos estáti-
cos y dinámicos y sus interfaces, sus colaboraciones y su composición.
Modelado de la Arquitectura de un Sistema:
Diagrama de clases
Una clase está representada por un rectángulo que dispone de tres apartados, el
primero para indicar el nombre, el segundo para los atributos y el tercero para los
métodos.
Cada clase debe tener un nombre único, que las diferencie de las otras.
En este diagrama se modelan las instancias de las clases del diagrama de clases.
Muestra a los objetos y sus relaciones, pero en un momento concreto del sistema.
Estos diagramas contienen objetos y enlaces. En los diagramas de objetos también se
pueden incorporar clases, para mostrar la clase de la que es un objeto representado.
Para realizar el diagrama de objetos primero se debe decidir qué situación queremos
representar del sistema. Es decir si disponemos de un sistema de mensajería,
deberemos decidir que representaremos el sistema con dos mensajes entrantes, los
dos para diferentes departamentos, dejando un departamento inactivo. Para el
siguiente diagrama de clases:
Diagrama de componentes
Uno de los usos principales es que puede servir para ver que componentes pueden
compartirse entre sistemas o entre diferentes partes de un sistema.
Como ya hemos indicado antes todo objeto UML puede ser modificado mediante
estereotipos, los estándares que define UML son:
Executable
Library
Table
File
Document
Ejecutables y bibliotecas
Tablas
API
Código fuente
Hojas HTML
Diagrama de despliegue
Aquí tenemos dos nodos, el cliente y el servidor, cada uno de ellos contiene
componentes. El componente del cliente utiliza un interface de uno de los
componentes del servidor. Se muestra la relación existente entre los dos Nodos. Esta
relación podríamos asociarle un estereotipo para indicar que tipo de conexión
disponemos entre el cliente y el servidor, así como modificar su cardinalidad, para
indicar que soportamos diversos clientes.
En el diagrama nos encontramos con diferentes figuras que pueden mantener diversas
relaciones entre ellas:
Casos de uso: representado por una elipse, cada caso de uso contiene un
nombre, que indique su funcionalidad. Los casos de uso pueden tener
relaciones con otro caso de uso. Sus relaciones son:
o Include: Representado por una flecha, en el diagrama de ejemplo
podemos ver como un caso de uso, el de totalizar el coste incluye a dos
casos de uso.
o Extends: Una relación de una caso de Uso A hacia un caso de uso B
indica que el caso de uso B implementa la funcionalidad del caso de
uso A.
o Generalization: Es la típica relación de herencia.
Actores: se representan por un muñeco. Sus relaciones son:
o Communicates: Comunica un actor con un caso de uso, o con otro
actor.
Parte del sistema (System boundary): Representado por un cuadro, identifica
las diferentes partes del sistema y contiene los casos de uso que la forman.
Se debe modelar la relación del sistema con los elementos externos, ya que son estos
elementos los que forman el contexto del sistema.
Los diagramas de estado describen gráficamente los eventos y los estados de los
objetos. Los diagramas de estado son útiles, entre otras cosas, para indicar los
eventos del sistema en los casos de uso.
Un evento es un acontecimiento importante a tomar en cuenta para el sistema. Un
estado es la condición de un objeto en un momento determinado: el tiempo que
transcurre entre eventos. Una transición es una relación entre dos estados, e indica
que, cuando ocurre un evento, el objeto pasa del estado anterior al siguiente.
Diagrama de actividad
Estados de actividad
Estados de acción
Transiciones
Objetos
Transiciones
Bifurcaciones
Un flujo de control no tiene porqué ser siempre secuencial, puede presentar caminos
alternativos. Para poder representar dichos caminos alternativos o bifurcación se
utilizará como símbolo el rombo. Dicha bifurcación tendrá una transición de entrada y
dos o más de salida. En cada transición de salida se colocará una expresión booleana
que será evaluada una vez al llegar a la bifurcación, las guardas de la bifurcación han
de ser excluyentes y contemplar todos los casos ya que de otro modo la ejecución del
flujo de control quedaría interrumpida. Para poder cubrir todas las posibilidades se
puede utilizar la palabra ELSE, para indicar una transición obligada a un determinado
estado cuando el resto de guardas han fallado. Veamos un ejemplo de bifurcación.
Figura 49: Bifurcaciones
División y unión
No sólo existe el flujo secuencial y la bifurcación, también hay algunos casos en los
que se requieren tareas concurrentes. UML representa gráficamente el proceso de
división, que representa la concurrencia, y el momento de la unión de nuevo al flujo de
control secuencial, por una línea horizontal ancha. Podemos ver cómo se representa
gráficamente.
Diagrama de secuencia