CURSO DE UML Dotar al alumno de los fundamentos de la programación orientada a objetos (POO, a partir de ahora), definir las características básicas del lenguaje de modelado unificado (Unified Modeling Language o UML) y aprender a crear los principales diagramas gráficos empleados por UML para modelar una aplicación desde el punto de vista estático y dinámico. Dirigido a: A cualquier persona interesada en el análisis, diseño e implementación de aplicaciones basadas en lenguajes POO como Java, C#, C++, Smalltalk, etc. En particular, es un curso muy recomendable para analistas funcionales, jefes de proyecto y especialistas en arquitectura de sistemas, que nunca han trabajado con técnicas POO y que precisan: Desarrollar un sistema software empleando técnicas POO. Migrar un sistema existente que no utiliza técnicas POO, a otro que sí lo hará. Requisitos: Deseable un mínimo de 512 MB de RAM, 1GHz de frecuencia de trabajo del microprocesador, espacio disponible en disco duro superior a 2 GB, tarjeta de sonido básica y tarjeta gráfica básica. Los programas recomendados para dibujar los diagramas UML serán, en la medida de lo posible, open-source y free-software, es decir, de código abierto y gratuitos. Poseidon (versión Community) Magic Draw (versión Community) ArgoUML (versión Community) Eclipse con plug-in UML2.0 IBM Rational Software Modeler (es de pago) Su instalación y configuración se explicarán en las primeras lecciones del curso. PROGRAMA DEL CURSO TEMA 1.-Programación orientada a objetos (POO) Describir en detalle los conceptos básicos de la POO y sus principios fundamentales. Comprender que UML se basa en los conceptos y principios anteriores
1 Introducción 2 Objetos 3 Clases 4 Modelo de objetos 5 Abstracción 6 Encapsulación 7 Modularidad 8 Herencia 9 Paso de Mensajes 10 Polimorfismo 11 Relaciones entre objetos 12 Visibilidad TEMA 2.- UML (Conceptos básicos) Distinguir las fases que componen el desarrollo de un sistema software y el trabajo que debe realizarse en cada una de ellas Diferenciar entre requisitos funcionales no funcionales Definir y gestionar adecuadamente los requisitos funcionales Dibujar diagramas de casos de uso Conocer los componentes principales del diagrama de casos de uso 1 Qué es 2 Tipos de diagramas 3 Ejemplos 3.1 Diagrama de casos de uso 3.2 Diagrama de clases 3.3 Diagrama de paquetes 3.4 Diagramas de secuencia 3.5 Diagrama de comunicación o colaboración 3.6 Diagrama de estados 3.7 Diagrama de componentes 3.8 Diagrama de despliegue 4 Estándar UML 5 Para qué
6 Por qué 7 Cuándo 8 Cómo 9 Orígenes 10 Conclusión TEMA 3.- Diagrama de casos de uso Distinguir las fases que componen el desarrollo de un sistema software y el trabajo que debe realizarse en cada una de ellas Diferenciar entre requisitos funcionales no funcionales Definir y gestionar adecuadamente los requisitos funcionales Dibujar diagramas de casos de uso Conocer los componentes principales del diagrama de casos de uso 1 Qué es un caso de uso 2 Detalle de un caso de uso 3 Componentes de un DCU 3.1 Casos de uso 3.2 Actores 3.3 Relaciones entre actores y casos de uso 3.4 Relaciones entre casos de uso 4 Ventajas del uso del dcu 5 Identificación de casos de uso 6 Identificación de actores 7 Ejercicios TEMA 4.- Diagrama de clases Definir la estructura estática del sistema Conocer y dibujar los componentes principales de un diagrama de clases Describir y representar las relaciones entre las clases del sistema
1 Qué es una clase 2 Diagrama de clases 3 Componentes de un dc 4 Relaciones entre clases 4.1 Asociación 4.1.1 Nombre 4.1.2 Mutiplicidad 4.1.3 Navegabilidad 4.2 Todo/Parte 4.2.1 Agregación 4.2.2 Composición 4.3 Reflexiva 5 Comentario final 6 Ejercicios TEMA 5.- Diagramas de interacción Conocer los diagramas de interacción: diagrama de secuencia, diagrama de colaboración o comunicación y diagrama de tiempos Describir la funcionalidad de cada uno de ellos Describir sus componentes fundamentales Representarlos gráficamente 1 Diagramas de interacción 2 Diagrama de secuencia 3 Componentes de un ds 3.1 Líneas de vida 3.2 Mensajes 4 Diagrama de colaboración 5 Ejercicios (ejercicio obligatorio) Ejercicio 2 (ejercicio obligatorio)
TEMA 6.- Diagramas de estados y de actividad Definir el ciclo de vida de un objeto Describir el estado de un objeto y las transiciones por la que pasa durante su ciclo de vida Conocer el mecanismo a través del cual un objeto pasa de un estado a otro. Concepto de evento Representar gráficamente un diagrama de estados Conocer en qué se basa el diagrama de actividades Describir los tipos de encadenamiento Describir qué se entiende por actividad Conocer cuando interesa representar un diagrama de actividad Seleccinar adecuadamente la actividad que se pretende modelar Representar gráficamente un diagrama de actividad 1 Diagramas de estados y actividad 2 Estado, evento y transición 3 Diagrama de estados 4 Acciones y actividades 5 Diagrama de actividades 6 Las actividades y las acciones 7 Nodos de decisión y combinación 8 Nodos de bifurcación y unión 9 Ejercicios TEMA 7.- Diagramas de componentes y despliegue Definir un componente Conocer las tecnologías de componentes más utilizadas Diferenciar las diferentes tipos de interfaces que un componente puede proporcionar a un cliente Detallar los posibles servicios suministrados por componentes Representar gráficamente un diagrama de componentes Describir la arquitectura física del sistema
Conocer qué es un nodo y un artefacto Detallar las relaciones entre componentes, artefactos y nodos Representar gráficamenete un diagrama de despliegue 1 Introducción 2 Diagrama de despliegue 3 Nodo 4 Artefacto 5 Diagrama de componentes 6 Componente 7 Interfaces requeridas 8 Componentes con puertos 9 Ejercicios TEMA 8.- Ejemplo completo Definir y explicar todos los diagramas necesarios para modelar una aplicación del mundo real 1 Arquitectura 2 Diagramas 3 Diagrama de modelos 4 Componentes de un dc 5 Relaciones entre clases 5.1 Asociación 5.1.1 Nombre 5.1.2 Mutiplicidad 5.1.3 Composición 5.2 Reflexiva 6 Ejercicios