1 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Modelado de Software Orientado a Objetos usando
UMLDr. Pedro Mejia Alvarez
Departamento de ComputacionCINVESTAV-IPN
2 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
ContenidoI. Introducción
– Modelado de Software– UML
II. Breve Tour por UMLIII. El Paradigma Orientado a Objeto usando UML
– Fundamentos del Modelado OO– Requisitos del software– Interacción entre objetos– Clases y relaciones entre clases– Comportamiento de objetos– Componentes– Distribución y despliegue de componentes– Object Constraint Language (OCL)
IV. Proceso de Desarrollo de SW basado en UMLV. Conclusiones
3 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
IIntroducción
4 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Introducción: Modelado de SW
5 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Construcción de Algoritmo de Fibonacci
Puede hacerlo una sola personaRequiere:
Modelado mínimoProceso simpleHerramientas simples
int fib(int val){ if ((val==1)||(val==2)) return 1; else return (fib(val-1)+fib(val-2)); }
6 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Construcción del software para un cajero automatico
Construida eficientemente y en un tiempo razonable por un equipoRequiere:
ModeladoProceso bien definidoHerramientas más sofisticadas
I. Introducción: Modelado de SW
Auto-tellersystem
Securitysystem
Maintenancesystem
Accountdatabase
Usagedatabase
Branchaccounting
system
Branchcountersystem
7 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Sistema de Radar de Aeropuerto
Data comms.system
Transpondersystem
Radarsystem
Aircraftcomms.
Telephonesystem
Flight plandatabase
Backupposition
processor
Positionprocessor
Comms.processor
Backup comms.processor
Aircraftsimulation
system
Weather mapsystem
Accountingsystem
Controllerinfo. system
Controllerconsoles
Activity loggingsystem
Herramientas Proceso
Notación
8 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Pero, como se modela un sistema con esta complejidad ?
9 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Beneficios del Modelado
Interface de Usuario(Visual Basic,
Java, ..)Lógica del Negocio
(C++, Java, ..)
Servidor de BDs(C++ & SQL, ..)
Múltiples Sistemas
Componentes Reutilizados
Manejar la complejidad
“Modelar el sistema independientemente del lenguaje de implementación”
Promover la Reutilización
10 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Introducción: UML
11 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
¿Qué es UML? UML = Unified Modeling Language Un lenguaje de propósito general para el
modelado orientado a objetos. Impulsado por el Object Management Group (OMG, www.omg.org)
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)
12 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Antes de UML Diversos métodos y técnicas OO, con muchos
aspectos en común pero utilizando distintas notaciones.
Modelos de Constantine, Jackson, Gane Sarson, Shlaer-Mellor, etc.
Inconvenientes para el aprendizaje, aplicación, construcción y uso de herramientas CASE, etc.
Pugna entre distintos enfoques
Objetivo: Establecer una notación estándar
13 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Antes de UML Modelos de descripción de procesos: Diagramas
de flujo de datos. Modelos de descripción de datos: Diagramas de
entidad-relación, diccionario de datos. Modelos de descripción arquitectural: Diagramas
de Estructura. Modelos de descripción de comportamiento:
State-Charts.
14 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Historia de UML Comenzó como el “Método Unificado”,
con la participación de Grady Booch y Jim Rumbaugh. Se presentó en el OOPSLA’95
El mismo año se unió Ivar Jacobson. Los “Tres Amigos” son socios en la compañía Rational Software. Herramienta CASE Rational Rose
15 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Historia de UML
Nov ‘97 UML aprobado por el OMG
1998
1999
2000
UML 1.2
UML 1.3
UML 1.4
2005? UML 2.0
Revisiones menores
UML 1.52003
16 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
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 D’Souza) Intellicorp and James
Martin & co. (James Odell)
MCI Systemhouse Microsoft ObjecTime Oracle Corp. Platinium
Technology Sterling Software Taskon Texas Instruments Unisys
17 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
UML reune a enfoques OO
UML
RumbaughJacobson
Meyer
Harel
Wirfs-BrockFusion
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
18 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Factores importantes en UML Definición del proceso de desarrollo usando
UML. UML no es una metodología o proceso. No cubre todas las necesidades de
especificación de un proyecto software.
Util en la definición de requerimientos, pero tambien en el diseño (y en las pruebas…).
Notacion estándar y soportada por herramientas CASE
Estándar del OMG Gran cantidad de Libros y cursos.
19 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
IIIntroducion a UML
20 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Modelos y Diagramas Un modelo captura una vista de un sistema del
mundo real. Es una abstracción de dicho sistema, considerando un cierto propósito. Así, el modelo describe completa-mente aquellos aspectos del sistema que son relevantes al propósito del modelo, y a un apropiado nivel de detalle.
Diagrama: una representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo con vértices conectados por arcos
OMG UML 1.4 Specification
21 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés
El código fuente del sistema es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se requieren otros modelos ...
Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de trazabilidad entre los diferentes modelos
... Modelos y Diagramas
22 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Diagramas de UML
Use CaseDiagramsUse Case
DiagramsDiagramas de Casos de Uso
ScenarioDiagramsScenario
DiagramsDiagramas deColaboración
StateDiagramsState
DiagramsDiagramas deComponentes
ComponentDiagramsComponent
DiagramsDiagramas deDistribución
StateDiagramsState
DiagramsDiagramas de Objetos
ScenarioDiagramsScenario
DiagramsDiagramas deEstados
Use CaseDiagramsUse Case
DiagramsDiagramas deSecuencia
StateDiagramsState
DiagramsDiagramas deClases
Diagramas deActividad
Modelos
Los diagramas expresan gráficamente partes de un modelo
23 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Diagrama de Casos de Uso
Es una técnica para capturar información sobre los servicios
queun sistema proporciona a suentorno, desde el punto de vista
delusuario. Es una técnica para
capturay especificación de requisitos
Retirar dinero
Consultar ExtractoCliente
Realizar transferencia
24 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Diagrama de Clases El Diagrama de Clases es el diagrama principal
para el análisis y diseño del sistema Un diagrama de clases presenta las clases del
sistema con sus relaciones estructurales y de herencia
La definición de clase incluye definiciones para atributos y operaciones
El modelo de casos de uso debería aportar información para establecer las clases, objetos, atributos y operaciones
25 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Clases y Objetos
AlumnoDNI : char[10]número_exp : intnombre : char[50]
alta()poner_nota(asignatura : char *, año : int, nota : float)matricular(cursos : asignatura, año : int)listar_expediente()
En UML, para distinguir una clase y una instancia de la clase (un objeto) se representa por un rectángulo con un nombre subrayadoObjeto = Identidad + Estado + ComportamientoEl estado está representado por los valores de los atributos los cuales tienen una visibilidad.Un atributo toma un valor en un dominio concreto.
26 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Diagramas de Clases
Un diagrama de clases describe los tipos de objetosen el sistema y los distintos tipos de relacionesestáticas que existen entre ellos. Existen cuatrorelaciones:
• Asociación• Generalización/especialización• Agregación/composición• Dependencia
27 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
AsociaciónProfesorDepartamento
10..1
director
1
dirige
0..1
•Permite asociar objetos.•La asociacion se representa mediante una línea que une las cajas de los dos objetos.
Empresa Empleado
1..** 1..**
trabajadoresempleador
Cargonombresueldo 0..1
1..*
superior
subordinado 1..*
0..1
28 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Generalización
Catalogue numberAcquisition dateCostTypeStatusNumber of copies
Library item
Acquire ()Catalogue ()Dispose ()Issue ()Return ()
AuthorEditionPublication dateISBN
BookYearIssue
MagazineDirectorDate of releaseDistributor
Film
VersionPlatform
Computerprogram
TitlePublisher
Published itemTitleMedium
Recorded item
Esta es una relación de tipo: es-un. Una generalización serepresenta como una flecha que une a las subclases(hijos) a la superclase (padre), con la flecha tocando la caja de la superclase.
29 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Relacion de Dependencia entre Clases
Se usa para mostrar relaciones entre paquetes (grupos de clases)
ProveedorCliente
30 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Agregacion de Objetos
Videotape
Tape ids.
Lecturenotes
Text
OHP slidesSlides
AssignmentCredits
SolutionsTextDiagrams
Exercises#ProblemsDescription
Course titleNumberYearInstructor
Study pack•En este modelo se muestra como las clases pueden estar compuestas por otras clases.•Existe la relacion de agregacion y la de composicion.•Son similares a los modelos de entidad-relacion.
31 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Diagrama de Secuencia
: Encargado :WInPréstamos :Socio :Video :Préstamo
prestar(video, socio)
verificar situación socio
verificar situación video
registrar préstamo
entregar recibo
Describe el comportamiento dinamico del los objetos en el sistema
32 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Diagrama de Colaboración
: Encargado
:WInPréstamos
:Socio
:Video
:Préstamo
1: prestar(video, socio)
2: verificar situación socio
3: verificar situación video
4: registrar préstamo5: entregar recibo
Modela la interacción entre los objetos de un Caso de Uso
Los objetos están conectados por enlaces (links) en los cuales se representan los mensajes enviados acompañados de una flecha que indica su dirección
Ofrece una mejor visión del escenario cuando el analista está intentando comprender la participación de un objeto en el sistema
33 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Diagrama de Estados
con préstamos
sin préstamos
alta baja
prestar devolver[ número_préstamos = 1 ]
prestar
devolver[ número_préstamos > 1 ]
número_préstamos = 0
número_préstamos > 0
Socionúmero : intnombre : char[50]número_prestamos : int = 0
alta()baja()prestar(código_libro : int, fecha : date)devolver(código_libro : int, fecha : date)
Modela el comportamiento de una parte del sistema
34 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Diagrama de ActividadBuscar Bebida [ no hay café ]
Poner café en filtro
Añadir agua al depósito
Coger taza
Poner filtro en máquina
Encender máquina
Café en preparación
/ cafetera.On
Servir café Beber
Coger zumo
[ hay café ]
indicador de fin
[ hay zumo ]
[ no zumo ]Es un caso especial de un diagrama de state-chart en donde los estados son actividades (“funciones”). Es util para dibujar los flujos de trabajo (workflows) en un sistema
Puede especificar:
(1)El comportamiento de los objetos de una clase
(2) La lógica de una operación (método)
(3) Parte o toda la descripción de un Caso de uso
(4) La descripción de un Flujo de Trabajo
35 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Diagrama ComponentesInterfaz de Terminal
Gestión de Cuentas Rutinas de conexión Acceso a BD
Control y Análisis
Permite modelar la estructura del software y la dependencia entre componentes, en donde un componente es un grupo de clases que trabajan estrechamente. Los componentes pueden corresponder código fuente, binario o ejecutable.
Una relación de dependencia indica que un componente utiliza otro, por lo cual depende de él
36 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Diagrama de Despliegue
Punto de Venta
Servidor Central
Terminal de Consulta
Gestión de Cuentas
Comment
Interfaz de Terminal
Comment
Rutinas de ConeccionComment
Rutinas de Coneccion
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Acceso a BD
Comment
Control y Análisis
Comment
Modela la distribución en tiempo de ejecución de
los elementos de procesamiento y componentes de
software, junto a los procesos y objetos
asociados Se modelan los nodos y
la comunicación entre ellos
Cada nodo puede contiene instancias de
componentes
37 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Paquetes en UML Los paquetes ofrecen un mecanismo
general para la organización de los modelos/subsistemas agrupando elementos de modelado
Se representan gráficamente como:
Nombre de paquete
38 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
… Paquetes en UML Cada paquete corresponde a un
submodelo (subsistema) del modelo (sistema)
Un paquete puede contener otros paquetes, sin límite de anidamiento pero cada elemento pertenece a (está definido en) sólo un paquete
Una clase de un paquete puede aparecer en otro paquete por la importación a través de una relación de dependencia entre paquetes
39 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
… Paquetes en UML
Todos los elementos no son necesariamente visibles desde el exterior del paquete, es decir, un paquete encapsula a la vez que agrupa
El operador “::” permite designar una clase definida en un contexto distinto del actual
40 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
...Paquetes en Rational Rose
CheckingAccount
Customers
Banking
Customers
Banking
<<access>> CheckingAccount(f rom Banking)
Otra Clase
41 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Los modelos se usan para describir al sistema de software Modelo del sistema: Modelo de objetos
+ modelo funcional + modelo dinamico
Modelo de objetos: Cual es la estructura del sistema? Cuales son los objetos y cual es su relacion?• Notacion UML: Diagramas de clases
Modelo funcional: Cuales son las funciones del sistema? Como fluyen los datos en el sistema?• Notacion UML: Diagramas de casos de uso
Modelo dinamico: Como reaccciona el sistema a eventos externos (e internos) y cual es el flujo de eventos?• Notacion UML: Diagramas de secuencia, state charts y de
actividad.
42 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Modos de utilizacion de UML Ingenieria hacia adelante(Forward
Engineering)• Se comienza con un modelo antes de producir codigo
Ingenieria en reversa (Reverse Engineering)• Se crea un modelo a partir de algun codigo• Proyectos de interfaces o re-ingenieria
Ingenieria ciclica (Roundtrip Engineering)• Se mueve constantemente entre ingenieria hacia
adelante y en reversa.• Util en proyectos que utilizan el modelo de procesos
evolutivo, o cuando los requerimientos cambian frecuentemente.
Se asume que a partir de UML se puede producir codigo, pero en donde se ubica UML dentro del proceso de Diseño ?.
43 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Proceso de Desarrollo Unificado basado en UML
Propuesta de Rational Unified Process (RUP) M. de Casos de Uso del Negocio (Business Use-Case Model) M. de Objetos del Negocio (Business Object Model) M. de Casos de Uso (Use-Case Model) M. de Análisis (Analysis Model) M. de Diseño (Design Model) M. de Despliegue (Deployment Model) M. de Datos (Data Model) M. de Implementación (Implementation Model) M. de Pruebas (Test Model)
44 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Claves en el Desarrollo de Software
Herramientasp.e. Rational Rose
Poseidon
Procesop.e. Rational Unified Process
Métrica 3.0 o XP
NotaciónUML
45 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Modelado de Software. ¿Cuál es el propósito de nuestros modelos?
“Documentar”. Comunicar ideas y estudiar alternativas Tomar decisiones de análisis/diseño que dirijan la
implementación Generar parcial o totalmente una implementación a partir de
los modelos Pragmatismo, los modelos deben ser útiles.
Principio básico: “Sencillez y Elegancia” Gestión de modelos
Distintos nivel de abstracción, expresados en diferentes modelos
Seguimiento de transformaciones durante el proceso (Traceability)
Sincronización de modelos Dificultades para la introducción de notaciones y
herramientas de modelado. La importancia del Proceso de Desarrollo
46 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
Resumen
UML define una notación que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos
El modelo de proceso RUP utiliza UML para el modelado.
47 Pedro Mejia Curso de Ingeniería de Software, CINVESTAV-IPN
BibliografíaPartes de este Curso esta basado en el siguiente material:
Curso de Desarrollo de Software Orientado a Objetos usando UML, del Prof. Patricio Letelier Torres, del DSIC de la Universidad Politecnica de Valencia.
Transparencias del Libro: Object-Oriented Software Engineering: Using UML, Patterns, and Java, Bernd Bruegge & Allen H. Dutoit (3rd. Edition). Prentice Hall, 2009.
UML• www.omg.org/uml/• Martin Fowler, autor de “UML Destilled” (“UML Gota a Gota”)
http://www.martinfowler.com/
Herramientas CASE• Rational Rose de IBM • Herramientas basadas en UML www.objectsbydesign.com/tools/
umltools_byPrice.html
Top Related