4. Unidad 5 | Ingeniería de software I 05
Unidad V Diseño
del sistema
Diseñar un sistema, componente o
proceso para implementarlos con
herramientas de programación.
5.1 Principios del diseño
5.2 Diseño arquitectónico
• 5.2.1 Diseño de la interfaz
(Información, diseño de
interacción, diseño de la
información, diseño de la
navegación y diseño de la
interfaz)
5.3 Diseño orientado a objetos
5.4 Patrones Arquitectónicos
Diseño del sistema
5. Diseño del sistema | Ingeniería de software I 05
El diseño del software se encuentra en el núcleo técnico de la ingeniería del software y se aplica
independientemente del modelo de diseño de software que se utilice. Una vez que se analizan y
especifican los requisitos del software, el diseño del software es la primera de las tres actividades técnicas
-diseño, generación de código y pruebas- que se requieren para construir y verificar el software. Cada
actividad transforma la información de manera que dé lugar por último a un software de computadora
validado.
Pressman. p.220
6. Diseño del sistema | Ingeniería de software I 05
Pressman (2010) Ingeniería de Software: Un enfoque práctico, séptima edición.
7. Diseño del sistema | Ingeniería de software I 05
El diseño arquitectónico define la relación entre los elementos estructurales principales del software, los
patrones de diseño que se pueden utilizar para lograr los requisitos que se han definido para el sistema, y
las restricciones que afectan a la manera en que se pueden aplicar los patrones de diseño
arquitectónicos.
La representación del diseño arquitectónico -el marco de trabajo de un sistema basado en computadora-
puede derivarse de la especificación del sistema, del modelo de análisis y de la interacción del subsistema
definido dentro del modelo de análisis.
Diseño arquitectónico
8. Diseño del sistema | Ingeniería de software I 05
El diseño de datos transforma el modelo del dominio de información que se crea durante el análisis en
las estructuras de datos que se necesitarán para implementar el software. Los objetos de datos y las
relaciones definidas en el diagrama relación entidad y el contenido de datos detallado que se representa
en el diccionario de datos proporcionan la base de la actividad del diseño de datos. Es posible que parte
del diseño de datos tenga lugar junto con el diseño de la arquitectura del software. A medida que se van
diseñando cada uno de los componentes del software, van apareciendo más detalles de diseño.
Diseño de datos
9. Diseño del sistema | Ingeniería de software I 05
El diseño de la interfaz describe la manera de comunicarse el software dentro de sí mismo, con sistemas
que interoperan dentro de él y con las personas que lo utilizan. Una interfaz implica un flujo de información
(por ejemplo, datos y/o control) y un tipo específico de comportamiento. Por tanto, los diagramas de flujo
de control y de datos proporcionan gran parte de la información que se requiere para el diseño de la
interfaz.
Diseño de la interfaz
10. Diseño del sistema | Ingeniería de software I 05
El diseño a nivel de componentes transforma los elementos estructurales de la arquitectura del software
en una descripción procedimental de los componentes del software. La información que se obtiene de EP,
EC y de DTE ( Diagrama de transición de estados) para sirve como base para el diseño de los
componentes.
Diseño a nivel de
componentes
11. Diseño del sistema | Ingeniería de software I 05
Usando la arquitectura de una casa o un edificio a modo de metáfora, dibuje una comparaciones con la
arquitectura del software (datos, arquitectónico, interfaz y componentes).
¿En qué se parecen la disciplina de la arquitectura clásica y la de la arquitectura del software?
¿En qué se diferencian?
12. Diseño del sistema | Ingeniería de software I 05
Pressman (2010) Ingeniería de Software: Un enfoque práctico, séptima edición.
13. Diseño del sistema | Ingeniería de software I 05
El software HogarSeguro permite al propietario de la vivienda configurar el sistema de seguridad al
instalarlo; supervisa todos los sensores conectados al sistema de seguridad e interactúa con el propietario
a través de un teclado numérico y unas teclas de función que se encuentran en el panel de control de
HogarSeguro.
Durante la instalación, se usa el panel de control de Hogar- Seguro para «programar» y configurar el
sistema. Cada sensor tiene asignado un número y un tipo. existe una contraseña maestra para activar y
desactivar el sistema, y se introduce( n) un(os) teléfono(s) con los que contacta cuando se produce un
suceso detectado por un sensor.
14. Diseño del sistema | Ingeniería de software I 05
Cuando el software detecta un suceso, invoca una alarma audible que está incorporada en el sistema.
Tras un retardo, especificado por el propietario durante la configuración del sistema, el programa marca
un número de teléfono de un servicio de monitorización, proporciona información sobre la situación e
informa sobre la naturaleza del suceso detectado.
Cada 20 segundos se volverá a marcar el número de teléfono hasta que se consiga establecer la
comunicación. Toda la interacción con HogarSeguro está gestionada por un subsistema de interacción
con el usuario que lee la información introducida a través del teclado numérico y de las teclas de función,
muestra mensajes de petición en un monitor LCD y muestra información sobre el estado del sistema en el
monitor LCD. La interacción por teclado toma la siguiente forma…
15. Diseño del sistema | Ingeniería de software I 05
El diseño estructurado suele caracterizarse como un método de diseño orientado al flujo de datos porque
permite una cómoda transición desde el diagrama de flujo de datos (DFD) a la arquitectura de software.
La transición desde el flujo de información (representado como un diagrama de flujo de datos) a una
estructura del programa se realiza en un proceso de seis pasos:
(1) se establece el tipo de flujo de información
(2) se indican los límites del flujo
(3) se convierte el DFD en la estructura del programa
(4) se define la jerarquía de control
(5) se refina la estructura resultante usando medidas y heurísticas de diseño
(6) se refina y elabora la descripción arquitectónica.
16. Diseño del sistema | Ingeniería de software I 05
Diagrama de contexto arquitectónico para la función de seguridad de CasaSegura.
20. Diseño del sistema | Ingeniería de software I 05
Decisiones de diseño arquitectónico
1. ¿Existe una arquitectura de aplicación genérica que pueda actuar como una plantilla para el sistema
que se están diseñando?
2. ¿Cómo se distribuirá el sistema entre varios procesadores?
3. ¿Qué estilo o estilos arquitectónicos son apropiados para el sistema?
4. ¿Cuál será la aproximación fundamental utilizada para estructurar el sistema?
5. ¿Cómo se descompondrán en módulos las unidades estructurales del sistema?
6. ¿Qué estrategia se usará para controlar el funcionamiento de las unidades del sistema?
7. ¿Cómo se evaluará el diseño arquitectónico?
8. ¿Cómo debería documentarse la arquitectura del sistema?
21. Diseño del sistema | Ingeniería de software I 05
Modelo de repositorio
Repositorio de proyecto
Traductor de
diseño
Editor de
diseño
Generador de
código
Analizador de
diseño
Generador de
informes
Editor de
programas
22. Diseño del sistema | Ingeniería de software I 05
Modelo cliente - servidor
Internet
Cliente 1 Cliente 2
Servidor de
catálogos
Catálogos
Servidor web
Información de videos
y películas
Servidor de
imágenes
Fotografías
digtalizadas
Servidor de
Videos
Archivos de
video
Cliente 2 Cliente 2
Internet
Cliente 1 Cliente 2 Cliente 2 Cliente 2
23. Diseño del sistema | Ingeniería de software I 05
Modelo de capas
Capa de la gestión de
configuraciones del sistema
Capa de gestión de objetos del
sistema
Capa de base de datos del
sistema
Capa del sistema operativo