Modelando con UML

 

César Liza Avila

 

PRESENTACION

 

El Lenguaje Unificado de Modelado (UML), es un lenguaje para representar modelos de sistemas especialmente intensivos en el uso de software y no un método de desarrollo de software, como piensan muchos. Puede ser usado con diversos métodos, pero se obtiene mejor provecho de él, cuando se utiliza con el Proceso Unificado de Desarrollo de Software o Unified Software Development Process (USDP).

 

Este lenguaje simbólico para expresar modelos, a tenido un éxito impresionante debido a que fue creado por tres de los más importantes metodólogos: Booch, Rumbaugh y Jacobson, cuyos respectivos métodos de desarrollo de software orientado a objetos dominaban juntos más del 50% del mercado antes del lanzamiento oficial del UML. Ellos se reunieron en Rational Software para crear primero un método unificado, pero se dieron cuenta que era mejor primero unificar la simbología de sus métodos. Su propuesta de lenguaje de modelado a recibido el respaldo de las más grandes compañías de software del mundo y del OMG, una organización que difunde y crea estándares para el uso de tecnologías orientadas a objetos Este éxito se refleja en el uso cada vez mayor del lenguaje. Así, en la actualidad, la inmensa mayoría de proyectos informáticos utilizan el UML, además están apareciendo cada vez más herramientas de software que lo soporta, frecuentemente se dictan cursos de capacitación y las universidades están incluyendo el UML en los cursos de carrera.

 

Se han escrito ya muchos libros sobre el tema; sin embargo, cada uno de éstos tiene un objetivo, algunos intentan enseñar el UML como parte del Proceso Unificado, otros enseñan solo una pequeña parte de él y de manera informal, otros hablan del UML en combinación con Patrones de Software, otros son sólo manuales de referencia, guías de usuario, hablan del desarrollo de pequeños sistemas con UML, tratando de enseñar todo en un solo libro: el UML, el proceso, el CASE, el Lenguaje Visual y así por el estilo. También, podemos consultar el tedioso manual oficial de UML o, buscar en Internet páginas sobre el tema, pero éstas solo arañan la superficie del lenguaje, contienen muy pocos ejemplos prácticos y la gran mayoría de éstos ejemplos son los mismos. Así por ejemplo, para aquellos que hemos navegado por Internet buscando sobre UML, encontramos varias veces el conocido el ejemplo de la máquina de café y aunque muchos no han visto nunca una máquina como éstas, suele tomarse como ejemplo para el dictado de cursos sobre el tema y, por supuesto los profesores y alumnos difícilmente pueden imaginarse lo que ocurre en el caso de uso “dar vueltas”. Como no encontramos ningún libro que contenga una definición precisa de los elementos de UML y sobre todo que cuente con ejemplos prácticos, es que decidimos escribirlo.

 

Pensamos que no se puede enseñar todo al mismo tiempo: el UML, el Proceso Unificado y el uso de herramientas CASE que utilicen UML; sino más bien, en enseñar claramente los principios y como aplicarlos a situaciones concretas, ayudándonos de numerosos ejemplos. Así, utilizamos el mismo enfoque de los “Tres Amigos” (Booch, Rumbaugh y Jacobson),  esto es, separamos el proceso de desarrollo de software de la notación. Este libro solamente trata de la notación, mientras que en uno próximo, hablaremos sobre el proceso, y tal vez otro sobre alguna herramienta CASE que permita modelar con UML.

 

En este libro encontrará más de 70 ejemplos desarrollados sobre los 9 diagramas del UML: casos de uso, clases, objetos, secuencia, colaboración, estado, actividad, componentes y despliegue. Asimismo, encontrará más de 75 ejercicios propuestos que sin duda, serán de valiosa ayuda, tanto para los que recién se inician, así como también para los docentes que enseñan el UML y para aquellos que ya conozcan el lenguaje.

 

En cada una de mis obras intento demostrar mediante ejemplos como la teoría se aplica a la práctica, bajo la premisa: “una buena teoría es lo más práctico”. Espero que con los ejemplos contenidos en este libro usted pueda aplicar los fundamentos de la orientación a objetos y del UML, a los modelos de la realidad que seguramente desarrollará en un futuro muy próximo.

 

Le rogamos que cualquier crítica, sugerencia, o inquietud, la dirija a la siguiente dirección electrónica: creadores@hotmail.com, que gustosos la responderemos con el ánimo de mejorar cada día. Asimismo, le invitamos a visitar nuestra página web www.geocities.com/cesar_liza.

 

César Liza Avila.

  

 

 

CONTENIDO

 

 

Presentación.............................................................................................17

 

CAPITULO I: Introducción al UML..........................................................19

    El lenguaje de modelado unificado..............................................................20

    El OMG................................................................................................20

    Características generales del UML..............................................................21

    Beneficios del UML.................................................................................22

    Alcances del UML...................................................................................23

    Lo que UML no intenta............................................................................24

    Origen de UML y cómo se convirtió en un estándar.......................................25

    UML presente y futuro............................................................................28

    La importancia de modelar.......................................................................29

    Vistas de un modelo...............................................................................30

    Diagramas UML......................................................................................31

 

CAPITULO II: Diagramas de Casos de Uso........................................33

    Diagramas de Casos de Uso......................................................................34

    Casos de Uso.........................................................................................34

        Representación gráfica de los casos de uso………........................................35

        Nomenclatura de los casos de uso... ......................................................35

        Características de los Casos de Uso.........................................................36

    Los casos de uso son clasificadores..............................................................36

    Actores..................................................................................................37

       Representación gráfica de un actor...........................................................38

       Nomenclatura de un actor......................................................................38

    Relaciones en los diagramas de casos de uso................................................39

    Relación de asociación..............................................................................39

       Representación gráfica de una asociación..................................................39

       Nomenclatura de una relación de asociación ..............................................40

    Relación de generalización.........................................................................40

       Representación gráfica de la relación de generalización.................................41

       Nomenclatura de una relación de generalización..........................................41

       Casos típicos.......................................................................................41

    Relación <<include>>.............................................................................42

       Representación gráfica de una relación <<include>>...................................43

       Nomenclatura de una relación <<include>>..............................................43

       Casos típicos.......................................................................................43

    Relación <<extend>>.............................................................................44

       Representación gráfica de una relación <<extend>>..................................44

       Nomenclatura de una relación <<extend>>..............................................45

       Casos típicos.......................................................................................45

       Puntos de extensión en un caso de uso...................................................45

    Cuando usar <<include>> y <<extend>>..................................................46

    Representación gráfica de los diagramas de casos de uso...............................47

    Documentación de los diagramas de casos de uso.........................................48

       Documentación de un caso de uso con relación <<include>>.......................49

       Documentación de un caso de uso con relación <<extend>>.......................50

    Paquetes de casos de Uso.......................................................................50

    Cómo construir los diagramas de casos de uso.............................................51

       Cómo encontrar los Actores...................................................................51

       Cómo encontrar los casos de uso...........................................................51

       Cómo encontrar las relaciones entre actores y casos de uso.........................52

       Describir el flujo de eventos...................................................................52

Ejemplos..................................................................................................53

Ejercicios Propuestos...................................................................................66

 

CAPITULO III: Diagrama de Clases.................................................... 69

    Diagrama de Clases...................................................................................70

    Diagrama de Objetos.................................................................................70

    Clase......................................................................................................71

    Representación Gráfica...............................................................................71

    PRIMER COMPARTIMIENTO........................................................................72

        Nombre...............................................................................................72

        Multiplicidad de la Clase...........................................................................73

    SEGUNDO COMPARTIMIENTO.....................................................................73

        Atributos..............................................................................................73

        Especificando atributos............................................................................73

        Visibilidad de los atributos.........................................................................74

        Multiplicidad (multiplicity) de los atributos......................................................75

        El tipo (type) de los atributos....................................................................75

        Valor inicial de un atributo.........................................................................76

        Cadena de propiedades (property string) ...................................................76

        Alcance de los atributos...........................................................................77

    TERCER COMPARTIMIENTO........................................................................78

        Operaciones..........................................................................................78

        Visibilidad de las operaciones.....................................................................79

        Lista de parámetros (parameters list) ........................................................80

        El tipo de retorno (return-type) de las operaciones.........................................81

        El valor por defecto (default value) de las operaciones....................................82

        Alcance de las operaciones.......................................................................82

    Polimorfismo y operaciones polimórficas...........................................................83

    Responsabilidades de las clases......................................................................84

    Casos particulares de clases..........................................................................85

        Clase Abstracta......................................................................................86

        Clase Parametrizada................................................................................87

        Clase Asociación.....................................................................................89

        Clase Activa...........................................................................................89

        Clase Utilidad (utility class) .......................................................................90

        Clase Interfaz (Interface Class) ................................................................90

        Clase Hoja (Leaf Class)............................................................................91

        Clase Raíz (Root Class)...……...............…..................................................91

        Metaclase (metaclass)............................................................................91

    Relaciones entre clases...............................................................................92

    Relación de Dependencia............................................................................93

    Relación de Generalización..........................................................................95

    Relación de Asociación...............................................................................96

        Extremo de la Asociación (Association End) ...............................................97

        Detallando una Asociación......................................................................97

    Clasificación de una Relación de Asociación....................................................99

    Clasificación según el número de clases participantes.......................................99

        Asociación binaria................................................................................99

        Asociación N-aria...............................................................................100

    Clasificación según como se unen para formar otra clase...............................100

        Asociación AND (And Association) ..................................….…………………..101

            Asociación de Agregación……...........................................................101

            Asociación de Composición..............................................................102

        Asociación XOR (Xor Association)..........................................................102

     Estrategia para la creación del Diagrama de Clases.......................................103

     Ejemplos.............................................................................................104

     Ejercicios propuestos.............................................................................120

 

CAPITULO IV: Diagramas de Secuencia...............................................123

    Diagrama de Secuencia...........................................................................124

    Representación gráfica.............................................................................124

    Objetos................................................................................................125

    Línea de vida de un objeto........................................................................125

    Activación o Foco de Control......................................................................126

    Mensaje................................................................................................126

    Tipos de mensajes..................................................................................127

        Mensaje Asíncrono..............................................................................127

        Mensaje de llamada a procedimiento.......................................................127

        Mensajes Concurrentes.......................................................................127

    Bifurcación de mensajes..........................................................................128

    Iteración de mensajes.............................................................................128

    Tiempos de Transición.............................................................................128

    Métodos Recursivos.................................................................................129

    Recomendaciones para dibujar diagramas de secuencia………………....................129

    Ejemplos...............................................................................................130

    Ejercicios propuestos...............................................................................136

 

CAPITULO V: Diagramas de Colaboración...........................................139

    Diagrama de Colaboración.......................................................................140

    Representación gráfica............................................................................140

    Objeto................................................................................................141

    Formas en que se presentan los objetos.....................................................141

        Objeto Activo....................................................................................141

        Objeto Multiobjeto..............................................................................142

        Objeto Compuesto ............................................................................142

    Enlace..................................................................................................142

    Flujo de mensajes..................................................................................143

    Numeración de mensajes…......................................................................143

    Mensaje al mismo objeto.........................................................................144

    Marcadores de creación y destrucción de objetos..........................................144

    Mensajes condicionales............................................................................145

    Mensajes condicionales mutuamente excluyentes..........................................145

    Iteraciones............................................................................................145

    Visibilidad...............................................................................................146

        Visibilidad de Atributo............................................................................147

        Visibilidad de Parámetro........................................................................147

        Visibilidad Local...................................................................................148

        Visibilidad Global..................................................................................149

    Become................................................................................................149

    Ejemplos...............................................................................................150

    Ejercicios propuestos...............................................................................156

 

CAPITULO VI: Diagramas de Estado................................................157

    Diagrama de Estados................................................................................158

    Representación Gráfica..............................................................................158

    Estado...................................................................................................159

        Compartimiento para el nombre..............................................................159

        Compartimiento para variables de estado..................................................159

        Compartimiento para acciones................................................................160

            Entry………………………..............................................................……….160

            Exit................................………………………...................……………………..161

            Do.................…..............................................................…………..…161

            Include…................................................................................………161

    Estados inicial y final.................................................................................163

    Estado compuesto...................................................................................163

    Simplificación de diagramas........................................................................164

    Ocultamiento de la composición..................................................................165

    Name Tab.....……...................................................…….............................166

    Evento...................................................................................................166

    Llamadas a eventos.................................................................................166

    Especificación del tiempo……….....................................................................167

    Transición...............................................................................................167

        Transición simple..................................................................................168

        Transición compleja..............................................................................169

        Transición interna.................................................................................169

        Autotransición......................................................................................170

    Transición hacia y desde a estados compuestos o anidados..............................171

    Indicador de historia..................................................................................172

    Ejemplos...............................................................................................173

    Ejercicios propuestos................................................................................185

 

CAPITULO VII:Diagramas de Actividad............................................187

    Diagrama de Actividad..............................................................................188

    Representación gráfica..............................................................................189

    Actividad................................................................................................189

    Acción...................................................................................................189

    Representación de Actividades y Acciones…………...........................................190

    Transiciones...........................................................................................190

    Decisiones.............................................................................................191

    Reunión de una bifurcación.......................................................................191

    Barras de sincronización...........................................................................192

    Inicio y terminación.................................................................................192

    Diagramas de actividad anidados................................................................193

    Carriles.................................................................................................193

    Representación de objetos en un diagrama de actividad..................................194

    Flujo de objetos......................................................................................194

    Señales.................................................................................................195

        Señal de envío....................................................................................196

        Señal de recibo...................................................................................196

    Eventos diferidos.................................................................................... 197

    Ejemplos...............................................................................................198

    Ejercicios propuestos................................................................................206

 

CAPITULO VIII: Diagrama de Componentes.....................................207

    Diagrama de Componentes......................................................................208

    Componentes........................................................................................209

    Representación de componentes...............................................................210

    Tipos de Componentes...........................................................................210

    Usos de los diagramas de componentes.....................................................211

    Relación entre clases y Componente………...................................................212

    Estereotipos definidos.............................................................................213

    Importancia de los componentes...............................................................214

    Interfaces.............................................................................................214

    Representación de interfaces.....................................................................215

    Ejemplos...............................................................................................217

    Ejercicios propuestos................................................................................221

 

CAPITULO IX: Diagrama de Despliegue...........................................223

    Diagrama de Despliegue............................................................................224

    Nodos...................................................................................................224

    Representación de Nodos..........................................................................225

    Tipos de Nodos.......................................................................................225

    Estereotipos de los nodos...........................................................................226

    Conexiones entre nodos............................................................................226

    Representación de conexiones....................................................................227

    Los nodos ejecutan componentes...............................................................227

    Usos de los diagramas de Despliegue..........................................................228

    Recomendaciones para modelar diagramas de despliegue................................228

    Ejemplos...............................................................................................229

    Ejercicios propuestos................................................................................236

 

 

Bibliografía..............................................................................................237

 

Acerca del Autor.......................................................................................239

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RELACION DE EJEMPLOS

 

 

 

Capitulo 2:

2.1  : Caso de uso adecuado en un procesador de textos.

2.2  : Cinco casos de uso típicos en procesador de textos.

2.3  : Actores en un sistema de ventas de un supermercado.

2.4  : Si Ud. fuera empleado bancario y cliente ¿qué actor es usted?.

2.5  : ¿Cuál es el actor, si el Sistema Ventas alimenta a Sistema Contable?

2.6  : Caso de uso "enviar factura" en una empresa de servicio público.

2.7  : Generalización entre actores Supervisor de Ventas y Vendedor.

2.8  : Relación extend. Caso de uso Validar Usuario.

2.9  : Relación include. caso de uso venta de un activo al crédito.

2.10: Generalización de casos de uso. Realizar cobranza.

2.11: Casos de uso de ventas.

2.12: Distintos escenarios para un sistema.

2.13: Casos de uso para un sistema de pedidos por teléfono.

2.14: Casos de uso de un teléfono celular.

2.15: Casos de uso de máquina lavadora de botellas, tarros y bidones.

 

Capitulo 3:

3.1  : Clases que puede encontrar en una casa.

3.2  : Visibilidad, nombre, multiplicidad y tipo de la Clase Pared.

3.3  : Multiplicidad de la Clase Pisos.

3.4  : Uso del valor inicial para clases dentro de una casa.

3.5  : Relación entre la Clase Pared y la Clase Ventana.

3.6  : Clase que implementa funciones matemáticas.

3.7  : Relación de dependencia entre clases.

3.8  : Generalización de Clases. La Clase Persona.

3.9  : La Clase Cuenta Bancaria.

3.10: Clase abstracta en un sistema de ajedrez.

3.11: La clase vehículo: automóvil, camión, barco o avión.

3.12: Relaciones entre compañías y empleados.

3.13: Clase Asociación para torneo de fútbol.

3.14: Agregación. La Clase Polígono.

3.15: Composición. Una computadora personal.

3.16: La Clase Factura.

3.17: Generalización y Asociación XOR en una cuenta bancaria.

3.18: Clase Parametrizada. Una Lista de Elementos.

 

Capitulo 4:

4.1  : Diagrama de Secuencia para compras en un supermercado.

4.2  : Diagrama de Secuencia para una llamada telefónica.

4.3  : Diagrama de Secuencia cuando un usuario imprime un archivo.

4.4  : Diagrama de Secuencia para coger una pelota con la mano.

4.5  : Diagrama de Secuencia para un juego de dados.

 

Capitulo 5:

5.1  : Diagrama de Colaboración para calcular total de venta de factura.

5.2  : Diagrama de Colaboración del proceso ingresar nuevo cliente.

5.3  : Diagrama de Colaboración para atención de pedido.

5.4  : Diagrama de Colaboración para producción sobre pedido.

5.5  : Diagrama de Colaboración para venta de un pasaje por avión.

 

Capitulo 6:

6.1  : Diagrama de Estados de una vela común.

6.2  : Diagrama de Estados de un boleto que se vende por Internet.

6.3  : Diagrama de Estados para una puerta levadiza de un garaje.

6.4  : Diagrama de Estados de un libro en una Biblioteca.

6.5  : Diagrama de Estados para la acción de marcar un número telefónico.

6.6  : Diagrama de Estados para la caja de cambio de un automóvil.

6.7  : Diagrama de Estados para una cuenta bancaria.

6.8  : Diagrama de Estados de un ascensor.

6.9  : Diagrama de Estados para una máquina expendedora.

 

 

Capitulo 7:

7.1  : Diagrama de Actividad de un Sistema de Biblioteca.

7.2  : Diagrama de Actividad para impresión del informe de vuelo de avión.

7.3  : Diagrama de Actividad de atención de pedido.

7.4  : Diagrama de Actividad incluyendo estados del objeto Pedido.

7.5  : Diagrama de actividad que calcula intersección de dos rectas.

7.6  : Diagrama de Actividad para solicitud de servicio.

7.7  : Diagrama de Actividad de pago con tarjeta de crédito.

 

Capitulo 8:

8.1  : Diagrama de Componentes de programa en C++ graficas.cpp.

8.2  : Diagrama de Componentes de programa graficos.exe.

8.3  : Diagrama de Componentes de una agenda electrónica.

8.4  : Diagrama de Componentes en una pagina web.

 

Capitulo 9:

9.1  : Diagrama de Despliegue de programa administrador.exe y user.exe

9.2  : Diagrama de Despliegue de equipo de computo doméstico.

9.3  : Diagrama de Despliegue de una red Microsoft.

9.4    : Diagrama de Despliegue de una red estrella.

9.5    : Diagrama de Despliegue de una cabina Internet línea dedicada.

9.6    : Diagrama de Despliegue de una cabina Internet conexión satelital.

9.7    : Diagrama de Despliegue de una aplicación de búsquedas.