Está en la página 1de 21

CÁTEDRA DE DISEÑO DE SISTEMAS

DE INFORMACIÓN

CÁTEDRA DE DISEÑO DE
SISTEMAS DE INFORMACIÓN

Paradigma de
Orientación a Objetos
CÁTEDRA DE DISEÑO DE SISTEMAS

¿Qué es un Objeto ?
DE INFORMACIÓN

Representa un elemento, unidad o entidad individual e identificable, ya sea real o


abstracta, con un rol bien definido en el dominio del problema”.
CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

¿Qué es una Clase ?

Molde para hacer galletas


(La Clase)

Cada una de las galletas


(Los objetos)

Una clase describe un grupo de objetos que comparten una estructura y un


comportamiento comunes.
CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN
Es una unidad o entidad individual e identificable, ya sea real o
abstracta, con un rol bien definido en el dominio del problema

Clase: Auto Objeto: Mi auto

¿QUÉ SABE O
QUE TIENE EL
Identi ¿QUÉ ES? ¿Qué lo
Estado
OBJETO? dad distingue de los
demás objetos?

¿QUÉ PUEDE Comporta Estructura Objeto


HACER EL
OBJETO?
miento La clase AUTO puede tener Instanciado de la clase Auto, lo que significa que
(atributos): asignamos un lugar: Identidad
y le damos valores a los atributos: Estado
marca: Chevrolet
marca modelo: Classic
modelo color: Blanco
color dominio: MBO056
dominio añoFabricación: 2012
añoFabricación
Comportamiento o Comportamiento o
Los objetos se crear a partir de las CLASES, a esta suele Responsabilidades Responsabilidades
llamársela “instanciar un objeto” La Clase Auto puede: Lo que el objeto puede hacer lo toma
de la clase, es decir el objeto puede
encenderMotor hacer lo que está definido en la Clase
encenderLuces de la que se creó:
avanzar encenderMotor
retroceder encenderLuces
Una clase es una definición de un conjunto de estacionar avanzar
objetos que comparten una estructura común y un obtenerNivelCombustible retroceder
estacionar
comportamiento común. obtenerNivelCombustible
Clases en el Dominio del Problema CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

Roles desempeñados Humanos que llevan a cabo alguna función. Ejemplo: Madre, profesor, político.
por Personas
Lugares Denotan espacios geográficos o elementos para contención de casas. Ejemplo: País, Barrio, Estantería.

Cosas Objetos físicos, o grupos de objetos, que son tangibles. Ejemplo: Vehículos, libros, sensores de
temperatura

Roles desempeñados Colecciones formalmente organizadas de personas, recursos, instalaciones y posibilidades que tienen
Organizaciones una misión definida, cuya existencia es, en gran medida, independiente de los individuos. Ejemplo:
Banco, Ministerio, Administradora de Tarjeta de Crédito

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 o TransaccionesCosas 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: Vuelo,
Inscripción, Venta, Reserva, Donación.
CÁTEDRA DE DISEÑO DE SISTEMAS

¿Qué es la Abstracción? DE INFORMACIÓN

La abstracción se centra en las características esenciales


de un objeto en relación a la perspectiva del observador.
CÁTEDRA DE DISEÑO DE SISTEMAS

Cohesión DE INFORMACIÓN
CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

Principio: No te repitas
Evitar
duplicaciones

Cada pieza de
información en un
único lugar

Crear
abstracciones
CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

¿Qué es el Encapsulamiento?

El encapsulamiento permite el ocultamiento de información


CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

Ocultamiento de
Estado

Ocultamiento
de
Información

Ocultamiento de
Implementación
¿Qué es un sistema Orientado a Objetos? CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

Realidad
Audi Rojo
Yrigoyen 45 Comprobante de Alquiler
Jane Pearson

Modelo

• Conjunto de objetos que colaboran entre sí para lograr algo que solos no podrían.
• Si está bien diseñado hay una relación directa entre los objetos y los conceptos del
mundo real que estos representan
Veremos algunas Relaciones CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

Generalización

Jerárquicas

Agregación/Composición
Relaciones entre clases

No Jerárquicas Asociación
Jerarquía de Clases: Generalización (Herencia) CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

Nos permite definir nuevas clases en base a otras clases existentes.


El propósito de la herencia es el reuso de comportamiento
Relaciones: Generalización CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓ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
Jerarquía de Partes: Agregación CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

todo parte

1..*
Factura DetalleFactura

agregación

todo parte

Estantería Estante

composición
Relaciones: Asociación CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

Es una relación estructural que especifica que


los objetos de un elemento se conectan a los
Rol
multiplicidad objetos de otro.
Navegabilidad
Polimorfismo public abstract class CuentaBancaria { CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN
protected float saldo;
public void depositar (float monto) {
this.saldo += monto;
}
public void extraer (float monto) {
if (puedoExtraer(monto)) {
public class CajaDeAhorro extends CuentaBancaria realizarExtraccion(monto);
{ }
private int extraccionesDisponibles;
}
@Override
public boolean puedoExtraer(float monto) {
return this.extraccionesDisponibles > 0 public abstract boolean puedoExtraer (float monto);
&& this.saldo >= monto;
} public abstract void realizarExtraccion (float monto);
@Override }
public void realizarExtraccion(float monto) {
this.saldo -= monto;
this.decrementarUnaExtraccion(); public class CuentaCorriente extends CuentaBancaria {
} private float rojoPermitido;
public int getExtraccionesDisponibles() { @Override
return extraccionesDisponibles; public boolean puedoExtraer(float monto) {
} return this.saldo + this.rojoPermitido >= monto;
public void setExtraccionesDisponibles(int
}
extraccionesDisponibles) {
@Override
this.extraccionesDisponibles =
extraccionesDisponibles; public void realizarExtraccion(float monto) {
} this.saldo -= monto;
private void decrementarUnaExtraccion () { }
this.extraccionesDisponibles--; public float getRojoPermitido() {
} return rojoPermitido;
}
}
public void setRojoPermitido(float rojoPermitido) {
this.rojoPermitido = rojoPermitido;
}
}
CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

Acoplamiento
CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

Cohesión

Independencia
de
Componentes

Acopla
miento
¿Cómo leemos
class Domain Objects 111 mil CÁTEDRA DE DISEÑO DE SISTEMAS
«entity» DE INFORMACIÓN
«entity»
«entity» Genero
PaisDeOrigen Pelicula
genero 1 nombre

un Modelo idioma
nombre
1 paisDeOrigen añoEstreno
disponible
duracion
fechaIngreso

de Dominio? actor
«entity»
Personaje
personajes
nombre
tituloOriginal
calcularDuracionEnFuncion()
calificacion

«entity»
Calificacion
1..* estaDisponible() 1
«entity» nombreEnPelicula
estaEnCartelera() nombre
Actor mostrarFuncionesHabilitadas()
1
animado
apellido «entity»
nombre funciones 1 Sala
pelicula sala
0..* capacidad
1 rol numero
«entity» «entity» 1
Rol Funcion 1..*
nombre diaSemana
sexo duracion sala

Complejo 1
horaInicio
numero
calcularDisponibilidad()
«entity»
Cine
capacidadSala()

de Cines Sexo
nombre
estaEnCurso()
hayLugar()
mostrarDiaHora()
direccion
fechaInauguracion
nombre
precioEntrada

1 mostrarCine()
1..* mostrarInfoHorariosFuncion()
entradas funcion

0..*
programaciones
«entity» funciones
0..* horariosFunciones
Entrada
«entity» 0..*
fechaHoraFuncion
fechaHoraVenta Programacion «entity»
precioCobrado fechaFin HorarioFuncion
ticketNro fechaHoraCreada diaDeSemana
estaAnulada() fechaInicio duracionIntervalo
estaCompleta() duracionPublicidad
estaIniciadaFuncion() esTrasnoche
estaVigente() horaPrimeraFuncion
mostrarProgramacion() horaUltimaFuncion
mostrarHorarioFuncion()
Repasando lo que vimos… CÁTEDRA DE DISEÑO DE SISTEMAS
DE INFORMACIÓN

Objeto Clase Abstracción Encapsulamiento Ocultamiento de


Información

Cohesión Relaciones entre Relaciones entre Relaciones entre Acoplamiento


clases: clases: Agregación/ clases:
Generalización Composición Asociación

También podría gustarte