Está en la página 1de 4

Un panorama del diseño de objetos

Desde el punto de vista conceptual, vemos el


desarrollo de sistemas como el relleno del
hueco entre el problema y la máquina. Las
actividades de desarrollo del sistema cierran
de manera incremental ese hueco al identificar
y definir objetos que realizan parte del sistema
como se muestra en la siguiente figura:

El análisis reduce el hueco entre el problema y


la máquina, identificando objetos que
representan conceptos visibles para el usuario.
Durante el análisis describimos el sistema
desde el punto de vista del comportamiento
externo, como su funcionalidad (modelo de
caso de uso), los conceptos del dominio de
aplicación que maneja (modelo de objetos), su
comportamiento desde el punto de vista de las
interacciones (modelo dinámico) y sus
requerimientos no funcionales.
El diseño del sistema reduce el hueco entre el
problema y la máquina definiendo una
plataforma de hardware y software que
proporciona un nivel de abstracción más alto
que el hardware de la computadora. Esto se
realiza seleccionando componentes hechos
para la realización de servicios estándar, como
el middleware, juegos de herramientas de
interfaz de usuario, marcos de aplicación y
bibliotecas de clases
Durante el diseño de objetos refinamos los
modelos de análisis y de diseño del sistema,
identificamos nuevos objetos y cerramos el
hueco entre los objetos de aplicación y los
componentes hechos. Esto incluye la
identificación de objetos personalizados, el
ajuste de los componentes hechos y la
especificación precisa de cada interfaz de
subsistema y clase. Como resultado, el modelo
de diseño de objetos puede particionarse en
conjuntos de clases que pueden ser
implementados por desarrolladores
individuales.
El diseño de objetos incluye cuatro grupos de
actividades como se muestra en la siguiente
figura:

1. Especificación de servicios. Durante el


diseño de objetos especificamos los
servicios de subsistemas (identificados
durante el diseño del sistema) desde el
punto de vista de interfaces de clase,
incluyendo operaciones, argumentos,
firmas de tipo y excepciones. Durante esta
actividad también encontramos
operaciones faltantes y objetos necesarios
para transferir datos entre subsistemas. El
resultado de la especificación de servicios
es una especificación de interfaz completa
para cada subsistema. A la especificación
de servicios de subsistema con frecuencia
se le llama API (siglas en inglés de
interfaz de programación de aplicaciones)
de subsistema.

2. Selección de componentes. hechos


identificados durante el diseño del sistema
para realizar cada subsistema.
Seleccionamos bibliotecas de clase y
componentes adicionales para las
estructuras de datos y servicios básicos. A
menudo necesitamos ajustar los
componentes que seleccionamos antes de
poder usarlos envolviendo objetos
personalizados alrededor de ellos o
refinándolos usando herencia. Durante
esas actividades enfrentamos el mismo
compromiso de compra frente a
construcción que encaramos durante el
diseño del sistema
3. Reestructuración. Las actividades de
reestructuración manipulan el modelo del
sistema para incrementar la reutilización
del código o satisfacer otros objetivos de
diseño. Cada actividad de reestructuración
puede verse como una transformación
gráfica de subconjuntos de un modelo
particular. Las actividades típicas incluyen
la transformación de asociaciones n-arias
en asociaciones binarias, la
implementación de asociaciones binarias
como referencias, la combinación de dos
clases similares de dos subsistemas
diferentes en una sola clase, la
descomposición en atributos de clases
que no tienen comportamiento
significativo, la división de clases
complejas en otras más simples, el
reacomodo de clases y operaciones para
incrementar la herencia y el empacado.
Durante la reestructuración tratamos
objetivos de diseño, como el
mantenimiento, la legibilidad y la
comprensibilidad del modelo del sistema.
4. Optimización. Las actividades de
optimización tratan los requerimientos de
desempeño del modelo del sistema. Esto
incluye el cambio de algoritmos para que
respondan a los requerimientos de
velocidad o memoria, la reducción de
multiplicidades en asociaciones para
agilizar las consultas, la adición de
asociaciones redundantes para eficiencia,
el reacomodo del orden de ejecución, la
adición de atributos derivados para
mejorar el tiempo de acceso a objetos y la
apertura de la arquitectura; eso es, la
adición de acceso a capas inferiores
debido a requerimientos de desempeño.

El diseño de objetos no es lineal. Aunque cada


una de las actividades que describimos antes
aborda un problema específico de diseño de
objetos, necesitan suceder en forma
concurrente. Un componente hecho específico
puede restringir la cantidad de tipos de
excepciones mencionadas en la especificación
de una operación y, por tanto, puede tener
impacto en la interfaz del subsistema. La
selección de un componente puede reducir el
trabajo de implementación mientras introduce
nuevos objetos "de unión", los cuales también
tienen que especificarse. Por último, la
reestructuración y la optimización pueden
reducir la cantidad de objetos a implementar,
incrementando la cantidad de reutilización en
el sistema.
La mayor cantidad de objetos y
desarrolladores, la alta tasa de cambio y la
cantidad de decisiones concurrentes que se
toman durante el diseño de objetos hacen que
esta actividad sea mucho más compleja que el
análisis o el diseño del sistema. Esto
representa un reto de administración, ya que
muchas decisiones importantes tienden a
resolverse en forma independiente y no se
comunican al resto del proyecto. El diseño de
objetos requiere que mucha información se
ponga a disposición de los desarrolladores
para que puedan tomarse las decisiones en
forma consistente con las decisiones tomadas
por los demás desarrolladores y con los
objetivos de diseño. El Documento de Diseño
de Objetos, un documento vivo que describe la
especificación de cada clase, apoya este
intercambio de información.

Actividad: Realiza un mapa cognitivo de panal.


Individual

Mapa cognitivo de panal


Sirve para organizar o clasificar cualquier tipo
de información. Este diagrama esta
conformado por cuatro celdillas hexagonales o
cuadrangulares centrales y ocho subsecuentes
que simulan un panal.
1. En la parte central se anota el nombre
o título del tema
2. En los nudos de cada celda se escriben
los subtemas
3. De los subtemas salen líneas delgadas
que forman la celdilla, allí se anotan las
características o elementos que se
desee incluir
4. Los nudos de las celdas (subtemas), se
unen en la parte central por medio de
líneas que conforman a su vez otras
celdas, donde se sugiere añadir
ejemplos nombres de autores del tema
5. En la parte central de cada celdilla se
pueden colocar ilustraciones o íconos
que ejemplifiquen o representen los
contenidos

También podría gustarte