Durante
el diseño de objetos, se ha desarrollado un diseño
detallado con base en la arquitectura especificada.
En general, el diseño de sistemas incluye aspectos como los siguientes:
- Selección del lenguaje de programación a
utilizarse.
- Incorporación de bibliotecas (para interfaces
gráficas, estructuras de datos, etc.)
- Incorporación de una base de datos.
- Incorporación de archivos en sus diferentes
formatos.
- Consideraciones de procesamiento, como
concurrencia, paralelismo, distribución y tiempo real.
Estos aspectos pueden variar entre un sistema y
otro. Además, pueden afectar de manera importante la
arquitectura final del sistema. Existen diferentes enfoques para la incorporación
del ambiente de implementación a la arquitectura del sistema:
- Agregar clases abstractas o interfaces que luego
se especializarán según el ambiente de implementación.
- Instanciar objetos especializados para la
administración del ambiente de implementación
- Configurar múltiples versiones del sistema
correspondientes a diferentes plataformas.
Diseño de sistema -
Lenguajes de programación
Es importante señalar que un diseño orientado a
objetos no necesariamente se tiene que implementar mediante un
lenguaje orientado a objetos. Sin embargo, es más
natural hacerlo de esta manera. Esto es debido a que los
lenguajes orientados a objetos tienen un apoyo directo a los
conceptos del análisis orientado a objetos (encapsulamiento, generalización, polimorfismo).
Sin embargo, se puede traducir cualquier concepto o
mecanismo orientado a objetos a otros existentes en los lenguajes no orientados
a objetos. El problema con este tipo de lenguajes es su conveniencia, mantenimiento
y protección contra errores. Un lenguaje orientado a objetos hace que la
escritura, mantenimiento y extensión de los programas sea más fácil y segura.
Cabe mencionar que no todos los lenguajes de
programación orientados a objetos implementan de la misma forma los conceptos
de la metodología orientada a objetos. Aspectos como manejo de encapsulamiento,
referencias, herencia múltiple varían de manera importante entre los
lenguajes de programación.
Diseño de sistema – Interfaces gráficas
Las interfaces gráficas tienen como objetivo
principal administrar la interacción entre el usuario mediante elementos
gráficos, como son botones, menús y textos. Las aplicaciones interactivas donde
el control del ratón y teclado desempeñan un papel importante se conocen como sistemas
controlados o dirigidos por eventos. Estos eventos comprenden: mover el
ratón, oprimir uno de sus botones, oprimir una tecla, etc.
Desarrollar un sistema dirigido por eventos
significa que la aplicación desde un inicio debe considerar un diseño adecuado.
Por ejemplo, en Java se escoge alguna de las bibliotecas gráficas (AWT o
Swing) para utilizar el manejo apropiado de interfaces mediante sus
clases (JFrame, Jpanel, JButton). Más allá de estas bibliotecas o clases
también se afecta la lógica del diseño, ya que se debe contemplar el momento de
procesar eventos.
Por ejemplo, si se desarrolla un sistema con varias
pantallas se puede manejar cada evento mediante una clase para cada pantalla.
Otra solución es usar un JFrame para todas las pantallas y declarar una
clase que maneje los eventos del JFrame. En el segundo caso, en lugar de
que cada pantalla reciba un evento del usuario, se hace que los eventos sean
recibidos por parte de la clase y las pantallas se vuelven más pasivas y
fáciles de manipular.
Diseño de sistema – Bases de datos
Las bases de datos son fundamentales en los
sistemas de información. Una decisión estratégica importante en
tal contexto es si debe utilizar bases de datos relacionales u orientadas a objetos.
En general se consideran tres
modelos de bases de datos principales:
•Modelo relacional: se define una colección
de tablas donde cada una tiene un número específico de
columnas y un número arbitrario de filas. Cada objeto se
representa como una fila en una tabla y donde cada columna
corresponde a un atributo distinto en el objeto.
•Modelo relacional extendido: el modelo
relacional se extiende mediante procedimientos, objetos,
versiones y otras nuevas capacidades. No hay un solo modelo
relacional extendido, más bien hay una variedad de ellos,
aunque todos comparten las tablas y consultas básicas del modelo
relacional.
•Modelo orientado a objetos: se define un
modelo orientado a objetos donde varía el tipo de encapsulamiento
de datos y los procedimientos en el objeto. El
término
orientado a objetos varía según cada autor.
Las bases de datos son depósitos de datos guardados
en uno o más archivos. Existen sistemas de manejo de bases
de datos (DBMS) y orientados a objetos (OOBDMS). Las bases de datos dan apoyo en los siguientes
aspectos:
-
Múltiples usuarios
- Múltiples aplicaciones
- Seguridad
- Integridad
- Distribución de datos
La tarea del diseño se simplifica, creando una
tabla correspondiente a cada clase entidad del dominio del
problema y manteniendo las asociaciones entre
clases. Obviamente el diseño de tablas puede optimizarse
para un acceso más eficiente.
Diseño de
sistema – Archivos
Aunque es más efectivo trabajar con bases de datos,
es posible utilizar archivos, sobre todo cuando la especificación
del sistema así lo requiera. En el caso de usar una
base de datos, regularmente una clase se comunica con el DBMS
para hacer solicitudes a cualquier tabla. Sin
embargo, en el caso de los archivos, tal manejador no existe por
lo que el proceso se hace manualmente.
Fuente Bibliografica: