UML Lenguaje de Modelado Unificado Estandarizando el

Anuncio
08/10/2012
UML
Lenguaje de Modelado Unificado
Estandarizando el Desarrollo de
Software de Principio a Fin
Temario
¿Y esto de qué se trata?
•Definición e importancia de UML
•Diagramas de Casos de Uso
•Diagramas de Actividades
•Diagramas de Clases
•Diagramas de Secuencia
•Diagramas de Instalación
•Otros diagramas
1
08/10/2012
Definiendo UML
Entendiendo lo que es y para qué sirve.
La traducción de UML es literalmente Lenguaje de Modelado Unificado, pero
tal vez la pura traducción no sea tan descriptiva de lo que UML realmente es.
Si descomponemos los términos, tenemos que:
•Lenguaje: Tiene la función de comunicar algo, siempre bajo ciertas reglas.
•Modelado: Es una representación de lo que se busca.
•Unificado: Estandariza elementos que antes no estaban estandarizados.
De estos términos, tal vez el más importante sea modelado, debido a que si
bien un modelo es una representación de lo que se busca, también se puede
entender como una abstracción de lo que se busca.
Recordemos que el desarrollo de sistemas es, de por sí, algo completamente
abstracto, así que esta definición es la que tal vez se acerque más a nuestras
necesidades.
Importancia de UML
¿Bosque o Grupo de Árboles?
Existe una metáfora que bien aplica a nuestras necesidades:
“Estar demasiado cerca de los árboles impide ver el bosque”
Tal vez suene un poco absurdo, pero un analista debe utilizar UML teniendo
en mente que un sistema completo, por muy sencillo o complejo que sea,
equivale a apreciar un bosque completo, así que enfocarse en una parte
equivaldría a enfocarse en algunos árboles y perder de vista la totalidad de lo
que se busca.
Por su parte, los “árboles” que componen el análisis de un sistema en UML
son diagramas, pero es importante entender que no se trata de dibujar
diagramas a diestra y siniestra, sino que los diagramas deben capturar la
esencia del sistema que se está diseñando.
2
08/10/2012
4+1 Vistas
La primera descomposición del sistema
No, no son 5 vistas, efectivamente son 4+1 vistas. Cada una de estas vistas en
una parte del sistema. Se dice que son “cuatro más un vistas”, porque la vista
“sobrante” es la que une a las demás.
Vista Lógica
Vista de Proceso
Casos de Uso
Vista Física
Vista de Desarrollo
Estas vistas siguen la máxima “Divide y vencerás”.
Diagramas de Casos de Uso
El punto de arranque de cualquier sistema
V.L.
V.P.
C.U.
V.F.
V.D.
¿Por qué los casos de uso son la parte más importante del sistema?
Simplemente porque se trata de lo que el sistema debe hacer. En otras
palabras, los casos de uso representan los requerimientos del usuario.
Más importante aún, representan los requerimientos del usuario desde el
exterior del sistema, así como el valor que el usuario espera del sistema que
se le está construyendo. En otras palabras, son la primera manera de ver el
bosque completo, de entenderlo, de saber de qué tipo de árboles se trata e
incluso de los animales que corren libremente entre ellos.
3
08/10/2012
Los Requerimientos
¿Qué es un requerimiento y qué no lo es?
No todo lo que nos pide el usuario son requerimientos del sistema. O mejor
dicho, se debe identificar lo que un sistema debe hacer y separarlo de lo que
un sistema necesita para realizar su trabajo, lo cual se descompone en:
•Requerimientos Funcionales: Son todos los requerimientos de lo que un
sistema debe hacer. Esto incluye las diferentes validaciones de reglas de
negocio, despliegue de información, etc.
•Requerimientos No Funcionales: Son todos los requerimientos técnicos del
sistema, como tipo de base de datos, conexiones a través de sockets, comprar
licencias de desarrollo, etc.
Los casos de uso se enfocan en los requerimientos funcionales.
Diagrama de Casos de Uso
Vista de cómo quedaría un diagrama con todos los elementos
Acceder al
Sistema
Usuario
<<extend>>
Validar
Credenciales
<<include>>
Bloquear
Usuario
Al tercer
intento fallido
Correr
Nómina
Dar de Alta
en Hacienda
<<include>>
Recursos
Humanos
Registrar
Contratación
Generar
Balance
<<include>>
<<include>>
Dar de Alta
en Afore
Reportar a
Dir. General
Contabilidad
4
08/10/2012
Ejemplo de Descripción
Lo que una descripción contiene
Caso de Uso
Acceder al Sistema
Actor(es)
Usuario
Activado cuando
El usuario intenta acceder al sistema, proporcionando su login y password.
Precondiciones
Haber abierto la aplicación
Incluye a
Validar Credenciales
Extiende a
No aplica
Flujo
1.- Capturar login y password en casillas correspondientes.
2.- Aceptar la captura.
3.- Validar credenciales (caso de uso: Validar Credenciales)
4.- Abrir pantalla principal del sistema
Flujo Alterno
Paso 3.a: El login o el password son incorrectos
3.a.1- Informar al usuario que tuvo error en la captura.
3.a.2- Incrementar contador de intentos de acceso.
3.a.3- Si el contador llega a 3 intentos, bloquear el usuario (caso de uso: Bloquear Usuario)
3.a.4- Terminar el caso de uso
Incluido en
No aplica
Extensiones
Bloquear Usuario
Diagramas de Actividades
El orden de los procesos
V.L.
V.P.
C.U.
V.F.
V.D.
Los diagramas de actividades tienen la característica de modelar procesos de
negocio con relativa facilidad. De hecho existen herramientas Case que toman
estos diagramas y generan el código de la aplicación con enorme facilidad.
La diferencia principal entre los diagramadores de modelos de proceso de
negocios (BPM) y los diagramadores de UML está en la notación que utilizan,
pero esencialmente representan lo mismo: procesos de negocio.
Básicamente, los diagramas de actividades (o de procesos de negocio) son los
herederos de los antiguos diagramas de flujo que se utilizaban en los inicios de la
programación. Obviamente, estos diagramas han sufrido modificaciones y
adecuaciones con el paso del tiempo hasta llegar a lo que veremos a
continuación.
5
08/10/2012
Diagrama de Actividades
Varias cosas al mismo tiempo
En este ejemplo vemos un diagrama de actividades. Cada actividad va en
secuencia siguiendo a otra desde el punto de partida hasta el final, aunque
también se aprecia que tenemos actividades paralelas, además de una condición
para seguir adelante o terminar.
Diagrama de
Actividades de
un Videojuego
Inicializar
Componentes
α
Procesar
Entrada
Procesar
Escenario
Recibir Entrada
Calcular
Física
Inteligencia
Artificial
Render y
Audio
Validar
Reglas
Sí
α
No
Game Over
Diagramas de Clases
Estableciendo relaciones de responsabilidades
V.L.
V.P.
C.U.
V.F.
V.D.
Al entrar a los diagramas de clases ya estamos hablando de responsabilidades, lo
cual es precisamente el punto importante de la programación orientada a
objetos:
•Un objeto es una entidad con responsabilidad.
•Una clase es la definición de cómo esa responsabilidad se va a llevar a cabo.
Por lo tanto, los diagramas de clases modelan las relaciones entre las diferentes
responsabilidades del sistema.
6
08/10/2012
Partes de una Clase
Identificación, Estados y Comportamientos
Identificación
Estados
Comportamientos
Una clase se compone de tres piezas fundamentales:
1. Su identificación, es decir, el nombre que representa
la responsabilidad que va a cumplir.
2. Sus estados, que son diferentes propiedades que un
objeto puede adquirir en un momento dado.
3. Sus comportamientos o métodos, es decir los
procesos internos que se van a realizar.
Usuario
+idUsuario: long
+Nombre: String
-Password: String
+CambiarPassword(nuevoPassword: String): void
-ValidarNuevoPassword(nuevoPassword: String): Boolean
Tipos de Relación
Cómo una clase se conecta con otra
Existen cuatro tipos de relaciones básicas entre las clases.
A
B
A
B
La flecha en blanco
significa que A es una
generalización de B, o
bien que B es una
especialización de A.
El diamante en blanco
significa que A tiene
agregados uno o varios
objetos de la clase B,
pero no son parte uno
del otro.
A
B
A
B
La flecha punteada
indica que A depende
de B para realizar
alguna tarea, pero sin
que una clase sea
parte de la otra.
El diamante relleno
indica que A se
compone de uno o
varios objetos de B y
no se pueden separar.
7
08/10/2012
Ejemplo de Diagrama de Clases
Una nómina sencilla
1..*
Nomina
-ListaEmpleados:Empleado[*]
+TotalEmpleados:int
+RegistrarNuevoEmpleado(e:Empleado):void
+CorrerNominaMes():XML
+RealizarDepositos(d:XML):Bool
-GenerarBalanceContable(d:XML, f:XML, e:XML):void
Al generar el
balance se
envía mail a
Contabilidad y
a Dir. Gral.
CorreoElectronico
+Servidor:string
+Puerto:string
+Remitente:string
+Destinatarios:string[*]
+Titulo:string
+Mensaje:string
+Attachments:XML[*]
+Enviar():int
Empleado
+Nombre:string
+Direccion:string
+FechaNacimiento:DateTime
+Usuario:string
+Contrasena:string
-historial:Bitacora
+CambiarContrasena(nueva:string):void
0..*
Bitacora
-ActividadRealizada:string
-Fecha:DateTime
+RegistrarAccion(a:string, f:DateTime):void
Diagramas de Secuencia
Poniendo a funcionar el sistema
V.L.
V.P.
C.U.
V.F.
V.D.
Los diagramas de secuencia van más allá de los diagramas de clases y paquetes.
Con los diagramas de clase se modelan las relaciones entre las diferentes
responsabilidades, pero los diagramas de secuencia le ponen más detalle al
asunto.
Los diagramas de secuencia modelan cómo interactúan las clases entre sí,
incluso entre métodos de una misma clase, ya que incluyen no sólo los métodos
con sus parámetros y tipos de retorno, sino que además incluyen el tipo de
mensajes que se tienen que enviar de uno a otro.
8
08/10/2012
Participantes
Objetos o Clases
Los participantes son las clases y/u objetos que están involucrados
en una secuencia. Se denotan con una caja en la parte superior y
en la parte inferior tienen una línea punteada. Esta línea punteada
representa el tiempo que una clase o un objeto en específico está
en uso con respecto a otros objetos o clases.
Para distinguir si estamos hablando de una clase o un objeto que tiene que
instanciarse en código utilizamos los dos puntos (:), donde del lado izquierdo va
el nombre del objeto y del derecho el nombre de la clase. Por lo general, a nivel
de análisis se requiere sólo el nombre de la clase.
Objeto:Clase
Objeto:
:Clase
Activación y Mensajes
El tiempo que una clase u objeto va a interactuar
Objeto:Clase
Las barras de activación son rectángulos que se colocan sobre la
línea de tiempo de un participante. Puede haber más de una barra
de activación dependiendo de cuántos mensajes envíe el
participante a otro participante, incluso entre mensajes que se
envíe un participante a sí mismo.
La manera de enviar o recibir mensajes es con flechas que van de
una barra de activación de un participante a la barra de activación
de otro participante.
Mensaje síncrono (punta cerrada).
Mensaje asíncrono (punta abierta).
Mensaje de retorno (línea punteada)
<<create>>
<<destroy>>
Objeto:Clase
X
En cuanto a la instanciación de
objetos, esto es más común que
usar los destructores, a no ser que
se requiera indicar que el objeto ya
no deberá estar en uso.
9
08/10/2012
Ejemplo de Secuencia
Intentar dar de alta un nuevo usuario
Aceptar:Button
:Usuario
Alta(u:String, p:String):Bool
Validar():Bool
:Bool
si Validar() es verdadero
<<create>>
cond
:BaseDatos
AbrirConexion():void
Query(sp:String, p:Parametros):void
CerrarConexion():void
:Bool
MsgBox(msg:String)
Aviso al usuario
Diagramas de Instalación
Donde la aplicación va a residir
V.L.
V.P.
C.U.
V.F.
V.D.
Si bien la programación es algo abstracto o, mejor dicho, es una abstracción de la
realidad, el resultado final es un archivo electrónico o un conjunto de archivos
que van a tener que ser instalados en algún sitio.
Los diagramas de instalación se usan para llevar la aplicación al mundo real por
medio de mostrar cómo el software se asigna al hardware y cómo las piezas se
comunican.
10
08/10/2012
Nodos y Artefactos
¿Dónde va a quedar y qué es lo que va a quedar?
El hardware y también los componentes requeridos
por el hardware para la aplicación se representan
con nodos. Los nodos son cubos que representan las
“cajas” donde se va a guardar la aplicación instalada.
<<device>>
El_Servidor
El software que se instale se representa con artefactos,
los cuales se pueden representar de diferentes formas.
<<artifact>>
Default.aspx
Default.aspx
<<artifact>>
Default.aspx
Combinando Nodos y Artefactos
Simulando la instalación
La forma tradicional es la de poner cada
artefacto dentro del nodo. Sin embargo, si
la lista de artefactos es muy larga, se
acostumbra simplemente ponerla a
manera de listado.
<<device>>
Servidor Web
<<device>>
El_Servidor
Default.aspx
Clientes.aspx
Empleados.aspx
Configuración.xml
Incapacidades.rpt
FacturasPagadas.rpt
Default.aspx
11
08/10/2012
Nodos Anidados
¿Nodos o Nidos?
Existe la posibilidad de anidar nodos, pero en este caso, la anidación se refiere a
un ambiente de ejecución dentro de un nodo, por ejemplo, para poder ejecutar
páginas como ASP o PHP, el servidor debe tener instalado un servicio que procese
esas aplicaciones.
Esto indica
que el
servidor
(hardware)
requiere un
servidor, como
por ejemplo,
IIS para los
ASP o Apache
para PHP
<<device>>
El_Servidor
<<executionEnvironment>>
Servidor Web
Distribución de Piezas
Cuando la aplicación se encuentra instalada en varias partes
¿Cómo se podría interpretar lo siguiente?
<<device>>
El_Servidor
<<executionEnvironment>>
Servidor Web
Default.aspx
Clientes.aspx
Empleados.aspx
<<executionEnvironment>>
Reporteador
Incapacidades.rpt
FacturasPagadas.rpt
Configuracion.xml
<<device>>
Servidor_Datos
Aplicacion.db
12
08/10/2012
Y aún hay más
Otros diagramas, patrones de diseño y todo un mundo por descubrir
Los diagramas vistos hasta ahora son los básicos utilizados en la mayoría de los
análisis y diseños de sistemas. Sin embargo, es posible hace uso de más
diagramas que diferentes bibliografías sugieren, como máquinas de estados o
diagramas de componentes.
Lo importante es entender que la cantidad de diagramas que se realicen debe
ser acorde al tamaño del proyecto, ya que una cantidad excesiva de diagramas
puede retrasar el análisis y diseño del sistema, mientras que una cantidad
reducida para un sistema mayor puede resultar en que falten detalles
importantes.
Sea cual sea la necesidad a cubrir y los diagramas que se vayan a realizar,
siempre hay que recordar que los diagramas que más completos deben quedar
son siempre los Casos de Uso, ya que son los que nos guiarán durante el resto
del ciclo de vida y evolución del proyecto.
¡Gracias!
Con esto concluimos nuestra presentación
¿Preguntas?
13
Descargar