You are on page 1of 25

Ministerio de Educación y Deportes

Subsecretaría de Servicios Tecnológicos y Productivos

Analistas del Conocimiento


Dimensión Programador
Ministerio de Educación y Deportes

Módulo de Programación Orientada a Objetos (POO)


3 Ministerio de Educación y Deportes

Modelos y la importancia de modelar


El producto principal del trabajo de un
equipo de desarrollo no son bonitos
documentos, ni reuniones importantes, ni
reportes de avance. Más bien, es un buen
software que satisfaga las necesidades
cambiantes de sus usuarios y demás
afectados, todo lo demás es secundario.

No obstante, no se debe confundir


“secundario” con “irrelevante”.
Ministerio de Educación y Deportes

¿Qué es un Modelo?

Un modelo es una simplificación de la realidad


Ministerio de Educación y Deportes

¿ Por qué Modelamos?

 Para visualizar un sistema como es, o como queremos que sea.

 Para especificar la estructura o el comportamiento de un sistema.

 Nos dan una plantilla que nos guía en la construcción del sistema.

 Documentan las decisiones que hemos tomado.


Ministerio de Educación y Deportes

¿Qué es un UML?

Es un lenguaje de modelado, de propósito general,


usado para la visualización, especificación,
construcción y documentación de sistemas Orientados
a Objetos
Ministerio de Educación y Deportes

Contribuciones al UML

Meyer Harel
Gamma, et al
Statecharts
Before and after Frameworks and patterns,
conditions
HP Fusion
Booch
Operation descriptions and
Booch method message numbering

Rumbaugh Embley
OMT Singleton classes and
high-level view
Jacobson Wirfs-Brock
OOSE Responsibilities
Shlaer - Mellor Odell
Object lifecycles Classification
Ministerio de Educación y Deportes

¿ Por qué UML es un lenguaje?

 Provee un vocabulario y reglas para combinar los elementos del


vocabulario con el propósito de comunicar.

 En un lenguaje de modelado esos vocabularios y reglas se focalizan


en representaciones conceptuales y físicas de un sistema.
Ministerio de Educación y Deportes

Estructura de UML

BLOQUES DE CONSTRUCCIÓN MECANISMOS COMUNES ARQUITECTURA


Ministerio de Educación y Deportes
Estructura
de UML

10
Ministerio de Educación y Deportes

Diagramas
Ministerio de Educación y Deportes

Diagrama de Clases

 CLASIFICACION: De estructura, estático, lógico.


 USO:
 Explorar conceptos del dominio
 Analizar requerimientos
 Mostrar el diseño detallado de software orientado a objetos

 Muestra un conjunto de clases, interfaces y colaboraciones y sus relaciones


 Contiene comúnmente:
 Clases
 Interfaces
 Relaciones de asociación (agregación, composición), generalización, dependencia
(traza, realización) y/o anidado
Ministerio de Educación y Deportes

Diagrama de Clases
Clase
Alumno

Alumno
nombre de la clase

atributos

operaciones
Ministerio de Educación y Deportes

Diagrama de Clases

Visibilidad: normalmente se desea ocultar los detalles de implementación y mostrar sólo las características
necesarias para llevar a cabo las responsabilidades de la abstracción. Hay tres niveles disponibles:
o Pública: Cualquier clasificador externo con visibilidad hacia el clasificador dado puede utilizar la
característica. Se representa con el símbolo “+”.
o Protegida: Cualquier descendiente del clasificador puede utilizar la característica. Se representa con el
símbolo “#”.
o Privada: Sólo el propio clasificador puede utilizar la característica. Se representa con el símbolo “-”
Ministerio de Educación y Deportes

Diagrama de Clases
Clases de análisis

Clase de Entidad
La clase de entidad modela información en el sistema que debería guardarse por mucho tiempo. Las clases de entidad se
utilizan para modelar abstracciones del dominio del problema.

Clase de Interfaz
La clase de interface modela el comportamiento e información que es dependiente de la frontera del sistema con el ambiente.
Así todo lo que concierne a cualquier vínculo entre el sistema y los actores, se ubica en un objeto de interfaz.

Clase de Control
La clase de control modela funcionalidad que implica operar sobre varios objetos diferentes de entidad, haciendo algunos
cálculos y retornando el resultado al objeto de interface. La clase de control actúa como vínculo, que une los otros tipos de
clase.
Ministerio de Educación y Deportes

Diagrama de Clases
Interface

Una interface es un tipo especial de clase que agrupa una colección de operaciones que
especifican un servicio de una clase o componente.
Ministerio de Educación y Deportes

Diagrama de Clases

Los diagramas de clases son los diagramas más comunes en el


modelado de sistemas orientados a objetos.

Un diagrama de clases puede comenzarse a construir en el comienzo


del desarrollo de software en la etapa de Requerimientos, estructurar
en la etapa de Análisis, refinar en la etapa de Diseño y finalizar al
momento de realizar la implementación.
Estos diagramas están compuestos por clases y sus relaciones que
permiten a los objetos de las clases colaborar entre sí.
Ministerio de Educación y Deportes

Relaciones: Asociación

Es una relación estructural que especifica que los objetos de un elemento se


conectan a los objetos de otro.

asociación multiplicidad

Gasto 1 TipoDeGasto
.

navegabilidad
Ministerio de Educación y Deportes

Relaciones: Agregación y Composición


Es un tipo especial de asociación, que representa una relación completamente conceptual entre un
“todo” y sus “partes”.
todo parte

1..*
Factura DetalleFactura

agregación

Es una variación de la agregación simple, con una fuerte relación de pertenencia y vidas coincidentes
de la parte con el todo.
todo parte

Estantería Estante

composición
Ministerio de Educación y Deportes

Relaciones: Generalización
Es una relación entre un elemento general (superclase o padre) y un tipo más específico de ese
elemento (subclase o hijo). El hijo puede añadir nueva estructura y comportamiento, o modificar el
comportamiento del padre.

ElementoConInterés ElementoAsegurable

herencia
herencia múltiple
CuentaBancaria
simple

CuentaCorriente CuentaDeAhorro
Ministerio de Educación y Deportes

Relaciones: Dependencia
Es una asociación de uso, la cual especifica que un cambio en la especificación de un
elemento puede afectar a otro elemento que lo utiliza, pero no necesariamente a la
inversa.
dependencia
Ministerio de Educación y Deportes

Relaciones: Contención

Es una relación que especifica que una clase esta contenida dentro de otra.

Contención
cd Logical Model

VentanaInicio ControladorMouse
Ministerio de Educación y Deportes

Diagrama de Clases: Visibilidad

Visibilidad Símbolo Accesible a:


Todos los objetos del sistema
Pública +
Instancias de la clase y de sus
Protegida # subclases

Instancias de la clase
Privada -
Instancias de la clase del
Paquete ~ mismo paquete
Ministerio de Educación y Deportes

Diagrama de Clases: Ejemplos


EmpleadoVideo
0..*
Abono
1..* 1
DetalleAbono
0..1 TipoAbono
Persona
0..1
Alquiler DetalleTicket Ticket 1
1..*
1..*
0..1 1..*
DetalleTipoAbono
Socio
Ubicacion Calificación

1
1
1 1 Rubro
Ejemplar Pelicula
0..* 1

0..*
1 1 Categoria
Reserva 1..*
0..* Actor
Director
Ministerio de Educación y Deportes

class Domain Objects 111 mil


«entity»
«entity»
«entity» Genero
PaisDeOrigen
Pelicula descripcion
idioma 1..* género

Ejemplo nombre
paisDeOrigen
añoEstreno
disponible
duracion
fechaIngreso
1
nombre

nombre calificacion
«entity» tituloOriginal
elenco «entity»
Elenco estaDisponible()
personaje Calificacion
nombreEnPelicula 1..* estaEnCartel()
«entity» 1
mostrarFuncHabilitadas() descripcion
Personaje nombre
animado 1
apellido «entity»
nombre funcion 1 Sala
sexo pelicula
rol 0..* sala capacidad
numero
«entity» 1..*
«entity» estaDisponible()
Rol
Funcion 1
descripcion sala
diaSemana 1..*
nombre
duracion
fechaHabilitacion
horaInicio
«entity»
numero
Cine
calcularDisponibilidad()
capacidadSala() direccion
controlarHoraFuncion() fechaInauguracion
estaEnLaFuncion() nombre
estasIniciada() buscarDisponibilidadSalasParaPeriodo()
hayLugar() buscarPreciosEntrada()
mostrarDiaHoraPel() mostrarCine()
permiteVenta() obtenerInfoHorariosFuncion()
1 funcion
1..*
«entity»
Entrada 0..* programacion
horarioFunción
fechaFuncion 0..*
«entity»
fechaVenta
Programacion «entity»
horaFuncion
horaVenta estado HorarioFuncion
pelicula fechaFinProgramacion diaDeSemana
precioCobrado fechaInicioProgramacion duracionIntervaloFunc
sala fechaProgramacion duracionPublicidad
ticketNro horaProgramacion esTrasnoche
estaAnulada() estáCompleta() horaPrimeraFuncion
estaEnPeriodoVigencia() horaUltimaFuncion
estaIniciadaFuncion() mostrarHorarioFuncion()
estaVigente()
mostrarProgramacion()

You might also like