Está en la página 1de 154

Elementos Básicos de TOO

V1.0
Mayo 2015
Ferreiras.

Ferreiras
Elementos basicos de TOO 1
Checklist ✔ de lo que usted
necesita para este curso
• Haber construido el conocimiento en el tema 3 de INF-206 ✔

• Saber usar los comando básicos de DOS y/o Linux, que le ✔


enseñaron en INF-207
• Haber construido el conocimiento en los 10 temas del ✔
programa de INF-510;
• Saber usar un editor de texto ASCII ✔

• Obtener el entorno de Visual Studio ( A ser explicado más


adelante en el curso) ✔

Ferreiras Algunos Conceptos Basicos de 2


Java
Contenido a desarrollar
- Elementos Básicos de TOO
- - Objetos
- - Atributos, estado y comportamiento de un objeto
- - Abstracción
- - Objeto de software
- - Object Identification, OID/UID
- - Objetos según shlaer, mellor y coad/yourdon
-- Beneficios del uso de objetos en la TOO y la POO
- - Clases
- - Definición de clase en TOO
- - - Ejemplos de objetos agrupados en clases
- - Notación para clases ( De Booch, Tylor, UML)
- - Tipos de datos UML y su sintaxis
- - Notación UML de objetos
- - Atributos, operaciones de una clase
- - Interfaz de una clase
- - Constructores de una clase
- - Destructor de una clase
- - Ejemplos de clases

Ferreiras Elementos basicos de TOO 3


Contenido a desarrollar
- - Encontrando Objetos y Clases en TOO
- - - Heurística a usar para encontrar objetos, clases, atributos y operaciones
- - - Elementos gramaticales Vs. Elementos del modelo OO
- - - Ejemplo completo
- - Quiz: Su turno es ahora.
- - Más conceptos, de un vistazo, de TOO
- - - Los pilares de la TOO
- - - Instanciación de clases
- - - Clases abstractas
- - - Niveles de acceso a los miembros de la clase
- - - Ejecución o corrida de una aplicación OO
- - - Encapsulamiento
- - - Herencia (simple y múltiple)
- - - Polimorfismo
- - - Asignando responsabilidades a una clase
- - - - Tarjetas CRC
Ejemplos
Ejercicios.

Ferreiras Elementos basicos de TOO 4


CONCEPTOS
BÁSICOS
DE
ORIENTACIÓN
A OBJETOS
V4.0
Mayo 2014
Ferreiras

Ferreiras Elementos basicos de TOO 5


OBJETOS

Ferreiras Elementos basicos de TOO 6


Un objeto es cualquier cosa del
mundo que nos rodea a la que se le
aplica un concepto, una idea o noción,
como un reflejo de una realidad
concreta que existe independiente de
nosotros. Luego, son objetos:

Ferreiras Elementos basicos de TOO 7


LAS PERSONAS

Ferreiras Elementos basicos de TOO 8


LOS LUGARES

Ferreiras Elementos basicos de TOO 9


CD-DRIVER
PANTALLAS VIEJAS

LOS EQUIPOS

Ferreiras Elementos basicos de TOO 10


SILLAS
VEHÍCULOS
Ferreiras Elementos basicos de TOO 11
CUENTA DE BANCO

Ferreiras Elementos basicos de TOO 12


EDIFICIOS
SÍMBOLOS

Ferreiras Elementos basicos de TOO 13


UN PROCESO

Ferreiras Elementos basicos de TOO 14


FORMULARIO PARA LA APLICACIÓN A UNA CUENTA DE CRÉDITO

Ferreiras Elementos basicos de TOO 15


PAISAJE
Ferreiras Elementos basicos de TOO 16
MATRIZ DE DATOS

Ferreiras Elementos basicos de TOO 17


El objeto al que
se refiere es un
iPhone 11:

Ferreiras Elementos basicos de TOO 18


... HAY

OBJETOS QUE
PODEMOS
CONCEPTUAR
Ferreiras Elementos basicos de TOO 19
Atributos estado y
Comportamiento de un objeto
Atributo: En general, un atributo es una
propiedad de un objeto que describe sus
características. Por ejemplo, son atributos de un
vehiculo:
⚫ Numero de chasis;
⚫ Color;
⚫ Consumo de combustible;
⚫ Tamaño
⚫ Forma;
⚫ número de asientos
⚫ precio;
⚫ Posición GPS
⚫ Velocidad
⚫ Propietario
⚫ Marca

Ferreiras Elementos basicos de TOO 20


Estado: Es el conjunto de valores actuales
de los atributos de un objeto. Por ejemplo,
un estado de un vehiculo podría ser:

⚫ XHRET102J345KDE23; ⚫ Amarillo;
⚫ Un galón cada 40 KM; ⚫ 3 metro cúbico
⚫ Caja del 2011; ⚫4
⚫ RD$ 700,000.00; ⚫ 43o 27’ 53.59” N; 80o 31’ 28.71” W
⚫ 80 Km/hr ⚫ Yuleidy Turpen Diario Libre
⚫ Hommer

Ferreiras Elementos basicos de TOO 21


Comportamiento: Las operaciones o
acciones asociadas a un objeto. Pueden
ser usadas para cambiar el estado del
objeto. Por ejemplo, el comportamiento de
un vehiculo podría ser: ⚫ Transportar;
⚫ Atropellar;
⚫ Chocar;
⚫ Pintar;
⚫ Acelerar

Ferreiras Elementos basicos de TOO 22


ABSTRACCION

Ferreiras Elementos basicos de TOO 23


Abstraction
• Abstraction is the process of taking away or removing characteristics from something in
order to reduce them to a set of essential attributes.

• In Object-Oriented programming, abstraction is one of central principles of the OOT


(along with encapsulation, inheritance and encapsulation).

• Through the process of abstraction, a programmer hides all but the relevant data about
an object in order to reduce complexity and increase efficiency.

• In the same way that abstraction sometimes works in art, the object that remains is a
representation of the original, with unwanted detail omitted.

• The resulting object itself can be referred to as an abstraction, meaning a named


entity made up of selected attributes and behavior specific to a particular usage of the
originating entity.

• Abstraction is related to both encapsulation and data hiding.

Ferreiras Elementos basicos de TOO 24


Abstraction
• In the process of abstraction, the programmer tries to ensure that the entity is named in
a manner that will make sense and that it will have all the relevant aspects included and
none of the extraneous ones.

• A real-world analogy of abstraction might work like this:

• “You (the object) are arranging to meet a blind date and are deciding what to tell
them so that they can recognize you in the restaurant. You decide to include the
information about where you will be located, your height, hair color, and the color of
your jacket. This is all data that will help the procedure (your date finding you) work
smoothly. You should include all that information. “

• On the other hand, there are a lot of bits of information about you that aren't
relevant to this situation: your social security number, your admiration for obscure
films, and what you took to "show and tell" in fifth grade are all irrelevant to this
particular situation because they won't help your date find you. However, since
entities may have any number of abstractions, you may get to use them in another
procedure in the future.

Ferreiras Elementos basicos de TOO 25


La abstracción modela un
problema real construyendo
una representación que puede
ser procesada
computacionalmente;

Ferreiras Elementos basicos de TOO 26


EL PROBLEMA

PROCESO DE
ABSTRACCIÓN

EL
MODELO
OBJETO3
OBJETO1

OBJETO2

Ferreiras Elementos basicos de TOO 27


⬤ El modelo define una vista
abstracta del problema. Esto
implica que el modelo solo se
enfoca en la materia relativa al
problema;

Ferreiras Elementos basicos de TOO 28


⬤ El modelo debe definir los
objetos de software, identificados
con sus atributos y respectivas
operaciones.

Ferreiras Elementos basicos de TOO 29


⬤ El proceso de abstracción inicia
con la remoción gradual de los
detalles excesivos que son de valor
estético pero que no contribuyen a la
identidad del objeto como elemento
para almacenar información de interés;

Ferreiras Elementos basicos de TOO 30


⮲ Por ejemplo, consideremos los
empleados de una institución, de los
cuales se requiere procesar información
relativa a la nómina, solamente :
⬤ Atributos encontrados ⬤ Atributos de
interés para el
🡂 nombre; caso serían:
🡂 estatura;
🡂 talle; 🡂 nombre;
🡂 cedula 🡂 cedula
🡂 fecha nacimiento; 🡂 salario
🡂 nss;
🡂 cabello
🡂 entretenimientos;
🡂 numero apto;
🡂 Salario

Ferreiras Elementos basicos de TOO 31


⇨ SUS OPERACIONES

incluirEmpleado;
ponerDatos;
verDatos;
actualizarDatos;
...

Ferreiras Elementos basicos de TOO 32


⬤ Para ayudar al proceso de abstracción
existen los lenguajes de modelado de
objetos, los cuales están basados en un
conjunto estandarizado de símbolos y formas
de organizarlos para el modelado de
sistemas de software usando tecnología de
orientación a objeto; UML( lenguaje unificado
de modelado) es el mas conocido;

Ferreiras Elementos basicos de TOO 33


OBJETO DE SOFTWARE

OBJETO
PROCESO
OBJETO
DE DE
REAL ABSTRACCIÓN
SOFTWARE
“Cuando el nivel de
abstracción absorbe la
desmesura, el resultado
es la demencia”. Octavio
Paz, El mono gramático.

Ferreiras Elementos basicos de TOO 34


Object Identification, OID

• Object IDentification in object models means that every object instance has a unique,
unchanging identity, that is, a Object IDentifier (OID), generated by the object system of
the OOP language.

• Object identification is often referred to as an OID.

• OIDs are used to reference object instances.

• Characteristics of OIDs:

• OIDs are independent of data contained in the object; The internal data values
are not used to generate identification.

• OIDs are generated by the object system; Users or programmers have no control
over Object identification.

• OID has a duration throughout life of the object.

• The
Ferreiras OID never changes even when the
Elementos data
basicos contents may change.
de TOO 35
⬤ El OID es único, no debe es compartido entre
objetos, aunque sean del mismo tipo, incluso en
diferentes tiempos; no cambia durante la vida del
objeto;

⬤ El OID es un valor generado por el modelo de


sistema de objetos del lenguaje de POO.

Ferreiras Elementos basicos de TOO 36


• Por ejemplo:

LukasL2001
PapolinaQP201
JennyXF100 • Nótese que:

• Todos son “objetos Perro” que ladran, corren,


muerden, son de una raza, tienen un color,
pueden tener hambre, etc., y tienen un nombre
( JennyXF100, PapolinaQP201, LukasL2001,
Kika12eYu33) ASOCIADO CON SU OID, que los
hace únicos, identificables uno del otro, esto es,
Kika12eYu33 cada uno tiene una identidad.

• Estos “objetos Perro”, veremos más adelante,


pueden ser instancia de una clase llamada Perro.

Ferreiras Elementos basicos de TOO 37


• Otro ejemplo: • NÓTESE QUE:

• Son todos “objetos Billete” con


valor de 200 DOP; Cada uno tiene
un número de serie único (su
atributo Identificador Único, UID)

• El valor del atributo usado como


UID es generado por un código de
programación establecido por el
programador.

• UID y OID no son la misma cosa:

• UID es un atributo en la clase


del objeto, manipulado por el
programador;

• OID es generado por el


sistema de modelo de objetos
del lenguaje de POO usado.

Ferreiras Elementos basicos de TOO 38


⮲ Para el programador asignar un identificador único,
UID, algunas reglas generales son:

⬤ Generar un identificador que no se vuelva a originar a través del


tiempo, lugar o después de su cancelación.
⬤ Usar números al azar, con dígitos de control.

⬤ Para cada identificador el proceso de validación debe utilizar campos


(atributos) eficaces para los objetos coincidentes, como ( por ejemplo, para
objetos Persona) los primeras nombre, segundo nombre, apellido, sufijo,
fecha de nacimiento y género.

Ferreiras Elementos basicos de TOO 39


Un objeto de software esta definido por
tres elementos básicos:
Definen el
🡂 Un Nombre ( no debe cambiar) Estado
Del
🡂 Datos ( pueden cambiar) Objeto

🡂 Comportamiento ( Las operaciones,


acciones asociadas con el objeto)

Ferreiras Elementos basicos de TOO 40


⬤ Un objeto de software es una entidad que
tiene un estado definido por un Nombre
asociado a un OID y datos o valores actuales de
los otros atributos, y un conjunto de operaciones
asociadas:
Nombre Definen el
Estado
Datos (valores Del
concretos) Objeto

Operaciones
asociadas

Ferreiras Elementos basicos de TOO 41


⬤ La diferencia entre el “objeto
real” y el “objeto de software” es que
este último “vive” en el mundo de la
computadora o mundo del software
y no en el mundo real;

Ferreiras Elementos basicos de TOO 42


❖ Para ser útil de alguna manera, el
objeto de software debe mapear el
dominio del objeto real al dominio de
la aplicación;

DOMINIO DOMINIO DE
DEL OBJETO LA
OBJETO DE APLICACIÓN
REAL SOFTWARE

Ferreiras Elementos basicos de TOO 43


⬤ Un objeto de software puede
representar un objeto físico en un
dominio particular, pero también
puede representar un concepto
abstracto o una idea;

Ferreiras Elementos basicos de TOO 44


⬤ El estado representa las diferentes
condiciones internas posibles que el objeto
puede experimentar durante su vida; Se
representa por variables con valores; Es la
información que almacena el objeto;

⬤ Estado vs. Nombre En el cambio de


estado de un objeto su Nombre no debe
cambiar, solo los valores de los otros
atributos (datos) pueden cambiar.

Ferreiras Elementos basicos de TOO 45


• El comportamiento son las acciones
que el objeto puede ejecutar o que se
pueden ejecutar sobre el.
• Es la forma de un objeto reaccionar a la
interacción con otros objetos. Es
determinado por el conjunto de las
operaciones definidas como funcionales
para ese objeto.

Ferreiras Elementos basicos de TOO 46


⬤ Según shlaer, mellor y
coad/yourdon, los objetos o sus
clases pueden ser:

1
: extraído del texto programación orientada a objetos. 2da
edición. luis joyanes a. mcgraw hill.

Ferreiras Elementos basicos de TOO 47


⚫ Cosas tangibles

- aviones
- reactores nucleares
- fuentes de alimentación
- televisores
- libros
- automóviles

Ferreiras Elementos basicos de TOO 48


⚫ Organizaciones

- empresas
- partidos políticos
- equipos deportivos
- universidades
- ...

Ferreiras Elementos basicos de TOO 49


∙ Roles o papeles jugados o
representados por personas:

- gerentes
- clientes
- empleados
- médicos
- pacientes
- ingenieros
- estudiantes

Ferreiras Elementos basicos de TOO 50


∙ Incidentes, representan un suceso, un
evento, u ocurrencia, tales como:

- vuelos
- accidentes
- sucesos
- llamadas a un servicio de asistencia
técnica,
- …

Ferreiras Elementos basicos de TOO 51


⚫ Interacciones, implican generalmente
una transacción o contrato y relacionan
dos o más objetos del modelo:

❖ compras (comprador, vendedor,


articulo),

❖ matrimonios ( esposa, esposo, hijos,


fecha de boda), …),
...

Ferreiras Elementos basicos de TOO 52


∙ Especificaciones, muestran
aplicaciones de inventario o fabricación:

- Especificaciones de refrigeradores,
- Especificaciones de motherboards
...

Ferreiras Elementos basicos de TOO 53


∙ Lugares, espacios físicos
ocupados por cualquier tipo de
cuerpo tangible:

- sala de embarque,
- muelle de carga,
- …

Ferreiras Elementos basicos de TOO 54


⮲ Otros aspectos de interés en los objetos,
además de su nombre, atributos y operaciones son:
⬤ Encapsulamiento Los datos del objeto solo se pueden acceder por las
operaciones del objeto; También se le llama ocultamiento de información;

⬤ Mensajería-Colaboración Usando las operaciones definidas para cada uno


los objetos se comunican entre por medio de mensajes (pedirle a un objeto que
ejecute dichas operaciones) para realizar las tareas que se les asignen;

⬤ Herencia El estado de un objeto hereda parte o todo de los datos del estado
de otro objeto;
⬤ Polimorfismo Mas de un objeto puede ejecutar una misma operación según
sus particular estado;

Ferreiras Elementos basicos de TOO 55


Objetos, TOO, POO

•⮲ Los objetos son claves para:


• Entender la tecnología orientada a
objetos (TOO);
• Desarrollar programas utilizando
los objetos, llamado como
programación orientada a objetos
(POO).

Ferreiras Elementos basicos de TOO 56


⮲ La TOO tiene los siguientes beneficios, entre otros:

⬤ Reuso de código, eliminando el código redundante

⬤ Ocultamiento de información, evita la corrupción de los datos

⬤ Llegar al dominio del problema con precisión;

⬤ Diseño centrado en los datos;

⬤ Facilidad de actualización de los modulos de un sistema;

⬤ Construcción de GUI mas simples y rapido;

⬤ Flexibilidad para adaptarse a los cambios de requerimientos


durante el proceso de desarrollo de un software;

Ferreiras Elementos basicos de TOO 57


CLASES

Ferreiras Elementos basicos de TOO 58


CLASE
Es una descripción abstracta de
un conjunto de objetos tangibles
o intangibles, de una cierta
especie, que tienen atributos y
comportamientos similares;

Ferreiras Elementos basicos de TOO 59


• Por ejemplo:

Son objetos
que
se pueden
agrupar
en la clase
PersonaCulta

Ferreiras Elementos basicos de TOO 60


• Luego, no serán objetos de la
clase PersonaCulta:

Ferreiras Elementos basicos de TOO 61


⬤ Cada objeto existente es una
instancia de una clase;
⬤ Una clase define un tipo y un objeto
de esta clase es justamente una variable
del tipo de la clase;
⬤ Cada uno de los objetos agrupados
en la clase PersonaCulta ante visto es
una instancia de dicha clase.

Ferreiras Elementos basicos de TOO 62


Notación para Clases

NOTACIÓN GRÁFICA DE NOTACIÓN GRÁFICA DE


UNA CLASE SEGÚN BOOCH UNA CLASE SEGÚN TYLOR

Ferreiras Elementos basicos de TOO 63


⮲ Notación UML para una clase

<NombreClase>

Miembros < atributos o campos>


de la clase

<métodos u operaciones>

{ información adicional }

Ferreiras Elementos basicos de TOO 64


Notación UML de la clase, tipos de datos a usar
• En este curso usaremos los tipos de datos de Java:
Nombre Bits Rango Valor por
defecto
byte 8 [ -128, +127 ] 0

short 16 [- 32768, + 32767 ] 0

int 32 [-2147483648, 2147483647 ] 0

long 64 [ -9223372036854775808 , + 9223372036854775807 ] 0L

float 32 32-bit IEEE 754 , single-precision floating point 0.0f

double 64 64-bit IEEE 754 , double-precision floating point 0.0d

boolean true Or false false

char 16 16-Bit UNICODE character '\u0000'

String null

Ferreiras Elementos basicos de TOO 65


Notación UML de la clase, sintaxis de miembros
• La sintaxis para escribir los miembros de la clase es como sigue:

• Atributos o campos: ( es recomendable que siempre sean - ) 1

• acceso ( - or + ) ID : tipo = valor inicial { información adicional }

• Por ejemplo:
• - salarioMensual : double = 93456.23 { DOP }

• Métodos u operaciones: ( es recomendables que siempre sean + ) 1

• acceso ( - , + , # ) ID (par1: tipo, par2: tipo, ... ) : tipo de retorno { idem }


• Por ejemplo:
• + pagar( monto : double ) : boolean { si es true fue OK el pago }

1
: Más adelante veremos estos conceptos con más detalles.

Ferreiras Elementos basicos de TOO 66


Notación UML para una clase, Ejemplo

Estudiante Nombre

- matricula: long
- nombre: String Atributos
- direccion: String
- edad: byte
+ setNombre( no: String) : void
+ getNombre() : String Operaciones
Miembros + setNota( x:double ) : void
de la clase
{ edad minima 16 } Restricciones o información
adicional

Ferreiras Elementos basicos de TOO 67


Notación UML para un objeto; Por
ejemplo, para la clase anterior
Estudiante:
unEstudiante : Estudiante

matricula = 103456430
Nombre = Juan Rodriguez
direccion = Katanga, Calle C, # 8, Los Minas, SDE, R.D.
edad = 23

Los campos o variables miembros deben mostrarse con


valores, debido a que un objeto tiene un estado definido
por dichos valores; No es recomendable dejarle los
valores por defecto.

Ferreiras Elementos basicos de TOO 68


⬤ Una clase esta hecha,
básicamente, de un nombre
único, un numero de atributos y
de un conjunto de operaciones;

Ferreiras Elementos basicos de TOO 69


ATRIBUTOS1

Los atributos de una clase determinan


la información que sus objetos pueden
almacenar.

¡¡ toda la data del sistema es


almacenada como valores de
los atributo de sus objetos. !!

1
: propiedades: Característica o calidad de una cosa;

Ferreiras
Elementos basicos de TOO 70
⮲ Los valores de los atributos
de una clase definirán los
posibles datos de los estados en
los cuales una instancia de la
clase ( un objeto ) puede estar;

Ferreiras Elementos basicos de TOO 71


⬢ Los valores de los atributos
de un objeto concreto definen, en
un momento dado, el estado de
dicho objeto.

Ferreiras Elementos basicos de TOO 72


OPERACIONES
⬤ Acciones que hacen o que
pueden ser hechas a los
atributos de sus objetos ó a los
objetos mismos como tales;

Ferreiras Elementos basicos de TOO 73


TODA LA FUNCIONALIDAD DEL
SISTEMA ES DEFINIDA POR LAS
OPERACIONES DE LOS OBJETOS
DE SUS CLASES;

Ferreiras Elementos basicos de TOO 74


⮲ Las acciones son las únicas
forma de acceder a los atributos de
una clase; Pueden ser:

⬤ Para obtener información del estado actual


del objeto de la clase; O,

⬤ Para cambiar el estado actual del objeto


de la clase;

Ferreiras Elementos basicos de TOO 75


INTERFAZ DE LA CLASE

Es el conjunto de operaciones
que un objeto de la clase podrá
ejecutar para interactuar con el
mundo exterior a este.

Ferreiras Elementos basicos de TOO 76


Las funciones miembros (Los
métodos en JAVA y C#) forman la
interfaz de los objetos de la clase
con el mundo exterior:

Mundo
objeto de INTERFAZ
exterior al
la clase (funciones objeto
miembro)

Ferreiras Elementos basicos de TOO 77


⬤ Las operaciones de una clase que
componen su interfaz son, básicamente,
de cuatro tipos:

modificar (mutator methods): cambia uno o


mas valores asociados con los atributos del
objeto;

acceder (accesor methods) : retorna un valor


del estado del objeto;

Ferreiras Elementos basicos de TOO 78


Constructor: se invoca una vez cuando el
objeto es creado, antes de cualquier otra
operación;

Destructor: se invoca cuando el objeto es


destruido para liberar los recursos de memoria
asignados; JAVA y C# NO REQUIEREN QUE EL
DESARROLLADOR LE DEFINA UN
DESTRUCTOR; Usa su “Garbage Collector”;

Ferreiras Elementos basicos de TOO 79


CLASES, EJEMPLOS
⚫ nombre: CuentasPorCobrar
atributos: registro, fechaVencimiento, balance, historial,
comportamientos: actualizar, registrar, abonar,

⚫ nombre: Inventario
atributos: registro, tipo, cantidad, control, proveedor
comportamientos: registrar, ingresar, descargar,

Ferreiras
Elementos basicos de TOO 80
⚫ nombre: Perro
atributos: patas, rabo, raza, nombre, peso, comidaPreferida,
comportamientos: ladrar, caminar, morder, jugar, estropear,

⚫ nombre: FormularioWeb
atributos: fondo, marcos, URL, links, colores
comportamientos: navegar, grabar, marcarCopiarPegar, encuestar,

Ferreiras
Elementos basicos de TOO 81
⚫ nombre: Facultativo
atributos: especialidad, nombre, edad, peso,
comportamientos: diagnosticar, examinar, prescribir, demandar,

⚫ nombre: Lubricante
atributos: nombre, precio, horasTrabajando,
comportamientos: chequear, comprar, escaparMotor, echar,

Ferreiras
Elementos basicos de TOO 82
⚫ nombre: Paciente
atributos: edad, enfermedad, peso, vidaUtil,
comportamientos: ingresar, egresar, comer, examinar,

⚫ nombre: Estudiante
atributos: registro, nombre, peso, edad,
comportamientos: estudiar, jugar, rezar, trabajar, darBaja, evaluar,
promover,

Ferreiras
Elementos basicos de TOO 83
Encontrando
Objetos
Y
Clases

Ferreiras Elementos basicos de TOO 84


⮲ El proceso de encontrar objetos
y clases se realiza examinando la
narrativa o descripción del
problema (análisis gramatical) y
localizando nombres propios,
nombres comunes, verbos y
adjetivos.

Ferreiras Elementos basicos de TOO 85


⬤ Luego de encontrados los
objetos y sus clases será
preciso encontrar los atributos y
las operaciones que actúan
sobre ellos;

Ferreiras Elementos basicos de TOO 86


⬤ Los atributos serán
característica, cualidad, propiedad,
particularidad, peculiaridad,
singularidad, rasgo, marca,
carácter, idiosincrasia, naturaleza
o condición del objeto;

Ferreiras Elementos basicos de TOO 87


⬤ Operaciones que se pueden
realizar sobre un objeto: aunque
existe gran cantidad de operaciones
que se pueden realizar sobre un
objeto, generalmente se dividen en
tres grandes grupos:

Ferreiras Elementos basicos de TOO 88


1) Operaciones que manipulan los
datos de alguna forma específica
( añadir, borrar, cambiar formato, …);

2) Operaciones que realizan un cálculo


o proceso;

Ferreiras Elementos basicos de TOO 89


3) Operaciones que comprueban
(monitorizan) un objeto frente a
la ocurrencia de algún suceso de
control;

Ferreiras Elementos basicos de TOO 90


⬤ Para encontrar las operaciones se
realiza un nuevo análisis gramatical
de la descripción del problema
buscando y aislando los verbos del
texto.

Ferreiras Elementos basicos de TOO 91


Las clases estarán definidas por los
objetos identificados con sus atributos y
comportamiento comunes. El conjunto
de todas las clases es un modelo OO del
sistema en desarrollo.

Ferreiras
Elementos basicos de TOO 92
⮲ Ejemplos de clases con algunos posibles
atributos y operaciones:

CLASE ATRIBUTOS OPERACIONES


Estudiante Matricula EstablecerMatricula
Nombre CalcularIndice
Dirección
Índice
Vuelo Aerolínea EstablecerAerolínea
Numero EstablecerNumeroDeVuelo
Destino VerPosición
Origen
Posición
Acuario Material EstablecerMaterial
Longitud EstablecerDimensiones
Ancho CalcularVolumen
Profundidad

Ferreiras Elementos basicos de TOO 93


⮲ Notacion UML para una clase, ejemplo
Nombre Estudiante

- matricula: long
- nombre: string
IMPORTANTE, MUY
- nota: double
VariablesIMPORTANTE:
miembro Este es el
...
modelo de la clase que se
implementará, es decir,
Por el
que usted codificará
Ejemploy + setMatricula( x: long ): void
Funciones probará + setNombre( y: string): void
miembro + getNota(void): double
-
{ restricciones }
{ restricciones }

Ferreiras Elementos basicos de TOO 94


Heurística a usar
⚫ In the OO&D:

⚫ The first stage can be a simple brain-


storming of the possible objects;

⚫ One method is to go through all the nouns in


any documentation about the world you are
analyzing, and considering these as candidate
objects/classes.

Ferreiras Elementos basicos de TOO 95


Heurística a usar
• For the initial stage of the identification process, can be used an intuitive set of heuristics for
identifying objects, attributes, operations, and relationships, starting with some form of
problem statement or narrative ( in OOA&D, after the analysis phase, the requirements
specification is the starting point).

• Using this heuristics we map various language constructs, such as nouns, verbs, and
adjectives, to component models. The following list illustrates related examples:

- Proper Noun: Instances of a class (an object)


- - For example: Whiskers the cat.
- Common Noun: Class
- - For example: cat
- Adjective: Attribute
- - For example: pretty
- Doing Verb: Operation
- - For example: eats

Ferreiras Elementos basicos de TOO 96


Heurística a usar
• Class relationships

- Being Verb: Inheritance


- - For example: a cat is a kind of animal.
- Having Verb: Aggregation
- - For example: a cat has the skin of a mammal
- Modal Verb: Constraints
- - For example: a cat must be a mammal

• From
– Pages 115-116, Software Engineering: A Hands-On Approach; Roger Y. Lee; Springer, 2013.
– Page 180, Object-Oriented Software Engineering Using UML, Patterns, and Java; Bernd Bruegge, Allen
H. Duttoit; Prentice Hall, Third Edition, 2010.

Ferreiras Elementos basicos de TOO 97


Encontrando objetos y clases
• El proceso inicia con La narrativa o declaración del problema (Si ya se ha
realizado la fase de análisis, las SRS estarán disponibles y se debe iniciar
con éstas) ;

• Al escribir la narrativa o declaración del problema, o las SRS, se hace


énfasis en el uso de nombre propios, nombres comunes, verbos y adjetivo.
todos los cuales son mapeados al modelo OO usando los siguientes
criterios:

Ferreiras Elementos basicos de TOO 98


⮲ Criterios: Elementos gramaticales Vs.
Elementos del modelo OO

ELEMENTO ELEMENTO DEL EJEMPLO


GRAMATICAL MODELO OO
NOMBRES PROPIOS OBJETO (INSTANCIA) JUAN, ROSA
NOMBRE CLASE JUEGETE, MUÑECA
IMPROPIOS/COMUNES
VERBO ACCION COMPRAR, ENTRAR.
RECOMENDAR,
TERMINAR
ADJETIVO ATRIBUTO 5 AÑOS

Ferreiras Elementos basicos de TOO 99


• Los pasos a seguir en el proceso de encontrar objetos y clases son:

• Narrativa o Declaración del problema, o SRS;


• Si no se tiene las SRS, hacer el Análisis-dominio del problema;
• Seleccionar los elementos gramaticales (subrayándolos, por ejemplo)
;
• Hacer un listado, ordenado alfabéticamente, de los elementos
gramaticales seleccionados;
• En el listado anterior eliminar los elementos redundantes;
• Mapear cada elemento gramatical a su elemento del modelo OO;
• Agrupar los objetos en clases;
• Hacer un listado de las clases encontradas, con sus
correspondientes atributos y operaciones;
• Escribir el pseudocódigo de las clases identificadas, así:

• NombreClase(atrib1, atrib2,...; oper, oper2, ...);

• Hacer la Notación UML de las clases identificadas.

Ferreiras
Elementos basicos de TOO 100
Ejemplo completo
⮲ Narrativa

“el cliente aa entra a la tienda bb con la


intención de comprar un juguete para su hija
de 3 años. el dueño de la tienda le hace
recomendaciones. el cliente selecciona un
juego peligroso que es inadecuado para la hija.
el propietario de la tienda le recomienda una
muñeca como un juguete mas adecuado.”

Ferreiras Elementos basicos de TOO 101


⮲ Selección de los elementos
gramaticales
“El cliente AA entra a la tienda BB con la
intención de comprar un juguete para su
hija Rosita de 3 años. El dueño de la
tienda le hace recomendaciones. El
cliente selecciona un juguete peligroso
que es inadecuado para la hija. El
propietario de la tienda le recomienda
una muñeca como un juguete mas
adecuado.Luego, el cliente paga”
Ferreiras Elementos basicos de TOO 102
⮲ Listado de la selección de los
elementos gramaticales
cliente dueño propietario

entra tienda tienda

tienda hace rec recomienda

intención cliente muñeca

comprar selecciona juguete

juguete juguete adecuado

hija peligroso AA

Rosita inadecuado BB

3 años hija paga

Ferreiras Elementos basicos de TOO 103


⮲ Eliminación de los elementos
gramaticales redundantes
cliente dueño propietario

entra tienda tienda

tienda hace rec recomienda

intención cliente muñeca

comprar selecciona juguete

juguete juguete adecuado

hija peligroso AA

Rosita inadecuado BB

3 años hija paga

Ferreiras Elementos basicos de TOO 104


⮲ Mapeado de los elementos gramaticales a
elementos del modelo OO
cliente clase

entra acción

tienda clase

intención atributo

comprar acción

juguete clase

hija clase

Rosita atributo

3 años atributo

Ferreiras Elementos basicos de TOO 105


dueño clase propietario propietario
tienda tienda tienda tienda
hace rec hace rec recomienda acción
cliente cliente muñeca instancia
selecciona acción juguete juguete
juguete juguete adecuado atributo
peligroso atributo AA atributo
inadecuado atributo BB atributo
hija hija paga acción

Ferreiras Elementos basicos de TOO 106


Agrupar los objetos (instancias) en clases

Objeto (Instancia) Clase

Muñeca Juguete

Ferreiras Elementos basicos de TOO 107


Listado de clases encontradas, con sus atributos y operaciones

Clase Atributos Operaciones

Hija nombre, edad, (1)

Juguete peligroso, (1)


inadecuado,
adecuado,
Cliente nombre, intención, entrar, comprar, seleccionar, pagar

Tienda nombre, (1)

Propietario (1) recomendar,

(1) Estos son los atributos y las operaciones iniciales, como resultado inmediato
de aplicar la heurística indicada. En la fase de diseño ya se le deberán agregar
o eliminar atributos y operaciones.

Ferreiras Elementos basicos de TOO 108


• Escribir el pseudocódigo de cada clase :
• NombreClase ( atrib1, atrib2, ... ; oper1, oper2, ...);
• Por ejemplo, para una de las clases encontradas aquí :
• Cliente( nombre, intencion; entrar, comprar, seleccionar, pagar);
•) Hacer la Notación UML de cada clase. Por ejemplo:

Cliente
- nombre : String
- intencion : String
+ entrar() : void
+ seleccionar() : String
+ pagar( valor: double ) : boolean

Ferreiras Elementos basicos de TOO 109


!Uf! Por fin, ya aprendí a
modelar clases

Ferreiras Elementos basicos de TOO 110


Gracias
al OK, Vaya con su
clase y pruébela
señor !!

Ferreiras Elementos basicos de TOO 111


Su turno es ahora
Quiz No. : 01

• Usando la heurística estudiada, identificar las clases, sus atributos y operaciones,


presentes en la siguiente narrativa:

• ...

Ferreiras Elementos basicos de TOO 112


Más conceptos, de un vistazo,
de TOO

Ferreiras Elementos basicos de TOO 113


LOS PILARES DE LA TOO

A continuación veremos, a nivel introductorio, cada


uno de estos pilares de la TOO.
Ferreiras Elementos basicos de TOO 114
INSTANCIACIÓN DE CLASES
• Es el proceso de crear objetos de una clase. Cuando se crea un
objeto se crea una “instancia ” de una clase;
• Una clase es un tipo nuevo de dato, definido por el desarrollador,
luego, para usar la clase debemos crear una variable de ese tipo, esta
variable es llamada variable referencia.
• Cuando a la variable referencia se le asigna un objeto su nombre es
asociado a dicho objeto.

Ferreiras Elementos basicos de TOO 115


INSTANCIACIÓN DE CLASES
• En Java y C#, la sintaxis para la declaración e inicialización de
variables referencia con un objeto es como sigue:
Fruta unaFruta = new Fruta();
• En el tema “Implementación de clases, Encapsulamiento” veremos
los detalles completos.

Ferreiras Elementos basicos de TOO 116


CLASES ABSTRACTAS
Son clases que no pueden ser
instanciadas directamente. Son
usadas para derivar otras clases a
partir de ellas.

Ferreiras Elementos basicos de TOO 117


❖ ” representan los escalones más elevados de algunas
jerarquías de clases y solo sirven para derivar otras
clases, en las que se van implementando detalles y
concreciones, hasta que finalmente presentan un nivel
de definición suficiente que permita instanciar objetos
concretos”

Ver http://www.zator.com/cpp/e4_11_8c.htm)

Ferreiras Elementos basicos de TOO 118


NIVELES DE ACCESO A LOS
MIEMBROS DE LA CLASE
Las clases permiten especificar tres
niveles de acceso a los atributos y
operaciones de sus objetos:

⬤ privado
⬤ protegido
⬤ publico

Ferreiras Elementos basicos de TOO 119


1) privado: Acceso solo permitido al través
de la implementación de sus operaciones
(funciones miembros en C++, métodos en C#
y Java); Es el que garantiza el ocultamiento
de información.

2) protegido: Acceso sólo permitido a las


derivadas;

3) publico: Acceso libre para todo


cliente de la clase;

Ferreiras Elementos basicos de TOO 120


EJECUCIÓN O CORRIDA DE
UNA APLICACIÓN OO
En la ejecución o corrida de una aplicación
orientada a objetos deberán de producirse
las siguientes actividades, en ese orden:
⬤ Creación de los objetos;
⬤ Intercambio de mensajes;
⬤ Liberación de memoria;

Ferreiras Elementos basicos de TOO 121


⬤ 1ro. creación de los
objetos: se crean los objetos
de software a medida que se
necesitan;

Ferreiras Elementos basicos de TOO 122


⬤ 2do. intercambio de mensajes: los
objetos de software se intercambian los
mensajes a medida que se procesa
información internamente o se responde
a las entradas de los usuarios;

Ferreiras Elementos basicos de TOO 123


⬤ 3ro. liberación de la memoria:
cuando los objetos de software ya no
son necesarios, se borran de la
memoria;

Ferreiras Elementos basicos de TOO 124


ENCAPSULAMIENTO

Ferreiras Elementos basicos de TOO 125


Concepto de encapsulamiento

Interfase de la clase, Detalles privados o miembros


miembros públicos u encapsulados, normalmente
operaciones son los atributos de la clase

Ferreiras Elementos basicos de TOO 126


⬤ La encapsulación empaqueta
los datos y las acciones dentro de
un objeto ocultando su estructura
e implementación;

Ferreiras Elementos basicos de TOO 127


❖ También se le conoce como
ocultamiento de información:
los datos solo pueden ser
accedidos por las acciones del
objeto a que pertenecen;

⬤ Permite a los objetos ser


independientes y ser empaquetados en
componentes reusables;

Ferreiras Elementos basicos de TOO 128


⮲ Facilita la modularidad El código
fuente del objeto de software puede ser
mantenido independientemente del de
otros objetos;

⬤ Es concepto clave de la
too;

Ferreiras Elementos basicos de TOO 129


HERENCIA

Ferreiras Elementos basicos de TOO 130


• La herencia es una manera de formar nuevas clases a partir de clases
ya definidas, reusando el código ya existente con alguna o ninguna
modificación; también se le llama generalización;

• La notacion UML para la herencia es:

Base

Derivada

Ferreiras Elementos basicos de TOO 131


❖ En la herencia, si una clase D se
deriva de la clase B, se dice entonces
que la clase D es una subclase o
derivada de la B mientras que B se
dice que es una superclase o una
clase base de D.

Ferreiras Elementos basicos de TOO 132


⬤ Por ejemplo, la relación de herencia entre objetos fruta
manzana, mango, naranja, en notación UML es como indicado a
continuación: La Clase Fruta es la
clase base o
Fruta superclase y las
clases Mango,
Manzana y Naranja
son las clases
derivadas o
subclases.

Mango Manzana Naranja

Ferreiras Elementos basicos de TOO 133


⮲ La clase derivada hereda todos los
miembros que son públicos y protegidos
en la clase base y, también, le es
permitido agregar mas atributos y
operaciones o sobrescribir las
existentes;

Ferreiras Elementos basicos de TOO 134


❖ La herencia es, probablemente, la
técnica más poderosa de la Tecnología
Orientada a Objetos (TOO);

⬤ Es el mecanismo mas comúnmente


utilizado para el reuso de funcionalidades.

Ferreiras Elementos basicos de TOO 135


⮲ Una regla empírica para determinar si una clase
puede ser modelada como una subclase de otra es
la regla “es-un” | “ es-una”:


Si la sentencia “a es-una b” | “a es-un b” tiene sentido,
entonces a es probablemente una subclase de b. Por
ejemplo, un perro es-un mamífero. La subclase es
perro y la superclase es mamífero:

Perro es la clase derivada



Mamífero
Un Perro es-un Mamífero.

Mamífero es la clase Base


Perro

Ferreiras Elementos basicos de TOO 136


HERENCIA MÚLTIPLE
• Significa que una subclase puede tener mas de una superclase.

• Por ejemplo: “Un presente en RD es un empleado, es un dominicano y es


una persona culta”

• C# y Java no soportan herencia múltiple. C++ si la soporta.

Ferreiras Elementos basicos de TOO 137


⬢ Permite a la clase derivada heredar
propiedades (datos y operaciones) de
más de una superclase y fusionarlas
como partes suyas;

Ferreiras Elementos basicos de TOO 138


POLIMORFISMO

Ferreiras Elementos basicos de TOO 139


POLIMORFISMO
Es la capacidad de objetos, pertenecientes a
diferentes clases, procesar un mismo
mensaje de acuerdo a un comportamiento
especifico para cada una de sus clases;
Significa que dichos objetos pueden
responder al mismo mensaje en diferentes
maneras;

Ferreiras Elementos basicos de TOO 140


Ilustración del concepto polimorfismo: En la
figura de mas abajo, cuando le indicamos a
cada objeto que hable ( les enviamos en
mensaje “hablen”) cada uno hablará en su
forma particular:

Ferreiras Elementos basicos de TOO 141


Por ejemplo, en el sistema
figurasGeometricas, un círculo, un triangulo,
un cuadrado, y un decágono tienen cada uno
formas diferentes; Mediante el uso de
polimorfismo, se puede enviar a cada una de
las figuras el mismo mensaje (por ejemplo,
dibujarse), y cada una es responsable de
dibujarse por sí mismo según su forma propia;

Ferreiras Elementos basicos de TOO 142


⬤ Otro ejemplo: en un software OO que
gestiona el sistema de una empresa,
podemos enviar un mensaje a todos los
objetos que se les pide que almacenen sus
datos. cada uno de ellos se comportan de
manera diferente en el sentido de que tienen
diferentes atributos para almacenar. sin
embargo, todos ellos reciben y actúan igual
ante el mismo mensaje;

Ferreiras Elementos basicos de TOO 143


Asignando Responsabilidades
a las Clases

Asignar responsabilidades a una clase es


diseñar los atributos para almacenar datos y
las funciones miembro (métodos),
correspondientes a las operaciones ( acciones,
verbos) identificadas, que definirán en código el
comportamiento de sus objetos.

Ferreiras Elementos basicos de TOO 144


⮲ Luego de identificadas las clases
relevantes (que son de importancia para la
aplicación), hay que asignarles
responsabilidades básicas. La Asignación
adecuada de responsabilidades a las clases
es la clave del proceso de encontrar objetos
y clases y, por extensión, el éxito del diseño.

Ferreiras Elementos basicos de TOO 145


⮲ Lo primero que se debe decidir es
cuales son los datos a encapsular y la
interfaz de la clases, esto es, las funciones
miembro que serán public; La interfaz
pública determinara como la clase será
utilizado por otros programadores (o usted
mismo).

Ferreiras Elementos basicos de TOO 146


⮲ Una vez diseñada e implementada la
interfaz, esta debe permanecer, por lo
general, bastante constante. Una vez que
se haya empezado a utilizar la clase, se
podrá añadir funciones a su interfaz, pero
será difícil de eliminar, a menos que no se
utilicen, dichas funciones.

Ferreiras Elementos basicos de TOO 147


Tarjetas CRC
[ Clases-Responsabilidades-Colaboradores ]

Es un método que se utiliza para detectar,


comprobar y actualizar las
responsabilidades de las clases y sus
colaboraciones con otras clases en un nivel
conceptual. Es el método mas sencillo para
definir el comportamiento de una clase.
CRC es sinónimo de “Clases",
“Responsabilidades", “Colaboradores“. Es
informal a propósito, para ser creativo.
Ferreiras Elementos basicos de TOO 148
⮲ Las responsabilidades son la
información que un objeto de la clase
puede almacenar y las acciones que éste
puede ejecutar;

⮲ Los colaboradores son otras clases con


las cuales interactúan para cumplir sus
responsabilidades. Por lo general, la
definición de los colaboradores de una clase
da lugar a nuevas clases y redefinición de las
clases existentes.

Ferreiras Elementos basicos de TOO 149


⮲ El formato de tarjeta CRC a usar en este
curso es como sigue:

NOMBRE DE LA CLASE
RESPONSABILIDADES COLABORADORES

Ferreiras Elementos basicos de TOO 150


⮲ Por ejemplo, Si consideramos “... el proceso de inscribir estudiantes en un
curso. Los estudiantes solicitan información acerca de los cursos disponibles y
también se pueden retirar ... “, tendremos:

Para los datos que Estudiante


podrán almacenar
los objetos RESPONSABILIDADES COLABORADORES
Estudiantes Matricula Curso
Nombres
Apellidos
Dirección
Para las Correo Electrónico
acciones que
podrán realizar Inscribir curso
los objetos Solicitar información
Estudiantes
Retirar curso

Ferreiras Elementos basicos de TOO 151


⮲ Algunos comentarios de la tarjeta CRC
Estudiantes anterior:
⬤ Un objeto estudiante solicita información acerca de un curso. Esto significa
que Curso debe tener una acción para enviar dicha información;

⬤ Un objeto Estudiante solicita ser inscrito. Esto significa que Curso debe tener
una forma de inscribir estudiante e informarle el resultado;

⬤ Un estudiante solicita retiro de un Curso. Esto significa que curso debe tener
una acción para retirar estudiantes e informarles.;

⬤ La clase colaborador Curso, vemos que debe tener atributos y acciones que
serán sus responsabilidades para poder colaborar con la clase Estudiante.

Ferreiras Elementos basicos de TOO 152


GRACIAS

Ferreiras Elementos basicos de TOO 153


Referencias
Ferreiras’s PPT of Object-Oriented Analysis and Design.

Ferreiras Elementos basicos de TOO 154

También podría gustarte