Está en la página 1de 7

Diseño de software

Diseño preliminar y diseño detallado

Introducción

De acuerdo con Alfonso, F., Martinez, L. y Segovia F.J. (2005), el diseño de


software se realiza en cuatro actividades:

1. Diseño de datos
2. Diseño arquitectónico
3. Diseño Interfaz Hombre-máquina
4. Diseño procedimental

Los tres primeros corresponden al diseño preliminar, mientras que la cuarta


actividad se refiere al diseño detallado. Sin embargo, de acuerdo con Pressman,
R. S. (2021), la etapa de diseño lleva las siguientes actividades:

1. Diseño de datos / clases


2. Diseño arquitectónico
3. Diseño de Interfaz
4. Diseño a nivel de componente.

Diseño preliminar

El diseño preliminar se refiere a la traducción de los requisitos de los datos y la


arquitectura, mediante el desarrollo de una estructura funcional y modular del
sistema.

Diseño de datos

La primera actividad en el diseño preliminar es el diseño de datos, también


conocido como arquitectura de datos. Esta actividad consiste en crea un modelo
de datos y/o información que se representa a un alto nivel de abstracción. Este
modelo se basa en los siguientes principios para especificar y diseñar los datos:
• Identificar todas las estructuras de datos y operaciones a realizar sobre
ellas.
• Establecer un diccionario de datos para definir el diseño de los datos y
del programa
• Desarrollar y utilizar, si existe, una biblioteca de estructuras de datos de
forma que se pueda reutilizar (listas simplemente enlazadas, vectores,
arreglos, etc.)

Diseño arquitectónico

Esta actividad consiste en desarrollar una estructura modular del software y


representar las relaciones de control entre los módulos. Mezcla la estructura del
programa y a de los datos. Asimismo, define las interfaces que facilitan el flujo de
datos entre los módulos que se definen el software.

El tipo de diseño arquitectónico a utilizar depende en gran medida de la


naturaleza del software. Existen diferentes arquitecturas de software, en este
documento solo se mostrarán algunos de ellos.

1. Centrado en los datos. Este se basa en el almacén de datos (Archivos de


texto, binarios o base de datos), lo que implica una serie de acciones
como: agregar, eliminar, modificar y recuperar datos del almacén. El
repositorio del almacén puede ser pasivo o activo. Cuando un almacén
es pasivo, la información una vez obtenida esta no es actualizada si otro
proceso o cliente modifica la información. En el caso de un almacén
activo, se notifica a cada proceso o cliente una modificación de la
información que afecta el resultado de la operación sobre los datos
obtenidos.
2. Centrada en el flujo de datos. Está basado en el flujo de los datos de
entrada proceso salida. Cabe señalar que la salida de un proceso
corresponde la entrada a otro. Este tipo de diseño de arquitectónico
utiliza principalmente la metodología del diagrama de flujo de datos.
3. De llamada y retorno. Se basa en el desarrollo del programa principal y
subprogramas. El programa principal realiza llamadas a las subrutinas,
lo que a su vez puede llamar a otras subrutinas. Dentro de este diseño
arquitectónico también se puede realizar entre el programa principal y
llamadas a procesos remotos que se encuentran en otras
computadoras.
4. Orientado a objetos. Los componentes de un sistema encapsulan los
datos y las operaciones que se realizan a través del componente. La
comunicación entre componentes y su coordinación se logra mediante
el paso de mensajes. Este tipo de arquitectura presenta la ventaja del
reúso de código y el desarrollo de componentes especializados
mediante los conceptos de herencia y polimorfismo.
5. Centrado en capas. En esta arquitectura cada capa realiza una
operación que se vuelve cada vez más cercana al conjunto de
instrucciones de máquina.
6. Modelo-vista-controlador. En esta arquitectura se utilizan modelos que
guarda la información del sistema y la lógica del procedimiento. La vista
contiene las funciones especificas de la interfaz (gráfica o de texto), lo
que permite la presentación del contenido al usuario. Finalmente, el
controlador es el encargado de gestionar el acceso al modelo y la vista,
además de coordinar el flujo de datos entre estos componentes.
7. Basado en patrones. Son soluciones para problemas típicos y
recurrentes. Existen tres tipos de patrones:
1. Patrones de creación
2. Patrones de estructura
3. Patrones de comportamiento

Dentro de los patrones de creación se tienen: fabrica, fabrica abstracta, prototipo


y singletón. En los patrones de estructura se tienen: adaptador, puente,
decorador y proxy. Finalmente, los patrones de comando, iterador, estado y
observador pertenecen al patrón de comportamiento.

Además de los tipos de diseño arquitectónicos utilizados se debe tener en cuenta


el modelo de software a utilizar. Existen dos tipos de modelo de software:
Orientado a procesos y datos, y el modelo de desarrollo orientado a objetos. El
modelo de software orientado a procedimientos utiliza las siguientes
herramientas en el diseño del software:

• Funcional
• Flujo de datos
• Estructuras de datos
o Sistema de Jackson
o Método de Warnier-Urr
o Entidad – relación

En el modelo de software orientado a objetos la herramienta principal utilizada


es el modelo de lenguaje unificado (UML).

Diseño de la Interfaz Hombre-Maquina

El diseño de las interfaces hombre-maquina (HMI - Human Machine Interface)


consiste en establecer una comunicación bidireccional entre el sistema o
software y el usuario. Se debe tener en cuenta el tipo de diseño arquitectónico
utilizado ya que de ello permite determinar las características y restricciones de
la interfaz. Las interfaces hombre-computadora (HMI), están constituidas por el
diálogo, la conversación y la comunicación que puede fluir en ambas direcciones.
Las HMI se pueden clasificar dependiendo del mecanismo que atiende su
ejecución en:

• Secuencial
o Dirigidas por el control
o Dirigidas por los datos
• Asíncrona
o Dirigida por eventos

Son de tipo secuencial aquellas HMI que tienen una secuencia lógica y específicas
de comportamiento. Esta secuencia lógica se realiza a través del binomio
pregunta-respuesta, lenguaje de comandos, navegación a través de menús y
entrada de datos. Este mecanismo utiliza principalmente entrada mediante
teclado. Las HMI de tipo asíncrono realizan acciones sobre componentes
concretos conocidos, utiliza principalmente el apuntador.

Existen otros tipos de diálogos que dependen de la interacción concurrente de


usuarios y que en función de estos diálogos se establece una respuesta. En este
tipo de diálogos se tienen dos:

• Interacción social o grupal


• Interacción basada en agentes

Las interfaces de usuario de las HMI se clasifican en:

• Interfaz basada en comandos. En este tipo de interfaces se utilizan


comando para realizar acciones específicas.
• Interfaz orientada a menús. En estas interfaces se presentan un
conjunto de opciones mediante menús que pueden ser seleccionados.
• Interfaz gráfica de usuario. Este tipo de interfaces esta caracterizado
por una aplicación visual con imágenes iconos.
• Interfaz Inteligente. Estas interfaces se adaptan a las características del
usuario ya sea proporcionando sugerencias, completando información
o una interacción más natural. Existen tres tipos de interfaces
inteligentes: Signos de adaptación, evolutivas y de Inferencia.

Si bien esta es una clasificación genérica de interfaces de usuario, existen otro


tipo de interfaces como:

• Accesibles – Diseñadas para todo tipo de usuarios


• Groupware – Grupos, coordinaciones y compartir información
• Conversacionales – Sistemas telefónicos (voz)
• Móviles – Dispositivos inalámbricos
• Hápticas – Dispositivos realimentado de fuerzas
• Cerebrales – Lectora de ondas alfa y beta

Independientemente del tipo de interfaz de usuario que se utilice es importante


tener que estas cumplían con los siguientes objetivos:

• Simplicidad
• Confiabilidad
• Flexibilidad
• Transparencia
• Ergonomía
Diseño procedimental.

En esta actividad se definen los detalles algorítmicos de cada uno de los módulos
producidos durante el diseño arquitectónico, se establece el bosquejo de las
interfaces de usuario (comandos, menús, pantallas) con la interrelación de cada
uno de ellos y se define un documento con la información producida en el diseño
preliminar y el diseño procedimental de:

• Los datos
• El diccionario de datos
• Interfaz Hombre-máquina
• Interfaz de módulos
• Diseño procedimental del módulo.

Referencias

Alonso, F., Martinez, N.L, y Segovia Perez, J. (2005). Introducción a la Ingeniería


del Software: modelos de desarrollo de programas. Delta Publicaciones.
R.S. Pressman, B.R. Maxim (2021), Ingeniería del software. Un enfoque práctico,
9ª edición. Mc Graw Hill.

También podría gustarte