1
Capitulo 2 Anlisis y diseo Orientado a Objetos con aplicaciones-
El modelo de objetos
La tecnologa orientada a objetos se apoya en los slidos fundamentos de la ingeniera,
cuyos elementos reciben el nombre de modelo de objetos. El modelo de objetos abarca
los principios de abstraccin, encapsulamiento, modularidad, jerarqua, tipos,
concurrencia y persistencia. El modelo de objetos conjuga todos estos elementos de
forma sinrgica.
2.1 La evolucin del modelo de objetos:
2.1.1 la topologa de los lenguajes de primera y principios de la segunda generacin
Por topologa se entiende los bloques fsicos de construccin de ese lenguaje y como
esas partes pueden ser conectadas.
El bloque bsico de construccin es el subprograma
Estructura fsica relativamente plana.
Un error en una parte de un programa puede tener un devastador efecto de
propagacin a travs del resto del sistema.
Cantidad enorme de acoplamiento entre subprogramas.
Aparicin de la entropa despus de un periodo de mantenimiento.
2.1.2 la topologa de los lenguajes de fines de la segunda y principios de la tercera
Hallazgo de que los subprogramas podan servir como mecanismos de abstraccin.
Se asentaron los fundamentos de la programacin estructurada.
Surgieron los mtodos de diseo estructurado (Jackson).
2.1.3 la topologa de los lenguajes de finales de la tercera generacin.
Aparece la compilacin de mdulos separados.
Pocas reglas de consistencia semntica entre las interfaces de los mdulos.
No brindaban soporte para la abstraccin de datos y la comprobacin estricta.
Muchos errores se descubran en tiempo de ejecucin.
2.1.4 la topologa de los lenguajes de programacin basados en objetos y orientados
a objetos
Cuando hablamos de complejidad dijimos que muchas realidades complejas se
basan en elementos bsicos repetidos. Dichos objetos abstractos son imposibles de
modelar mediante las topologas anteriores (Ej Pedido Comprobante Factura).
El bloque de construccin bsico es la clase u objeto.
Un programa orientado a objetos se organiza alrededor de los nombres del dominio
del problema.
En sistemas grandes existen agrupaciones de abstracciones que se construyen en
capas, una sobre la otra.
Fundamentos del modelo de objetos
El modelo de objetos surgi para ayudar a los desarrolladores a explotar la potencia
expresiva de los lenguajes orientados y basados en objetos.
Existen lmites para la cantidad de complejidad que se puede manejar utilizando
solo la descomposicin algortmica; por tanto hay que volverse a la descomposicin
orientada a objetos.
2
POO, DOO y AOO
Los objetos representan componentes de un sistema descompuesto modularmente o
bien unidades modulares de representacin del conocimiento.
POO Es un mtodo de implementacin en el que los programas se organizan
como colecciones cooperativas de objetos, cada uno de los cuales representa una
instancia de alguna clase, y cuyas clases son, todas ellas, miembros de una jerarqua
de clases unidas mediante relaciones de herencia.
DOO Es un mtodo de diseo que abarca el proceso de descomposicin orientada
a objetos y una notacin para describir los modelos, lgico y fsico, as como los
modelos estticos y dinmicos de un sistema que se disea.
AOO Es un mtodo de anlisis que examina los requisitos desde la perspectiva de
las clases y objetos que se encuentran en el vocabulario del dominio del problema
2.2 Elementos del modelo de objetos: Tipos de paradigmas de programacin
Orientado a procedimientos Algoritmos
Orientado a objetos Clases y Objetos
Orientado a lgica Objetivos a menudo expresados como
calculo de predicados.
Orientados a reglas Reglas Si-Entonces(If then)
Orientados a restricciones Relaciones invariantes
Los cuatro elementos fundamentales del modelo de objetos
Abstraccin
Encapsulamiento
Modularidad
Jerarqua
Elementos secundarios del modelo de objetos
Tipos (tipificacin)
Concurrencia
Persistencia
Abstraccin: Descripcin simplificada que enfatiza algunos de los detalles o
propiedades de algo. Una abstraccin se centra en la visin externa de un objeto,
y por tanto sirve para separar el comportamiento esencial de un objeto de su
implantacin.
Encapsulamiento: el encapsulamiento se obtiene mediante la ocultacin de
informacin. La estructura de un objeto esta oculta, as como su implantacin.
Para que la abstraccin funcione la implementacin debe estar encapsulada.
El interfaz de una clase captura su vista externa, mientras que la implementacin
(implantacin) comprende la representacin de la abstraccin as como los
mecanismos que consiguen el comportamiento deseado.
Modularidad: crear fronteras bien definidas y documentadas dentro del
programa (Ejemplo: las distintas capas de la arquitectura de un sistema).
3
El uso de mdulos en los sistemas complejos es imprescindible para reducir la
complejidad.
Jerarqua: la identificacin de jerarquas simplifica en gran medida la
comprensin de un problema.
Las dos jerarquas mas importantes en un sistema complejo son su estructura de
clases (la jerarqua de Clases <<es un>>) y su estructura de objetos (<<es un>>)
Ejemplo de jerarquas:
Herencia simple:
La herencia denota una relacin <<es un>>. Implica una jerarqua de
generalizacin especializacin, donde un clase hija especializa el
funcionamiento de la clase padre, y la ultima generaliza las propiedades
y/o funcionamiento de su clase hija.
MotorTurboJet (es un) MotorDePropulsion
MotorTurboJet
MotorDePropulsion
Herencia Multiple:
Algunas veces una clase se deriva de ms de una clase base, este
fenmeno se conoce como herencia mltiple.
Ej:
MarianoMancuso
MarisaRobilotte JuanCarlosMancuso
Jerarqua de agregacin: la agregacin permite el agrupamiento fsico de
estructuras relacionadas lgicamente.
4
Tipos: los objetos de tipos distintos no pueden intercambiarse, como mucho,
pueden intercambiarse de formas muy restringidas (casting).
C++ posee comprobacin estricta de tipos (todas las operaciones son
congruentes respecto al tipo) lo que produce que los sistemas desarrollados en
este lenguaje posean menor cantidad de errores latentes.
Ligadura: este concepto se refiere al hecho de ligar una nombre a su tipo (una
variable a su tipo). Hay dos momentos en los que se puede realizar esta en
tiempo de compilacin o en tiempo de ejecucin. Dependiendo de cuando se
realice va a ser ligadura esttica o ligadura dinmica respectivamente.
Concurrencia: un sistema que implique concurrencia puede tener muchos hilos
de control (hilos de ejecucin) que se encarguen de realizar distintas tareas de
forma casi simultanea para el usuario.