Você está na página 1de 75

UNIDAD I INTRODUCCIN AL ANLISIS Y DISEO CON UML

Contenido

Por qu modelamos La importancia Cuatro principios del modelado Los planos bsicos de un sistema software Modelado orientado a objetos Qu es UML?. Presentacin del UML Diagramas Utilizados en UML (ejemplos)
2

Por qu Modelamos

El modelado es una tcnica de hacer modelos, que ofrece

Una visin global del sistema.

Importancia de Modelar

Objetivos del Modelar:

Visualizar, especificar la estructura, proporcionan plantillas, documentan decisiones

Principios del Modelado

La eleccin de qu modelos crear, y dar forma a una solucin. Todo modelo puede ser expresado a diferentes niveles de precisin. Los mejores modelos estn ligados a la Realidad Un nico modelo no es suficiente.

Modelado orientado a objetos


UML es un Lenguaje de Modelado Unificado basado en una notacin grfica la cual permite: Especificar Construir Visualizar Documentar los objetos de un sistema
6

UML

Qu es UML?.

UML puede ser utilizado por cualquier metodologa de anlisis y diseo orientada a objetos para expresar los modelos de diseo.

Qu es UML

Este lenguaje es el resultado de la unificacin de los mtodos de modelado orientados a objetos de: Booch, Rumbaugh (OMT:Object Modeling Technique) Jacobson (OOSE:Object-Oriented Sotfware Engineering) .

Historia de UML
La notacin UML se deriva de y unifica, las tres metodologas de anlisis y diseo O.O. ms extendidas: Metodologa de Grady Booch para la descripcin de conjuntos de objetos y sus relaciones.

Tcnica de modelado orientada a objetos de James Rumbaugh (OMT: Object-Modeling Technique). Aproximacin de Ivar Jacobson (OOSE: Object- Oriented Software Engineering) mediante la metodologa de casos de uso (use case).
9

Historia de UML
El desarrollo de UML comenz a finales de 1994 cuando Grady Booch y Jim Rumbaugh de Rational Software Corporation empezaron a unificar sus mtodos. A finales de 1995, Ivar Jacobson y su compaa Objectory se incorporaron a Rational en su unificacin, aportando el mtodo OOSE.
10

Historia de UML
De las tres metodologas iniciales, las de Booch y Rumbaugh pueden ser descritas como centradas en objetos, ya que sus aproximaciones se enfocan hacia el modelado de los objetos que componen el sistema, su relacin y colaboracin. Por otro lado, la metodologa de Jacobson es ms centrada a usuario, ya que todo en su mtodo se deriva de los escenarios de uso. UML se ha ido fomentando y aceptando como estndar desde el OMG (), que es tambin el origen de CORBA, el estndar lder en la industria para la programacin de objetos distribuidos.
11

Historia de UML
En 1997 UML 1.1 fue aprobada por la OMG convirtindose en la notacin estndar de facto para el anlisis y el diseo O.O. UML es el primer mtodo en publicar un metamodelo en su propia notacin, incluyendo la notacin para la mayora de la informacin de requisitos, anlisis y diseo (cualquier lenguaje de modelado de propsito general debera ser capaz de modelarse a s mismo).
12

Historia de UML
2005? 2003 2000 1999 1998 Nov 97

UML 2.0
UML 1.5 UML 1.4 UML 1.3 UML 1.2
UML aprobado por el OMG Revisiones menores

*Desarrollo de Software Orientado a Objeto usando UML, Patricio Letelier Torres, http://www.dsic.upv.es/~uml/curso.ppt 13

UML!

Es un lenguaje estndar para escribir planos de software. Puede visualizar, especificar, construir y documentar los componentes de un sistemas OO que involucra una gran cantidad de software. UML es apropiado para modelar sistemas de informacin en empresas hasta aplicaciones web. Es un lenguaje muy expresivo , cubre todas las vistas necesarias para desarrollar y desplegar sistemas.

14

Dnde puede utilizarse UML?

Sistema de Informacin Institucionales Bancos y Servicios Financieros Telecomunicaciones Transporte Comercio Electrnica mdica mbito cientfico Servicios distribuidos basados en la Web
15

1.1 ANLISIS Y DISEO ORIENTADO A OBJETOS

16

APLICACIN DEL LENGUAJE UML Y DEL ANLISIS Y EL DISEO O.O

Qu significa contar con un sistema o.o que est bien diseado? Significa adquirir y utilizar habilidades prcticas en el diseo OO. Estas destrezas son indispensables para crear sistemas de software bien diseados, robusto y de fcil mantenimiento, utilizando la tecnologa de objetos y los lenguajes de programacin O.O 17 como C++, Java, etc.

QU SON EL ANLISIS Y EL DISEO O.O

La esencia del anlisis y el diseo orientado a objetos consiste en situar el dominio de un problema y su solucin lgica dentro de la perspectiva de los objetos.
Anlisis
Investigacin del problema

Diseo
Solucin Lgica

Construccin

Cdigo
18

QU SON EL ANLISIS Y EL DISEO O.O

Durante el anlisis orientado a objetos se procura ante todo identificar y describir los objetos o conceptos dentro del dominio del problema. Por ejemplo: Sistema de informacin de la biblioteca Algunos Conceptos son: Libro, Biblioteca y Cliente
19

QU SON EL ANLISIS Y EL DISEO O.O

Durante el diseo orientado a objetos se procura definir los objetos lgicos del software que finalmente sern implementados en un lenguaje de programacin O.O.

Los objetos tienen atributos y mtodos.


Ejemplo: Sistema de informacin de la biblioteca

Objeto: Libro, Atributo titulo Mtodo imprimir


20

QU SON EL ANLISIS Y EL DISEO O.O

Finalmente, durante la construccin o programacin O.O se implementan los componentes del diseo, como una clase Libro en C++ o Java, etc. Ejemplo: Organizacin de la Empresa MicroChaos

21

EL LENGUAJE UML Y LOS PROCESO DE DESARROLLO

Un proceso de desarrollo de software es un mtodo de organizar las actividades relacionadas con la creacin, presentacin y mantenimiento de los sistemas de software.

22

EL LENGUAJE UML Y LOS PROCESO DE DESARROLLO

El lenguaje UML estandariza los artefactos y la notacin, pero no define un proceso oficial de desarrollo. Algunas de las razones que explican esto:

1.- Aumentar las probabilidades de una aceptacin generalizada de la notacin estndar del modelado, sin la obligacin de adoptar un proceso oficial.
2.- La esencia de un proceso apropiado admite mucha variacin y depende de las habilidades del personal, de la razn investigacin-desarrollo, de la naturaleza del tiempo, etc. 23

EL LENGUAJE UML Y LOS PROCESO DE DESARROLLO

Una vez aclaradas estas razones, procedemos a aplicar los principios generales y los pasos normales que guan un proceso eficaz. Pasos de macronivel: En un nivel alto, los pasos principales en la presentacin de una aplicacin son los siguientes:
24

EL LENGUAJE UML Y LOS PROCESO DE DESARROLLO

1.- Planeacin y elaboracin: Planear, definir los requerimientos, construir prototipos, etc. 2.- Construccin: La creacin del sistema. 3.- Aplicacin: La transicin de la implementacin del sistema a su uso.
25

EL LENGUAJE UML Y LOS PROCESO DE DESARROLLO

Desarrollo iterativo Un ciclo de vida iterativo se basa en el agrandamiento y perfeccionamiento secuencial de un sistema a travs de mltiples ciclos de desarrollo de anlisis, diseo, implementacin y pruebas.
El sistema crece al incorporar nuevas funciones en cada ciclo de desarrollo. Tras una frase preliminar de planeacin y especificacin, el desarrollo pasa a la fase de construccin a travs de una serie de ciclos de desarrollo.
26

EL LENGUAJE UML Y LOS PROCESO DE DESARROLLO

Desarrollo iterativo En cada ciclo se aborda un conjunto relativamente pequeo de requerimientos, pasando por el anlisis, el diseo, la construccin y las pruebas. El sistema va creciendo en cada ciclo que concluye.
Esto contrasta con el ciclo clsico de la vida en cascada, en el cual las actividades (anlisis y diseo, entre otras) se llevan a cabo una vez con todos los requerimientos del sistema.
27

EL LENGUAJE UML Y LOS PROCESO DE DESARROLLO

Fijacin de la duracin de un ciclo de desarrollo Una estrategia muy til en los ciclos de desarrollo consiste en limitarlo a un marco temporal, esto es, un lapso rgidamente fijo, digamos cuatro o n semanas.
En un perodo menor sera muy difcil terminar las actividades; en un periodo mayor la complejidad se torna abrumadora y la retroalimentacin se retras.

28

Bloques de Construccin UML


Elementos Bloques

Relaciones
Diagramas

29

Bloques de Construccin UML


Elementos
Clase
Ventana O rigen T amao A brir( ) Cerrar() M over( ) D ibujar( )

Relaciones
interfaz nodo servidor componente

Diagramas
Casos de uso
Realizar Pedido

Clase activa
GestorEventos S uspender () V aciarCola()

Estructurales

Cadena de responsabilidad

Interaccin

Estados
Esperando

Comportamiento Agrupacin Anotacin

Dibujar Mensajes

Reglas del negocio

30

Elementos Estructurales

Elementos estructurales, son la parte esttica de un modelo Clase: representa un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semntica.
Publicacin
Cdigo P Cadena(2) Copias Entero Importe Decimal(10,2)

Nombre de la clase Atributos

Agregar() Consultar() Listar()

Operaciones

31

Elementos Estructurales

Atributo: Representa una propiedad de una entidad. Cada atributo de un objeto tiene un valor que pertenece a un dominio de valores determinado. Objeto: Se caracteriza por tener una identidad nica, un estado definido por un conjunto de valores de atributos y un comportamiento representado por sus operaciones y mtodos
32

Elementos Estructurales

define un conjunto especificaciones de operaciones


Interfaz:

de

Colaboracin: define una iteracin y es

una sociedad de roles y otros elementos que colaboran cooperativamente


Cadena de Responsabilidad
33

Elementos Estructurales

Caso de Uso: Conjunto de secuencia de acciones que se ejecutan y el resultado es de inters para un actor en particular.

Realizar pedido

34

Elementos Estructurales

Clase Activa: Son similares a las clases excepto que sus objetos representan elementos cuyo comportamiento es concurrente con otros elementos
Gestor Ventas Nombre

Suspender() VaciarCola()

Operaciones

35

Elementos Estructurales

Componentes: Es empaquetamiento fsico

de diferentes elementos lgicos como clases, interfaces, y colaboraciones.

Orderform.java

36

Elementos Estructurales

Nodo: Es elemento fsico es decir un

recurso computacional

Servidor

37

Elementos Comportamiento
Son la parte dinmica, y representan comportamiento en el tiempo y el espacio.

Interaccin: Conjunto de mensajes intercambiados entre objetos.

38

Elementos Comportamiento

Estado: Identifica un perodo de tiempo del objeto (no instantneo) en el cual el objeto esta esperando alguna operacin, recibe cierto tipo de estmulos y especifica la secuencia de estado por las que pasa un objeto
Esperado
39

Elementos Agrupacin
Elementos Agrupacin organizativas son las partes

Un paquete: Mecanismo de propsito general para organizar elementos.

Reglas del Negocio

40

Elementos de Anotacin
Elementos de Anotacin son las partes explicativas, son comentarios, para describir, clasificar, y hacer observaciones

Nota: Sirve para hacer comentarios a un conjunto de elementos


Devuelve una Copia del objeto receptor
41

Bloques de Construccin UML


Elementos

Relaciones

Diagramas

Dependencia

Relacin entre dos elementos uno independiente a otro dependiente y puede afectar la semntica
0...1 * Patrn empleado

Asociacin

Son conexiones entre objetos (rol, multiplicidad, calificador) Especificacin en donde el hijo comparte la estructura y el comportamiento del padre Es una relacin semntica entre clasificadores
42

Generalizacin

Realizacin

Bloques de Construccin UML


Elementos
Use Case Diagramas Diagrams Secuencia Scenario Diagramas Diagrams Colaboracin Scenario Diagramas Diagrams Estado

Relaciones
Use Case Diagramas Diagrams Caso de Uso

Diagramas
State Diagramas Diagrams Objecto

State Diagramas Diagrams Clase

Modelos

State Diagramas Diagrams Componentes


Component Diagramas Diagrams

Diagramas Actividades

Despliegue

43

Diagramas de clases

Un Diagrama de Clases muestra un conjunto de clases, interfaces, colaboraciones y relaciones. Cubren la vista de diseo esttico de un sistema Cuando incluyen clases activas cubren la vista de procesos estticos
44

Diagramas de clases
Relacin de Asociacin (Rol y Multiplicidad)

Rol: Se identifica con un nombre al final de la lnea y describe la semntica de la relacin en el sentido indicado. Cada asociacin tiene dos roles; cada rol es una direccin y puede estar representado en el nombre de la clase.

45

Diagramas de clases
Relacin de Asociacin (Rol y Multiplicidad)

Multiplicidad: Describe la cardinalidad de la relacin, es decir, cuantos objetos de esa clase pueden participar en la relacin dada.
1

Clase Clase

Exactamente uno Cero a ms Cero a uno Especificada numricamente


46

* 0. ...1 m. n

Clase Clase

Diagramas de clases
Vendedor Nmero Nombre ATRIBUTOS Direccin :

Ejemplo
CLASES

AsignarCuota OPERACIONES CalcularComisiones


Participa en

1..* Venta Nmero Fecha Hora Crear CalcularImporte

DetalleVenta NmeroRengln CveArtculo Cantidad Importe CalcularIVA CalcularImporte


47

1..*
RELACION

Diagramas de objetos
Diagrama de objetos muestra un conjunto de objetos y sus relaciones representan instantneas de instancias de los elementos encontrados en los diagramas de clase.

Cubren la vista de diseo y proceso esttico de un sistema

48

Diagramas de objetos
Ejemplo
Abstracciones ms generales Vehculo

Vehculo Terrestre

Vehculo areo

Coche

Camin

Avin

Helicptero

Conceptos bsicos de la Orientacin a Objetos

49

Diagramas de casos de uso


Diagrama de casos de uso muestra un conjunto de casos de uso y actores y sus relaciones cubren la vista de casos de uso esttica de un sistema.

Estos diagramas son especialmente importantes en el modelado y organizacin del comportamiento de un sistema.
50

Diagramas de Casos de Uso


Cada caso de uso es una operacin completa desarrollada por los actores y por el sistema en un dilogo. El conjunto de casos de uso representa la totalidad de operaciones desarrolladas por el sistema.

51

Diagramas de Casos de Uso


Actor: Es un usuario del sistema, que necesita o usa alguno o algunos de los casos de uso. Un usuario puede jugar ms de un rol. Un caso de uso puede tener varios actores. Los actores no necesitan ser humanos pueden ser sistemas externos que necesitan alguna informacin del sistema actual.
52

Diagramas de Casos de Uso


Tienen tres tipos de relaciones: Comunica: (comunicates): entre un actor y un caso de uso, denota la participacin del actor en el caso de uso determinado. Usa (uses): Relacin entre dos casos de uso, denota la inclusin del comportamiento de un escenario en otro. Extiende (extends): Relacin entre dos casos, denota cuando un caso de uso es una especializacin de otro. Se usa cuando se describe una variacin sobre el normal comportamiento.
53

Diagramas de Casos de Uso


Un diagrama de Casos de Uso muestra la distintas operaciones que se esperan de una aplicacin o sistema y cmo se relaciona con su entorno (usuario u otras aplicaciones).

Es una herramienta esencial para la captura de requerimientos y para la planificacin y control de un proyecto interactivo.

54

Diagramas Casos de Usos


Comunica
Actualizar carga academica <<extend>>

Actor
Actualizar carga Administrativa Elaborar Informe de Actividades

<<use>>
Elaborar Planificacin de Actividad

Profesor
Pedir Permiso

55

Diagramas de secuencia
Diagrama de secuencia Es un diagrama de interacciones que resalta la ordenacin temporal de los mensajes.

Es importante mencionar que los diagramas de interaccin es un conjunto de objetos y sus relaciones, incluyendo los mensajes que pueden ser enviados entre ellos.
56

Diagrama de secuencia
:USUARIO AUTORIZADO
ACTUALIZAR DEPOSITO F.T. OK

:USUARIO AUTORIZADO

:TOTAL_D

ACTUALIZAR TOTAL_D OK

ACTUALIZAR DEPOSITO F.T. OK

ACTUALIZAR TOTAL_D OK

Diagrama de secuencias asociadas al proceso Actualizar Depsito


57

Diagramas de colaboracin
Diagrama de colaboracin es un diagrama de interaccin que resalta la organizacin estructural de los objetos, que envan y reciben mensajes de las iteraciones que estn indicadas por un nmero

A diferencia de los diagramas de secuencia, pueden mostrar el contexto de la operacin (cules objetos son atributos, cules temporales) y ciclos en la ejecucin.
58

Diagramas de colaboracin
Registra Retiro 1 Arranca Aplicacin 2 Teclea Tipo mov 3 Teclea num Cuenta 4 Teclea Tipo Docto 5 Teclea Num Cheque Cajero <<Cajero>>

Ejemplo

Aplicacin
ChequeOk

: Cuenta cheques

NumCliente, Nombre, SaldoCuenta 5.1 ValidaCheque(numCheque)

Interfaz Registra Retiro InfoCuentaFormateada

3.1.1 ObtenerNombreCliente (NumCliente)

: Cheque
5.1.1 Valida Cheque No Robado (NumCheque) 5.1.2 Valida Cheque No Canceladop (NumCheque)

: Cliente

59

Diagramas de Estado

Diagrama de estados (statechart) muestra una mquina de estados, que consta de estados transiciones, eventos y actividades. Cubren la vista dinmica de un sistema y el comportamiento de una interfaz, clase, colaboracin y resaltan el comportamiento dirigido por eventos de un objeto.
60

Diagramas de Estados
Muestra el conjunto de estado por los cuales pasa un objeto durante su vida en una aplicacin junto con los cambios que permiten pasar de un estado a otro Esta representado principalmente por los siguientes elementos: estado, elemento y transicin.
61

Diagramas de Estados
Eventos: Es una ocurrencia que puede causar la transicin de un estado a otro de un objeto. -Condicin que toma el de verdadero o falso. -Recepcin de una seal o mensaje de otro objeto en el modelo. -Paso de cierto perodo de tiempo, despus de entrar al estado o de cierta hora y fecha particular.
62

Diagramas de Estados

Transicin: Es una relacin de tres o ms estados en una transicin de mltiples fuentes o mltiples destinos.

63

Diagramas de Estados
Ejemplo
Inicio No se revisan todos los artculos / obtiene siguiente artculo Comprobacin Hace / revisa artculo Todos los artculos comprobados && algunos artculos no en inventario Artculo recibido Algunos artculos no en existencia Transicin Espera Autotransicin Estado Entregado Todos los artculos comprobados && todos los artculos disponibles Despachando Hace /inicia entrega

64

Diagramas de Actividades

Diagrama de actividades muestra el flujo de actividades dentro de un sistema.

Cubren la vista dinmica, son importantes al modelar el funcionamiento del un sistema y resaltan el flujo de control de objetos.

65

Diagrama de Actividades
Un diagrama de actividades es un diagrama de estados, casi todos los estados son estados de accin, y casi todas las transiciones son enviadas al terminar la accin ejecutada en el estado anterior. Generalmente modelan los pasos de un algoritmo y puede dar detalle a un caso de uso, un objeto o un mensaje en un objeto.
66

Diagrama de Actividades
Sirven para representar transiciones internas, sin hacer mucho nfasis en transiciones o eventos externos Los elementos que conforman el diagrama son: accin y transicin.

67

Diagrama de Actividades
Transicin: Es la relacin entre dos estados y se encuentran unidos por flechas Indican que un objeto que est en el primer estado, realizar una accin especificada y entrar en el segundo estado cuando un evento implcito ocurra y unas condiciones especificas sean satisfechas
68

Diagrama de Actividades
Ejemplo
Recibe orden
[por cada artculo]

Cancela orden

[Fallo]

Autoriza pago

Comprueb a artculo de lnea


[en existencia]

Condicin de sincronizacin

[xito]

Asigna orden

[existencia asignada a todos los artculos de lnea y pago autorizado]

[se necesita ordenar]

Despacha orden

Reordena artculo
69

Diagramas de Componentes
Diagrama de componentes muestra la organizacin y las dependencias entre un conjunto de componentes, cubren la vista de implementacin esttica. Se relacionan con diagramas de clase en que un componente se corresponde con una o ms clases, interfaces o colaboraciones.
70

Diagramas de Componentes
Representa las componentes fsicas de la aplicacin.
Reservacin LISTADO

AGENCIA DE VIAJES

Actualizar

INTERFAZ

71

Diagramas de Despliegue
Diagrama de despliegue muestra la configuracin de nodos de procesamiento en tiempo de ejecucin y los componentes que residen en ellos. Su relacin con los diagramas de componentes en que un nodo incluye, uno o mas componentes.
72

Diagrama de despliegue
Representa la visualizacin de los componentes sobre los dispositivos fsicos.
SERVIDOR
<<Base de Datos >>

listado

reservaciones

CLIENTE: PC Agencia de Viajes

73

Conclusiones
En este trabajo se ha aprendido los conceptos de UML (El Lenguaje Unificado de Modelado), como es el vocabulario, reglas de construccin de modelos. Se vio, los elementos sus relaciones y los 9 Diagramas que utiliza UML para su modelado de Sistemas
74

Bibliografa
El lenguaje unificado de modelado
Grady Booch James Rumbaugh Ivar Jacobson

El libro introductorio a UML Addison Wesley


75