You are on page 1of 3

ESTRATEGIAS DE DISEO.

Al disear un programa o sistema se deben tomar ciertas decisiones las


cuales deben estar condicionadas por los siguientes aspectos: La
arquitectura, robustez, reus, y extensibilidad.
ARQUITECTURA
Se define como arquitectura a la organizacin de las clases dentro del
sistema.
Un criterio de organizacin es la inteligencia o el control que tenga una
clase respecto a otra. Un ejemplo de esto es la interfaz de cliente la cual
debe interactuar permanentemente con el cliente dando respuesta
oportuna a las necesidades de este.
Existen tres alternativas que nos orientan a distribuir debidamente la
inteligencia entre las clases y que aspectos de la inteligencia del sistema
se debe asignar a cada una de ellas.

Primer enfoque: Se debe minimizar el nmero de clases


inteligentes del sistema con el fin de que un solo objeto tenga el
control y el conocimiento de todo el sistema. Aqu se transforma la
orientacin a objetos a programacin estructurada, donde toda la
aplicacin consta de un solo "objeto".
Segundo enfoque: Disear todas las clases con una inteligencia
similar, para lograr que la inteligencia del sistema sea lo ms
homognea posible aunque sea una tarea muy difcil de conseguir. La
desventaja es que si todas las clases son especializadas se ver
afectada la extensibilidad del sistema que requiere generalizar ms
las clases.
Tercer enfoque: Se piensa en Homogenizar la inteligencia del
sistema solo en ciertas clases, como las de control. Las clases borde y
entidad estarn sometidas a modificaciones en el sistema y
manteniendo la lgica introducida durante el modelo de requisitos y
el modelo de anlisis posterior para lograr una mayor robustez del
sistema.

ROBUSTEZ
La robustez de un sistema le permite a este estar protegido contra
errores y ofrecer diagnsticos que permitan identificar fallas, en
particular aquellas que son fatales. Se debe escoger lenguajes de
programacin que apoyen el manejo de excepciones las cuales son
instrucciones internas en el cdigo para descubrir fallas.

Para determinar si un sistema es robusto o no se debe considerar lo


siguiente:

El sistema debe estar protegido contra parmetros incorrectos


proporcionados
Por el cliente, que pueden ser errores lgicos, de implementacin, de
asignacin, de memoria, de archivos de entrada y salida, etc.
El sistema no debe optimizarse hasta que este funcione de manera
correcta. Para optimizar se debe estudiar las alternativas, como
aspectos de memoria, velocidad y simplicidad de implementacin. Se
debe tener cuidado en el proceso de optimizacin ya que se
compromete la extensibilidad, reus y comprensin del sistema.
En el sistema se debe incluir estructuras de datos de tamao
variables, como las listas, a diferencia de los arreglos.
El sistema debe instrumentar un monitoreo de rendimiento y
bsqueda de errores.
Ocultar la informacin interna, atributos e implementacin de
mtodos de una clase, permite cambiarla sin afectar al resto del
sistema a este procedimiento se le conoce como encapsulamiento.

REUSO
La robustez del sistema mejora ostensiblemente cuanto ms se pueda
reutilizar el cdigo. A continuacin se presenta una serie de estrategias
para mejorar las posibilidades de reus.

Por medio de la herencia. Aqu Se toman los aspectos comunes a


clases similares utilizando superclases comunes.
El uso de agregacin a travs de clases intermediarias que ocultan la
funcionalidad de las clases a las cuales se delega.
El encapsulamiento aplicado tanto al nivel de objetos como de
componentes desarrollados en otras aplicaciones.

EXTENSIBILIDAD

Se encapsulan las clases ocultando su estructura a las otras clases.


Slo los mtodos deben tener acceso a sus atributos.
Las estructuras de datos internas son especficas para el algoritmo
del mtodo es por esto que no se deben exportar.
Una clase en particular debe conocer nicamente las asociaciones
que existen entre ella y sus clases vecinas directas.

Se debe aprovechar el polimorfismo el cual es la propiedad por la que


es posible enviar mensajes sintcticamente iguales a objetos de tipos
distintos.
Se debe distinguir entre operaciones privadas y pblicas.