Sei sulla pagina 1di 54

Análisis y Diseño del Software

El Lenguaje Unificado de Modelado


UML 2.0
Contenidos

• Introducción al modelado del software


• Presentación de UML
• Modelado de Casos de Usos
– Diagramas de casos de uso
• Modelado Estructural
– Diagramas de clases
– Paquetes

2
Bibliografía

G. Booch, J. Rumbaugh, I. Jacobson, “El lenguaje


unificado de modelado”, 2ª Edición, Addison-
Wesley, 2006.

C. Larman, “UML y Patrones: Una introducción al


análisis y diseño orientado a objetos y al proceso
unificado”, Prentice-Hall, 2003.

http://www.uml.org/

3
Contenidos

• Introducción al modelado del software


• Presentación de UML
• Modelado de Casos de Usos
– Diagramas de casos de uso
• Modelado Estructural
– Diagramas de clases
– Paquetes

4
El lenguaje unificado de modelado, UML

• A mediados de los noventa existían muchos métodos


de análisis y diseño OO
– Mismos conceptos con distinta notación
– Mucha confusión.
• En 1994, Booch, Rumbaugh y Jacobson deciden
unificar las notaciones de sus métodos:
Unified Modeling Language (UML)
• Proceso de estandarización promovido por el OMG
http://www.uml.org

5
Explosión de métodos OO en los noventa

OMT Coad/Yourdon
Booch Champeaux
Jacobson Martin/Odell
Shlaer-Mellor OOram
Wirfs-Broks BON
Fusion Open
Catalysis
¡Y muchos más! ¡Guerra de
métodos!

6
Evolución UML
• Grady Booch y Jim Rumbaugh comenzaron a unificar sus métodos
(Octubre, 1994).
• Borrador de UML (versión 0.8) (Octubre, 1995)
• Ivar Jacobson se une al proyecto (Noviembre, 1995).
• UML 0.9 y se crea un consorcio (Junio, 1996)
• OMG lanza una petición para un lenguaje unificado (1996)
• UML 1.0 es ofrecido al OMG (Enero, 1997)
• Se extiende el consorcio (Enero-Julio, 1997)
• UML 1.1 es ofrecido al OMG (Julio, 1997)
• OMG adopta UML 1.1 (Noviembre, 1997)
• Se crea el UML RTF (1998)
• UML 1.3 (Mayo 1999)
• UML 2.0 (principios de 2005)
7
Ventajas de la unificación

• Reunir los puntos fuertes de cada método


• Idear nuevas mejoras
• Proporcionar estabilidad al mercado
– Proyectos basados en un lenguaje maduro
– Aparición de potentes herramientas
• Eliminar confusión en los usuarios

8
Objetivos en el diseño de UML
• Modelar sistemas, desde los requisitos hasta los
artefactos ejecutables desplegados en nodos,
utilizando técnicas OO.
• Cubrir las cuestiones relacionadas con el tamaño
propias de los sistemas complejos y críticos.
• Lenguaje utilizable por las personas y las máquinas
• Encontrar equilibrio entre expresividad y
simplicidad.

9
Modelado del Software

• El modelado es el análisis y diseño de aplicaciones


software antes de escribir el código.
• Se crean un conjunto de modelos (“planos del
software”) que permiten especificar aspectos del
sistema como los requisitos, la estructura y el
comportamiento.
• Los modelos
– ayudan a razonar sobre el sistema
– favorecen la comunicación
– permiten documentar las decisiones
– permiten una generación automática de código
10
Utilidad del modelado

“Una empresa software con éxito es aquella


que produce de manera consistente software
de calidad que satisface las necesidades de
los usuarios”

“El modelado es la parte esencial de todas las


actividades que conducen a la producción
de software de calidad”

11
¿Construimos software de calidad?

• Retrasos en los plazos


• Proyectos cancelados
• Rápido deterioro del sistema instalado
• Tasa de defectos o fallos
• Requisitos mal comprendidos
• Cambios frecuentes en el dominio del problema
• Buenos programadores se cansan y dejan el equipo

¿Modelado es la solución?

12
Modelo
Estructural
1. cerrarEdicionSubasta(es)
int numAjudicaciones =
: Minimo(pujas.length(),
ControladorAnuncios articulos.length());

: Sistema

2. cerrar() 5. numAdjs = calcularAdjudicaciones()

9. [1..numAdjs]* add(adj)
4. * cerrar()
: AnuncioSubasta : EdicionSubasta as : adjudicaciones :
AnuncioSubasta Adjudicacion
3. * as := get()

8. [1..numAdjs]* adj := crear(as, pg, a)


6. [1..numAdjs]* pg := get()
pujas : 7. [1..numAdjs]* a:= get()
PujaOrdinaria

adj :
Se recorre la colección de
Adjudicacion
pujas obteniendo las pujas
: ArticuloConcreto
ganadoras (consideramos
que la colección está
ordenada de mayor a menor Se crean tantas adjudicaciones
valor de puja). como pujas ganadoras haya.
Cada adjudicación se asocia
con un ArticuloConcreto, una
puja adjudicataria y con la
subasta.

Modelo de
Comportamiento
Utilidad del modelado

¿Por qué no escribo código


directamente?

Sería lo ideal pero ....


.... necesitamos escribir modelos,

aunque la mayoría de desarrolladores


todavía no practican el modelado
15
¿Por qué la mayoría de
empresas no practican el
modelado?

¿Se obtienen beneficios con el modelado?


Un coste en formación y tiempo
¿Una mejora de la productividad?
¿Una mejora de la calidad del software?
Utilidad del modelado

• Hay estructuras que no son visibles en los programas.


• Ayuda a razonar sobre el cómo se implementa.
• Se facilita la comunicación entre el equipo al existir
un lenguaje común.
• Se dispone de documentación que trasciende al
proyecto.
• Generación de código a partir de modelos
– Ha surgido un nuevo paradigma de desarrollo de software a
partir de modelos (p.e. MDA, Model Driven Architecture,
de OMG)

17
Utilidad del modelado

• Los modelos:
– visualizan cómo es o queremos que sea el sistema
– especifican la estructura y comportamiento del
sistema.
– guían la construcción del sistema.
– documentan las decisiones.

18
Modelos en otras áreas

19
¿Qué es un modelo?

“Un modelo es una simplificación de la realidad.”

“Un modelo es resultado de un proceso de


abstracción y ayuda a comprender y razonar
sobre una realidad.”

20
¿Qué es un modelo software?

Un modelo es una descripción de un


aspecto del sistema, expresada en un
lenguaje bien definido.

21
Un modelo software

22
Modelos en UML
• Modelado de Casos de Uso
– Diagrama de Casos de Uso Diagramas no
• Modelado Estructural son modelos
– Diagrama de Clases
• Modelado de Comportamiento
– Diagramas de Interacción
– Diagramas de Estados
• Modelado de flujos de Actividades
– Diagramas de actividades
• Modelado de Implementación
– Diagrama de Componentes
• Modelado de Despliegue
– Diagramas de Despliegue

23
Tipos de modelo
• ¿En qué etapa del proceso se usa? ¿Análisis o
Diseño?
• ¿Cuál es su grado de detalle? ¿Abstracto o detallado?
• ¿Qué sistema describe? ¿Modelo de negocio o
modelo software?
• ¿Qué aspecto describe? ¿Estructural o de
comportamiento?
• ¿Es específico o independiente de la plataforma?
• ¿A qué plataforma va dirigido? EJB, JDBC, .NET,
CORBA, etc.
24
Propiedades del modelado

• La elección de los modelos tiene una profunda


influencia sobre cómo se acomete el problema y se
moldea la solución.
• Todo modelo debe estar ligado a la realidad.
• Un único modelo no es suficiente. Cualquier sistema
trivial se aborda mejor a través de un pequeño
conjunto de modelos casi independientes.

25
Contenidos

• Introducción al modelado del software


• Presentación de UML
• Modelado de Casos de Usos
– Diagramas de casos de uso
• Modelado Estructural
– Diagramas de clases
– Paquetes

26
UML y el modelado

UML es un lenguaje para visualizar, especificar,


construir y documentar los artefactos (modelos) de un
sistema que involucra una gran cantidad de software,
desde una perspectiva orientada a objetos.

• UML es una notación, no es un proceso


• Se han definido muchos procesos para UML.
– Rational ha ideado RUP, el“proceso unificado”.
• Utilizable para sistemas que no sean software
27
Marco Conceptual de UML

• Bloques básicos de construcción


– Elementos
Estructurales, Comportamiento, Agrupación, Anotación
– Relaciones
– Diagramas
• Reglas para combinar bloques
– Establecen qué es un modelo bien formado
• Mecanismos comunes
– Especificaciones, Extensibilidad, Dicotomía clase-
instancia, Dicotomía interfaz-realización
28
Elementos Estructurales

Son las partes estáticas de un modelo.


Ventana <<Interface>> colaboración
origen IAvisable
IAvisable
tamaño

abrir()
cerrar()
Interface Gestión Pedidos
mover()
dibujar()

clase
ValidarTransaccio
n caso de uso

29
Elementos Estructurales

Gestor Eventos
clase activa
suspender() FormularioPedido
vaciarCola()

componente
<<artifact>>
window.dll
Servidor

nodo
artefacto

30
Elementos de Comportamiento

Son las partes dinámicas de UML.

Interacción
Conjunto de mensajes intercambiados entre un conjunto
de objetos con un propósito particular.

dibujar
mensaje

31
Elementos de Comportamiento

Máquina de estados
Secuencia de estados por los que pasa un objeto durante
su vida en respuesta a eventos.

activado estado

32
Elementos de Agrupación

Son las partes de organización de los modelos UML.

paquete
Modelo del Negocio

Un paquete incluye un conjunto de elementos de cualquier


naturaleza.

Tiene una naturaleza conceptual.


33
Elementos de Anotación

Son las partes explicativas de los modelos UML.

Retorna 0 si no Nota
existe el valor

34
Relaciones

Dependencia

0..1 *
Asociación
patron empleado

Generalización

Realización

35
Ejemplo

IteradorCuenta

Cuenta Domiciliacion
1 0..n

Ahorro Corriente

Operacion
Periodica

36
Diagramas de UML
• Diagrama de Casos de Uso Diagramas no
• Diagrama de Clases son modelos
• Diagrama de Objetos
• Diagrama de Secuencia
• Diagrama de Comunicación (UML 2.0)
• Diagrama de Estados
• Diagrama de Actividades
• Diagrama de Componentes
• Diagrama de Despliegue
• Diagrama de Estructura Compuesta (UML 2.0)
• Diagrama de Vista de interacción (UML 2.0)
• Diagrama de Paquetes (UML 2.0)
• Diagrama de Tiempos (UML 2.0)
38
Diagramas de UML

39
Modelos en UML
• Modelado de Casos de Uso
– Diagrama de Casos de Uso
• Modelado Estructural
– Diagrama de Clases
• Modelado de Comportamiento
– Diagramas de Interacción: Secuencia y Comunicación
– Diagramas de Estados
• Modelado de flujos de actividades (p.e. Modelo del Negocio)
– Diagramas de actividades
• Modelado Implementación
– Diagrama de Componentes
• Modelado de Despliegue
– Diagramas de Despliegue
40
Responsable Serv icio PE Alumno Sistema

Registrar Curso

Aprobar Curso
Modelo del
Preinscripción Negocio
Avisar
Admitidos

Matriculación
Hay alumnos?

no

Cambiar
admitidos Hay alumnos?
Diagrama
no
de
actividad
Cancelar Curso

Crear Proyecto

Cerrar Curso
Modelo de
Casos de Usos

Realizar puja ordinaria


Cerrar edición de subasta

Pujador Cancelar puja ordinaria

Realizar pago de subasta ordinaria

Rechazar adjudicación
Sistema
Notif icar adjudicatario
Teleoperador Participante

Crear edición de subasta


Diagramas
de casos de
Anular anuncio de subasta
uso
Administrador
Anular edición de subasta
Diagrama de Modelo
clases Estructural
1. cerrarEdicionSubasta(es)
int numAjudicaciones =
: Minimo(pujas.length(),
articulos.length());
Diagrama de
ControladorAnuncios
comunicació
: Sistema

2. cerrar() 5. numAdjs = calcularAdjudicaciones()


n

9. [1..numAdjs]* add(adj)
4. * cerrar()
: AnuncioSubasta : EdicionSubasta as : adjudicaciones :
AnuncioSubasta Adjudicacion
3. * as := get()

8. [1..numAdjs]* adj := crear(as, pg, a)


6. [1..numAdjs]* pg := get()
pujas : 7. [1..numAdjs]* a:= get()
PujaOrdinaria

adj :
Se recorre la colección de
Adjudicacion
pujas obteniendo las pujas
: ArticuloConcreto
ganadoras (consideramos
que la colección está
ordenada de mayor a menor Se crean tantas adjudicaciones
valor de puja). como pujas ganadoras haya.
Cada adjudicación se asocia
con un ArticuloConcreto, una
puja adjudicataria y con la
subasta.

Modelo de
Comportamiento
Diagrama de introducirProducto
estado

Espera Venta introducirProducto Introduccion


Productos

Terminar Venta

manejarRespuesta
efectuar Pago Efectivo Espera
Pago

Autorizacion
Pago
efectuar Pago Tarjeta

Modelo de
Comportamiento
Mecanismos comunes de UML

• Dicotomía clasificador /instancia

Persona
Elena
nombre
direccion
telefono
Elena :
Persona

: Persona

46
Mecanismos comunes de UML

• Dicotomía interfaz / implementación

IOrtografia

asistenteOrtografico
IDiccionario
IUnknown

47
Mecanismos comunes de UML

• Dicotomía rol / tipo

Pedido

cliente: Persona

El tipo declara la clase de una entidad, por ejemplo un objeto o


parámetro, y el rol describe el significado de la entidad en un
determinado contexto, tal como una clase, componente o
colaboración.
48
Mecanismos de extensibilidad de UML
• Estereotipos
– Extienden el vocabulario de UML, permitiendo definir
nuevos tipos de elementos y relaciones a partir de los
existentes pero específicos de un problema o dominio.
– Algunos son predefinidos en UML.
• Valores etiquetados
– Extienden las propiedades de un estereotipo, permitiendo
crear nueva información en la especificación del estereotipo.
– Par etiqueta/valor: { etiqueta = “valor” }
• Restricciones
– Especifican condiciones que una configuración de tiempo de
ejecución debe satisfacer para conformar con el modelo.
Ejemplos de estereotipos predefinidos

Clase Clase
estereotipad estereotipad
a a

<<Actor>>
Cliente

IComparator
Cliente

50
Mecanismos de extensibilidad de UML

valor etiquetado
estereotipo
<<authored>>
ColaEventos

<<Exception>> <<authored>>
añadir()
Overflow quitar() version: 3.2;
vaciar() autor: jgm

{ordenado}

restricción

51
Mecanismos de extensibilidad de UML

{xor}
restricciones

{Self.esposa.sexo = mujer and


self.esposo.sexo = hombre}

52
¡Hola, Mundo!

import java.awt.Graphics;
class HolaMundo extends java.applet.Applet {
public void paint (Graphics g) {
g.drawString (“¡Hola, Mundo!”,10,10);
}
}

HolaMundo
g.drawString
("Hola, Mundo”)
paint()

53
Diagrama de Clases

54

Potrebbero piacerti anche