Escolar Documentos
Profissional Documentos
Cultura Documentos
Introducción
El diseño de software es un enfoque disciplinado de la transformación de qué es necesario
para el desarrollo de un sistema, a cómo deberá ser hecha la implementación. La definición
anterior implica que: el análisis de requerimientos del usuario (determinación del qué) debe
preceder al diseño y que, al finalizar el diseño se tendrá medios para la implementación
de las necesidades del usuario (el cómo), pero no se tendrá implementada la solución al
problema.
• Permitir que la forma del problema guíe a la forma de la solución. Un concepto básico
del diseño de arquitecturas es: las formas siempre siguen funciones. Ese concepto debe
ser también utilizado para el diseño de sistemas. Muchas veces, se han escogido formas
preconcebidas para la solución de un problema y forzado a un problema a tomar la
misma forma. Un enfoqueadecuado debe ser: lograr que, la solución de un problema
tenga los mismos componentes que los del problema original y respete las relaciones
que existen en el problema. El objetivo debe ser obtener la mayor aproximación posible
a esa idea.
Descrito así, el trabajo del diseñador parece simple, pero no lo es: hay muchas
características en las que ellos necesitan del usuario para que éstas sean definidas. Estas
características, incluso las de implementación (sin formar parte del Modelo Esencial) son
suficientemente importantes ya que tienen gran impacto en el usuario del sistema, por lo
tanto necesitan ser especificadas. El problema de implementación más evidente es el interés
del usuario en la Frontera de Automatización, es decir, que parte del modelo esencial se
llevara a cabo en la computadora, y que se deja para que sea ejecutada manualmente. El
analista, ciertamente, tendrá una opinión en eso, y el diseñador también, pero éste es un
problema en el que el usuario tiene la última palabra.
• Los usuarios finales muchas veces tienen la oportunidad de usar las computadoras
personales (PC) como parte de una red distribuida de computadoras. Esto genera una
serie de cuestiones: ¿ Qué partes del modelo esencial estarán disponibles en las
computadoras terminales y qué partes en el servidor (mainframe o estaciones RISC)?
Esto implica: ¿ A qué datos se tendrá acceso por intermedio del PC, y qué datos serán
almacenados en el PC? ¿Qué funcionalidadtendrá que ejecutar el PC? ¿Cuál será el
formato de entradas y de salidas en el PC? ¿Qué actividades adicionales de apoyo deben
ofrecerse para asegurar que el usuario no dañe desprevenidamente los datos del PC (o
del servidor)?
Estos problemas deben ser tratados como parte del Modelo de Implementación del Usuario.
La construcción de este nuevo modelo puede obligar a modificaciones en el Modelo
Esencial, en ese caso, Yourdon [Yourdon 89] recomienda el mantenimiento de una versión
intacta del modelo esencial original. Esto permitirá la experimentación de modelos
alternativos del Modelo de Implementación del Usuario.
• El usuario puede optar por un sistema completamente manual: Esta es una opción muy
poco común, sobre todo en esta era de la automatización, dado que el analista
habitualmente tiene interés en informatizar todo lo que sea posible. Sin embargo, esto
puede pasar en momentos en que la intención del usuario no sea informatizar, pero si
reorganizar la manera en que las actividades están ejecutándose.
• El formato de las entradas que fluyen de los agentes externos hacia el sistema. Es
preciso especificar con gran detalle las características de los datos ingresados y como
ellos serán aceptados.
• El formato de las salidas que fluyen del sistema hacia los agentes externos. ¿Se
representan ellos en la pantalla de la computadora o en informes impresos?
Comúnmente el formato de los informes impresos ya es predeterminado y, es común
que el usuario quiera mantener estos formatos. Si el agente externo es gubernamental,
habitualmente los informes que se desean tienen un formato muy estricto.
De una manera general, tendremos que contemplar la posibilidad de fallas tecnológicas en:
• Las entradas y salidas del sistema: Si los datos de entrada han sido introducidos por
dispositivos de vídeo unidos a las computadoras principales por líneas de
telecomunicación, la posibilidad de errores en la transmisión es muy grande. También
puede tener errores de los medios magnéticos como diskettes (o discos blandos).
Lo que debe hacerse con respecto a estas posibles áreas de tecnología defectuosa dependerá
mucho de:
• El nivel estimado de fiabilidad del hardware y del software.
• La naturaleza y la fiabilidad del usuario.
• Los costos o multas asociadas a entradas y/o salidas defectuosas.
1. Módulos
Un módulo es un conjunto de instrucciones que ejecutan alguna actividad, un
procedimiento o función en PASCAL, una función en C o un parágrafo en COBOL. Tal
vez, la definición más precisa es que un módulo es una caja negra, pero como será
mostrado a continuación son cajas “casi” negras o grises.
Las entradas y salidas son, respectivamente, datos que un módulo necesita y produce. Una
función es la actividad que hace un módulo para producir la salida. Entradas, salidas y
funciones proveen una visión externa del módulo. La lógica interna son los algoritmos que
ejecutan una función, esto es, junto con su estado interno representan la visión interna del
módulo.
4. Absorción
En muchos casos en el diseño top-down de un programa, la descomposición realizada con
el objetivo de mejorar la interpretación y modelamiento, da como resultado pequeños
módulos (apenas una o dos instrucciones o una ecuación matemática). Esta descomposición
puede ayudar en la comprensión del programa diseñado pero se tiene la certeza que en la
implementación el módulo correspondiente no será separado. Este hecho puede ser
especificado en el diagrama de estructura con el símbolo mostrado en la Fig.