Anda di halaman 1dari 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).

Anda mungkin juga menyukai