Orientación a objetos curso

68
17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 1 ALEJANDRO DOMÍNGUEZ LA ORIENTACIÓN A OBJETOS

description

 

Transcript of Orientación a objetos curso

Page 1: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 1

ALEJANDRO DOMÍNGUEZ

LA ORIENTACIÓN A

OBJETOS

Page 2: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 2

Temario

• OBJETIVOS

• HISTORIA DE LA ORIENTACIÓN A OBJETOS

• ¿POR QUÉ OBJETOS?

• ¿QUÉ ES UN OBJETO?

• CONCEPTOS CLAVE Y TERMINOLOGÍA

• EJEMPLO PRÁCTICO: MODELADO DE UNA

EMPRESA

• CATEGORIZANDO A LOS OBJETOS

• EL PENSAMIENTO DE OBJETOS

Page 3: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 3

LA ORIENTACIÓN A

OBJETOS

OBJETIVOS

Page 4: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 4

Objetivos

• Esta presentación proporcionará ...

– Una perspectiva histórica de la orientación a objetos

– Una perspectiva general sobre la orientación a objetos

– Un marco conceptual sólido para el pensamiento en objetos

– Algunas aplicaciones de la orientación a objetos a los negocios

• Esta presentación no discutirá ...

– Programación OO (POO)

– Metodologías de análisis y diseño OO (ADOO)

– Productos comerciales

Page 5: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 5

HISTORIA DE LA

ORIENTACIÓN A OBJETOS

LA ORIENTACIÓN A

OBJETOS

Page 6: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 6

15 años de fama

• La experiencia nos dice que las tecnologías de

ingeniería de software (IS) mas populares tienen el

siguiente comportamiento:

– Pueden tomar algún tiempo en llegar a ser populares

– Tienen un periodo de florecimiento de 15 años

• Un ejemplo de lo anterior es la metodología

estructurada

– Empezó a ser popular alrededor de 1973-1975

– Alcanzó su pico de popularidad entre 1985 y 1989

Page 7: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 7

La “vida media” para las

tecnologías de IS

• La vida media para las tecnologías indica el punto

medio en su ciclo de vida

• La vida media en la orientación a objetos significa

que:

– se ha utilizado esta tecnología por algún tiempo en

proyectos reales

– Será remplazada por otras tecnologías dentro de un

periodo de 7 a 10 años

Page 8: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 8

Aspectos históricos (1)

• 1963: I. Sutherland diseña Sketchpad en el cual

se presentan gráficas e interfaces gráficas de

usuario OO; así como clases (masters) e instancias

• 1966: Se introduce al mercado Simula, el primer

lenguaje de programación OO

• Finales de 1960’s: Alan Kay trabaja en la

máquina denominada FLEX, la precursora de

Dynabook, la Xerox Star, y la Apple Macintosh

Page 9: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 9

• 1970: el término “orientado a objetos” se

introduce en la literatura. Muchas personas se lo

acreditan a Alan Kay

• 1972: Se desarrolla la primera versión de

Smalltalk

• 1980: Grady Booch introduce el “diseño orientado

objetos”

• 1980: Se introducen las primeras versiones de

“hardware OO”

Aspectos históricos (2)

Page 10: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 10

• 1985: aparecen las bases de datos OO

• 1985: aparecen la bibliotecas de clases OO

• 1986: Se introducen las primeras versiones

de “análisis OO” y de “análisis de

requerimientos OO”

• 1988: “análisis del dominio OO” aparece

en la literatura

Aspectos históricos (3)

Page 11: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 11

• 1980’s: Se desarrollan un gran cantidad de

aplicaciones OO

– Estas aplicaciones son principalmente

“aplicaciones de tiempo real”

– Literalmente, se producen millones de líneas de

código OO

• Finales de 1980’s: Aparece un gran número de

lenguajes de programación OO; incluyendo:

C++, Eiffel, CLOS, etc.

Aspectos históricos (4)

Page 12: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 12

Aspectos históricos (5)

LISP ALGOL

PASCAL

SIMULA

Actor

Eiffel

Smalltalk

Flavors

Loops

CLOS

C++

Objective-C

Object Pascal

1960

1970

1980

1990

C

TIPO

puro

hib-rid

Tra-dicional

UML

C++

Page 13: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 13

• La MOO empieza a mostrar signos de “vida media”:

– Literalmente cientos de millones de líneas de código fuente

OO se han escrito

• Algunos productos OO contienen alrededor de 2 000 000 de líneas de

código

– La tecnología de bases de datos orientas a objetos tiene un

éxito sin precedente

• Existe la posibilidad de elegir entre almacenes de objetos persistentes,

sistemas de bases de datos OO, y productos de objetos relacionales

• La OMG hace un esfuerzo por estandarizar la tecnología de bases de

datos OO

• El mercado de los sistemas de bases de datos OO se duplica cada año

Mediados de los 1990’s (1)

Page 14: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 14

– Los desarrolladores de software pueden elegir entre un gran

número de herramientas CASE OO

• Object International’s Object Tool

• Rational’s Rose

• Protosoft’s Paradigm Plus

– Existen muchos enfoques de desarrollo de software OO:

Booch, Rumbaugh, Coad, Wirfs-Brock, Berard, Fusion,

Shlaer-Mellor, ...

– El término “orientado a objetos” aparece de forma regular en

las publicaciones de negocios: The Wall Street Journal,

Business Week, ...

– La comunidad de administración de los SI empieza a utilizar

la tecnología OO

Mediados de los 1990’s (2)

Page 15: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 15

En la actualidad

• Existe un crecimiento significante (y

explosivo) de tecnologías basadas en la

orientación a objetos; e.g. “programación

basada en componentes”, “programación

basada en agentes”

• Existe una tendencia a estandarizar las

tecnologías orientadas a objetos; e.g.

UML, Business Objects

Page 16: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 16

Lo que se ha aprendido (1)

• La tecnología OO es una oportunidad, no una

garantía; i.e., los proyectos orientados a objetos

pueden fallar

• La evidencia empírica muestra que, cuando se

compara con las mismas aplicaciones

desarrolladas utilizando enfoques tradicionales, las

soluciones OO

– son más pequeñas

– son menos complejas

– son más apropiadas para aplicaciones de tiempo real

– toman menos tiempo en desarrollarse

Page 17: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 17

• La tecnología OO hace mas énfasis en la reusabilidad

del software que los métodos tradicionales

– sin embargo muy pocas personas dentro de la comunidad OO

entiende lo que verdaderamente significa reusabilidad

• La tecnología OO tiene impacto sobre un gran

dominio: desde las practicas administrativas, a las

metodologías del ciclo de vida, a la selección de

herramientas, a el almacenamiento persistente, a los

lenguajes de programación

• La tecnología OO es vasta; e.g., mas amplia que lo

indicado en los lenguajes de programación OO

Lo que se ha aprendido (2)

Page 18: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 18

LA ORIENTACIÓN A

OBJETOS

¿PORQUÉ OBJETOS?

Page 19: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 19

Ventajas estratégicas (1)

• Valor del dinero

– Ensamblaje de sistemas a partir de

componentes comerciales

• Amortización de los costos de las

componentes en la construcción de varios

sistemas

– Estandarización de la infraestructura y

las componentes de negocios

• Gasto de dinero y tiempo en valores

agregados

Page 20: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 20

Ventajas estratégicas (2)

• A tiempo para salida al mercado

– Minimiza la re-invención de lo que es común en cada

proyecto

– Construcción de nuevos sistemas a partir de los datos y

procesos ya existentes

• Retorno de las inversiones

– Integra (“envuelve”) sistemas heredados en nuevos

sistemas

– Estandariza en un ambiente “abierto” y comercial

Page 21: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 21

Ventajas tácticas (1)

• Los objetos pueden ...

– representar cosas reales

– ser paralelos a nuestras

estructuras de

pensamiento

– estar organizados tal

como la gente ve al

mundo y a sus partes

componentes

Page 22: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 22

Ventajas tácticas (2)

• Los objetos son una

alternativa para una visión

del mundo alrededor de

las computadoras

• Los objetos permiten a los

modeladores,

desarrolladores, y usuarios

comunicarse y pensar con

la terminología del mundo

real

Page 23: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 23

Ventajas tácticas (3)

• Los sistemas son un reflejo

de los negocios

– Integración natural de las

aplicaciones existentes

• Compatibilidad interna y

externa, reutilización

– Datos y procedimientos del

negocio

– Reglas de negocios e

integridad de las

restricciones

Page 24: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 24

Ventajas tácticas (4)

• Manejo de diferencias

y cambios

– Colocan las reglas

divisionales/locales de

negocios en las

especializaciones

– Permanencia de las

definiciones, reglas y

datos corporativos en

lo general

Page 25: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 25

Ventajas de negocios

• Integración de los

procesos de negocios

– Distribuye “flujos de

trabajo” = workflow

(objetos de procesos) y

recursos (objetos de

entidades) a diferentes

niveles

– Integra los negocios con los

clientes y distribuidores a

través de compartir los

objetos de negocios

• Ingeniería de los

procesos de negocios

– Plug-ins escalables que

integran los procesos de

negocios entre empresas

colaboradoras a través de

interfaces compartidas

– Integración inmediata de

componentes de

negocios

Page 26: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 26

LA ORIENTACIÓN A

OBJETOS

¿QUÉ ES UN OBJETO?

Page 27: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 27

Un objeto es ... (1)

• Una representación de algo como si fuera una componente bien definida– Se enfoca a un único

concepto

– Captura hechos acerca del concepto

– Encierra hechos con procedimientos, reglas

– Presenta una interfaz bien definida

Atributos

Operaciones

Nombre

del objeto

Atributos:

Operaciones:

Page 28: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 28

Un objeto es ... (2)

• Un paquete de datos,

procedimientos y

restricciones que representan

un concepto en

– el mundo de los negocios

– ambiente de computadoras

• Un módulo definido

alrededor de un dominio

conceptual en lugar de

estructuras de código Procedimientos

Restricciones

Datos

Nombre

del objeto

Atributos:

Operaciones:

Page 29: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 29

¿Dónde existen los objetos? (1)

• Los objetos son una

representación en ...

– el mundo real (i.e., negocios)

– computadoras (i.e., tecnología)

• Entonces los objetos existen

en ...

– el modelado , análisis, y

reingeniería de negocios

– Análisis y diseño de sistemas

– Software

Procedimientos

Restricciones

Datos

Nombre:

silla

Atributos:Costo

Dimensiones

PesoOperaciones:ComprarVenderMover

Page 30: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 30

¿Dónde existen los objetos? (2)

• Los objetos son

construcciones tanto para el

modelado de negocios

como para el modelado de

software

– Los objetos no son sólo una

forma de programar

Procedimientos

Restricciones

Datos

Nombre:

silla

Atributos:Costo

Dimensiones

PesoOperaciones:ComprarVenderMover

Page 31: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 31

¿Por qué los objetos son

diferentes?

• Sólo un conjunto de procedimientos y reglas actúan

sobre los datos– Control en la integridad de los datos

– Datos, procesos y reglas compartidos

• Todos los procedimientos, datos y reglas acerca del

sujeto están atados a un paquete bien definido e

integrado– Componentes de software

– Diseñar acorde a las especificaciones de las componentes

• La frontera del modulo es el sujeto, no el programa– Simplifica la reutilización

Page 32: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 32

¿Por qué los objetos son

familiares?

• Los objetos integran conceptos familiares como ...

– Procesos y control de procesos

– Procedimientos, actividades, tareas, acciones

– Datos

– Reglas, políticas, restricciones

– Relaciones

– Eventos, desencadenamientos, resultados

• Los objetos son módulos que representan

conceptos simples y bien definidos del dominio

Page 33: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 33

Los objetos redefinen la

modularidad

• La frontera del objeto determina su dominio– Separa el interior (el cómo) del

exterior (el qué) creando modularidad– Proporciona una interfaz bien definida

para otros objetos– Oculta la complejidad de la

implementación– Previene los conflictos en la

manipulación de atributos causados por procedimientos y reglas redundantes

• Los objetos son paquetes auto-contenidos

Procedimientos

Restricciones

Datos

Nombre:

silla

Atributos:Costo

Dimensiones

PesoOperaciones:ComprarVenderMover

Page 34: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 34

Los objetos son

empaquetamiento

• Los objetos se refieren al empaquetamiento

– a nivel conceptual (de pensamiento)

– a nivel de implementación (software)

• Los objetos re-empaquetan los objetos existentes

con nuevas características que hacen los conceptos

existentes fáciles de utilizar

– ¡Ojo! ... el empaquetamiento hace toda la diferencia

– El nuevo empaquetamiento cambia el paradigma

Page 35: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 35

Los objetos son un paradigma

• ¿Qué es un paradigma?

– Un marco de referencia o un punto de vista bien

definido

– Una forma de visualizar el mundo en el cual están

bien definidas sus propias perspectivas y

consecuencias

• Los objetos son un paradigma porque ...

– Cambian nuestro punto de vista sobre la realidad para

proporcionarnos una perspectiva totalmente diferente

• ... destacando diferentes enfoques (consecuencias)

• ... visualizando la realidad de una forma nueva

Page 36: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 36

LA ORIENTACIÓN A

OBJETOS

CONCEPTOS CLAVE Y

TERMINOLOGÍA

Page 37: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 37

El pensamiento de objetos se

basa en tipos (1)

• Un tipo o clase describe un

conjunto de objetos con las

mismas propiedades– El término “tipo” se utiliza en

el modelado de negocios

– El término “clase” se utiliza en

el diseño/programación de

software

• Un tipo se puede considerar

como una plantilla para crear

objetos con las mismas

propiedades

Procedimientos

Restricciones

Datos

Nombre:

silla

Atributos:Costo

Dimensiones

PesoOperaciones:ComprarVenderMover

Page 38: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 38

El pensamiento de objetos se

basa en tipos (2)

• Define los procedimientos,

atributos y restricciones de

todos los objetos de ese tipo

– Los métodos o procedimientos

están definidos en la clase

• Un método representa una

responsabilidad para hacer algo

– Las variables o atributos están

definidas en la clase

• Un atributo representa un

responsabilidad para conocer

algo

Procedimientos

Restricciones

Datos

Nombre:

silla

Atributos:Costo

Dimensiones

PesoOperaciones:ComprarVenderMover

Page 39: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 39

Las instancias almacenan datos

(1)

• Instancia = un miembro

del tipo o clase

• Una clase puede tener

varias instancias

– Las instancias tienen

diferentes valores para sus

atributos

– Los datos se almacenan en

las instancias

Nombre:

silla

Atributos:Costo

Dimensiones

PesoOperaciones:ComprarVenderMover

Clase:

silla

Atributos:Costo

Dimensiones

PesoOperaciones:ComprarVenderMover

La punta del triángulo indica de donde provienen las operaciones y atributos

Page 40: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 40

Las instancias almacenan datos

(2)

• Todas las instancias de

una clase

– son del mismo tipo

– tienen el mismo

comportamiento

– tienen los mismos atributos

Nombre:

silla

Atributos:Costo

Dimensiones

PesoOperaciones:ComprarVenderMover

Clase:

silla

Atributos:Costo

Dimensiones

PesoOperaciones:ComprarVenderMover

La punta del triángulo indica de donde provienen las operaciones y atributos

Page 41: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 41

No todos los tipos tienen

instancias

• Los tipos de objetos existen por dos

razones:

– Para definir propiedades de otros tipos (i.e.,

especializaciones)

– Para crear instancias (i.e., son plantillas)

• Así, existen 2 tipos de tipos de objetos

– Tipos abstractos: aquellos que se dan por

definición

– Tipos concretos: aquellos que tiene instancias

Page 42: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 42

• Los tipos abstractos son importantes

en ...

– Modelado de negocios y reingeniería de

procesos en los negocios

– Diseño de servidores

– Mapeo de tablas en base de datos

– Aplicaciones en análisis y diseño

Tipos abstractos (1)

Page 43: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 43

Tipos abstractos (2)

• Las tipos abstractos no tienen instancias

– Por ejemplo: integer, float, string

– Los tipos abstractos se crean para ...

• Generalizar características

• Facilitar cambios

• Crear oportunidades de re-utilización

• Eliminar redundancia

– Comúnmente los tipos abstractos son supertipos en la

jerarquía

• Definen propiedades en común para todas las subclases

Page 44: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 44

Tipos concretos

• Tipos concretos pueden

tener instancias

– Por ejemplo: mobiliario

• Los tipos concretos se

crean para ...

– implementar un tipo de

objetos

– reflejar diferencias

– crear instancias

• Comúnmente los tipos

concretos son subtipos

de uno o mas tipos

abstractos. Así

– cumplen con las

propiedades del

supertipo

– agregar sus propias

propiedades

– crear instancias de su

tipo

Page 45: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 45

Tipos + instancias = objetos

• Los tipos capturan la forma y carácter de lo que

representan

– Los tipos abstractos capturan las propiedades comunes

– Las especializaciones capturan las diferencias

• Cada instancia captura los valores reales de las

propiedades de lo que representa

• Un objeto es un término que puede comprender tanto

tipos como instancias. Comúnmente se utiliza cuando:

– no es necesario distinguir entre las clases y la instancia

– se refiere a un concepto de la realidad

Page 46: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 46

Encapsulamiento

• Encapsulamiento

– Se refiere a la práctica de incluir dentro

de un objeto todo lo que se necesita

– Esta inclusión es de tal manera que

ningún otro objeto necesite conocer

nunca la estructura interna de otro

– Proporciona el empaquetamiento que

hace que el objeto se comporte como tal

– Las partes encapsuladas son su

implementación privada; se dice que

los atributos y métodos visibles son

públicos

Procedimientos =

servicios o

métodos

Datos

Nombre:

silla

Atributos:Costo

Dimensiones

PesoOperaciones:ComprarVenderMover

Page 47: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 47

Especialización y generalización

(1)

• Especialización

– Modificable para nuevos usos y sin ningún cambio al

objeto original

– Basados en tipos de jerarquías

• La generalización contiene todas las

propiedades comunes

– Padre es más abstracto

Page 48: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 48

Especialización y generalización

(2)

• La especialización contiene la diferencia en

las propiedades

– Hijo es más concreto

• Cada especialización sirve para un

propósito específico

• Se pueden organizar en una jerarquía o

superjerarquía

Page 49: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 49

¿Qué es jerarquía? (1)

• Una estructura de especialización donde el hijo puede tener al menos uno y sólo un padre– La estructura resultante es un

árbol

• La jerarquía facilita la separación de lo general de lo específico– Las hojas del árbol representan

conceptos más especializados que los nodos superiores

Cuentanombre, dirección,

estado, balance,

fecha de apertura,

fecha de cierre ...

sacar balance,

depositar, pedir

préstamo

Cuenta de

cheques

balance, balance mínimo, etc.

sacar balance,

depositar, pedir

préstamo

Cuenta de

ahorros

balance, balance mínimo, tasa de interés, etc.

sacar balance,

depositar, pedir

préstamo

Page 50: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 50

¿Qué es jerarquía? (2)

• Se pueden hacer objetos de

otros objetos

• Esto se conoce como

agregación

• El comportamiento del

objeto más grande se define

por el comportamiento de

sus partes componentes,

separadamente y en

conjunción con el otro

derecho o izquierdo

Pie

patea

Mano

derecha o izquierda

agarra, toma, pasa por atrás, lanza

Malabarista

El diamante indica que un objeto está

hecho de otros objetos. El número

indica ´la cantidad de componentes

2 2

Page 51: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 51

Los objetos están activos

• Los objetos mandan mensajes para obtener el trabajo

realizado por otros objetos

• Cualquier mensaje solicita un servicio

• El receptor exhibe su comportamiento en respuesta al

mensaje

• El formato del mensaje es a través de un protocolo

• El intercambio total es una interacción

Solicitante

(cliente)

Receptor

(servidor)

Mensaje

Page 52: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 52

Herencia (1)

• Es una forma de generalización y

especialización

– Es una relación

– Es apropiada para el diseño y discusiones

de implementación

• Es un mecanismo para adquirir

propiedades

– aísla las propiedades comunes en el padre,

llamado superclase

– aísla las diferencias en el hijo, llamado

subclase

Page 53: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 53

Herencia (2)

• Refleja la generalización del

mundo real y los tipos de

jerarquías

• Agrega propiedades a través

de tipos de especialización

Page 54: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 54

Herencia simple vs. Herencia

múltiple

• Herencia simple: las propiedades adquiridas provienen

de un sólo padre

• Herencia múltiple: propiedades adquiridas de más de

un padre y se puede diferenciar o seleccionar por

origen

Page 55: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 55

Polimorfismo

• Polimórfico significa “muchas formas”

– Describe cómo un comportamiento cambia cuando se

escala la herencia de la clase

– Describe cómo un simple comportamiento puede evocar

diferentes consecuencias en una especialización más que

en la generalización

• Ejemplo: la operación “add” se puede utilizar de la siguiente

forma add_line_item, add_to_balance, all_new_employee

• Polimorfismo es un resultado de “generalización y

especialización” cuando se implementa por herencia

Page 56: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 56

Delegación (1)

• Delegación es:

– una forma de herencia sin clases que permite a los objetos

delegar permiso a otros objetos para llevar a cabo

operaciones de su parte

– es una forma de generalización y especialización

– (actúa como o toma el papel de) una relación

– es especialización por liberación de trabajo

• Es un mecanismo para adquirir propiedades

– aísla las propiedades comunes en el padre

– aísla diferencias en el hijo

– no aplica con términos de superclase y subclase

Page 57: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 57

Delegación (2)

• Esta relación permite que los objetos transformen

su comportamiento sin verse obligados por su

relación de clase

– no es necesario que los hijos hereden la realización de

sus padres

• Refleja un comportamiento del mundo real

• Agrega propiedades a través del comportamiento

Page 58: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 58

Resumen: propiedades de los

objetos

• Comportamiento, servicios, métodos

– Los procedimientos o funcionalidad que encapsula un tipo

• Atributos

– Variables o estructura de datos interna para el tipo de objetos

• Protocolo

– Como el objeto presenta un servicio al exterior

• Interacción, mensaje

– Un objeto solicita un servicio a ser ejecutado por otro objeto

• Relación

– Referencias estáticas de un objeto con otro

– Asociaciones estructurales entre padre e hijo

Page 59: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 59

¿Por qué los “nuevos”

términos?

• El pensamiento de objetos se enfoca– al entendimiento de las cosas

– su contexto y sus fronteras

– su asociación con otras cosas en su contexto

• Es necesario un lenguaje para expresar esta forma de pensar– Los modelos convencionales del lenguaje pueden expresar

algunas partes

– El diseño/programación convencionales pueden expresar algunas partes

– Los objetos juntan las partes

– Los objetos conectan el pensamiento de negocios con la programación

Page 60: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 60

LA ORIENTACIÓN A

OBJETOS

EJEMPLO PRÁCTICO:

MODELADO DE UNA

EMPRESA

Page 61: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 61

El problema

• El problema se ubica en el departamento de

servicios administrativos de una empresa

• Uno de los problemas del departamento es la

opción de pasar a una publicación completamente

electrónica

– Ya estaban empleando sofisticadas técnicas de

impresión, pero la composición se efectuaba en

estaciones de trabajo anticuadas, y el pegado se

realizaba manualmente

Page 62: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 62

La estructura del departamento

• La siguiente figura muestra la estructura de alto nivel del

departamento, así como sus interacciones con otros

departamentos, en forma de 7 capas

• Se muestra cada capa como un objeto, y los enlaces

representan el posible paso de mensajes

Proveedores

externos

Departamentos

usuarios

Departamentos

de ingenieríaEscritura

Gráficos

e impresión

Agencias

externasContabilidad

Page 63: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 63

Vistas externa e interna (1)

• Las vistas externas e internas se pueden definir

para cada objeto

• La vista externa define el paso de mensajes

admisibles entre un objeto y los otros

• La vista interna indica que existen dos

subdivisiones, cada una de las cuales se presentan

como un objeto

Page 64: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 64

Vistas externa e interna (2)

DepartamentosDepartamentos

usuarios

AgenciasAgencias

externas

GráficosGráficos

e impresiónContabilidadContabilidadEscritura

Vista externa de gráficos e impresión

Page 65: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 65

Vistas externa e interna (3)

Gráficos

Fotocomposición

Artista gráfico

Creador de fotolitos

...

Hacer diapositivas

Hacer placas

Preparar placas

Pedir materiales

Despachar resultados

Hacer informes de costos

Hacer informes de progreso

...

Impresión

Almacenista

Operadores de máquina

Maquinaria

Almacen de papel

Trabajos en curso

...

Hacer impresión

Hacer reimpresión

Hacer informes de progreso

Emitir facturas

Pedir materiales

Hacer informes de costos

...

Vista interna de gráficos e impresión

Page 66: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 66

Vista del objeto “gráficos” antes

de la tecnología

Director

Clasificar solicitudes

Asignar trabajos

Informar progresosFotocompositor

Informar de progresos

Componer textos

Hacer cambios

Artista gráfico

Hacer diapositivas

Hacer placas

Hacer ilustracionesEncargado de pegado

Pegar

Solicitar cambios

Hacer informe de progresos

Creador de placas

Hacer placas

Despachar

Hacer informe de progresos

Page 67: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 67

Vista del objeto “gráficos”

después de la tecnología

Director

Clasificar solicitudes

Asignar trabajos

Informar progresos

Responsable de autoedición

Informar de progresos

Producción de documentos

Artista gráfico

Hacer diapositivas

Hacer placas

Hacer ilustraciones

Creador de placas

Hacer placas

Despachar

Hacer informe de progresos

Page 68: Orientación a objetos   curso

17-01-1999 LA ORIENTACIÓN A OBJETOS V. 2.0 68

Conclusiones

• La notación resulto ser muy expresiva y útil para

los aspectos de negocios

• La orientación a objetos del problema resultó útil

para clarificar los problemas y sus soluciones, y,

también, para comunicar los resultados a la

administración

• El modelo se realizó por completo sobre papel, sin

utilizar tecnologías sofisticadas