Durante
el diseño de sistema se toman condiseraciones en base al ambiente de
implementación teniendo como objetivo lograr una buena rastreabilidad de la
arquitectura de objetos al código final. Estos objetos deben ser vistos como
abstracciones del código a ser escrito donde, por ejemplo, un típico objeto
sería representado por un archivo en el sistema, como es el caso de Java. En
otros lenguajes, como C++, en lugar de un archivo se escriben dos, uno
correspondiente a la interface del objeto y el otro a su implementación. En
general, el diseño de sistema incluye diversos aspectos como:
§ Selección del lenguajes
de programación a utilizarse, típicamente estructurados u orientados a
objetos;
§ Incorporación de una base
de datos, típicamente relacionales, relacionales extendidos u orientados a
objetos;
§ Acceso a archivos, en sus
diferentes formatos;
§ Inclusión de bibliotecas,
como por ejemplo, interfaces gráficas (GUI), bibliotecas numéricas y de
estructuras de datos;
§ Consideraciones de tiempo
real, si las hay;
§ Aspectos de
procesamiento, como concurrencia, paralelismo y distribución;
§ Aspectos transaccionales,
típicamente en el acceso a bases de datos;
§ Organización del sistema
en subsistemas;
§ Asignación de subsistemas
a componentes de hardware y software.
Estos
aspectos pueden variar radicalmente entre uno y otro sistema y también pueden
afectar de gran manera la arquitectura resultante del sistema. En general
existen diversos enfoques para la incorporación del ambiente de
implementación a la arquitectura del sistema:
§ Agregando clases
abstractas o interfaces que luego serán especializadas según el ambiente de
implementación particular. Esto es posible hacer, por ejemplo, cuando el
lenguaje de programación, como en el caso de Java, es común a los diversos
ambientes.
§ Instanciando objetos
especializados que administren los aspectos particulares del ambiente de
implementación particular. Esto puede significar una integración parcial o
completa de componentes adicionales a la arquitectura del sistema. Por
ejemplo, una integración con las interfaces nativas de Java (JNI) para manejo
de aspectos de bajo nivel del ambiente.
§ Configurando múltiples
versiones del sistema correspondientes a diferentes plataformas. Este es el
enfoque más flexible, aunque por lo general el de mayor costo de desarrollo.
Por ejemplo, cambios radicales en los lenguajes de programación incluyendo
diseños para lenguajes estructurados.
En
este capítulo simplificaremos de gran manera el efecto del ambiente de
implementación. Utilizaremos a Java como lenguaje de programación bajo un
procesamiento secuencial y con interfaces gráficas también escritas en Java.
Para el Sistema de Reservaciones de Vuelos también incluiremos integración
con bases de datos y archivos externos, algo que será manejador a través de
las clases interface.
Interfaces
Gráficas
Las
interfaces gráficas tienen como aspecto esencial que toda interacción con el
usuario es a través de elementos gráficos, como lo son los botones, menús y
textos. En lo que se refiere a la aplicación, todo sistema que interactúe
mediante interfaces gráficas está dirigido por eventos. Estos eventos corresponden al
movimiento del ratón, el oprimir o soltar uno de sus botones, el oprimir una
tecla, junto con los que no son directamente iniciados por el usuario, como
los eventos de desplegar una pantalla o interrumpir un programa.
El
desarrollar un sistema dirigido por eventos significa que la aplicación debe
desde un inicio considerar un diseño adecuado. Por ejemplo, en el caso de
Java, se debe inicialmente escoger una de sus bibliotecas gráficas, como AWT,
para luego utilizar el manejo apropiado a través de clases como Event.
El
uso de estas bibliotecas también afecta la lógica de diseño, ya que se debe
contemplar, por ejemplo, en que momentos es apropiado procesar nuevos eventos
y cómo se inicializará el sistema. Estas consideraciones y su efe cto sobre
el resto del sistema serán discutidas más adelante durante el diseño de
objetos.
Bases
de Datos
El
aspecto de bases de datos siempre juega un papel fundamental en los sistemas
de información. La decisión estratégica más importante en nuestro contexto es
si utilizar bases de datos relacionales o las orientadas a objetos. Dado su
amplia utilización y la situación actual en el mercado, escogeremos para
nuestro desarrollo una base de datos relacional utilizando el lenguaje SQL
estándar. Simplifcaremos al máximo el diseño de la base de datos para
minimizar su efecto sobre el sistema completo. Más bien, demostraremos como
es posible diseñar buenas clases que permitan en un futuro cambiar de
manejadores de bases de datos.
|
jueves, 23 de mayo de 2013
4.3 Diseño de Sistema.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario