Está en la página 1de 7

Diseo Objeto-Orientado

Los acercamientos tradicionales al diseo del software han sido datos orientados o de
proceso orientados. las metodologas Dato-orientadas acentan la representacin de la
informacin y de las relaciones entre las partes del conjunto. Las acciones que funcionan
encendido los datos estn de menos significacin. Por otra parte, las metodologas de diseo
proceso-orientadas acentan las acciones realizadas por un artefacto del software; los datos son
de poca importancia.
Ahora se sostiene comnmente que las metodologas orientadas al objeto son ms eficaces
para manejar la complejidad que que se presenta en el diseo de los artefactos grandes y
complejos del software que las metodologas dato-orientadas o proceso-orientadas. Esto es porque
los datos y los procesos se dan importancia igual. Los objetos se utilizan para combinar datos con
los procedimientos que funcionan encendido esos datos. La ventaja principal de usar objetos es
que proporcionan la abstraccin y la encapsulacin.

Abstraccin
Encapsulacin

Abstraccin.
La abstraccin se puede pensar como un mecanismo para suprimir los detalles inaplicables
mientras que en el mismo tiempo que acenta los relevantes. Una ventaja importante de la
abstraccin es que hace ms fcil para que el programador piense del problema que se
solucionar.
Por ejemplo, la abstraccin procesal deja a diseador del software pensar de las acciones
que se realizarn sin la preocupacin de cmo se ponen en ejecucin esas acciones.
Semejantemente, la abstraccin de los datos deja a diseador del software, pensar de los objetos
en un programa y las interacciones entre esos objetos sin tener que preocuparse de cmo se
ponen en ejecucin esos objetos.
Hay tambin muchos diversos niveles de la abstraccin. Ms bajos son los niveles de la
abstraccin exponen a ms de los detalles de una puesta en prctica mientras que los niveles ms
altos ocultan a ms de los detalles.

Encapsulacin
La encapsulacin ayuda al diseador del software haciendo cumplir ocultar la informacin.
Los objetos encapsulan datos y los procedimientos para manipular esos datos. En un sentido, el
objeto oculta los detalles de la puesta en prctica del usuario de ese objeto.
Hay dos ventajas muy verdaderas de la independencia conceptual y fsica de la
encapsulacin. La independencia conceptual resulta de ocultar la puesta en prctica de un objeto
del usuario de ese objeto. Por lo tanto, previenen al usuario de hacer cualquier cosa con un objeto
que dependa de la puesta en prctica de ese objeto. Esto es deseable porque permite que la
puesta en prctica sea cambiada sin requerir la modificacin del cdigo del usuario.
La independencia fsica se presenta del hecho de que el comportamiento de un objeto es
determinado por el objeto s mismo. El comportamiento de un objeto no es determinado por
alguna entidad externa. Consecuentemente, cuando realizamos una operacin en un objeto, no
hay efectos secundarios indeseados.

Jerarquas del objeto y patrones del diseo


Hay ms a la programacin orientada objeto que simplemente encapsulando en un objeto
un ciertos datos y los procedimientos para manipular esos datos. Los mtodos orientados al objeto
se ocupan tambin de la clasificacin de objetos y tratan las relaciones entre diversas clases de
objetos.
La facilidad primaria para expresar relaciones entre las clases de objetos es derivacin -las nuevas clases se pueden derivar de clases existentes. Qu hace la derivacin as que til es la
nocin de la herencia. Las clases derivadas heredan las caractersticas de las clases de las cuales
se derivan. Adems, la funcionalidad heredada puede ser eliminada y la funcionalidad adicional se
puede definir en una clase derivada.
Una caracterstica de este libro es que virtualmente todas las estructuras de datos estn
presentadas en el contexto de una sola jerarqua de la clase. En efecto, la jerarqua de la clase es
una taxonoma de las estructuras de datos. Diversas puestas en prctica de una estructura de
datos abstracta dada todas se derivan de la misma clase baja abstracta. Las clases bajas
relacionadas alternadamente se derivan de las clases que abstraen y encapsulan las
caractersticas comunes de esas clases.
Adems de ocuparse de las clases jerrquico relacionadas, los diseadores orientados al
objeto experimentados tambin consideran muy cuidadosamente las interacciones entre las
clases sin relacin. Con experiencia, un buen diseador descubre los patrones que se repiten de
interacciones entre los objetos. Aprendiendo utilizar estos patrones, sus diseos orientados al
objeto llegarn a ser ms flexibles y reutilizables.
Recientemente, los programadores tienen un nombre comenzado en el diseo comn del
model. Adems, los catlogos de los patrones comunes ahora se estn compilando y publicando
[14 ].
Los patrones orientados al objeto siguientes del diseo se utilizan a travs de este texto:

Containers , Envases
Enumerations, Enumeraciones
Visitors , Visitantes
Cursors, Cursores
Adapters, Adaptadores
Esqueletos, Singletons.

Envases
Un envase es un objeto que lleva a cabo dentro de l otros objetos. Un envase tiene una
capacidad, puede estar lleno o vacio, y los objetos se pueden insertar y retirar de un envase.
Adems, un envase investigable (searchable container ) es un envase que apoya operaciones de
bsqueda eficientes.

Enumeraciones
Una enumeracin proporciona los medios por los cuales los objetos dentro de un envase se
pueden alcanzar uno-en-uno-tiempo. Todas las enumeraciones comparten un interfaz comn, y
ocultan la puesta en prctica subyacente del envase del usuario de ese envase

Visitantes
Un visitante representa una operacin que se realizar en todos los objetos dentro de un

envase. Todos los visitantes comparten un interfaz comn, y de tal modo ocultan la operacin que
se realizar del envase. En el mismo tiempo, definen a los visitantes por separado de los envases.
As, un visitante particular puede ser utilizado con cualquier envase.

Cursores.
Un cursor representa la posicin de un objeto en un envase pedido. Provee del usuario una
manera de especificar donde est ser realizada una operacin sin tener que saber se representa
esa posicin.

Adaptadores.
Un adaptador convierte el interfaz de una clase en el interfaz esperado por el usuario de
esa clase. Esto permite que una clase dada con un interfaz incompatible sea utilizada en una
situacin donde un diverso interfaz espera.

Esqueletos. Singletons
Un esqueleto es una clase de la cual hay solamente un caso. La clase se asegura de que all
solamente un caso est creado y proporciona una manera de tener acceso a ese caso.

Las caractersticas de Java que usted necesita conocer.


Este libro no ensea los fundamentos de la programacin. Se asume que usted ha tomado
un curso preliminar en la programacin y que usted ha aprendido cmo escribir un programa en
Java.
Es decir, usted ha aprendido que las reglas del sintaxis y de usted de Java han aprendido
cmo poner juntas las declaraciones de Java para solucionar problemas de programacin
rudimentarios.
Los prrafos siguientes describen ms completamente aspectos de la programacin en Java
con la cual usted deba ser familiar.

Variables
Tipos primitivos y tipos de la referencia
Pasando Parametros
Clases y objetos
Herencia
Interfaces y polimorfismo
Otras Caractersticas

Variables.
Usted debe ser muy cmodo con la nocin de una variable como abstraccin para una
regin de una memoria. Una variable tiene cualidades tales como nombre, tipo, valor, tamao de
la direccin, curso de la vida, y alcance.

Tipos primitivos y tipos de la referencia.


Usted debe entender las diferencias entre los tipos primitivos y los tipos de la referencia. En
detalle, usted debe entender las diferencias sutiles que se presentan al asignar y comparando
tipos de la referencia.

Pasando Parametros.
All mecanismos el un pasar de parmetro en Java: pasar-por-valor. Es esencial que usted
entiende cmo el pasar-por-valor trabaja para los tipos primitivos y para los tipos de la referencia.

Clases y objetos.
Una clase de Java encapsula un sistema de valores y un sistema de operaciones. Los
valores son representados por los campos de la clase y las operaciones por los mtodos de la
clase. En Java una definicin de la clase introduce un nuevo tipo. Los casos de un tipo de la clase
se llaman los objetos

Herencia.
En Java una clase se puede derivar de otra. La clase derivada hereda todos los campos y
los mtodos de la clase o de las clases baja. Adems, los mtodos heredados se pueden eliminar
en la clase derivada y los nuevos campos y funciones pueden ser definidos. Usted debe entender
cmo el recopilador determina el cdigo para ejecutarse cuando se llama un mtodo particular.

Interfaces y polimorfismo.
Una interfaz de Java abarca un sistema de prototipos del mtodo. Diversas clases pueden
poner la misma interfaz en ejecucin. De esta manera, polimorfismo de las instalaciones de Java la
idea que una abstraccin dada puede tener muchas diversas formas. Usted debe entender cmo
los interfaces se utilizan junto con clases abstractas y herencia para apoyar polimorfismo.

Otras Caractersticas.
Este libro hace uso otras caractersticas de Java tales como excepciones y tipo run-time
informacin. Usted puede aprender sobre estos asuntos mientras que usted trabaja su manera a
travs del libro.

Cmo Se organiza Este Libro.


Modelos y anlisis asinttico.
Estructuras De Datos Foundational.
Tipos de datos abstractos y la jerarqua de la clase.
Estructuras De Datos.
Algoritmos.

Modelos y anlisis asinttico.


Para analizar el funcionamiento de un algoritmo, necesitamos tener un modelo de la
computadora. El captulo presenta una serie de tres modelos, cada menos exacta pero ms fcil
utilizar que su precursor. Estos modelos son similares, en que requieren una contabilidad
cuidadosa de las operaciones realizadas por un algoritmo. Despus, el captulo presenta anlisis
asinttico. Esto es una tcnica matemtica extremadamente til porque simplifica grandemente el
anlisis de algoritmos. El anlisis asinttico evita la necesidad de una contabilidad detallada de las
operaciones realizadas por un algoritmo, con todo en el mismo tiempo da un resultado muy
general.

Estructuras De Datos Foundational.


Al poner una estructura de datos en ejecucio'n, debemos decidir primero si utilizar un
arsenal o una lista encadenada como la tcnica de organizacin subyacente. Por esta razn, el
arsenal y la lista encadenada se llaman las estructuras de datos foundational. El captulo tambin
cubre rdenes y matrices multidimensionales.

Tipos de datos abstractos y la jerarqua de la clase.


El captulo introduce la nocin de un tipo de datos abstracto. Todas las estructuras de datos
discutidas en este libro se presentan como casos de los varios tipos de datos abstractos. El
captulo tambin introduce la jerarqua de la clase as como los varios conceptos relacionados
tales como enumeraciones y visitantes.

Estructuras De Datos.
El captulo cubre apilados, coletas, y deques. Las listas pedidas y las listas clasificadas se
presentan en captulo. El concepto del hashing se introduce en captulo. Este captulo tambin
cubre el diseo de las funciones del picadillo para un nmero de diversos tipos del objeto.
Finalmente, se presentan las tablas del picadillo y las tablas de la dispersin.

Los rboles y los rboles de la bsqueda se presentan en captulos y. Los rboles son una
de las estructuras de datos no lineares ms importantes. El captulo tambin cubre los varios
traversals del rbol, incluyendo profundidad-primer traversal traversal y breadth-first. El captulo
presenta coletas de la prioridad y el captulo cubre sistemas, multijuego, y particiones.
Un elemento esencial del sistema run-time de Java es la piscina del almacenaje
dinmicamente asignado. El captulo presenta un nmero de diversos acercamientos para poner la
coleccin de la basura en ejecucio'n, en el proceso que ilustra los costes reales asociados a la
asignacin de almacenaje dinmica.

Algoritmos.
Los tres captulos pasados del libro se centran en algoritmos, ms bien que estructuras de
datos. El captulo es una descripcin de varios patrones algortmicos. Introduciendo la nocin de
un solver abstracto del problema, demostramos cuntos de los patrones son relacionados. El
captulo utiliza un acercamiento similar para presentar varios algoritmos que clasifican. Es decir,
introducimos la nocin de un compaginador abstracto y demostramos cmo los varios algoritmos
que clasifican son relacionados.
Finalmente, el captulo da a breve descripcin del tema de grficos algoritmos de un
grfico. Este captulo trae juntas varias tcnicas algortmicas del captulo con la jerarqua de la
clase discutida en los captulos anteriores.

Anlisis Del Algoritmo


Cul es un algoritmo y porqu nosotros desean analizar uno? Un algoritmo es ``...
gradualmente un procedimiento para lograr algn end.''[9 ] que un algoritmo se puede dar de
muchas maneras. Por ejemplo, puede ser anotado en lengua inglesa (o francesa, o cualquier otra
`` natural del ''). Sin embargo, estamos interesados en los algoritmos que se han especificado
exacto usando un formalismo matemtico apropiado -- tal como un lenguaje de programacin.
Dado tal expresin de un algoritmo, qu podemos hacer con l? Bien, podemos funcionar
obviamente el programa y observar su comportamiento. Esto no es probable ser muy til o
informativo en el caso general. Si funcionamos un programa particular sobre una computadora
particular con un sistema particular de entradas, despus todos saben son el comportamiento del
programa en un solo caso. Tal conocimiento es anecdtico y debemos tener cuidados al dibujar las
conclusiones basadas sobre evidencia anecdtica.
Para aprender ms sobre un algoritmo, lata `` analizamos el '' l. Por esto significamos
estudiar la especificacin del algoritmo y dibujar conclusiones sobre cmo la puesta en prctica de
ese algoritmo -- el programa -- se realizar en general. Pero qu podemos analizar?
Podemos...

determine el tiempo en marcha de un programa en funcin de sus entradas;


determine la memoria total o mxima necesitada para los datos del programa;
determine el tamao total del cdigo del programa;
determnese si el programa computa correctamente el resultado deseado;
determine la complejidad del programa -ejemplo., cmo es fcil es a leer, a entender, y a modificarse; y,
determine la robustez del programa -ejemplo., se ocupa cmo bien de las entradas inesperadas o errneas?

En este texto, nos referimos sobre todo al tiempo en marcha. Tambin consideramos la
memoria necesitada para ejecutar el programa. Hay muchos factores que afectan el tiempo en

marcha de un programa. Entre stos estn el algoritmo s mismo, los datos de entrada, y el
sistema informtico usado para funcionar el programa. El funcionamiento de una computadora se
determina cerca
el hardware:
procesador usado (tipo y velocidad),
memoria disponible (cache y RAM), y
disco disponible;
el lenguaje de programacin en el cual se especifica el algoritmo;
el lenguaje compilador/interprete utilizado;
y el software de sistema operativo de la computadora.

Un anlisis detallado del funcionamiento de un programa que tome todos estos factores en
cuenta es una empresa muy difcil y desperdiciadora de tiempo. Adems, tal anlisis no es
probable tener significacin duradera. El paso rpido del cambio en las tecnologas subyacentes
significa que los resultados de tales anlisis no son probables ser aplicables a la generacin
siguiente del hardware y del software.
Para superar este defecto, ideamos un modelo del comportamiento de una computadora
con las metas de simplificar el anlisis mientras que todava producen resultados significativos. La
seccin siguiente introduce la primera en una serie de tales modelos.

Un modelo detallado de la computadora.


Un modelo simplificado de la computadora.
Ejercicios.
Proyectos.

Un modelo detallado de la computadora


En esta seccin desarrollamos un modelo detallado del funcionamiento del tiempo en
marcha de los programas de Java. El modelo desarrollado es independent del hardware y del
software del sistema subyacentes. Ms bien que analice el funcionamiento de un detalle, mquina
fsica arbitrariamente elegida, nosotros modelan la ejecucin de un programa de Java sobre el
virtual de la mquina de Java (vase la figura).

También podría gustarte