Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Modelo de
reglas y
Hechos y
normas
predicciones
limitadas
Universal o
particular
mente
aceptado
Paradigma
Ministerio de Educación y Deportes
¿Qué es un Objeto ?
Representa un elemento, unidad o entidad individual e identificable, ya sea real o abstracta, con un rol
bien definido en el dominio del problema”.
Ministerio de Educación y Deportes
Una clase es un conjunto de objetos que comparten una estructura común y un comportamiento
común.
Ministerio de Educación y Deportes
Esenciales
Encaps Jerar
Abstra Modul
ulamien
cción to aridad quía
Ministerio de Educación y Deportes
¿Qué es la Abstracción?
¿Qué es el Encapsulamiento?
Clasificación
¿Qué es la Modularidad?
Herencia y Polimorfismo
Cuenta Bancaria
saldo
saldo()
saldo:unMonto()
depositar:unMonto()
extraer:unMonto()
CajaDeAhorro
extraccionesPosibles CuentaCorriente
rojoPermi tido
extraccionesPosibles()
extraccionesPosibles:unMonto()
puedoExtraer:unMonto()
hayExtraccionesPosi bles()
realizarExtracción:unMonto()
decrementarUnaExtracción()
rojoPermi tido()
realizarExtracci ón:unMonto()
roj oPerm itido:unMonto()
puedoExtraer:unMonto()
Ministerio de Educación y Deportes
Herencia y Polimorfismo
Clase Cuenta Bancaria
saldo
^saldo
saldo:unMonto
saldo:=unMonto
depositar:unMonto
selfsaldo: selfsaldo + unMonto
extraer:unMonto
self puedoExtraer:unMonto
if true [realizar extracción:unMonto]
^false
CLASE CajaDeAhorro
extraccionesPosibles
Clase CuentaCorriente ^extraccionesPosibles
rojoPermitido extraccionesPosibles
^rojoPermitido extraccionesPosibles:=unNumero
rojoPermitido:unMonto hayExtraccionesPosibles
rojoPermitido:unMonto ^(extraccionesPosibles > 0)
decrementarUnaExtraccion
realizarExtraccion:unMonto
self extraccionesPosibles: extraccionesPosibles – 1
selfsaldo: selfsaldo – unMonto realizarExtraccion:unMonto
puedoExtraer selfsaldo: selfsaldo – unMonto
^(selfsaldo + rojoPermitido > = unMonto) selfdecrementarUnaExtracción
puedoExtraer:unMonto
^(selfhayExtraccionesPosibles & selfsaldo >= unMonto)
Ministerio de Educación y Deportes
Esenciales
Encaps Jerar
Abstra Modul
ulamien
cción to aridad quía
Ministerio de Educación y Deportes
Tipificación
Concurrencia
Persistencia
Clasificación
Clasificación
Conceptos Principios o ideas no tangibles, utilizados para organizar o llevar cuenta de actividades de negocios
y/o comunicaciones. Ejemplo: Materia, Carrera, Tratamiento Médico.
Eventos Cosas que suceden, que habitualmente vinculan a clases de alguna de las otras categorías, en una
fecha y/u horas concretas, o como pasos dentro de una secuencia ordenada. Ejemplo: Aterrizaje,
Inscripción, Venta, Reserva, Donación.
27 Ministerio de Educación y Deportes
¿Qué es un Modelo?
Nos dan una plantilla que nos guía en la construcción del sistema.
¿Qué es un UML?
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
Estructura de UML
Estructura
de UML
34
Ministerio de Educación y Deportes
Diagramas
Ministerio de Educación y Deportes
Diagrama de Clases
Diagrama de Clases
Clase Clase Activa
Alumno
ManejadorNotas
Alumno
nombre de la clase
Alumno
Alumno legajo
legajo atributos nombre
nombre domicilio
domicilio
<<constructor>> crear()
<<query>> mostrarNombre()
operaciones
Alumno
crear()
mostrarNombre()
borrar()
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
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
Persona
nombre InformaciónDeContacto
legajo
cargo dirección
obtenerInformaciónDeContacto()
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
1
1
1 1 Rubro
Ejemplar Pelicula
0..* 1
0..*
1 1 Categoria
Reserva 1..*
0..* Actor
Director
Ministerio de Educación y Deportes
«entity»
«entity»
«entity» Genero
Ejemplo
PaisDeOrigen
Pelicula descripcion
idioma 1..* paisDeOrigen género
añoEstreno nombre
nombre 1
disponible
duracion
fechaIngreso
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
diaSemana 1..* sala
nombre
duracion
fechaHabilitacion
horaInicio
numero «entity»
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()
Ministerio de Educación y Deportes
Estados
Transiciones
Eventos
Ministerio de Educación y Deportes
evento disparador
condición de control
.
derivarAFabricación[
. materiaPrima
Generada = completa ] / enviarNotificacion En Fabricacion .
.
.
En pintura En secado
Cancelada cancelar fabricacion
estructura lista
.
.
estado de historia
inicio
En fabricación de estructuras
derivar a fabricacion H
Generada .
Cancelada Terminada
fin
Ministerio de Educación y Deportes
Deshabilitada
Ministerio de Educación y Deportes
Requerimientos
Dominio
Requerimientos
de Negocio
del
Problema
Requerimientos
de Usuario
Requerimientos
de Software
Dominio de
la Solución
Ministerio de Educación y Deportes
Requerimientos Funcionales
Requerimientos No Funcionales o de
Calidad
Req uer im ie nt os
NoF uncion ales
Req uer im ie nt os
NoF uncion ales
Un caso de uso registra un contrato entre los involucrados del sistema, acerca del
comportamiento del sistema en discusión en varias circunstancias, organizadas por los
objetivos de los actores seleccionados.
Ministerio de Educación y Deportes
Propiedades:
Captura alguna función visible para el usuario.
Puede ser grande o pequeño.
Debe alcanzar un objetivo específico para el actor.
Ministerio de Educación y Deportes
Escenario 2
Escenario 1 Escenario 3
Caso de Uso
Ministerio de Educación y Deportes
Base Adicional
<<extend>>
NewUseCase NewUseCase2
Asociaciones de Extensión
Especifica como un caso de uso puede insertarse y así extender la funcionalidad de otro.
El caso de uso donde se insertará la extensión debe ser un curso completo en sí mismo.
Se usan para modelar partes optativas, alternativas, etc.
Se dibuja con una flecha cuya dirección va desde el caso de uso de extensión (adicional) al caso de uso base.
Ministerio de Educación y Deportes
<<include>>
NewUseCase NewUseCase2
Asociaciones de Inclusión
Especifica y agrupa comportamiento similar de varios casos de usos, en un caso de uso abstracto, que
otros podrán usar.
Se usan cuando su intervención es necesaria para completar un curso completo de eventos.
Se dibuja con una flecha desde el caso de uso concreto o base al caso de uso abstracto (adicional).
Ministerio de Educación y Deportes
Use Case E
Adicional
Use Case A
Use Case D
Asociaciones de Generalización
Un caso de uso más especifico puede especializar a un caso de uso más general.
Una relación de generalización entre casos de usos implica que el caso de uso hijo contiene todos los
atributos y secuencias de comportamiento y puntos de extensión definidos para el padre.
Se dibuja con una flecha desde el caso de uso hijo al padre.
Los casos de usos hijos pueden redefinir el comportamiento heredado del padre.
Ministerio de Educación y Deportes
uc 111 Mil
«include»
Diagrama de 3 Registrar
Venta de
1 Imprimir
Entradas
Entradas
Responsable de
Programación 11 Generar
Programación de
Funciones
Usuario
8 Registrar
Cliente Web Reserva Web
6 Registrar
Reserva
7 Registrar
Reserva
Operador Telefónica
Telefonico
Ministerio de Educación y Deportes
Descripción de Actores
Nombre del Actor Descripción
Cliente Web Persona que tiene acceso a una computadora con conexión a Internet y puede entrar a la
página Web del Complejo de Cines para realizar consultas de programación y reservas para
funciones de los diferentes cines del complejo.
Responsable de Persona que administra toda la funcionalidad vinculada con la obtención de la programación
Programación de funciones y la registración de nuevas películas que integrarán las programaciones del
complejo.
Vendedor Persona responsable de la registración y anulación de ventas de entradas para las funciones
habilitadas en los cines del complejo.
Operador Telefónico Persona responsable de la creación consulta y modificación de reservas de lugares para
funciones de los cines del complejo
Operador de Reserva Responsable de la registración y /o modificación de reservas de lugares en una o más
funciones de cine del complejo.
Usuario Persona que está definida como usuario de la aplicación y va a registrarse en la misma para
realizar alguna actividad.
Ministerio de Educación y Deportes
Brevemente
descripta
Ministerio de Educación y Deportes
Algunos ejemplos de
descripciones de casos de uso
Ministerio de Educación y Deportes
2. El sistema realiza un búsqueda sobre todas las instancias de reserva existentes para localizar aquellas que tengan fecha de vigencia vencida y encuentra 2.A. No encuentra reservas en esa situación
reservas en esa situación 2.A.1. El sistema muestra mensaje.
2.A.2. Se cancela el caso de uso.
3. El sistema informa la cantidad de reservas vencidas y solicita confirmación para su anulación
Prototipos
Especificación y Validación
de Requerimientos
Ministerio de Educación y Deportes
Siempre !!!!
Ministerio de Educación y Deportes
Prototipos
Características:
Funcionalidad limitada.
Poca fiabilidad.
Características de operación pobres.
Tipos de Prototipos
Evolutivos Desechables
Ministerio de Educación y Deportes
Prototipado en papel
Ministerio de Educación y Deportes
Clases de Análisis
class Clases de Analisis 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. Contiene comportamiento de la lógica de negocio definida en un caso
Clase de Entidad Clase de Interfaz Clase de Control de uso. Tiene responsabilidades de coordinación de la ejecución de un caso de uso
y funciona como intermediario entre las clases de interfaz y las de control.
Ministerio de Educación y Deportes
Diagrama de Secuencia
Objetos
Links
Mensajes
objeto que es creado
Ministerio de Educación y Deportes
objetos
mensaje de creación de
mensaje síncrono
sd Registrar curso
:AdministradorDeCursos
:InterfazCurso :GestorCurso
agregarCurso(uml)
agregarCurso(uml)
new()
«create»
:Curso
Ministerio de Educación y Deportes
15 Registrar Elenco de
:Responsable de Película
Programación : :GestorPelicula :Pelicula :Calificacion :Genero :PaisDeOrigen
PantAdministracionPelicula
opcionNuevaPelicula()
habilitarVentana()
nuevaPelícula()
pedirNombrePelicula()
buscarGenero()
buscarCalificacion()
Normal
*getNombre()
buscarPaisDeOrigen()
*getNombre()
visualizarGeneros()
visualizarCalificaciones()
visualizarPaisesDeOrigen()
tomarSeleccionGenero()
tomarSeleccionCalificacion()
tomarSeleccionPaisDeOrigen()
tomarSelecciones()
pedirIngresoDatosRestantes()
tomarDuracion()
tomarTituloOriginal()
tomarAñoEstreno()
tomarDatosRestantesPelicula()
llamarCURegElenco()
«include»
asignarEstadoPelicula()
visualizarEstadoPelicula()
pedirConfirmacionRegistracion()
tomarConfirmacionRegistracion()
tomarConfirmacion()
validarDatosMinimos()
crearPelicula()
new()
nueva: Pelicula
finCU()
Ministerio de Educación y Deportes
Diagrama de Clases
Calificacion «entity»
paisesDeOrigen
pelicula descripcion Pelicula
premio nombre añoEstreno
tituloOriginal getNombre() disponible
de Análisis
asignarEstado Pelicula() mo strarCalificacion() duracio n
calificacion nombre
buscarCalificacion() new()
buscarGenero () tituloOriginal
1
buscarPaisDeOrigen() estaDisponible()
Vista de Administración de
cancelarCU() estaEnCartel()
crearPelicula() existeNombre()
finCU() getCalificacio n()
llamarCURegComentario() getCines()
llamarCURegElenco () getComentario()
Películas
llamarCURegPremio() getDato s()
nuevaPelícula() «entity» getDuracio n()
«entity»
pedirSeleccio nDatos() Comentario comentario getElenco()
Rol
registrarCo mentario() getFuncio n()
registrarPremio() descripcio n auto r 0..* getFuncio n()
to marConfirmacio n() nombre descripcion getFuncio nesHabilitadas()
to marDato sRestantesPelicula () fechaIngreso getGenero()
to marNombrePelicula() rol 1..* getNombre()
to marSelecciones() getPaisDeOrigen()
validarDatosMinimos() getPelicula()
validarPelicula() elenco getPremio()
«entity»
Elenco 1..* mostra rCine()
mostra rFuncHabilitadas()
nombre new()
«boundary»
nombreEnPelicula seleccio narPro gramacion()
PantAdministracionPelicula
ro l validarDisponibilidadLugar()
botonCancelar getPersonaje()
botonConfirmar getRol()
botonEditar
botonEliminar 0..1
botonNuevo premiado
comboGenero personaje
1
grillaCo mentario s «entity»
grillaPaisOrigen Personaje
grillaPremios
animado
grillaPromociones premio
apellido
labelGenero
nombre 0.. *
labelNo mbre
sexo
lblAñoEstreno «entity»
lblCalificacion Premio
lblDuracion fechaPremio
lblTitulo Original gano
radioCalificacion
txtAñoEstreno getRubro Premio()
txtDuracio n getTipo Premio ()
txtNombre
txtTituloOriginal
habilita rVentana()
mostrarMensajePeliculaExiste()
o pcionNuevaPelicula()
pedirCo nfirmacionRegistracio n() rubroPremio 1
pedirIngresoDatosResta ntes() «entity»
pedirNo mbrePelicula() tipo Premio 1 RubroPremio
pedirSeleccionesDatos() «entity»
tomarAñoEstreno() descripcion
TipoPremio nombre
tomarConfirmacionRegistracion()
tomarDuracion() descripcion getDescricpion()
tomarNombrePelicula() nombre getNo mbre()
tomarSeleccionCalificacion() setDescricpion()
tomarSeleccionGenero() setNombre()
tomarSeleccionPaisDeOrigen()
tomarSelecRegComenta rio()
tomarSelecRegPremio()
tomarTituloOriginal()
visualizarCalificacio nes()
visualizarEstado Pelicula()
visualizarGeneros()
visualizarPaisesDeOrigen()
85 Ministerio de Educación y Deportes
Gracias!!!