Desarrollo de Software
Orientado a Objeto usando UML
Introducción
Modelado de Software
UML
Breve Tour por UML
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)
Proceso de Desarrollo de SW basado en UML
Conclusiones
Desarrollo de Software
Orientado a Objeto usando UML
Introducción
Modelado de Software
UML
Breve Tour por UML
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)
Proceso de Desarrollo de SW basado en UML
Conclusiones
UML. Un análisis comparativo para la diagramación de softwareYaskelly Yedra
El propósito de este trabajo fue realizar un análisis comparativo entre el Lenguaje de Modelado Unificado (UML) con el desarrollo estructurado y los métodos orientados a objetos, a partir de los bloques de construcción de UML, con la finalidad de observar como surgió, evolucionó y se consolidó el UML como herramienta para la construcción de software. Los bloques de construcción de UML y los métodos de desarrollo estructurado y orientados a objetos se conforman con: elementos, relaciones y diagramas. A partir de esas similitudes, este trabajo utiliza el método de análisis comparativo para descubrir las semejanzas y diferencias de los distintos métodos cuando se construye software. Como conclusión del análisis se tiene que UML no garantiza el éxito de un proyecto, pero permite a los ingenieros centrarse en la entrega de un producto, utilizando un lenguaje de modelación estándar que además de ser consistente es soportado directamente por las mejores herramientas de software en una forma unificada.
Contenido:
1- Casos de Uso
2- Modelado de Dominio
3- Diagrama de Clases
4- Diagrama de Actividades
5- Diagrama de Estados
6- Diagrama e Despliegue
7- Diagrama de Secuencia
Gran compendio de los modelos de UML, que incluye todos los diagramas asociados , sus representaciones, componentes y ejemplos. Los diagramas de casos de uso, de clases, de distribución, de componentes, de colaboración , de objetos, de actividades , de secuencia, de estados y de colaboración son considerados en este gran compendio. Al finalizar la presentación se tendrá una idea general de los elementos fundamentales del diseño de sistemas empleando UML.
Un patrón es la abstracción de una forma concreta que puede repetirse en contextos específicos. Este concepto se aplica en el desarrollo de software, surgiendo distintos tipos de patrones como los de análisis, de arquitectura de software, de usabilidad o de interfaz, entre otros y los de diseño que son el punto central del presente trabajo de ascenso. El objetivo principal de este trabajo fue desarrollar un Generador de Patrones de Diseño (GEPADI) que sirva para implementar cualquier plantilla como solución a un problema dado. La metodología utilizada para desarrollar este generador fue la aplicada por GoF en su libro Patrones de Diseño: Elementos de Software Orientados a Objetos Reutilizables. Como resultado se obtuvo una herramienta que genera patrones de diseño en cualquier dominio del desarrollo de software y a su vez se pueden integrar estos patrones a cualquier aplicación, ya que están guardados en formato XML. Para validar la herramienta se desarrolló un catálogo de patrones en el dominio específico de gobierno electrónico creando patrones para este entorno. Se concluyó que el GEPADI puede generar patrones de diseño para entornos de dominio específico.
UML. Un análisis comparativo para la diagramación de softwareYaskelly Yedra
El propósito de este trabajo fue realizar un análisis comparativo entre el Lenguaje de Modelado Unificado (UML) con el desarrollo estructurado y los métodos orientados a objetos, a partir de los bloques de construcción de UML, con la finalidad de observar como surgió, evolucionó y se consolidó el UML como herramienta para la construcción de software. Los bloques de construcción de UML y los métodos de desarrollo estructurado y orientados a objetos se conforman con: elementos, relaciones y diagramas. A partir de esas similitudes, este trabajo utiliza el método de análisis comparativo para descubrir las semejanzas y diferencias de los distintos métodos cuando se construye software. Como conclusión del análisis se tiene que UML no garantiza el éxito de un proyecto, pero permite a los ingenieros centrarse en la entrega de un producto, utilizando un lenguaje de modelación estándar que además de ser consistente es soportado directamente por las mejores herramientas de software en una forma unificada.
Contenido:
1- Casos de Uso
2- Modelado de Dominio
3- Diagrama de Clases
4- Diagrama de Actividades
5- Diagrama de Estados
6- Diagrama e Despliegue
7- Diagrama de Secuencia
Gran compendio de los modelos de UML, que incluye todos los diagramas asociados , sus representaciones, componentes y ejemplos. Los diagramas de casos de uso, de clases, de distribución, de componentes, de colaboración , de objetos, de actividades , de secuencia, de estados y de colaboración son considerados en este gran compendio. Al finalizar la presentación se tendrá una idea general de los elementos fundamentales del diseño de sistemas empleando UML.
Un patrón es la abstracción de una forma concreta que puede repetirse en contextos específicos. Este concepto se aplica en el desarrollo de software, surgiendo distintos tipos de patrones como los de análisis, de arquitectura de software, de usabilidad o de interfaz, entre otros y los de diseño que son el punto central del presente trabajo de ascenso. El objetivo principal de este trabajo fue desarrollar un Generador de Patrones de Diseño (GEPADI) que sirva para implementar cualquier plantilla como solución a un problema dado. La metodología utilizada para desarrollar este generador fue la aplicada por GoF en su libro Patrones de Diseño: Elementos de Software Orientados a Objetos Reutilizables. Como resultado se obtuvo una herramienta que genera patrones de diseño en cualquier dominio del desarrollo de software y a su vez se pueden integrar estos patrones a cualquier aplicación, ya que están guardados en formato XML. Para validar la herramienta se desarrolló un catálogo de patrones en el dominio específico de gobierno electrónico creando patrones para este entorno. Se concluyó que el GEPADI puede generar patrones de diseño para entornos de dominio específico.
Teoria del modelado de objetos modificado,Teoria del modelado de objetos modificado,Teoria del modelado de objetos modificado,Teoria del modelado de objetos modificado,
En todas las disciplinas de la Ingeniería se hace evidente la importancia de los modelos ya que describen el aspecto y la conducta de "algo". Ese "algo" puede existir, estar en un estado de desarrollo o estar, todavía, en un estado de planeación. Es en este momento cuando los diseñadores del modelo deben investigar los requerimientos del producto terminado y dichos requerimientos pueden incluir áreas tales como funcionalidad, performance y confiabilidad. Además, a menudo, el modelo es dividido en un número de vistas, cada una de las cuales describe un aspecto específico del producto o sistema en construcción.
El modelado sirve no solamente para los grandes sistemas, aun en aplicaciones de pequeño tamaño se obtienen beneficios de modelado, sin embargo es un hecho que entre más grande y más complejo es el sistema, más importante es el papel de que juega el modelado por una simple razón: "El hombre hace modelos de sistemas complejos porque no puede entenderlos en su totalidad".
UML es una técnica para la especificación sistemas en todas sus fases. Nació en 1994 cubriendo los aspectos principales de todos los métodos de diseño antecesores y, precisamente, los padres de UML son Grady Booch, autor del método Booch; James Rumbaugh, autor del método OMT e Ivar Jacobson, autor de los métodos OOSE y Objectory. La versión 1.0 de UML fue liberada en Enero de 1997 y ha sido utilizado con éxito en sistemas construidos para toda clase de industrias alrededor del mundo: hospitales, bancos, comunicaciones, aeronáutica, finanzas, etc.
El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"YuseLis Andrades
En todas las disciplinas de la Ingeniería se hace evidente la importancia de los modelos ya que describen el aspecto y la conducta de "algo". Ese "algo" puede existir, estar en un estado de desarrollo o estar, todavía, en un estado de planeación. Es en este momento cuando los diseñadores del modelo deben investigar los requerimientos del producto terminado y dichos requerimientos pueden incluir áreas tales como funcionalidad, performance y confiabilidad. Además, a menudo, el modelo es dividido en un número de vistas, cada una de las cuales describe un aspecto específico del producto o sistema en construcción.
El modelado sirve no solamente para los grandes sistemas, aun en aplicaciones de pequeño tamaño se obtienen beneficios de modelado, sin embargo es un hecho que entre más grande y más complejo es el sistema, más importante es el papel de que juega el modelado por una simple razón: "El hombre hace modelos de sistemas complejos porque no puede entenderlos en su totalidad".
Taller de Modelamiento y Diagramación de Sistemas Automatizados con la utilización de las herramientas CASE Rational Rose Actividad N.- 1
www.modelado.pnfi.org
1. “Lenguaje de Modelamiento Unificado” Clase 01
Curso: “Lenguaje de
Modelamiento Unificado”
Clase 01
Relatores:
• Gerardo Cerda Neumann (gcerda@ucinf.cl)
• Alejandro Reyes Zúñiga (areyes@infodesign.cl)
• José Miguel Santibáñez Allendes (jms@caos.cl)
1
2. “Lenguaje de Modelamiento Unificado” Clase 01
Agenda
• Desarrollo de Software
• UML: Historia
• Características de UML
• Modelos y Diagramas
• Ejemplos varios
• Resumen UML
• Reflexiones
2
4. “Lenguaje de Modelamiento Unificado” Clase 01
Desarrollo de Software
Metodología.
2. f. Ciencia del método.
3. f. Conjunto de métodos que se siguen en
una investigación científica o en una
exposición doctrinal.
4
5. “Lenguaje de Modelamiento Unificado” Clase 01
Fundamento Metodológico
Análisis
Diseño
Construcción
Pruebas
Estructurados según alguno de los modelos conocidos:
• Cascada.
• Iterativo.
• Incremental.
• otros.
5
6. “Lenguaje de Modelamiento Unificado” Clase 01
Claves en el Análisis y Diseño
de Software
Notación UML
Herramientas Proceso
p.e. Enterprise Architect p.e. RUP
6
7. “Lenguaje de Modelamiento Unificado” Clase 01
¿Qué es UML?
• UML = Unified Modeling Language
• Un lenguaje de propósito 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)
7
8. “Lenguaje de Modelamiento Unificado” Clase 01
Situación de Partida
Diversos métodos y técnicas OO, con muchos aspectos
en común pero utilizando distintas notaciones
Inconvenientes para el aprendizaje, aplicación,
construcción y uso de herramientas, etc.
Pugna entre distintos enfoques (y correspondientes
gurús)
Establecer una notación estándar
8
9. “Lenguaje de Modelamiento Unificado” Clase 01
Historia de UML
Todo se inicia en la empresa “Rational Machines”,
(después, simplemente “Rational”).
Comenzó como el “Método Unificado”, con la
participación de Grady Booch (Método Booch en Rational)
y Jim Rumbaugh (OMT en GE). Se presentó en el
OOPSLA’95
El mismo año se unió Ivar Jacobson (OOSE en Objectory).
Los “Tres Amigos” crean UML, RUP y la herramienta
CASE: Rose.
En el 2003, la empresa IBM adquiere Rational por 2
millardos.
9
10. “Lenguaje de Modelamiento Unificado” Clase 01
Historia de UML (2)
• En 1996, los Tres Amigos deciden dejar de lado el
“Método Unificado” y crean UML.
• Presentan una versión preliminar al UML Partners
(consorcio creado ad-hoc) quienes definen la
propuesta al OMG (Object Management Group)
eso será UML 1.0
• Es estándar internacional ISO/IEC 19501:2005
corresponde a UML versión 1.4.2
• En Octubre de 2004, OMG adopta oficialmente
UML 2.0 como versión de trabajo actualizada.
• Se esperaba la revisión 2.1 para este año, pero no 10
11. “Lenguaje de Modelamiento Unificado” Clase 01
Aspectos Novedosos
Definición semi-formal del Metamodelo de UML
Mecanismos de Extensión en UML:
Stereotypes
Constraints
Tagged Values
Permiten adaptar los elementos de modelado,
asignándoles una semántica particular 11
12. “Lenguaje de Modelamiento Unificado” Clase 01
Inconvenientes en UML
Definición del proceso de desarrollo usando UML. UML
no es una metodología
Falta integración con respecto de otras técnicas tales como
patrones de diseño, interfaces de usuario, documentación,
etc.
Ejemplos aislados
“Monopolio de conceptos, técnicas y métodos en torno a
UML”
12
13. “Lenguaje de Modelamiento Unificado” Clase 01
Perspectivas de UML
UML será el lenguaje de modelado orientado a
objetos estándar predominante los próximos años
Razones:
– Participación de metodólogos influyentes
– Participación de importantes empresas
– Aceptación del OMG como notación estándar
Evidencias:
– Herramientas que proveen la notación UML
– Edición de libros
– Congresos, cursos, camisetas, etc.
13
14. “Lenguaje de Modelamiento Unificado” Clase 01
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 completamente 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
14
15. “Lenguaje de Modelamiento Unificado” Clase 01
Diagramas de UML
State
State
Use Case Diagrams de
Diagramas
Use Case Diagrams State
Use Case Diagrams de
Diagramas Clases State
Use Case Diagrams Diagrams de
Diagramas
Diagrams de
Diagramas Casos de Uso Diagrams
Diagrams Objetos
Secuencia
Scenario State
Scenario State
Diagrams de
Diagramas Diagrams de
Diagramas
Diagrams Diagrams
Colaboración Modelo Componentes
Scenario Component
Scenario Component
Diagramas de
Diagrams
Diagrams de
Diagramas Diagrams
Diagrams Distribución
Estados Diagramas de
Actividad
• Los diagramas expresan gráficamente partes de un modelo
15
17. “Lenguaje de Modelamiento Unificado” Clase 01
Diagramas de UML
Diagrama de Proceso de Negocio (extensión)
Diagrama de Clases
Diagrama de Casos de Uso
Diagramas de Interacción
Diagrama de Secuencia
Diagrama de Colaboración
Diagramas de Comportamiento
Diagrama de Actividad
Diagrama de Estado
Diagramas de Implementación
Diagrama de Componente 17
18. “Lenguaje de Modelamiento Unificado” Clase 01
Organización de Modelos
4+1 vistas de Kruchten (1995)
Vista de
Vista Lógica Realización
Vista de los
Casos de Uso
Vista de Vista de
Procesos Distribución
Este enfoque sigue el CASE Enterprise Architect
18
19. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos (Proceso de Negocio)
od Business Process Model
«objetivo»
Proceso NUEVO Vender el
Juguete
Distribuidor
Venta en Internet
Solicitud
de
Compra
salida
«entidad de negocio»
Venta
entrada
Base de
Datos
Juguetes
19
20. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos (Clase y Visibilidad)
Alumno
RUT : char[10]
número_exp : int
nombre : char[50]
alta()
poner_nota(asignatura : char *, año : int, nota : float)
matricular(cursos : asignatura, año : int)
listar_expediente()
20
21. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos (Asociación)
dirige direc tor
Departam ento Profes or
0..1 1
21
22. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos (Diagramas de Casos de
Uso)
Verificar Situación del Cliente
Supervisor
Preparar Catálogo
Administrativo Sis tema
Inventario
Ti pos de Venta
22
23. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos
• En el paquete tipos de venta:
Venta Normal
Venta en Rebajas
Vendedor
Venta en Ofertas
23
25. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos
<<include>>
Reintegro Cuenta Corriente
Cliente Verificar Operación
<<include>>
Reintegro Cuenta de Crédito
25
26. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos (Diagramas de Casos de
ud CU
Uso)
Consultar Juguetes
«extend»
Agregar Juguete
en Carro de
Compra
Distribuidor
Confirmar Compra Registrar Venta
«include»
Contabilidad
26
27. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos (Diagrama de Secuencia)
: WInP réstamos :Socio :Video : Préstamo
: Encargado
prestar(video, socio)
verificar situación socio
verificar situación video
registrar préstamo
entregar recibo
27
28. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos (Diagrama de Secuencia de
Sistema)
sd Consultar Juguetes
:Distri bui dor Si stema
Ingresar Fi l tro de Búsqueda
Real i zar Búsqueda de Juguetes
Despl egar Resultados de Búsqueda
28
29. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos (Diagrama de Actividad)
[no hay café] [no zumo]
Buscar Bebida
[hay café [hay zumo]
Poner café en filtro Añadir agua al depósito Coger taza
Poner filtro en máquina Coger zumo
Encender máquina
/ cafetera.On
Café en preparación
indicador de fin
Servir café
Beber
29
32. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos (Diagrama de Componente)
Control y Análisis
Interfaz de Terminal
Comment
Comment
Gestión de Cuentas Acceso a BD
Rutinas de Coneccion
Comment Comment
Comment
32
33. “Lenguaje de Modelamiento Unificado” Clase 01
Ejemplos (Diagrama de Despliegue)
Servidor Central Control y Análisis
Acceso a BD Comment
Comment
Rutinas de Coneccion
Comment
Terminal de Consulta
Interfaz de Terminal
Rutinas de Coneccion
Comment Comment
Punto de Venta
Rutinas de Coneccion
Comment
Gestión de Cuentas Interfaz de Terminal
Comment Comment
33
34. “Lenguaje de Modelamiento Unificado” Clase 01
Resumen
• UML define una notación que se expresa como
diagramas que sirven para representar
modelos/subsistemas o partes de ellos
• El 80 por ciento de la mayoría de los
problemas pueden modelarse usando
alrededor del 20 por ciento de UML-- Grady
Booch
34
35. “Lenguaje de Modelamiento Unificado” Clase 01
Modelado de Software: Algunas
Reflexiones
• Modelar para concebir el sistema y/o para
documentarlo
• Pragmatismo, los modelos deben ser útiles
• Sencillez y Elegancia
• Distintos nivel de abstracción, diferentes
modelos
35
36. “Lenguaje de Modelamiento Unificado” Clase 01
Modelado de Software: Algunas
Reflexiones (2)
• Seguimiento de transformaciones durante el
proceso (Traceability)
• Sincronización de modelos
• Dificultades para la introducción de
técnicas y herramientas de modelado
• Necesidad de Herramientas CASE
(Enterprise Architect)
36
37. “Lenguaje de Modelamiento Unificado” Clase 01
Finalmente
• Apostar por enfoque Orientado a Objetos usando
notación UML
• Problemas actuales en implementación, al usar
entornos de programación visual y/o bases de
datos relacionales
• Posibles mejoras a mediano plazo
– Evolución: Uso de BDOO y/o mejoras en los LPOO
– Revolución: Generación Automática de Código a partir
de Modelos OO (Compilación de Modelos)
37
38. “Lenguaje de Modelamiento Unificado” Clase 01
Bibliografía Recomendada
UML
http://www.omg.org/uml/ y http://www.uml.org
http://en.wikipedia.org/wiki/Unified_Modeling_Language
Meta-link http://www.cetus-links.org/oo_uml.html
Pierre-Alain Muller “Instant UML”
Martin Fowler, “UML Destilled” (“UML Gota a Gota”)
Terry Quatrani, “Visual Modeling ...”, un caso de estudio
Herramientas CASE
Herramientas basadas en UML
http://www.objectsbydesign.com/tools/umltools_byPrice.html
International Council in SE (INCOSE) www.incose.org/
http://www.incose.org/ProductsPubs/products/toolsdatabase.aspx
Otras
Revista IEEE Software, Conferencias: OOPSLA, ECOOP
Tutoriales en inglés http://www.ptcorp.com/training.htm
38
39. “Lenguaje de Modelamiento Unificado” Clase 01
Material basado en:
• Archivo PPT: Taller de UML y Herramientas CASE”
de Gerardo Cerda N. Universidad de Ciencias de la
Informática.
• Archivo PPT “Desarrollo de software orientado al
objeto” preparado por Patricio Letelier Torres,
Departamento Sistemas Informáticos y Computación
(DSIC), Universidad Politécnica de Valencia (UPV) –
España
• Sitio Web “Craftware” http:www.craftware.net
• Sitio Web “Wikipedia”: http://en.wikipedia.org/wiki/
Unified_Modeling_Language
• Se recomienda: 39
40. “Lenguaje de Modelamiento Unificado” Clase 01
Curso: “Lenguaje de
Modelamiento Unificado”
Clase 01
Relatores:
• Gerardo Cerda Neumann (gcerda@ucinf.cl)
• Alejandro Reyes Zúñiga (areyes@infodesign.cl)
• José Miguel Santibáñez Allendes (jms@caos.cl)
40
Notas del editor
Se reconoce que el método Booch es mejor para el análisis y que OMT es mejor para el Diseño. GE: General Electric, donde Rumbaugh desarrolló OMT. OOSE: Object Oriented Software Engineering Objectory , la empresa de Jacobson, era parte del grupo Ericsson. Se les conoce como “Los tres amigos”, pues pese a traabajar juntos y presentar juntos los distintos productos (UML, RUP y Rose) frecuentemente discutían acerca de sus preferencias personales respecto de orientación a objeto.