Sei sulla pagina 1di 71

Introduccin a UML

Orientacin a objetos Definir, organizar, visualizar Historia de UML Diagramas bsicos UML

Metodologa de desarrollo
Versin 3.1 Noviembre 2000

Daniel Ramos

Orientacin a Objetos

Manera diferente de ver una aplicacin Organizar la complejidad en microestructuras Componentes reutilizables Adaptabilidad a un entorno cambiante De la orientacin a datos a las reglas de negocio Interdependencia Flexibilidad
Daniel Ramos

Orientacin a Objetos
Cambio de mentalidad
Mentalidad Procedural Qu hace el sistema? Qu objetivos tiene ? Cmo diseo y codifico para conseguir los objetivos? Enfoque dirigido a los algoritmos Enfoque centrado en los datos Mentalidad O-O Qu objetos configuran el sistema? Cual es la estructura y funcin de cada objeto? Cmo puedo precisar la dinmica del sistema a travs del comportamiento o la interaccin de sus objetos? Posponer las funciones algortmicas Posponer el modelo de datos

Daniel Ramos

Orientacin a Objetos

Encapsulacin
Empaquetamos dentro de un objeto una pieza de informacin con un comportamiento especfico que acta sobre esta informacin

Ventaja:
Limitamos

los efectos de cambios sobre el sistema

Daniel Ramos

Orientacin a Objetos

Herencia
Es un mecanismo que nos permite crear nuevos objetos basados en una progenie Ventaja:
Facilidad

de mantenimiento

Daniel Ramos

Orientacin a Objetos

Polimorfismo
Capacidad de aplicar distintas implementaciones a una determinada funcionalidad

Ventaja:
Simplicidad

y orden

Daniel Ramos

Definir, Organizar, Visualizar

Daniel Ramos

Definir, Organizar, Visualizar

Lenguaje comn Evitar la trampa del lenguaje Modelo de referencia Evolucin ordenada de los cambios Trazabilidad Desde la funcionalidad al cdigo Reduccin de costes Evitar los costes ocultos de mantenimiento
Daniel Ramos

Agentes

Usuario Comprender que tipo de interacciones podran realizar con el sistema Analista Saber cuales son los objetos del sistema y como interactan en distintos escenarios Desarrollador Conocer la estructura y funcin de los objetos a implementar y qu recursos son necesarios
Daniel Ramos

Agentes

Responsable de la certificacin Preparar los tests de prueba a partir de las interacciones previstas entre objetos Jefe de proyecto Entender la arquitectura del sistema y la interdependencia de sus componentes Cliente Planificar el impacto del sistema dentro de la organizacin
Daniel Ramos

Historia de UML

UML es una notacin no una metodologa


Inicio: 1993 (Booch & Rumbaugh & Jacobson) 1995 versin UML 0.8 1997 versin UML 1.0 1999 versin UML 1.3

Daniel Ramos

Historia de UML
Jacobson

Jacobson

Booch

Rumbaugh

Daniel Ramos

Diagramas bsicos UML


Diagrama de Casos de Uso Diagrama de Actividad Diagrama de Secuencia Diagrama de Colaboracin Diagrama de Estado Transicin Diagrama de Clases

Diagrama de Componentes
Diagrama de Despliegue
Daniel Ramos

Diagrama de Casos de Uso

Procesos principales
Configurar Aplicacin

Tramitador

Matricular Alumnos Componer Tribunal

Modificar Matrculas
Generar Actas Exam. Modificar Actas Exam.

S. Tasas

Supervisor

Consultar Listas/Eti.
Profesor

S. Accesos

Daniel Ramos

Diagrama de Casos de Uso


<<Incluye>>
Tramitador

Matricular Alumnos

<<Incluye>> Validar Requisitos

Identificar Alumno <<Incluye>> <<Extiende>>

<<Incluye>> <<Incluye>>
Generar Generar Mov. Tasa <<Incluye>> Generar Rfaga Banc.
Daniel Ramos Cod. Anonimato

Imprimir
Abonar Recibo

Calcular
Importe Matrcula

Diagrama de Casos de Uso


Muestran la granularidad del sistema en piezas de funcionalidad reutilizables Muestran la interaccin de los Actores con la funcionalidad del Sistema Organizan visualmente los requerimientos del usuario Permiten certificar contractualmente la funcionalidad Formalizan el mapa de procesos de negocio
Daniel Ramos

Diagrama de Casos de Uso

Daniel Ramos

Diagrama de Casos de Uso

Daniel Ramos

Diagrama de Casos de Uso

Especificacin de un Use Case (1) UC Matricula_alumnosM25


Propsito Precondiciones
Usuario tramitador habilitado
Parmetros aplicacin definidos

Activacin
A discrecin de un usuario habilitado

Realizar el proceso de matriculacin para la prueba de acceso a universidad para mayores de 25 aos con las funciones de: - Identificacin del Alumno - Validacin de Requisitos - Tramitacin del pago

Daniel Ramos

Diagrama de Casos de Uso

Especificacin de un Use Case (2)


Flujo Principal
1. Usuario activa ventana de matriculacin. 2. Usuario identifica alumno con el UC Defini_alumno. 3. Sistema valida requisitos matriculacin M25. 4. Usuario selecciona criterio de destino. 5. Sistema muestra datos por defecto: idioma, clase de liquidacin, fecha de matrcula. 6. Usuario registra la matrcula. 7. Sistema asigna NIP y cdigo de anonimato al alumno. 8. Sistema genera mov. de tasa. Daniel Ramos

Ventajas de los Casos de Uso

Lenguaje de comunicacin entre usuarios y desarrolladores Comprensin detallada de la funcionalidad del Sistema Acotacin precisa de las habilitaciones de los usuarios

Trazabilidad desde los requerimientos al cdigo ejecutable


Daniel Ramos

Ventajas de los Casos de Uso

Gestin de riesgo para gobernar la complejidad de un sistema Planificacin de iteraciones para su implementacin Estimacin precisa del esfuerzo para su implementacin

Documentacin orientada al usuario: Manual de Procedimientos & Reglas de Negocio


Daniel Ramos

Diagrama de Actividad

Muestra la secuencia de actividades que se desarrollan en el flujo de trabajo de un Caso de Uso, como pieza de funcionalidad concreta Muestra el flujo de trabajo que se desarrolla en un proceso configurado como un paquete de Casos de Uso

Daniel Ramos

Diagrama de Actividad
Buscar Alumno Introducir Criterios de Bsqueda

Validar Criterios

Descripcin de un flujo de trabajo

Buscar Alumnos Sigma Ac


[Alumno NO Localizado[ [Alumno SI Localizado[

Dar Alta Alumno


[Matrcula SI Localizada[

Seleccionar un Alumno
[Matrcula NO Localizada[

Comprobar Situacin Matrcula

Comprobar Situacin Alumno

Daniel Ramos

Diagrama de Actividad

Su objetivo no es relacionar actividad con objetos, slo comprender qu actividades son necesarias y cuales son sus relaciones de dependencia Se utiliza para representar los distintos escenarios que comprende un Caso de Uso y permite describir tareas sincronizadas y responsabilidades
Daniel Ramos

Diagrama de Secuencia

Describe la interaccin de objetos que requiere la funcionalidad de los distintos escenarios de un Caso de Uso

Los objetos son representados con su ciclo de vida dentro de una serie temporal
Cada posible escenario de un Caso de Uso puede representarse con un diagrama de secuencia
Daniel Ramos

Diagrama de Secuencia
Descripcin de un escenario de Caso de Uso

:Tramitador :Vent. Matriculacin


Activa
Identifica Alumno

:Alumno

:Parmetros Ap.

Valida Alta

Valida Requisitos Crea nuevo Alumno


Solicita datos por defecto + Fecha Mat. Registra Matrcula Calcula Importe Mat

:Matrcula
Daniel Ramos

Diagrama de Colaboracin

Muestra lo mismo que un diagrama de secuencia cmo interaccionan los objetos dentro de un Caso de Uso

A diferencia de un diagrama de secuencia no hay referencia a una serie temporal Su propsito es mostrar la topologa del proceso distribuido entre los distintos objetos
Daniel Ramos

Diagrama de Colaboracin
10: Commit( )

Order #1234 : Order

9: GetInfo( )

Transaction Manager : TransactionMgr

7: SetInfo(long, string, long, long)

8: SaveOrder(long)

6: Create( ) Order Options Form : OrderOptions 2: Open( ) 1: Create( )

Order Manager : OrderMgr

5: SaveOrder(long)

Order Detail Form : OrderDetail : Salesperson 4: Save( ) 3: SubmitInfo( )

Daniel Ramos

Diagrama de Estado Transicin

Muestra los distintos estados en que un objeto puede existir Presenta la visin dinmica del sistema

Describe el comportamiento de un objeto, desde que nace hasta que muere Identifica todos los eventos necesarios para realizar la transicin de un estado a otro
Daniel Ramos

Diagrama de Estado Transicin


Identificar Alumno
[Alumno SI Localizado[ /Entrar Matrcula [Alumno NO Localizado[ /Alta Matrcula

Comprobando
Localizar/ AlumnoM25

Comprobando
Verificar/ Ao Acadmico Situacin Matrcula Situacin Acceso U

[Forma de Pago: Efectivo[

Nueva Matrcula
Generar/Alta Alumno M25

[Ao Acad Act & SI Matricula & SI Acceso U[ /Modificar Matrcula

Comprobando
Formalizar/ Pago Matrcula

[Pago Conciliado NO Morosidad[

Matrcula Validada Conciliada

Matrcula Modificada

[Pago NO Conciliado[ /Anular Matrcula

[Forma de Pago: Banco[ /Reactivar Matrcula

Matrcula Anulada

[Forma de Pago: Efectivo[ /Reactivar Matrcula

Matrcula Reactivada

Dinmica del Sistema


Daniel Ramos

Diagrama de Estado Transicin

La dinmica de un sistema est determinada por:


Todos Todas

los posibles estados de sus objetos


los posibles eventos que afectan a los

objetos
Todas

las posibles transiciones de un estado

Daniel Ramos

Diagrama de Estado Transicin


Un evento no es un objeto Un evento es la causa que justifica la existencia de un objeto Slo podemos conocer que un evento ha ocurrido detectando sus efectos Slo nos interesan los eventos que provocan un cambio de estado en los objetos Hay que distinguir un evento como tal, del objeto que representa el registro de sus efectos
Daniel Ramos

Diagrama de Clases

Una Clase representa a un tipo de objetos que comparten:


Las El

mismas propiedades (Atributos)

mismo comportamiento (Mtodos)

Las

mismas relaciones con otros objetos (asociaciones y agregaciones) misma semntica dentro del sistema

La

Daniel Ramos

Diagrama de Clases
Matrcula

Tramitador

Curso Alumno

Agente

Profesor

Oferta Cursos

Daniel Ramos

Diagrama de Clases

Un Objeto representa a una entidad del mundo real o inventada

Es un concepto que dispone de una definicin (intensin) y de una aplicabilidad (extensin)


Es la instancia de una Clase

Daniel Ramos

Agentes

Usuario Comprende el modelo conceptual de su dominio Analista y Diseador Definen la arquitectura del sistema Desarrollador Organiza el cdigo de manera simple y ordenada y traza el mapeo con la base de datos
Daniel Ramos

Clases de Anlisis

No cubren los requerimientos no funcionales No definen operaciones, solo responsabilidades Definen atributos conceptuales Relaciones sin navegabilidad Estereotipadas como:
interface

entidad

control

Daniel Ramos

Clases de Anlisis

Interface
Interface

de usuario Interface de sistema Interface de dispositivos

Entidad
Informacin

del sistema A menudo persistente

Control
Comportamiento

del sistema Lgica del negocio


Daniel Ramos

Definir las Clases


Operaciones

Atributos
Daniel Ramos

Clases de Diseo

Identificar Clases del Diseo desde el Anlisis Identificar Subsistemas

Daniel Ramos

Patrones de Diseo

Pattern: Composite
Problem:

Need to protect clients from knowing if an object is a whole or a part Simplifies adding new parts in whole-part relationships Simplifies the client permitting the client to treat whole or part objects generically
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

Daniel Ramos

Patrones de Diseo

Pattern: Proxy

Problem:
Need to control access to another object Need to provide abstraction between subsystem and client Enhanced maintainability and extensibility of the system May reduce compilation dependencies Promotes layering of systems Provides weak coupling between clients and Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides subsystems
Daniel Ramos

Framework de Aplicaciones

Pattern: Message Logging Framework

Problem:
How can a medium to large system consisting of multiple and possibly distributed programs employ a straightforward and consistent message logging strategy?

Athens Arquitectural Componentes

Daniel Ramos

Diagrama de Componentes

Muestra la vista fsica del modelo

Muestra los componentes de software que configuran el sistema y su interdependencia


Presenta dos tipos de componentes:
Ejecutables Libreras

de cdigo

Cada clase del modelo es mapeada con el cdigo fuente de un componente


Daniel Ramos

Diagrama de Componentes

Daniel Ramos

Diagrama de Componentes

Son utilizados por el responsable de compilar el sistema Describen en qu orden han de ser compilados los componentes Muestran qu componentes run-time seran creados como resultado de la compilacin Muestran el mapeo de las clases con los componentes implementados

Daniel Ramos

Diagrama de Componentes
Vista de los componentes ejecutables
Conta.exe
Sistema Contabilidad

Matrcula.exe

Agentes.dll Cursos.dll
Cursos Usuarios

Alumnos Curso Oferta de Cursos

Profesores

Daniel Ramos

Diagrama de Despliegue

Muestra la distribucin fsica de los componentes en nodos locales y remotos de la red Un nodo puede representar una pieza de hardware, desde un perifrico a un servidor

Presenta los distintos componentes de una arquitectura en tres capas (3Tier)


Servidor

de datos Servidor de aplicaciones Cliente


Daniel Ramos

Diagrama de Despliegue
Vista de la distribucin fsica de nodos de proceso

Daniel Ramos

Diagrama de Despliegue

Vista de la arquitectura 3Tier

Daniel Ramos

Agentes

Arquitecto Supervisar el cumplimiento de los requerimientos no funcionales


Disponibilidad Rendimiento Escalabilidad

del sistema

Implementador Comprender mejor la topologa de un sistema distribuido


Daniel Ramos

Arquitectura

Daniel Ramos

Metodologa de desarrollo

Aprobacin Anteproyecto

Realizacin Plan Director

Interfaces Implementacin Documentacin Bases de Datos Certificacin Especificaciones

Cdigo

Matrcula Proyecto

Procesos Principales

Funcionalidad

Anlisis Diseo

Componentes Despliegue

Daniel Ramos

Metodologa de desarrollo
Fases Procesos Generales
Modelo de Negocio Funcionalidad Anlisis Diseo Implementacin Certificacin
Concepcin Elaboracin Construccin Transicin

Entrega

Procesos de Soporte
Control de cambios Gestin del Proyecto Entorno
Iteraciones prelim Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1

Iteraciones Daniel Ramos

Concepcin

Misin del proyecto Matriculacin del proyecto Glosario de conceptos Estimacin de esfuerzo y cronograma Apoyo en patrones de funcionalidad y anlisis Umbral de riesgo Aprobacin del anteproyecto Proceso secuencial no iterativo
Daniel Ramos

Elaboracin

Funcionalidad Priorizacin de los Casos de Uso Plan Director de Proyecto: Iteraciones Especificacin de los Casos de Uso Anlisis Diseo Pruebas de certificacin Proceso iterativo
Daniel Ramos

Construccin

Poner el diseo en accin Desarrollo de cdigo Refactoring Mapeo de la base de datos Interface grfica de usuario: Navegacin Pruebas de certificacin Proceso iterativo

Daniel Ramos

Transicin

Compilacin y despliegue de componentes Pruebas de certificacin Actualizacin del modelo de referencia Actualizacin del diseo y otros diagramas Documentacin de usuario Documentacin de administrador de sistema Plan de formacin Plan de soporte
Daniel Ramos

Metodologa de desarrollo
Concepcin Elaboracin Construccin Transicin

Iteracin Preliminar

...

Iteracin Arquitectura

...

Iteracin Iteracin Desarrollo Desarrollo

...

Iteracin Transicin

...

Release

Release

Release

Release

Release

Release

Release

Release

Iteracin : Secuencia de actividades con un Plan Director


establecido y un criterio de certificacin que finaliza con una versin ejecutable

Daniel Ramos

Metodologa de desarrollo
Requerimientos Anlisis Diseo Implementacin Certificacin

Modelo Casos de Uso

Modelo Anlisis

Modelo Diseo

Modelo de Componentes

Modelo de Despliegue

Modelo de Certificacin

Diagr. de Casos de Uso

Diagr. de Actividad

Diagr. de Secuencia

Diagr. de Diagr. de Colaboracin Clases/Objetos

Diagr. de Estados

Diagr. de Diagr. de Componentes Despliegue

Daniel Ramos

Plan de certificacin
Certificacin de la Funcionalidad

Flujos de Trabajo

Especificacin Casos de Uso

Diagramas Casos de Uso

Escenarios
Daniel Ramos

Dinmica Estados

Plan de certificacin
Certificacin del Modelo de Referencia
Matrcula Tramitador
aadirAlumno(Curso, DatosAlu)

Prueba Examen

Supervisor nombre

Alumno nombre

Curso nombre nmeroCrditos abierto() aadirAlumno(DatosAlu)

Profesor Status

Oferta Cursos Centro abierto() aadirAlumno(DatosAlu)

Diagramas de Clases
Interfaces

Modelo de Datos
Daniel Ramos

Plan de certificacin
Certificacin de Componentes

Arquitectura

Daniel Ramos

Agentes del Modelo


Mtodo tradicional

Requerimientos

Cdigo

Agente

Proceso cooperativo

Requerimientos

Cdigo

Modelo

Daniel Ramos

Agentes del Modelo

Cliente y Jefe de proyecto


Usaran

los diagramas de Casos de Uso para visualizar la globalidad del sistema y delimitar el alcance del proyecto

Jefe de proyecto
Usar

los diagramas de Casos de Uso y la documentacin asociada para descomponer el proyecto en un Plan Director de Iteraciones

Daniel Ramos

Agentes del Modelo

Analista y Cliente
Usaran

la documentacin asociada a los Casos de Uso para comprender mejor y delimitar la funcionalidad del sistema

Documentalista
Usar

la documentacin asociada a los Casos de Uso para redactar los manuales de usuario y definir el plan de formacin

Daniel Ramos

Agentes del Modelo

Analista y Desarrollador
Usaran

los diagramas de secuencia y colaboracin para visualizar la lgica del sistema, y el flujo de mensajes entre los objetos que lo componen

Controller
Usar

la documentacin asociada a los Casos de Uso y los diagramas de secuencia y colaboracin para disear las pruebas de certificacin

Daniel Ramos

Agentes del Modelo

Desarrollador
Usar

los diagramas de Clases y los diagramas de Estado Transicin para visualizar la estructura de todas las piezas claves del sistema y la dinmica de su comportamiento

Implementador
Usar

los diagramas de Componentes y los diagramas de Despliegue para visualizar los ejecutables, ficheros DLL y otros componentes, as mismo la distribucin de su despliegue en la red
Daniel Ramos

Agentes del Modelo

Todos los Agentes


Usaran

el modelo de referencia para garantizar la trazabilidad entre los requerimientos y el cdigo, y para asegurar la trazabilidad entre el cdigo y la funcionalidad

Proceso cooperativo

Requerimientos

Cdigo

Modelo
Daniel Ramos

Referencias:

www.therationaledge.com www.omg.org www.vico.org www.creangel.com/uml www.macroware.8k.com

Daniel Ramos

Potrebbero piacerti anche