Está en la página 1de 41

Fundamentos del Diseo de

Software
M.C. Juan Carlos Olivares Rojas
Agenda

Ingeniera de Software y Diseo de Sistemas

Proceso del Diseo

Fundamentos del Diseo

Diseo Modular Efectivo
Agenda
Diseo de Datos

Diseo Arquitectnico

Diseo de Interfaz de Usuario

Diseo Procedimental

Documentacin del Diseo

Ingeniera de Software y Diseo
de Sistemas

El diseo es la primera parte del desarrollo
de cualquier proyecto.

Etimolgicamente significa componer, por lo
que se obtiene la solucin que habr de
implementarse.

Todas las cosas siempre tienen primero una
creacin mental.
Diseo de Sistemas
El diseo en proyectos informticos presenta
cuatro apartados: datos, arquitectura, interfaz
y procedimientos.

El diseo de datos se encarga de
transformar el modelo de informacin
obtenido en el proceso de anlisis en
estructuras de datos. Se pueden utilizar
diagramas entidad-relacin pero
especificados a mayor detalle.
Diseo de Sistemas
El diseo arquitectnico tiene la finalidad de
comprobar las relaciones con los diferentes
mdulos o macrorequisitos del sistema
(subsistemas).

El diseo de interfaz define como se
comunica el software consigo mismo y hacia
el exterior.

Existe una estrecha relacin entre anlisis y
diseo.
Diseo de Sistemas
El diseo procedimental o basado en
componentes consiste en la traduccin de
cada uno de los elementos obtenidos en la
especificacin de procesos, datos y
transicin hacia elementos implementables a
travs de computadoras.
Proceso del Diseo

El proceso de diseo sirve de base para la
codificacin del sistema. Se deben seguir
algunas recomendaciones para su mejor
desarrollo como las siguientes:

Se deben especificar todos los elementos
explcitos e implcitos del modelo de anlisis.
Procesos del Diseo
El diseo deber servir de gua para que cual
integrante del proyecto pueda construir y
entender el software.

El diseo debe de dar una completa idea de
lo que es el software.

El diseo debe presentar uniformidad e
integracin. Se deben definir reglas y estilos
que deben seguir los miembros del equipo.
Procesos del Diseo
El diseo debe estar estructurado, de tal
forma que permita cambios.

El diseo no es escribir cdigo, ni codificar
es disear.

Al disear se deben tomar en cuenta
Factores de Calidad Externos (velocidad.
Fiabilidad, utilidad) y Factores de Calidad
Interno (abstraccin, refinamiento,
modularidad).
Fundamentos del Diseo
A continuacin se muestra el glosario bsico
del diseo de proyectos de software:

Abstraccin: son los niveles de resolucin de
problema, los cuales pueden ser alto si se
especifica en lenguaje natural o bajo nivel de
abstraccin si tiene una implantacin directa.

La abstraccin puede ser de datos,
procedimientos y control.
Fundamentos del Diseo
Refinamiento: es la base del diseo. Es un
proceso de elaboracin que comienza con un
nivel de abstraccin alto y van descendiendo
sucesivamente de nivel de abstraccin hasta
llegar a un nivel bajo.

Durante el proceso de refinamiento se van
obteniendo detalles tanto de procedimientos
como de datos obteniendo mejores
soluciones ms fciles de implementar.
Fundamentos del Diseo
El refinamiento tiene como objetivos
encontrar detalles de bajo nivel que podran
ser difciles de plasmar.

La modularidad es el atributo de software
que permite un programa sea manejable
intelectualmente.

El software monoltico es muy difcil de
manejar. Se debe aplicar el principio de
divide y vencers
Fundamentos del Diseo
Los mdulos son los componentes bsicos
de todo sistema y tienden a satisfacer a uno
o ms requerimientos.

Se han definido cinco mtricas para evaluar
el diseo modular: capacidad de
descomposicin, reutilizacin, capacidad de
comprensin, continuidad modular y
proteccin modular.
Fundamentos del Diseo
La arquitectura del software hace referencia
a la estructura global del sistema, dicha
estructura es jerrquica en forma de
mdulos.

La arquitectura de software debe ayudar a
definir como interactan los componentes de
software entre s y las estructuras de los
datos.
Fundamentos del Diseo
La jerarqua de control representa dos
caractersticas: visibilidad y conectividad.

La visibilidad es el conjunto de componentes
de un programa que pueden ser invocados o
utilizados sus datos por un componente aun
de manera directa.

La conectividad indica el conjunto de
componentes que son accedidos de manera
directa por otros componentes.
Fundamentos del Diseo
La particin estructural de una arquitectura
de software puede ser horizontal: datos,
procesos y control; o bien vertical definiendo
una jerarqua de mdulos.

Los mdulos deben programarse de tal
forma que los datos no estn accesibles por
otros mdulos.
Diseo Modular Efectivo
El diseo modular ayuda a reducir la
complejidad, facilita los cambios y ayuda a
producir soluciones ms sencillas.

Los tres tipos de mdulos existentes son:
secuencial, incremental y paralelo.

La independencia funcional se adquiere
cuando se desarrollan los conceptos de
modularidad, abstraccin y ocultamiento de
informacin.
Diseo Modular Efectivo
La independencia funcional se mide en base
a dos criterios: cohesin y acoplamiento.

Cohesin: es una extensin del principio de
ocultamiento de informacin, es deseable
tener una alta cohesin. Esta se obtiene
cuando un mdulo realiza una tarea sencilla
sin depender de otros mdulos
Diseo Modular Efectivo
El acoplamiento es una medida de
interconexin de los mdulos. Es necesario
tener un bajo acoplamiento. El acoplamiento
se mide en las relaciones que guardan los
mdulos con sus interfaces de entrada y
salida.

Hay tres tipos de acoplamiento: comn, de
datos y control.
Diseo de Datos
Algunas recomendaciones para el diseo de
datos son:

Definir todas las posibles operaciones a
realizar sobre los datos.

Se deben refinar las estructuras de datos
hasta tener representaciones de bajo nivel.
Diseo de Datos
Se deben desarrollar bibliotecas tiles para
la manipulacin de datos.

El lenguaje de implementacin debe soportar
tipos de datos abstractos.

Se debe tener cuidado a la hora de disear
diccionarios de datos, para que no se tengan
basureros de datos en lugar de almacenes
de datos.
Diseo Arquitectnico
El concepto de Arquitectura de Software
tiene mucho tiempo de antigedad, pero no
fue hasta la dcada de los 1990s que
comenz a utilizarse de manera formal.

Analizando los sistemas se puede observar
que existen patrones que se repiten
conformando lo que se conoce como estilos
arquitectnicos.
Diseo Arquitectnico
Un estilo arquitectnico define un conjunto
de familias de patrones de software con una
determinada estructura y restricciones.

Generalmente los patrones de diseo y
arquitectura definen soluciones para medios
repetitivos.

La arquitectura de software es una
abstraccin del sistema que nos permite ver
su estructura y su relaciones.
Diseo Arquitectnico
Para el desarrollo del Diseo Arquitectnico
se recomiendan seguir los siguientes pasos:

Estructuracin del sistema
Modelado de control
Descomposicin modular

Existen diferentes estilos arquitectnicos que
a continuacin se mencionan.
Diseo Arquitectnico
La Arquitectura de Flujo de Datos parte del
DFD para obtener una arquitectura del
sistema:

Se establece el tipo de flujo de informacin
Se indican los lmites del flujo
Se convierte el DFD en una estructura del
programa

Diseo Arquitectnico
Se define la jerarqua de control mediante
particionamiento.

Se refina la estructura resultante utilizando
heursticas de diseo.

La Arquitectura Centrada en Datos tiene
como componente principal un repositorio,
del cual surgen los dems componentes.
Diseo Arquitectnico
Las Arquitecturas Estratificadas son de las
ms utilizadas en la actualidad, dado que
dividen las actividades y responsabilidades
de sistemas por capas.

El software ms elaborado como los
sistemas operativos, software de base,
sistemas distribuidos y otros maneja
variantes de esta arquitectura.
Diseo Arquitectnico
El diseo se debe refinar realizando cada
uno de los siguientes pasos:

Desarrollar una descripcin del
procedimiento para cada mdulo.

Desarrollar una descripcin de la interfaz
para cada mdulo.
Diseo Arquitectnico
Se definen las estructuras de datos
generales y globales.

Se anotan todas las
limitaciones/restricciones del sistema.

Se debe refinar el diseo hasta que est
completo. Se recomienda completar la
arquitectura con el Diseo de Interfaces.
Diseo de Interfaz de Usuario
El diseo de interfaces se refiere al estudio
de las relaciones entre los usuarios y las
computadoras para que un sistema se pueda
ejecutar.

El diseo de una interfaz puede definir el
xito de cualquier proyecto, ya que la
utilizacin de cualquier interfaz de usuario
depende de factores humanos.
Diseo de Interfaces de Usuario
Existen algunas reglas de oro para el buen
diseo de Interfaces de Usuario:

Dar el control al usuario

Reducir la carga de memoria del usuario

Construir una interfaz consecuente
Diseo de Interfaces de Usuario
Existen cuatro modelos diferentes para el
desarrollo de interfaces:

Modelo de diseo: que consiste en
representar el software de acuerdo a los
datos, arquitectura, interfaz y procedimiento.

Modelo de Usuario: Representa el perfil del
usuario (edad, cultura, etnia, educacin, etc.)
Diseo de Interfaces de Usuario
Existen tres tipos de usuario: Principiantes,
Espordicos y Frecuentes.

La percepcin del sistema (modelo de
usuario): es la idea que tienen los usuarios
sobre la posible interfaz del sistema.

La imagen del sistema es un modelo que
intenta mezclar lo que es la estructura del
sistema con analogas de la vida real.
Diseo de Interfaces de Usuario
Las fases del proceso del desarrollo de
interfaces de usuario son:

Anlisis de usuarios, tareas y entornos
Diseo de la interfaz
Implementacin de la interfaz
Validacin de la interfaz
Diseo de Interfaces de Usuario
Se deben seguir las siguientes
recomendaciones

Establecer los objetivos e intenciones de
cada tarea.
Hacer correspondencia entre cada objetivo
con una secuencia de interaccin
Especificar la secuencia de acciones de
tareas y subtareas
Diseo de Interfaces de Usuario
Se debe indicar el estado del sistema
Se deben definir mecanismos de control

Se debe mostrar la forma en como los
mecanismos de control afectan el estado del
sistema.

Se debe indicar la forma en que el usuario
interpreta el estado del sistema a partir de la
informacin presente en la interfaz.
Diseo de Interfaces de Usuario
Los principales problemas que se presentan
al disear una interfaz de usuario son:

El tiempo de respuesta del sistema
Los servicios de ayuda al usuario
La manipulacin de informacin de errores
El etiquetado de rdenes
Diseo Procedimental

Documentacin del Diseo

Preguntas, dudas y
comentarios?

También podría gustarte