Introducción a UML 1
• Significa notaciones, técnicas y métodos para producir varios modelos de un sistema en diferentes niveles de abstracción y granularidad basados en losprincipios de:
– Objetos– Clases de objetos– Encapsulamiento– Herencia– Polimorfismo
La orientación a objetos (OO)
Introducción a UML 2
(1,3)
(2,2)
(2,1)
(5,2.5)
Vehículo
Punto
Figura
Animal
Introducción a UML 3
Característicascolorpesoformaetc.,….
Funcionalidadesencendido del motorlimpia parabrisasfrenaretc.,……
Vehículo
Abstraídos en
Diagramas en UML
Introducción a UML 4
El bloque de construcción básico de UML es un “Diagrama”
Diagrama de Clase • Diagrama estático que describe la estructura de un sistema
mostrando sus clases, atributos y las relaciones entre ellas. • Se utilizan en el proceso de análisis y diseño de los sistemas,
donde se crea el diseño conceptual de la información que se manejará en el sistema, los componentes que se encargaran del funcionamiento y la relación entre uno y otro.
• Describe gráficamente las especificaciones de las clases de software y de las interfaces (por ejemplo, las de Java) en una aplicación.
• Contiene la siguiente información:– Clases, asociaciones y atributos.– Interfaces, con sus operaciones y constantes.– Métodos.– Información sobre los tipos de los atributos.– Navegabilidad.– Dependencias.
Introducción a UML 5
Diagrama de Clase
Para elaborar un diagrama de clases orientado al diseño:
• Identifique todas las clases que participan en la solución del software.
• Dibújelas en un diagrama de clases.• Identifique los atributos provenientes de los conceptos asociados
del modelo conceptual.• Agregue los nombres de los métodos.• Incorpore la información sobre los tipos a los atributos y a los
métodos.• Agregue las asociaciones necesarias para dar soporte a la
visibilidad requerida de los atributos.• Agregue flechas de navegabilidad a las asociaciones para indicar
la dirección de la visibilidad de los atributos.
Introducción a UML 6
Diagrama de Clases
• Clase: Descripción de un conjunto de objetos que comparten los mismos atributos, operaciones y relaciones.
• Se representa mediante un rectángulo con hasta tres compartimentos:– nombre de la case– lista de atributos– lista de métodos
Introducción a UML 7
Introducción a UML 8
Ejemplo de Clase
Objetos bicicletas
Abstraídos en
Clase Bicicleta
Atributos
Tamaño de frameTamaño de llantaMaterial ...
Métodos
CambioMoverFrenar...
Diagrama de Clase: Atributos• Atributo: valores que corresponden a un objeto, como color,
material, cantidad, ubicación. Información detallada del objeto. Suponiendo que el objeto es una persona, sus propiedades serían: nombre, edad, sexo, etc.
• Tipo: Puede llegar a depender del lenguaje de programación a utilizar (public, protected, private).
• Valor inicial: valor que poseerá el atributo al crear un objeto.• Visibilidad: Está relacionado con el encapsulamiento.• Multiplicidad: Determinar si un atributo debe estar o no, y si posee
un único valor o una lista de valores.– 1-> El atributo debe tener un único valor.– 0..1-> El atributo puede o no tener un valor.– 0..* -> El atributo puede tener varios valores o ninguno.– 1..*-> El atributo puede tener varios valores, pero debe tener al
menos uno– * -> El atributo puede tener varios valores.– M..N ->El atributo puede tener entre M y N valores.
Introducción a UML 9
Diagrama de Clase: Atributos• Visibilidad• El encapsulamiento presenta las siguientes ventajas básicas:
– Se protegen los datos de accesos indebidos– Favorece la modularidad y el mantenimiento
• Los atributos de una clase no deberían ser manipulables directamente por el resto de objetos.
• Niveles de encapsulamiento:• (-) Privado: Es el más fuerte. Esta parte es totalmente invisible
desde fuera de la clase (excepto para clases friends en terminología C++).
• (~) Package: Sólo es visible dentro del mismo package.• (#) Los atributos/métodos protegidos están visibles para las clases
friends y para las clases derivadas de la original.• (+) Los atributos/métodos públicos son visibles a otras clases.
Introducción a UML 10
Diagrama de Clase: Métodos
• Un método (operación) es la implementación de un servicio que puede ser requerido a cualquier objeto de la clase para que muestre un comportamiento. Una operación es una abstracción de algo que se puede hacer a un objeto y que es compartido por todos los objetos de la clase.
• Para cada método debe especificarse:
– Tipo devuelto: Puede llegar a depender del lenguaje de programación a utilizar.
– Parámetros: Especificación del tipo de datos y la información que determina el funcionamiento de la clase.
– Visibilidad: Está relacionada con el encapsulamiento (-, #, +).
Introducción a UML 11
Introducción a UML 12
Ejemplo de Clase
UML
Java
Alumno
-nombre:: String -domicilio : String
+Alumno (n:String, d:String)+setNombre(n:String):void+getNombre():String
public class Alumno { private String nombre; private String domicilio;
public Alumno(String n, String d) {} public void setNombre (String n) {} public String getNombre() {}}
Introducción a UML 13
Instancia
Una instancia es un objeto creado a partir de una clase.
La clase describe la estructura de la instancia (información y comportamiento), mientras que el estado actual de la instancia es definido por las operaciones ejecutadas.
Introducción a UML 14
Instancia
Alumno alumno3 = new Alumno(“Jose Lopez”, “Centenario”); alumno3: Alumno
nombre = Jose Lopezdomicilio = Centenario
alumno2: Alumno
nombre = Abel Garcíadomicilio = Los ceibos
alumno1: Alumno
nombre = Juan Perezdomicilio = Las Peñas
Alumno
-nombre:: String -domicilio : String
+Alumno (n:String, d:String)+setNombre(n:String):void+getNombre():String
Creación de instancias u objetos a partir de la clase Alumno:
Alumno alumno1 = new Alumno(“Juan Perez”, “Las Peñas”);
Alumno alumno2 = new Alumno(“Abel Garcia”, “Los ceibos”);
Introducción a UML 15
Constructor
Método especial con el mismo nombre de la clase.
Es llamado automáticamente cuando un objeto de una clase es creado.
Se encarga inicializar las variables del objeto.Puede tomar argumentos pero no pueden
retornar un valor.Se puede tener más de un constructor en una
clase.
Introducción a UML 16
Permite instanciar objetos de la clase
Alumno
-nombre:: String -domicilio : String
+Alumno (n:String, d:String)+setNombre(n:String):void+getNombre():String
Introducción a UML 17
Ejemplo de Constructor
public class Count { private int count; public Count( ) { count = 0; } public Count (int number) { count = number; }}Count contador = new Count( );
Diagrama de Clase: Relaciones entre Clases• En un diagrama de clases los vínculos entre clases se representan
por líneas, dependiendo del tipo de relación.• Relaciones entre clases:
– Asociación: Es una relación estructural que describe una conexión entre objetos. La multiplicidad de una asociación determina cuántos objetos de cada tipo intervienen en la relación.
– Agregación (“es parte de …”): Es una asociación especial, una relación del tipo “todo/parte” dentro de la cual una o más clases son partes de un conjunto.
– Generalización (herencia): “es un caso particular de …”.
Introducción a UML 18
Introducción a UML 19
ES UN: Herencia
Es un mecanismo para compartir atributos y métodos entre clases.
Por la herencia se forman jerarquías de clases (superclases y subclases).
Las subclases heredan los atributos y métodos de las superclases.
Relación “es un”.Permite la reutilización de código. Superclase
Subclase
Introducción a UML 20
Mamífero
Perro Gato
PoodlePastorAlemán
# colorOjo:String
+ getcolorOjo():String
# frecLadrido:int+ ladrar():void
# frecMaullido:int+maullar():void
+ esAleman():void
+ esFrances():void
Ejemplo
Introducción a UML 21
Introducción a UML 22
Herencia
AutomaxFuelmaxNroDePasajerosmodelovelocidad
acelerar()desacelerar()doblarAIzq()doblarADcha()
Avion
maxAltitudmaxFuelmaxNroDePasajerosvelocidadnroDeMotores
acelerar()desacelerar()descender()ascender()
ANTES DESPUES
VehiculomaxFuelmaxNroDePasajerosvelocidad
acelerar()desacelerar()
Avion
maxAltitudnroDeMotores
descender()ascender()
Auto
modelo
doblarAIzq()doblarADcha()
superclase
subclases
Introducción a UML 23
Herencia
Vehiculo
Auto Avion
public class Vehiculo { }
public class Auto extends Vehiculo{
}
public class Avion extends Vehiculo{
}
JavaUML
Ejemplo: Sistema de Alquiler de Vehículos• Se pretende desarrollar un sistema de gestión para una empresa de
alquiler de vehículos cuyas principales funcionalidades y características son las que a continuación se describen:
• La empresa se dedica al alquiler vehículos. Dentro de los automóviles, la empresa distingue entre automóviles de lujo y básicos.
• Un cliente puede realizar reservas de automóviles desde Internet. Para ello accederá a la opción “Realizar Reservas” y el sistema le pedirá su login y password. Si no ha sido cliente anteriormente el usuario deberá acceder a la opción “Registrarse”, en la que el sistema le solicitará sus datos personales. Una vez finalizado el registro podrá realizar la reserva. Para ello el sistema le preguntará si desea un automóvil de lujo o básico, y una vez que el cliente le ha indicado lo que desea, el sistema le pedirá las fechas inicial y final para las que desea el alquiler, así como las ciudades de recogida y devolución del vehículo. Después le mostrará la relación de automóviles (marca, modelo, motor y precio diario) disponibles en esas fechas, entre las que el cliente escogerá uno. La reserva queda realizada e identificada con un código del que el cliente debe tomar nota. El cliente podrá, posteriormente, acceder al sistema para consultar o cancelar su reserva, previa identificación en el sistema.
Introducción a UML 24
Ejemplo: Sistema de Alquiler de Vehículos
• Para recoger el vehículo el cliente debe presentarse en las oficinas de la empresa para firmar el contrato de alquiler del vehículo. Un empleado será el encargado de registrar ese contrato en el sistema, y se considera imprescindible que quede registrado qué empleado ha realizado cada contrato. El empleado accederá a la parte de “Contratos” y, si existe reserva previa (no siempre tiene por qué haberla) introducirá el código de reserva que debe de facilitarle el cliente.
• El sistema comprueba la existencia de la reserva y genera un contrato tipo para el tipo de vehículo reservado.
• El gerente de la empresa accede al sistema para realizar diversas consultas e informes sobre cuestiones como alquileres realizados, vehículos disponibles, contratos firmados por empleados, etc. Por último existe un administrador, que es el encargado de registrar y mantener la información de los usuarios y de los vehículos de la empresa.
Introducción a UML 25
Diagrama de Clases: Sistema de Alquiler de Vehículos
Vehiculo
marca : stringmodelo : stringmotor : stringprecio_float
Reserva
fecha_inicio : fechafecha_fin : fechaciudad_entrega : stringciudad_devolucion : string
1..*
1..1
1..*
1..1
Cliente_
nombre : stringdirección : stringtelefono : stringcedula : string
1..*1..1 1..*1..1
Realiza
Tiene
Empleado_
nombre : stringdireccion : stringtelefono : stringcedula : string
Contrato
id_contrato : stringtipo_contrato1..11..* 1..11..*
Tiene
1..1
1..1
Registra
1..1
1..1
DIAGRAMA DE CLASES: SISTEMA DE ALQUILER DE VEHICULOS
Introducción a UML 26
Introducción a UML 27
Diseñe un sistema para calcular el área de diversas figuras geométricas utilizando polimorfismo y guiado por el siguiente diagrama en UML.
Introducción a UML 28
Una empresa desea un sistema capaz de calcular el salario semanal de sus empleados de acuerdo a la cantidad de horas trabajadas, el sueldo por hora y tomando en cuenta los siguientes criterios:• Si las horas trabajadas son más de 40, entonces el excedente se considera hora extra.• Si las horas trabajadas están entre el rango de 41 a 45, entonces cada hora extra se paga doble.• Si las horas trabajadas son más de 45, entonces cada hora extra se paga triple.
Introducción a UML 29
Defina una clase llamada Circunferencia que tenga como atributo el radio de tipo real y los siguientes métodos: Calcular el área. Calcular el perímetro. Propiedad para modificar el radio Propiedad para consultar el valor del radio
Introducción a UML 30
Defina una clase denominada Rectángulo que tenga las siguientes especificaciones: Atributos: Largo Ancho Métodos: CalcularArea() CalcularPerimetro()
Introducción a UML 31
Define la clase Fecha, de acuerdo con las siguientes especificaciones:Atributos: Día, Mes y Año.Constructores: Que inicialice los atributos con la fecha del sistema Que reciba como parámetro los valores para inicializar la fechaMétodos públicos: Que permita modificar el valor de la fecha Que muestre en la pantalla la fecha usando el formato dia / mes / año Que muestre en la pantalla la fecha poniendo el mes con palabras Que permita verificar si una fecha es válida; este método debe ser utilizado por el constructor y el método que modifica el valor de la fecha, si el usuario trata de inicializar con una fecha inválida se inicializará con el valor fijo que el programador haya definido.
Introducción a UML 32
Definir una clase para manejar los artículos de un supermercado cuyos atributos son: Clave numérica, Descripción, Precio y Cantidad en existencia
Y defina los siguientes métodos: Constructor con parámetros. Método para modificar los valores de los atributos y que reciba los 4 parámetros. Una propiedad para modificar cada atributo. Una propiedad para consultar cada atributo.
Introducción a UML 33
Diseñar una clase para controlar los datos de los vuelos en una aerolínea con los siguientes datos: Número de vuelo Fecha Hora de despegue Duración del vuelo (minutos)
Y con la que pueda realizar las siguientes operaciones: Fijar tiempo de demora en minutos Obtener la fecha y hora de aterrizaje
Introducción a UML 34
Un equipo de futbol debe controlar las estadísticas de sus jugadores y para ello requiere un sistema computacional orientado a objetos con relaciones de herencia. Los datos de cada jugador son el número de uniforme, nombre y su posición (portero, defensa, medio y delantero). Además, el equipo desea almacenar la cantidad de goles anotados por cada jugador (excepto el portero) y los minutos jugados. Defina las clases con sus relaciones de herencia de la manera más apropiada para modelar este sistema e impleméntelas
Introducción a UML 35
Un equipo de beisbol se compone de tres tipos de jugadores: pitchers, jugadores de posición y bateadores designados. Los datos de cada jugador son: el número de uniforme, nombre y su posición. En esta liga, los pitchers lanzan, participan a la defensiva pero no batean. Los bateadores designados no lanzan y no participan a la defensiva (sólo batean). Los jugadores de posición no lanzan, pero participan a la defensiva y batean.Modele un sistema orientado a objetos con clases heredadas con el que controle los ponches recetados por los pitchers, los hits bateados por los otros jugadores y los errores cometidos por quienes participan a la defensiva.
Introducción a UML 36
Un banco requiere controlar las cuentas de sus clientes y para ello las clasifica en dos: Cheques y Ahorros. Todas las cuentas del banco tienen los siguientes datos: Número de cuenta (entero). Nombre del cliente (cadena). Saldo (numérico real).Además se realizan las siguientes operaciones con ellas: Consultar datos: A través de sus propiedades. Depositar: Incrementa el saldo con la cantidad de dinero que se deposita. Retirar: Antes de hacer el retiro, se debe verificar la suficiencia de saldo y en caso de aprobarlo, se disminuye el saldo.Las cuentas de ahorros presentan las siguientes características: Fecha de vencimiento. Porcentaje de interés mensual. Método para depositar los intereses el primer día de cada mes. Solamente se puede retirar dinero el día de la fecha de vencimiento.Las cuentas de cheques presentan las siguientes características: Comisión por uso de chequera. Comisión por emisión de cheques con saldo insuficiente, la cual se descuenta directamente del saldo.Elabore el diagrama de clases en UML e implemente dicho sistema con un proyecto.
Introducción a UML 37
En un taller mecánico los clientes llevan sus autos a reparación. El taller elabora una orden de trabajo con los datos del cliente como su nombre, dirección y teléfono de contacto, e incluye también los datos del auto que será reparado: Marca, modelo, color, número de las placas. La orden de trabajo tiene un identificador numérico único.
Introducción a UML 38
Para una empresa es importante controlar los datos de las personas relacionadas a ella, como lo son sus clientes y sus empleados. Los datos de cada persona son el nombre y su domicilio; sin embargo, también es importante administrar el límite de crédito de sus clientes y el salario de sus empleados. Modele este sistema diseñando el diagrama de clases en UML y estableciendo las relaciones de herencia pertinentes. Agregue un constructor a cada clase para inicializar sus datos e invoque el constructor de la clase base desde el constructor de cada clase derivada. Instancie cada una de las clases y asígnele sus respectivos datos mediante sus propiedades. Posteriormente despliegue los datos suministrados.
Top Related