Documente Academic
Documente Profesional
Documente Cultură
Contenido
Por qu Modelizar?
El Paradigma Orientado a Objetos
Introduccion UML
Captura de Requisitos
Modelado de Interacciones
Modelado de la Estructura del Sistema
Diagramas de Estados
Modelado de Componentes
Modelado de Distribucin
Hacia un proceso de Desarrollo usando UML
RUP Proceso Desarrollo Unificado
Conclusiones
Mtodos
Mtodo
Establece
cmo abordar de un
sistemtico la construccin de software.
modo
un conjunto de modelos.
Mtodo
Importante conocer las limitaciones y beneficios
de los mtodos.
Los mtodos pueden ayudar pero no aseguran
el xito.
Un mtodo ofrece guas mediante ejemplos de
aplicacin.
Un mtodo es fruto de la experiencia en
proyectos.
No sustituye a la necesidad creativa
Proceso Software
Un proceso bien definido es necesario para
desarrollar sistemas software de manera
repetible y predecible
Permite un negocio sostenible y que puede
mejorar en cada nuevo proyecto,
incrementando la eficiencia y productividad de
la organizacin
G. Booch
Proceso Software
Un proceso de software debe especificar:
Proceso Software
Un proceso debe ser iterativo e incremental.
Conviene centrarse en los aspectos crticos en las
envo
Proceso de Negocios
Sistema Computacional
MODELO DE LA
INFORMACION
Sistema de
informacion
BIBLIOTECA
Sistema
Catlogo
Bibliotecario
Libro
Biblioteca
Registrar prestmo
Reportar Multas
Agregar recursos
A/D estructurados
DESARROLLO SW
TECNOLOGIA
(OO, UML, Rational Rose)
ORGANIZACION
PROCESO
(RUP)
Por qu modelar?
Proporcionar la estructura para la resolucin
de los problemas
Experimentar diversas soluciones
Reducir el tiempo de venta
Disminuir los costes de desarrollo
Gestionar el riesgo de cometer errores
Por qu modelamos?
Una empresa software con xito es aquella
que produce de manera consistente software
de calidad que satisface las necesidades de
los usuarios
Por qu modelamos?
Servidor de BDs
(C++ & SQL, ..)
MV promueve la reutilizacin
Multiples Sistemas
Componentes
Reutilizados
El Paradigma
Orientado a Objetos
reutilizacin
sistema
Disipa la barrera entre el qu y el
cmo
Sin embargo, existen problemas ...
Problemas en OO
...Los conceptos bsicos de la OO se conocen
desde hace dos dcadas, pero su aceptacin
todava no est tan extendida como los
beneficios que esta tecnologa puede sugerir
...La mayora de los usuarios de la OO no
utilizan los conceptos de la OO de forma
purista, como inicialmente se pretenda.
Esta prctica ha sido promovida por muchas
herramientas y lenguajes que intentan
utilizar los conceptos en diversos
grados
--Wolfgang
Strigel
Introduccin a UML
UML y el modelado
UML es un lenguaje para visualizar, especificar,
construir y documentar los artefactos de un sistema
que involucra una gran cantidad de software, desde
una perspectiva OO.
Qu es UML?
Objetivos de UML
Ser un lenguaje estndar 1997 OMG (Object
Management Group) version 1.1
Historia de UML
Comenz como el Mtodo Unificado, con la
Historia de UML
UML 2.0
2001 ?
UML 1.4
2000 ?
1999
1998
Nov 97
UML 1.3
UML aprobado por el OMG
UML 1.2
Revisiones
menores
MCI Systemhouse
(Grady Booch, Jim Rumbaugh y Ivar
Microsoft
Jacobson)
ObjecTime
Digital Equipment
Oracle
Hewlett-Packard
Platinium Technology
i-Logix (David Harel)
Sterling Software
IBM
Taskon
ICON Computing
Texas Instruments
(Desmond DSouza)
Intellicorp and James Martin
Unisys
Jacobson
Odell
Meyer
Pre- and Post-conditions
Shlaer-Mellor
Object life cycles
UML
Harel
State Charts
Embly
Singleton classes
Wirfs-Brock
Fusin
Operation descriptions,
message numbering
Responsabilities
Inconvenientes en UML?
Definicin del proceso de desarrollo usando UML.
Perspectivas de UML
UML ser el lenguaje de modelizacin de objetos
Evidencias:
Herramientas que proveen la notacin UML
Edicin de libros
Congresos, cursos, camisetas, etc.
Uso de UML
El objetivo de UML es describir cualquier tipo de
Comercio
Cliente Individual
Cliente Corporativo
Ajustar transacciones
Entidad financiera
Diagrama de Clases
Pedido
info
pagoAdelantado? : Boolean
numero : String
precio : Dinero
Cliente
nombre
direccion
*
1..1
entregar()
cerrar()
tipo:String()
1..1
if Pedido.cliente.tipo="Pobre"
then Pedido.pagoAdelantado?
= true
Empresa
Nombre
tipo
creditoLimite
facturar()
avisar()
*
+linea items
*
LineaPedido
cantidad : Integer
precio : Dinero
esSatisfecho : Boolean
+repr ventas
0..1
Empleado
*
1..1
Producto
Personal
tarjetaCredito
{ tipo()="pobre"}
Cliente
+ FormularioPedido
+ FormularioDeSeguimiento
- Pedido
Servidor
+ BaseDeDatos
+ ServicioDeRegistro
import
Politicas
+ ReglasPedidos
+ GUI:Ventana
GUI
+ Ventana
+ Formulario
# GestorEventos
import
Paquetes
Diagrama de Secuencia
:Interface
Entrada Pedido
preparar
:Pedido
:LineaDe
Pedido
:Item
*preparar
hayStock:=comprobar
[hayStock] eliminar
pedir?:=necesarioPedir
[pedir?]<<create>>
PedidoItem
[hayStock] <<create>>
ItemEntregado
Diagrama de Colaboracin
1: preparar
:Interface Entrada
Pedido
2: *preparar
:Pedido
:LineaDe
Pedido
7:
5: pedir?:=necesarioPedir
8: [hayStock] <<create>>
3: hayStock:=comprobar
4: [hayStock] eliminar
:Item
6: [pedir?]<<create>>
Item
Entregado
Pedido
Item
Diagrama de Estados
introducirProducto
Espera Venta
introducirProducto
Introduccion
Productos
Terminar Venta
manejarRespuesta
efectuar Pago Efectivo
Autorizacion
Pago
efectuar Pago Tarjeta
Espera
Pago
Solicitar Producto
Diagrama de
Actividades
Procesar Pedido
Extraer Artculos
Enviar Pedido
Recibir Producto
Pagar Factura
Facturar al cliente
Cerrar Pedido
Componentes
explorador.java
JerarquaElementos
arbol.java
internet
Modem
<<procesador>>
servidor cache
<<procesador>
servidor
<<procesador>>
servidor
Diagrama de Despliegue
<<procesador>>
servidor
Modelado de Requisitos
Diagramas de casos de uso
Modelado Estructural
Diagramas de clases
Diagramas de objetos
Modelado Arquitectnico
Diagramas de componentes
Diagramas de despliegue
Paquetes
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Casos de Uso
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Colaboracin
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
Distribucin
Metodologa desarrollo
Una metodologa de desarrollo de software
OO consta de los siguientes elementos:
Diagramas y conceptos ( Modelado)
Etapas y definicin de entrega en cada una
de ellas.
Actividades y recomendaciones.
RUP
Proceso de Desarrollo Unificado
Etapas
Anlisis
de
requerimi
entos
Diseo
Diseo
detallad
o
Implemen
tacin y
pruebas
Anlisis de requerimientos
Actividades tcnicas
1. Identificar Casos de Uso del sistema
2. Dar detalle a los casos de uso descritos
3. Definir una interfaz inicial del sistema (si es aplicable)
4. Desarrollar el modelo del mundo
5. Validar los modelos
Documentos Entregables
Diagrama actividades,Casos de uso iniciales ,borradores
de interfaz, Modelo del mundo inicial (D.Clases)
empresa,
tarea4
tarea5
tarea3
Ejemplo
Empresa que fabrica productos bajo demanda
Objetivos
Estratgicos
Satisfacer pedido
de cliente
Subobjetivos
Procesos
del Negocio
Registrar
pedido de
cliente
Incrementar las
ventas un 25%
Fabricar
productos
pedidos
Reducir tiempo de
fabricacin un 15%
...
Gestionar
almacn de
materiales
Realizar
pedidos a
proveedores
Gestionar
almacn
Generar
pedidos a
proveedor
Casos de Uso
del Negocio
Registrar
pedido
Fabricar
productos
proceso
diagramas de actividades con calles que corresponden a
roles
: Comercial
: JefeTecnico
:Catalogo
Rellenar pedido
p: Pedido
[propuesto]
:Plantilla de
Fabricacion
Cursar pedido
: JefeProduccion
Demasiado compleja:
Descomposicin
Jerrquica
p: Pedido
[en_evaluacion]
Analizar viabilidad
p:Pedido
[evaluado]
Notificar rechazo
de pedido
[ NO ]
Fin KO
p: Pedido
[rechazado]
Notificar aceptacin
de pedido
: Producto
Especial
Viable?
[ SI ]
:Plantilla de
Fabricacion
Ordenar fabricacion
:Orden de
Trabajo
[pendiente]
Planificar produccion
p: Pedido
[aceptado]
Fin OK
Registrar Pedido
Objetivo
Descripcin
1. El cliente enva una orden de pedido, que debe incluir la fecha de solicitud, datos del
cliente y productos solicitados. Es posible que sea un empleado del departamento comercial
quien introduzca el pedido, a peticin de un cliente que realiz su pedido por telfono o lo
envi por fax o correo ordinario al dpto. comercial de la empresa.
2. El empleado revisa el pedido (completndolo, si es necesario), y comienza su
procesamiento envindolo al jefe tcnico, encargado de su anlisis.
3. El jefe tcnico analiza la viabilidad de cada producto pedido por separado:
Si el producto pedido est en el catlogo, su fabricacin es aceptada.
En caso contrario es considerado un producto especial y estudia su produccin:
- Si es viable, la fabricacin del producto especial es aceptada;
- Si no es viable, el producto especial no ser fabricado.
4. Una vez estudiado el pedido completo, el jefe tcnico...
Informa al depto comercial de la aceptacin o rechazo de cada producto pedido;
Si todos los productos de un pedido han sido aceptados, se crea una orden de trabajo
para cada producto, a partir de una plantilla de fabricacin (la estndar si el producto
estaba catalogado, o una nueva, especficamente diseada para el producto, si ste no
estaba en el catlogo). Cada orden de trabajo es enviada al jefe de produccin, y queda
pendiente de su lanzamiento.
5. El comercial comunica al cliente el resultado final del anlisis de su pedido.
Rol Externo
Roles Internos
Prioridad
Bsico
Riesgos
Posibilidades
Tiempo Ejec.
Coste Ejec.
...
...
...
...
Registrar pedido
Cliente
Fabricar producto
Gestionar almacen
Proveedor
comercial de la aceptacin/rechazo de
cada producto integrante del pedido.
5. El comercial comunica al cliente el resultado
del anlisis de su pedido.
<<role>>
Comercial
*
*
<<role>>
Jefe Tcnico.
<<role>>
Jefe Produccin
: Comercial
darCursoPedido()
: JefeTecnico
: JefeProduccion
estudiarPedido()
* analizarFabricacionProducto()
planificarFabricacion()
informarAnalisisPedido()
aceptarPedido()
Reglas de Negocio
Reglas de restriccin
Especifican polticas o condiciones que restringen la
estructura y comportamiento de las informaciones
Estmulo-Respuesta
Restriccin de operacin
Restriccin de estructura
Reglas de derivacin
Especifican polticas o condiciones para inferir nuevos
hechos a partir de otros.
Glosario
...
...
Objeto de Informacin: Pedido
Reglas de
Origen: Analizar
viabilidad
Estmulo-Respuesta
Atributos
Codigo de pedido
Fecha de solicitud
Fecha lmite de entrega
Conjunto de {Producto}
Cliente
Importe total
Estado Actual
Reglas
Estructurales,
de Derivacin y
Restricciones
- El cdigo de pedido identificar unvocamente
de Existencia
el pedido, y ser asignado automticamente
por el sistema
- La fecha de solicitud ser anterior a la fecha
lmite de entrega.
- Un pedido contendr al menos un producto; no
existe lmite mximo de productos.
- Un pedido siempre ser solicitado por uno y
solamente un cliente.
- El importe total ser calculado a partir del
precio de cada producto pedido.
Clase del Dominio : - por especificar -
Reglas de
Operacin
Trazabilidad
...
Modelo de requisitos
Anlisis de requerimientos
Objetivo:
Se establecen los requisitos funcionales y no
funcionales del sistema.
A partir del modelo del negocio se
construye el modelo de casos de uso y el
modelo conceptual inicial.
Modelo de requisitos
Anlisis de requerimientos
De un modo muy simple e intuitivo se obtienen
Modelo de requisitos
Anlisis de requerimientos
Se define un actor para cada rol del diagrama de
Modelo de requisitos
Anlisis de requerimientos
De los diagramas de proceso...
rol
actor
actividad
No siempre
objeto
Caso de
Uso
Clase del Dominio
Modelo de requisitos
Anlisis de requerimientos
Definicin de un CASO de USO
Un caso de uso especifica el comportamiento
Casos de Usos
Caso de uso
Documento narativo de un proceso de un
dominio del problema
Proceso
Describe de comienzo a fin una secuencia de
eventos para producir u obtener algo
Casos de Usos
Formato
Caso uso: Nombre
Actores: Lista actores
Propsito: Intencin caso uso
Resumen: Repeticin caso uso
Tipo: 1. Primario, secundario u opcional
2. de alto nvel Esencial o real
Referencias cruzadas: Casos relacionados usos y
funciones
Segn la importancia
Primario, secundario u opcional
CASOS DE USOS
EJEMPLO
Caso Uso: Comprar productos
Actores: Cliente, Cajero
Propsito: Capturar una venta y su pago
Resumen: Un cliente llega a la caja con los
productos que desea comprar. El cajero registra
los productos y recibe el pago. Al terminar la
transaccin, el cliente se marcha con el producto
Tipo: Primario y esencial
Referencias cruzadas R1.1, R1.2 y R1.3
Actor
Relacin asociacin
Extend
Herencia
Extend
caso de uso
Procesar Prstamo
ResponsablePrestamos
asociacion
Ejemplo
Relacin de extensin
extend
Hacer Pedido
(establecer
prioridad)
include
Relacin de
inclusin
Hacer Pedido
Urgente
Comprobar clave
Validar Usuario
Generalizacin
Seguir Pedido
include
Examinar retina
Cliente
JefeTecnico
Cursar Pedido
Planificar Produccion
JefeProduccion
Comercial
Modelo de requisitos
Anlisis de requerimientos
Modelo conceptual
Los objetos informacin entrada y salida de las
actividades representan entidades y conceptos del
dominio.
Se utilizan para crear un modelo conceptual inicial.
Una clase para cada informacin que vaya a ser
tratada por el sistema software.
De la especificacin del diccionario se extraen:
atributos, asociaciones, responsabilidades, restricciones
Modelo de requisitos
Anlisis de requerimientos
Objeto informacin Pedido
Atributos: codigo, fechaRecepcion, importe,
estado, fechaTopeEntrega
Asociaciones: Pedido-Cliente y Pedido-Producto
Restricciones: {fechaTopeEntrega >
fechaRecepcion}
Responsabilidades: obtenerProductos,
cambiarEstado, calcularImporteTotal,
calcularFechaTopeEntrega
Con el conjunto de objetos se crea el modelo
conceptual
Producto Especial
Catalogo
Producto Catalogado
fabricado mediante
Plantilla de Produccion
Producto
1..*
es solicitado en
base de
0..*
0..*
Pedido
genera
0..*
Orden de Trabajo
1..*
realizado por
Cliente
Modelo Conceptual
En el diccionario de informaciones se establece
Modelo de requisitos
Anlisis de requerimientos
Prototipo Inicial
Utilizar los casos de uso.
Incluye las interfaces de usuario
anterior
(casos de uso esenciales pasarlos a
expandidos y a : primarios secundarios o
opcionales )
Crear los diagramas de casos de usos
Cajero
Cliente
:Sistema
: Cajero
introducirItem(upc,cantidad)
finalizarVenta()
hacerPago(cantidad)
PLANTILLAS DE CONTRATOS
DE OPERACION
Nombre: signatura de la operacin
Responsabilidades: qu debe hacer la operacin
Tipo: clase controlador que realiza la operacin
Caso de uso: nombre del caso de uso al que pertenece
la operacin
Notas: requisitos no funcionales
Excepciones: casos excepcionales que debe detectar
Salidas: salidas fuera del sistema, sin tener en cuenta
las salidas por pantalla
Precondiciones: condiciones que han de cumplirse
para realizar la operacin
Postcondiciones: estado del sistema despus de
realizar la operacin
Requisitos no funcionales
Un sistema debe poseer caractersticas que no estn
Fiabilidad
Rendimiento
Facilidad de mantenimiento.
Entorno de implementacin
Cajero
Cliente
Registrar Productos
Casos de Uso
Gerente
Inicia
Gestion Usuarios
Administrador
Sistema
Modelo
Conceptual
Registra venta de
1
Descrita por
Contiene
Catalogo Productos
1
Producto
1..n
Describe
0..1
0..n
Tienda
direccion
nombre 1
Lineas Venta
cantidad
0..n
Almacena
Item
0..n
1..n
Contenidas en
1
capturada en
Venta
1
1
1
1
pagado por
1
Pago
Iniciado por
TPV
iniciada por
1
Cliente
Gerente
1
Registra Ventas
1
Cajero
Pasos:
1. A: El cliente llega al TPV con los artculos.
2. A: El cajero registra el identificador de cada artculo.
3. S: El sistema obtiene el precio de cada artculo y aade la informacin a la
transaccin de venta.
4. A: Al acabar el cajero indica la finalizacin de la introduccin de artculos.
5. S: El sistema calcula el total de la compra y lo muestra.
6. A: El Cajero le dice al cliente el total.
7. A: El cliente realiza el pago.
Variaciones:
Paso 2: Introducir identificador no vlido- Indicar error
Paso 7: El cliente no tiene dinero suficiente. Cancelar transaccin
Extensiones:
10. Diferentes formas de pago: efectivo, tarjeta
Cajero
Comprar Articulos
Cliente
:Sistema
: Cajero
introducirItem(upc,cantidad)
finalizarVenta()
hacerPago(cantidad)
Operacion
Operacion
Operacion
CONTRATOS
: Cajero
Introducir Producto (CUP, cantidad)
Terminar Venta ()
realizar Pago()
eventos del
sistema
Operaciones
del sistema
Plantilla de un Contrato de
Operacin
Nombre: signatura de la operacin
Responsabilidades: qu debe hacer la operacin
Tipo: clase controlador que realiza la operacin
Caso de uso: nombre del caso de uso al que pertenece la operacin
Notas: requisitos no funcionales
Excepciones: casos excepcionales que debe detectar
Salidas: salidas fuera del sistema, sin tener en cuenta las salidas por pantalla
Precondiciones: condiciones que han de cumplirse para realizar la operacin
Postcondiciones: estado del sistema despus de realizar la operacin
Diagrama de Colaboracin
2: [nuev venta] crear()
1: IntroducirProducto(cup, cant)
GUI
6: AddLineaVenta(esp, cant)
: TPV
: Venta
4: esp:= especificacion(cup)
3: crear()
8: add(lv)
: Catalogo
Productos
lv : Lineas
Venta
5: esp:= find(cup)
: Lineas
Venta
:
Producto
7: crear(esp,cant)
Diagramas de Interaccin
Para cada actor especificamos todas sus
Etapas y actividades en un
desarrollo OO basado en UML
A finales de 1998 G. Booch, J.Rumbaugh
e I. Jacobson publican la versin
definitiva de la nueva metodologa de
desarrollo bajo la denominacin de
"Proceso Unificado de Desarrollo". Una
variante de este proceso (el RUP
--Rational Unified Process--)