Subido por Di Maggio Doormann Cecilia Brisa

UML Basico

Anuncio
Desarrollo de Software
Orientado a Objeto usando
UML
Contenido
•
•
•
•
•
•
•
•
•
•
introducción modelado de sw
claves en desarrollo de si
abstracción - modelado visual
notación (visual) - Beneficios
introducción: UML
que es UML?.
Historia del UML.
Participantes en UML 1.0
UML "aglutina" enfoques OO.
Perspectivas de UML.
Contenido
•
•
•
•
•
•
•
•
•
•
•
•
Proceso de desarrollo de SW basado en UML.
Que es un proceso de desarrollo de sw?.
Rational Unified Process (RUP).
Fases e Hitos (Milestones).
Elementos en RUP.
Características Esenciales de RUP.
Proceso dirigido por los Casos de Uso.
Proceso Iterativo e Incremental.
Proceso Centrado en la Arquitectura.
Fases del ciclo de vida.
Esfuerzo respecto de las Workflows.
Esfuerzo respecto de las Fases.
Contenido
•
•
•
•
•
•
•
•
Diagramas de UML.
Modelos y diagramas.
Diagramas de UML.
Organización de los modelos
Diagrama de actividad
Diagrama de Casos de Uso.
Fully Use Case.
Diagrama de clases.
Contenido
•
•
•
•
•
•
•
•
Diagramas de UML.
clases
clases : notación grafica
clases : encapsulación.
Relaciones entre clases
Asociación.
Agregación.
Composición.
Contenido
•
•
•
•
•
•
•
•
•
•
Diagramas de UML.
Clases y Objetos.
Generalización.
Polimorfismo.
Diagrama de secuencia.
Diagrama de colaboración.
Diagrama de estados.
Diagrama de componentes.
Diagrama de despliegue.
Resumen.
Introducción
Modelado de SW
I. Introducción: Modelado de SWI
Claves en Desarrollo de SI
Notación
Herramientas
Proceso
I. Introducción: Modelado de SW
Abstracción - Modelado Visual
(MV)
“El modelado captura las
partes esenciales del sistema”
Orden
Item
envío
Proceso de Negocios
Sistema Computacional
II. Notación (Visual) - Beneficios
Manejar la complejidad
Interface de Usuario
(Visual Basic,
Java, ..)
Lógica del Negocio
(C++, Java, ..)
Múltiples Sistemas
Servidor de BDs
(C++ & SQL, ..)
“Modelar el sistema
independientemente
del lenguaje de
implementación”
Componentes
Reutilizados
Promover la Reutilización
Introducción: UML
I. Introducción: UML
¿Qué es UML?
 UML = Unified Modeling Language
 Un lenguaje de propósito general para el
modelado orientado a objetos
 Documento “OMG Unified Modeling
Language Specification”
 UML combina notaciones provenientes
desde:
– Modelado Orientado a Objetos
– Modelado de Datos
– Modelado de Componentes
– Modelado de Flujos de Trabajo
(Workflows)
I. Introducción: UML
Historia de UML
I. Introducción: UML
Historia de UML
UML 2.0
2001-2003
UML 1.4
2000
1999
1998
Nov ‘97
UML 1.3
Revisiones menores
UML aprobado por el OMG
UML 1.2
Proceso de Desarrollo
de SW basado en UML
¿Qué es un Proceso de Desarrollo de
SW?
• Define Quién debe hacer Qué, Cuándo y
Cómo debe hacerlo
Requisitos nuevos
o modificados
Proceso de Desarrollo
de Software
Sistema nuevo
o modificado
No existe un proceso de software universal. Las
características de cada proyecto (equipo de
desarrollo, recursos, etc.) exigen que el
proceso sea configurable
Dos Dimensiones
IV. Proceso de Desarrollo de SW basado en UML
Fases e Hitos (Milestones)
Inception
Elaboration
Objetivos
(Vision)
tiempo
Construction
Arquitectura
Transition
Capacidad
Operacional
Inicial
Release
del Producto
IV. Proceso de Desarrollo de SW basado en UML
Elementos en RUP
• Workflows (Disciplinas)
Workflows Primarios
• Business Modeling (Modado del Negocio)
• Requirements (Requisitos)
• Analysis & Design (Análisis y Diseño)
• Implementation (Implementación)
• Test (Pruebas)
• Deployment (Despliegue)
Workflows de Apoyo
• Environment (Entorno)
• Project Management (Gestión del Proyecto)
• Configuration & Change Management (Gestión de
Configuración y Cambios)
IV. Proceso de Desarrollo de SW basado en UML
... Elementos en RUP
Workflow, Workflow Detail , Workers, Actividades y
Artefactos
Ejemplo
Workflow: Requirements
Workflow Detail:Analyse the Problem
Workers
Actividades
Artefactos
IV. Proceso de Desarrollo de SW basado en UML
... Elementos en RUP
Artefactos
 Resultado parcial o final que es producido y
usado durante el proyecto. Son las entradas y
salidas de las actividades
 Un artefacto puede ser un documento, un
modelo o un elemento de modelo
 Conjuntos de Artefactos
 Business Modeling Set
 Deployment Set
 Requirements Set
 Project Management Set
 Analysis & Design Set
 Configuration & Change Management Set
 Implementation Set
 Environment Set
 Test Set
IV. Proceso de Desarrollo de SW basado en UML
Características Esenciales de RUP
•
Proceso Dirigido por los Casos de Uso
•
Proceso Iterativo e Incremental
•
Proceso Centrado en la Arquitectura
IV. Proceso de Desarrollo de SW basado en UML
Proceso dirigido por los Casos de Uso
Capturar, definir y
validar los casos de uso
Requisitos
Análisis & Diseño
Implementación
Pruebas
Casos de Uso
integran el
trabajo
Realizar los
casos de uso
Verificar que se
satisfacen los casos
de uso
IV. Proceso de Desarrollo de SW basado en UML
... Proceso dirigido por los Casos de Uso
«trace»
Caso de Uso
«trace»
Realización de Análisis
Realización de Diseño
«trace»
«trace»
Pruebas
Unitarias
Pruebas Funcionales
X
Caso de Prueba
[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]
IV. Proceso de Desarrollo de SW basado en UML
... Proceso dirigido por los Casos de Uso
IV. Proceso de Desarrollo de SW basado en UML
... Proceso Iterativo e Incremental
 Las actividades se encadenan en una
mini-cascada con un alcance limitado por
los objetivos de la iteración
Análisis
Diseño
Codific.
n veces
Pruebas e
Integración
IV. Proceso de Desarrollo de SW basado en UML
Proceso Iterativo e Incremental
Enfoque
Cascada
Enfoque
Iterativo e
Incremental
IV. Proceso de Desarrollo de SW basado en UML
... Proceso Iterativo e Incremental
Grado de Finalización de Artefactos
IV. Proceso de Desarrollo de SW basado en UML
Proceso Centrado en la Arquitectura
•
•
Arquitectura de un sistema es la organización
o estructura de sus partes más relevantes
Un arquitectura ejecutable es una
implementación parcial del sistema,
construida para demostrar algunas funciones
y propiedades
RUP establece refinamientos sucesivos de
una arquitectura
como
Inception
Elaboration ejecutable,
Construction construida
Transition
un prototipo evolutivo
•
Architecture
Esfuerzo respecto de las Workflows
Inception
Elaboration
Construction
Transition
15%
Requisitos
Una iteración en la
fase de elaboración
Análisis
10%
Diseño
15%
30%
Implementación
15%
Pruebas
P re lim ina ry
Ite ra tion (s)
ite r.
#1
ite r.
#2
ite r.
#n
ite r.
# n+ 1
ite r.
# n+2
ite r.
#m
5% mantenimiento 10% gestión cambios
ite r.
#m +1
IV. Proceso de Desarrollo de SW basado en UML
...Esfuerzo respecto de las Fases
Inception
Elaboration
Construction
Transition
Requisitos
Una iteración en la
fase de elaboración
Análisis
Diseño
Implementación
Pruebas
P re lim ina ry
Ite ra tion (s)
Esfuerzo:
Duración:
5%
10%
ite r.
#1
ite r.
#2
20%
30%
ite r.
#n
ite r.
# n+ 1
65%
50%
ite r.
# n+2
ite r.
#m
ite r.
#m +1
10%
10%
Diagramas de UML
II. Breve Tour por UML
... Diagramas de UML
Los diagramas expresan gráficamente partes de un modelo
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Secuencia
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Casos de Uso
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Colaboración
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Estados
State
State
Diagramas de
Diagrams
Diagrams
Clases
Modelo
Diagramas de
Actividad
State
State
Diagramas de
Diagrams
Diagrams
Objetos
State
State
Diagramas de
Diagrams
Diagrams
Componentes
Component
Component
Diagrams
Diagramas
Diagrams de
Distribución
II. Breve Tour por UML
Diagrama de Actividad
Buscar Bebida
[ no hay café ]
[ no zumo ]
[ hay café ]
[ hay zumo ]
Poner café
en filtro
Añadir agua
al depósito
Coger taza
Coger
zumo
Poner filtro
en máquina
Encender
máquina
/ cafetera.On
Café en
preparación
indicador de fin
Servir café
Beber
II. Breve Tour por UML
… Otro Ejemplo (con swim lines)
Pasaj ero
Solicitar
pasaje
Vendedor
Airline
Verificar
existencia vuelo
Dar detalles
vuelo
Informar alternativas y
precios
Seleccionar
vuelo
Solicitar
pago
Reservar
plazas
Confirmar plaza
reservada
Pagar
pasaje
Emitir
billete
Práctica 9
II. Breve Tour por UML
Diagrama de Casos de Uso
 Casos de Uso es una técnica para capturar
información de cómo un sistema o negocio
trabaja, o de cómo se desea que trabaje
 No pertenece estrictamente al enfoque
orientado a objeto, es una técnica para captura
de requisitos
II. Breve Tour por UML
Diagrama de Casos de Uso
ud Casos De uso
modulo de••••••••••••••••••••••••••
servicios del fotografo
••••••••••••••••••••••••••
•••••••••••••••••
•••••••••••••••••••••••••• •••••••••••••••••••••••••• •••••••••••••••••
CU_SFG_MS_001••••••••••••••••••••••••••
•••••••••••••••••••••••••• •••••••••••••••••
Agregar serv icio
•••••••••••••••••••••••••• •••••••••••••••••••••••••• •••••••••••••••••
••••••••••••••••••••••••••
•••••••••••••••••••••••••• •••••••••••••••••
CU_SFG_MS_002eliminar serv icio
•••••••••••••••••••••••••• ••••••••••••••••••••••••••
•••••••••••••••••
«include»
CU_SFG_MS-005buscar serv icio
••••••••••••••••••••••••••
•••••••••••••••••••••••••• •••••••••••••••••
Fotografo
CU_SFG_MS-003modificar serv icio
administrador
«include»
•••••••••••••••••••••••••• •••••••••••••••••••••••••• •••••••••••••••••
«include»
•••••••••••••••••••••••••• •••••••••••••••••••••••••• •••••••••••••••••
CU_SFG_MS_008_Aceptar
Solicitd
CU_SFG_MS_004CU_SFG_MS_006••••••••••••••••••••••••••
••••••••••••••••••••••••••
•••••••••••••••••
Consultar
Ver Datos
«extend»
Usuario
•••••••••••••••••••••••••• ••••••••••••••••••••••••••
•••••••••••••••••
«extend»
«include»
••••••••••••••••••••••••••
•••••••••••••••••••••••••• •••••••••••••••••
CU_SFG_MS_007•••••••••••••••••••••••••• ••••••••••••••••••••••••••
•••••••••••••••••
Solicitar serv icio
CU_SFG_MS_010_Buscar
Solicitd
••••••••••••••••••••••••••
••••••••••••••••••••••••••
•••••••••••••••••
CU_SFG_MS_009_Rechazar
Solicitd
«include»
•••••••••••••••••••••••••• •••••••••••••••••••••••••• •••••••••••••••••
•••••••••••••••••••••••••• •••••••••••••••••••••••••• •••••••••••••••••
•••••••••••••••••••••••••• •••••••••••••••••••••••••• •••••••••••••••••
Fully use case
•
•
Es un documento escrito que dispone de la explicación detallada
del caso de uso
Esto lo logra organizando la información de una determinada forma
– Nombre
– Breve descripción
– Actores
– Pre condiciones
– Post condición
– Flujo principal
– Flujos alternativos
– Condiciones especiales.
•
Existe una amplia variedad de modelos de fully use case.
Diagrama de Clases
• Método del sustantivo
– Determinar todos los sustantivos
– Eliminar sustantivos de acuerdo a los siguientes criterios:
• Redundantes
• Irrelevantes
• Vagos
• Operaciones
• Constructores de implementación
• Meta lenguajes
• Atributos
– Establecer relaciones
• Asociaciones
• Cardinalidades
• generalizaciones
III. El Paradigma OO: Diagrama de Clases
••••••••••••
••••••••••••••••••••••••
Diagrama de clases
••••••••••••
••••••••••••••••••••••••
cd Ej emplos
cd Ej emplos
••••••••••••
••••••••••••••••••••••••
Persona
Persona
#
+
nombre: String
fechaDeNacimiento: Date
direccion: String
telefono: String
#
+
nombre: String
fechaDeNacimiento: Date
direccion: String
telefono: String
••••••••••••
••••••••••••••••••••••••
••••••••••••
••••••••••••••••••••••••
+ calcularEdad(Date) : void
+ calcularEdad(Date) : void
+
+
setNombre(String) : void
getNombre() : String
+
+
setNombre(String) : void
getNombre() : String
••••••••••••
••••••••••••••••••••••••
III. El Paradigma OO: Diagrama de Clases
Asociación
 La asociación expresa una conexión
bidireccional entre objetos
 Una asociación es una abstracción de la
relación existente en los enlaces entre los
objetos
Univ. de Murcia : Universidad
Un enlace
Antonio : Estudiante
Estudiante
Universidad
Una asociación
III. El Paradigma OO: Diagrama de Clases
… Asociación
 Ejemplo:
marido
casado-con
mujer
jefe
0..1
0..1
Persona
nombre
s.s.
0..1
*
Administra
empleado
*
emplea-a
Compañía
trabaja-para nombre
dirección
*
III. El Paradigma OO: Diagrama de Clases
Agregación
 La agregación representa una relación en
que cada uno puede existir por separado
•
• Un ejemplo de esto es estante libro
•
cd Ej emplos
•
Estante
Libro
0..1
cd Ej emplos
Estante
0..1
•
0..*
•
•
•
•
•
•
•
0..*
•
•
•
•
•
•
•
Libro
III. El Paradigma OO: Diagrama de Clases
Composición
•
 La composición
representa el caso que un
•
objeto no puede
existir sin el otro
•
•
 En este caso
podemos ir al ejemplo de
•
•
•
Factura – ítem
•
cd Ej emplos
Factura
1..1
cd Ej emplos
Factura
1..1
•
•
•
1..*
•
•
•
•
•
•
•
1..*
•
•
•
•
Item
Item
III. El Paradigma OO: Diagrama de Clases
... Generalización
Vehículo
Veihículo Terrestre
Coche
Camión
Vehículo Aéreo
Avión
Helicóptero
III. El Paradigma OO: Diagrama de Clases
... Generalización

Esta relación se da cuando existe un conjunto de
atributos que se repiten en la clases y lleva a la
generación de un padre
Por esa razón las clases hijas tienen todo lo que tiene
•
•
el padre
mas las particularidades

•
•
•
•
•
•
cd Ej emplos
cd Ej emplos
Caj aDeAhorro
Cuenta
•
•
-
codigo: int
saldo: double
•
+
+
+
acreditar(double) : void
debitar(double) : void
getSaldo() : double
CuentaCorriente
•
-
codigo: int
saldo: double
interes: double
+
+
+
+
acreditar(double) : void
debitar(double) : void
getSaldo() : double •
setInteres(double) : void
•
•
-
codigo: int
saldo: double
descubierto: double
+
+
+
+
acreditar(double) : void
debitar(double) : void
getSaldo() : double
setDescubierto(double) : void
•
•
Caj aDeAhorro
•
•
•
•
•
CuentaCorriente
-
interes: double
-
descubierto: double
+
setInteres(double) : void
+
setDescubierto(double) : void
III. El Paradigma OO: Diagrama de Clases
Polimorfismo

El término polimorfismo se refiere a que una
característica de una clase puede tomar varias formas

El polimorfismo representa en nuestro caso la
posibilidad de desencadenar operaciones distintas en
respuesta a un mismo mensaje

Cada subclase hereda las operaciones pero tiene la
posibilidad de modificar localmente el comportamiento
de estas operaciones
III. El Paradigma OO: Diagrama de Clases
Polimorfismo

Ejemplo: toda cuenta debita de forma distinta, la caja
de ahorro debita hasta llegar a 0 y la cuenta corriente
debita• hasta llegar al descubierto
•
•
cd Ej emplos
•
Cuenta
•
-
codigo: int
saldo: double
•
+
+
+
acreditar(double) : void
debitar(double) : void
getSaldo() : double
•
•
Caj aDeAhorro
•
•
•
CuentaCorriente
-
interes: double
-
descubierto: double
+
+
debitar(double) : void
setInteres(double) : void
+
+
debitar(double) : void
setDescubierto(double) : void
II. Breve Tour por UML
Diagrama de Secuencia
: Encargado
:WInPréstamos
:Socio
prestar(video, socio)
verificar situación socio
verificar situación video
registrar préstamo
entregar recibo
:Video
:Préstamo
II. Breve Tour por UML
Diagrama de Colaboración
:Socio
:Video
2: verificar situación socio
1: prestar(video, socio)
3: verificar situación video
:WInPréstamos
5: entregar recibo
: Encargado
4: registrar préstamo
:Préstamo
II. Breve Tour por UML
Diagrama de Estados
alta
baja
sin préstamos
número_préstamos = 0
Socio
número : int
nombre : char[50]
número_prestamos : int = 0
prestar
devolver[ número_préstamos = 1 ]
alta()
baja()
prestar(código_libro : int, fecha : date)
devolver(código_libro : int, fecha : date)
número_préstamos > 0
con préstamos
prestar
devolver[ número_préstamos > 1 ]
II. Breve Tour por UML
Diagrama Componentes
Interfaz de Terminal
Gestión de Cuentas
Rutinas de conexión
Control y Análisis
Acceso a BD
II. Breve Tour por UML
Diagrama de Despliegue
Servidor Central
Control y Análisis
Acceso a BD
Comment
Comment
Rutinas de Coneccion
Comment
Terminal de Consulta
Rutinas de Coneccion
Comment
Punto de Venta
Rutinas de Coneccion
Comment
Gestión de Cuentas
Interfaz de Terminal
Comment
Comment
Interfaz de Terminal
Comment
II. Breve Tour por UML
Resumen
 UML define una notación que se expresa
como diagramas sirven para representar
modelos/subsistemas o partes de ellos
 El 80 por ciento de la mayoría de los
problemas pueden modelarse usando
alrededor del 20 por ciento de UML-- Grady
Booch
Descargar