Sei sulla pagina 1di 13

1

LOGO
Anlisis y Diseo de Software
Mg. Richard Mercado Rivas
UNIVERSIDAD NACIONAL DEL CENTRO DEL PER
Facultad de Ingeniera de Sistemas
Introduccin a UML



ANLISIS Y DISEO
ORIENTADO A OBJETOS
Qu es UML?
UML = Unified Modeling Language

Un lenguaje de propsito 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)


Situacin de Partida
Diversos mtodos y tcnicas OO, con muchos aspectos
en comn pero utilizando distintas notaciones
Inconvenientes para el aprendizaje, aplicacin,
construccin y uso de herramientas, etc.

Pugna entre distintos enfoques (y correspondientes
gurs)

=>Necesidad de una notacin estndar
Historia de UML
Comenz como el Mtodo Unificado, con
la participacin de Grady Booch y Jim
Rumbaugh. Se present en el OOPSLA95

El mismo ao se uni Ivar Jacobson. Los
Tres Amigos son socios en la compaa
Rational Software. Herramienta CASE
Rational Rose
Historia de UML
Nov 97 UML aprobado por el OMG
1998
1999
2000
UML 1.2
UML 1.3
UML 1.4
2006
UML 2.0
Revisiones menores
UML 2.3 2011
2
Participantes en UML 1.0
Rational Software
(Grady Booch, Jim Rumbaugh y Ivar
Jacobson)
Digital Equipment
Hewlett-Packard
i-Logix (David Harel)
IBM
ICON Computing
(Desmond DSouza)
Intellicorp and James Martin
& co. (James Odell)

MCI Systemhouse
Microsoft
ObjecTime
Oracle Corp.
Platinium Technology
Sterling Software
Taskon
Texas Instruments
Unisys

UML aglutina enfoques OO
UML
Rumbaugh
Jacobson
Meyer
Harel
Wirfs-Brock
Fusion
Embly
Gamma et. al.
Shlaer-Mellor
Odell
Booch
Pre- and Post-conditions
State Charts
Responsabilities
Operation descriptions,
message numbering
Singleton classes
Frameworks, patterns,
notes
Object life cycles
Mtodos Formales en Modelado
Tipos de enfoques: no-formales, semi-formales
y formales

Las principales mejoras al utilizar mtodos
formales son:
Mayor rigor en la especificacin
Mejores condiciones para realizar la
verificacin y validacin en forma ms
exhaustiva
Mejores condiciones para automatizacin de
procesos para la generacin automtica de
prototipos y/o cdigo final


Perspectivas de UML
UML ser el lenguaje de modelado orientado
a objetos estndar predominante los prximos
aos
Razones:
Participacin de metodlogos influyentes
Participacin de importantes empresas
Aceptacin del OMG como notacin
estndar
Evidencias:
Herramientas que proveen la notacin UML
Edicin de libros
Congresos, cursos, etc.
Diagramas de UML
Use Case
Diagrams
Use Case
Diagrams
Diagramas de
Casos de Uso
Scenario
Diagrams
Scenario
Diagrams
Diagramas de
Colaboracin
State
Diagrams
State
Diagrams
Diagramas de
Componentes
Component
Diagrams
Component
Diagrams
Diagramas de
Distribucin
State
Diagrams
State
Diagrams
Diagramas de
Objetos
Scenario
Diagrams
Scenario
Diagrams
Diagramas de
Estados
Use Case
Diagrams
Use Case
Diagrams
Diagramas de
Secuencia
State
Diagrams
State
Diagrams
Diagramas de
Clases
Diagramas de
Actividad
Modelo
Un modelo es una descripcin completa de un sistema desde una perspectiva concreta
Requisitos Implement. Pruebas
Los Casos de Uso forman la unin
Anlisis Diseo
Capturar, clarificar y
validar los casos de uso
Realizar los casos de
uso
Verificar se
satisfacen los casos
de uso
Hacia un Mtodo OO
3
Las 4+1 vistas de Kruchten (1995):
Vista Lgica
Vista de
Procesos
Vista de
Distribucin
Vista de
Realizacin
Vista de los
Casos de Uso
Hacia un Mtodo OO
La Vista Lgica describe los aspectos estticos y dinmicos de un sistema en trminos de clases y objetos
La Vista de Realizacin se preocupa de la organizacin de los componentes en el entorno de desarrollo. Muestra el
reparto de clases en componentes y estos en subsistemas
La Vista de Procesos presenta la descomposicin en flujos de ejecucin (threads), la sincronizacin entre flujos y la
asignacin de objetos y clases en dichos flujos, fiabilidad, rendimiento, etc. Importante en entornos multitarea.
La Vista de Distribucin describe los diferentes recursos de hardware y la implementacin del programa en dichos
recursos. Se consideran: Tiempos de respuesta y rendimiento, restricciones geogrficas, potencia de clculo distribuido,
sobrecargas, tolerancia a fallos y a averas
La Vista de Casos de Uso unifica las cuatro vistas precedentes
Qu es Orientado a Objetos ?

En 1er lugar es una forma de pensar -una forma
de modelar una solucin a un problema.
En 2do lugar, es una extensin a las
metodologas de desarrollo previas, semejantes
a la programacin estructurada.
En 3er lugar la orientacin a objetos reconoce
que los procesos naturales de pensamiento
humano obtienen muchas ventajas
evolucionarias, y por lo tanto trata de darle un
adecuado soporte.

Por qu la orientacin a objetos ?


Por la estabilidad del modelado respecto a las
entidades del mundo real.
Por la construccin iterativa facilitada por el
acoplamiento dbil entre componentes.
Por la posibilidad de reutilizar elementos entre
desarrollos, y
Por la simplicidad del modelado en base a 5
conceptos fundamentales
(objetos, mensajes, clases, herencia y
polimorfismo).


Qu propone la Orientacin a Objetos ?


A diferencia del mtodo tradicional de la
descomposicin funcional, en la que hay que
descomponer para comprender y componer
para construir,
Propone un mtodo de descomposicin, no
basado nicamente en lo que hace el sistema,
sino ms bien en la integracin de lo que el
sistema es y hace.


Objetivos de la orientacin a Objetos


El modelado de las propiedades estticas y
dinmicas del entorno en el que se definen las
necesidades, y que es llamado el mbito del
problema.
Formalizar nuestra percepcin del mundo y de
los fenmenos que se dan en l, logrando
corresponder el espacio del problema con el
espacio de la solucin, preservando la
estructura y el comportamiento del sistema
analizado.


La fortaleza de la Orientacin a Objetos


Su capacidad de agrupar lo que se ha
separado, construir lo complejo a partir de
lo elemental y, sobre todo, de integrar
estticamente y dinmicamente los
constituyentes de un sistema.

4

OO -Revolucin Industrial Software

Describe el movimiento hacia una era donde el
software es compilado a partir de objetos
componentes reusables.
Los componentes son internamente muy
complejos pero simples para interactuar con
ellos. Sern cajas negras.
Es necesario progresar desde una era de
paquetes de software monolticos, donde un
proveedor construye el software total, a una era
en la que el software es ensamblado desde
componentes y paquetes de muchos
proveedores, similar a la forma en que se
ensamblan autos y computadoras.


Cules son los beneficios de OO ?

Reuso
Calidad
Modelamiento mundo real
Resistencia a los cambios (fcil mantenimiento)

Mltiples Sistemas
Componentes
Reutilizados

Qu es un objeto?


Un objeto tiene estado, comportamiento, e
identidad; la estructura y comportamiento de
objetos similares son definidos en su clase
comn; los trminos instancia y objeto son
intercambiables.
Grady Booch 91


Otro Concepto


Un objeto es cualquier cosa a la que se le
aplica un concepto, el que representa una idea
o nocin que nosotros compartimos y aplicable
a ciertos objetos en nuestro conocimiento.
James Martin 92


Los Objetos


El objeto es una unidad atmica formada por la
unin de un estado y de un comportamiento.
El objeto revela su verdadero papel y su
verdadera responsabilidad cuando, por medio
del envo de mensajes, se inserta es un
escenario de comunicacin.


Caractersticas de un Objeto


OBJETO = ESTADO
+ COMPORTAMIENTO
+ IDENTIDAD

5

El Estado

* Agrupa los valores instantneos de todos los
atributos de un objeto sabiendo que un atributo
es una informacin que cualifica al objeto que la
contiene.
* El estado evoluciona con el tiempo, es variable y
puede verse como la consecuencia de sus
comportamientos pasados.


El Comportamiento

Agrupa todas las competencias de un objeto y
describe sus acciones y reacciones.
Cada tomo de comportamiento se llama
operacin.
Las operaciones de un objeto se desencadenan
a consecuencia de un estmulo externo,
representando en forma de un mensaje enviado
por otro objeto.


Estado y Comportamiento

El estado y el comportamiento estn
relacionados: el comportamiento en un
instante dado depende del estado actual,
y el estado puede ser modificado por el
comportamiento.
Slo es posible hacer aterrizar un avin si
este est volando ....


La Identidad

Distingue los objetos de forma no ambigua,
independientemente de su estado.
Distingue dos objetos en los que todos los
valores de atributos son idnticos.
La identidad es un concepto, no se representa
de manera especfica en el modelado. Cada
objeto posee una identidad de manera implcita.


Oid ( Object Identifier)

Cada objeto posee un oid. El oid establece la
identidad del objeto y tiene las siguientes
caractersticas:
Constituye un identificador nico y global para
cada objeto dentro del sistema.
Es determinado en el momento de la creacin del
objeto.
Es independiente de la localizacin fsica del
objeto, es decir, provee completa independencia
de localizacin.


... Oid ( Object Identifier)

Es independiente de las propiedades del objeto,
lo cual implica independencia de valor y de
estructura
No cambia durante toda la vida del objeto.
Adems, un oid no se reutiliza aunque el objeto
deje de existir
No se tiene ningn control sobre los oids y su
manipulacin resulta transparente

Sin embargo, es preciso contar con algn medio
para hacer referencia a un objeto utilizando
referencias del dominio (valores de atributos).

6

El concepto de mensaje

La unidad de comunicacin entre
objetos se llama mensaje.
El mensaje es el soporte de una
relacin de comunicacin que
vincula, de forma dinmica, los
objetos que han sido separados
por el proceso de
descomposicin.


Como identificar Objetos

Siendo un objeto una abstraccin de la realidad,
y entendiendo que ser una abstraccin creada
por un desarrollador para satisfacer
necesidades de una aplicacin, observe e
identifique :
Cosas tangibles
Roles
Incidentes o eventos
Interacciones

... Diagramas de UML
Diagrama de Casos de Uso
Diagrama de Clase (incluyendo Diagrama de Objetos)

Diagramas de Comportamiento
Diagrama de Estados
Diagrama de Actividad
Diagramas de Interaccin
Diagrama de Secuencia
Diagrama de Colaboracin
Diagramas de implementacin
Diagrama de Componentes
Diagrama de Despliegue
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
Paquetes en UML
Cada paquete corresponde a un subconjunto del modelo y contiene,
segn el modelo, clases, objetos, relaciones, componentes y
diagramas asociados

Un paquete puede contener otros paquetes, sin lmite de
anidamiento pero cada elemento pertenece a (est definido en) slo
un paquete
Una clase de un paquete puede aparecer en otro paquete por la
importacin a travs de una relacin de dependencia entre
paquetes

Todas las clases no son necesariamente visibles desde el exterior
del paquete, es decir, un paquete encapsula a la vez que agrupa

Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
Paquetes en UML
El operador :: permite designar una clase definida
en un contexto distinto del actual

Por ejemplo, la expresin Ventas::Producto
designa la clase Producto definida en el paquete
Ventas


Cliente
Vendedor
Verificar Situacin
Supervisor
Establecer Crdito
Secretaria
Preparar Catlogo
Tipos de Venta
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
Diagramas de Casos de Uso
Casos de Uso es una tcnica para
capturar informacin de cmo un sistema
o negocio trabaja actualmente, o de
cmo se desea que trabaje

No pertenece estrictamente al enfoque
orientado a objeto, es una tcnica para
captura de requisitos
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
7
Ejemplos
Cliente
Vendedor
Verificar Situacin
Supervisor
Establecer Crdito
Secretaria
Preparar Catlogo
Tipos de Venta
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Ejemplos
Cliente
Venta Normal
Venta en Rebajas
Vendedor
Venta en Oferta
En el paquete tipos de venta:
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
Diagramas de Secuencia
: Socio : Encargado
: Libro : Ficha libro : Ficha socio : Prstamo
Coger libro
Solicitar prstamo
Verificar situacin socio
Situacin socio ok
Verificar situacin libro
Situacin libro ok
Introducir prstamo
Autorizar prstamo
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
Diagramas de Colaboracin
: Socio
: Encargado
: Libro
: Ficha li
bro
: Ficha s
ocio
: Prsta
mo
1: Coger libro
2: Solicitar prstamo
8: Autorizar prstamo
3: Verificar situacin socio
4: Situacin socio ok
5: Verificar situacin libro
6: Situacin libro ok
7: Introducir prstamo
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
Diagramas de Clases (y objetos)
El Diagrama de Clases es el diagrama principal para el
anlisis y diseo
Un diagrama de clases presenta las clases y objetos
del sistema con sus relaciones estructurales y de
herencia
La definicin de clase u objeto incluye definiciones
para atributos y operaciones
El trabajo realizado en los D. de Casos de Uso, D. de
Secuencia y D. de Colaboracin aporta informacin
para establecer las clases, objetos, atributos y
operaciones
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Ejemplos (Clase y Visibilidad)
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
8
Ejemplos (Asociacin)
Profesor Departamento
1 0..1
director
1
dirige
0..1
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
Ejemplos (Clase Asociacin)
Empleado
Directivo Administrativo Obrero
{disjunta, completa}
Ejemplos Generalizacin
Ejemplos Diagrama de Clases
Avin militar
Avin comercial
Avin de carga Avin de pasajeros
Motor
Avin
1..4
1
Piloto
Vendedor de billetes
Reserva
*
1
Vuelo
* 1
1..2
*
* 1
Lnea area
1
*
1
1..4
1..2
*
1
*
1 * 1 *
*
1
{ disjunta, completa }
{ disjunta, completa }
Diagramas de Estados
con prstamos
sin prstamos
alta baja
prestar devolver[ nmero_prstamos = 1 ]
prestar
devolver[ nmero_prstamos > 1 ]
nmero_prstamos = 0
nmero_prstamos > 0
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
Diagramas de Actividad
Buscar Bebida
Poner caf en filtro Aadir agua al depsito Coger taza
Poner filtro en mquina
Encender mquina
Caf en preparacin
Servir caf
Coger zumo
Beber
[no hay caf]
[hay caf
[no zumo]
[hay zumo]
^cafetera.On
indicador de fin
Anlisis y Diseo de Software M. Richard Y. Mercado Rivas
Emitir billete
Pasajero
Vendedor Airline
Otro Ejemplo (con swim lines)
Solicitar pago Reservar plazas
Confirmar
plaza reservada Pagar pasaje
Informar alternativas
y precios
Verificar
existencia vuelo
Dar detalles vuelo
Solicitar pasaje
Seleccionar vuelo
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
Diagramas Componentes
Control yAnlisis
Comment
Acceso aBD
Comment
Rutinas deConeccion
Comment
Interfaz deTerminal
Comment
Gestin deCuentas
Comment
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
9
Diagramas de Distribucin o Despliegue
Punto de Venta
Servidor Central
Terminal de Consulta
Gestinde Cuentas
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Rutinas de Coneccion
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Accesoa BD
Comment
Control y Anlisis
Comment
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
Resumen
Diagramas de
Casos de Uso
Diagramas de
Secuencia
Diagramas de
Colaboracin
Diagramas
De Clases
Diagramas de
Estados
Diagramas de
Actividad
Diagramas de
Componentes
Diagramas de
Distribucin
Diagramas de
Actividad
Captura de Requisitos Anlisis y Diseo Implementacin
"You can model 80 percent of most problems by using about 20 percent of the UML."-- Grady Booch
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas


METODOLOGAS DE
DESARROLLO DE SOFTWARE

Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
EL PROCESO PARA DESARROLLO DE SOFTWARE- RUP
Herramienta CASE
Proceso
Notacin
USDP UML
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
EL PROCESO PARA DESARROLLO DE SOFTWARE- RUP
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
10
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
EL PROCESO PARA DESARROLLO DE SOFTWARE- RUP
LA VIDA DEL PROCESO UNIFICADO
Tiempo
Iteracin #1
Iteracin #2
Inicio Elaboracin Construccin Transicin
Versiones
PROTOTIPO ALFA PROTOTIPO BETA
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
EL PROCESO PARA DESARROLLO DE SOFTWARE- RUP
FASES, ITERACIONES Y FLUJOS DE TRABAJO
Modelo de Casos
de usos
Modelo de
anlisis
Modelo de
diseo
Modelo de
despliegue
Modelo de
implementacin
Modelo de
prueba
Especificado por
Realizado por
Distribuido por
Implementado por
Verificado por
Anlisis y Diseo de Software Docente: Ing. Richard Mercado
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
EL PROCESO PARA DESARROLLO DE SOFTWARE- RUP
PROCESO UNIFICADO CENTRADO EN LOS CASOS DE USO
Requerimientos
Anlisis y Diseo
Codificacin
Prueba
Admin. Proyecto
Gestin Configur.
y Cambio
Inicio Elaboracin Construccin Transicin
Iteracin
1

Iteracin
2
Iteracin
...
Iteracin
n
Fases:
Iteraciones:
Flujos de Trabajo:
Alcances y
Objetivos Arquitectura
Versin
Beta
Versin
Final
Entregas
Internas
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Otras Metodologas
XP
FUSION
CATALYSIS
GRAPPLE
Ud. puede
definir su propia
metodologa.
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
11

eXtreme Programming
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Qu es XP?
Es una metodologa gil
Diseada para entornos dinmicos
Pensada para equipos pequeos (hasta 10
programadores)
Orientada fuertemente hacia la codificacin
nfasis en la comunicacin informal, verbal

Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Historia de XP
Creado por Kent Beck para la plantilla del
proyecto C3 en Chrysler
Kent fue contratado para dirigir el proyecto
Durante el proceso naci una nueva
metodologa: eXtreme Programming (XP)
C3 concluy exitosamente en 1997

Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Valores que fomenta XP
Comunicacin
Simplicidad
Retroalimentacin

Coraje
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Roles XP
c2.com/cgi/wiki?ExtremeRoles
Programador (Programmer)
Responsable de decisiones
tcnicas
Responsable de construir el
sistema
Sin distincin entre analistas,
diseadores o codificadores
En XP, los programadores
disean, programan y realizan las
pruebas
Jefe de Proyecto
(Manager)
Organiza y gua las
reuniones
Asegura condiciones
adecuadas para el
proyecto

Cliente (Customer)
Es parte del equipo
Determina qu construir
y cundo
Establece las pruebas
funcionales
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
... Roles XP
Entrenador (Coach)


Encargado de Pruebas
(Tester)
Ayuda al cliente con
las pruebas
funcionales
Se asegura de que las
pruebas funcionales se
superan
Rastreador (Tracker)
Metric Man
Observa sin molestar
Conserva datos
histricos
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
12
Captura de Requisitos en XP
Historias del Usuario (User-Stories)
Establecen los requisitos del cliente
Trozos de funcionalidad que aportan valor
Se les asignan tareas de programacin con un n
de horas de desarrollo
Las establece el cliente
Son la base para las pruebas funcionales
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Captura de Requisitos en XP
Una ficha de User-Story
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Planificacin en XP
Planificacin por entregas (releases)
Se priorizan aquellas user-stories que el cliente
selecciona porque son ms importantes para el
negocio
Entregas:
Son lo ms pequeas posibles
Se dividen en iteraciones (iteracin = 2 o 3
semanas)
Estn compuestas por historias
A cada programador se le asigna una tarea de la
user-story
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Programacin en XP
La programacin de tareas se realiza por
parejas

La pareja disea, prueba, implementa e
integra el cdigo de la tarea

Cdigo dirigido por las pruebas

Cdigo modular, intentando refactorizar
siempre que se pueda

Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Programacin en XP
Una ficha de Tarea
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Modelo de un Proyecto XP
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
13
LOGO Facultad de Ingeniera de Sistemas - UNCP
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas

Potrebbero piacerti anche