Diseño de Software: Niveles y Principios

Clasificado en Informática

Escrito el en español con un tamaño de 4 KB

NIVELES DE DISEÑO

(1) Arquitectura: Requerimientos => componentes del sistema y sus interconexiones

(2) Diseño del Código: Módulos => algoritmos y estructuras de datos

(3) Diseño de la Ejecución: Algoritmos (código) => asignación de mem, tiempo de ejecución, optimizaciones de código

ENFOQUE: trabajar desde lo general a lo particular

Diseño de la Interfaz de Usuario

(1) Principios generales (Sommerville)

Familiaridad: utilizar términos familiares a los usuarios

Consistencia: menúes y comandos con el mismo formato y significado en toda la aplicación

Mínima sorpresa: misma acción en contextos comparables produzcan un cambio similar

Recuperabilidad: recuperación frente a errores cometidos por el usuario, brindar: confir de accio destructivas recursos para deshacer en varios niveles

Guía al usuario: proveer ayuda en varios niveles

Diversidad de usuarios: tener en cuenta distintos tipos de usuarios.

DISEÑO - PRINCIPIOS

*Diseño para el Cambio *Separación de Intereses *Modularización (localización del impacto de los cambios)

*Niveles de Abstracción (facilita comprensión)*Ocultamiento de Información (encapsular)*Alta Cohesión, Bajo Acoplamiento

MODULARIZACIÓN

Módulo: un componente bien definido de un sistema de software que provee recursos y servicios

*Están bien definidos: Recursos y Servicios , La forma de suministrarlos (Interfaces)

*Un mód puede ser un programa o varios, una subrutina o varias --Principio de Separación de Intereses cada módulo se ocupa de aspectos específicos

CRITERIOS PARA MODULARIZAR

Descomposición: Descomponer el problema en sub-problemas (diseño top-down)

Composición: A partir de los componentes es posible obtener un nuevo sistema (diseño bottom-up)

Continuidad del impacto por cambios: Pequeños cambios en la especificación afectan pocos módulos

Protección durante ejecución: Efectos de anomalías durante la ejecución están localizados

DIAGRAMAS UML

*Paquetes (visión de alt nivl mostrando depndncias) mecanismo para agrupaci de elemens la dependencia significa que cambios en uno afectan al otro

*Subsistemas (visión de paquetes, comportamiento de clases) agrupación lógica de elementos de diseño, con interface de servicios que brinda (implementados por las clases)

*De Interacción (dos visiones distintas de lo mismo) *Secuencia (deja en claro la evolución temporal) *Comunicación (muestra más claramente las interacciones, pero el orden está dado por números)

*Clases (relaciones estáticas, operaciones, navegabilidad)

*Componentes (dependencias entre componentes)

*Despliegue (Deployment del software en el hardware)

TÉCNICAS PARA MEJORAR EL DISEÑO

*Reducir Complejidad: Generalidad de la solución con menos componentes más simples resolver el problema nivel de abstracción

Adaptabilidad de la solución cubrir con una solución distintos problemas particulares

*Diseño por Contrato: interacción entre componentes basada en contrato entre un cliente de un servicio y un proveedor del mismo

*Prototipado del Diseño: Recomienda construir un sistema, tirarlo y construirlo de nuevo para aprovechar en el segundo el aprendizaje de los errores cometidos al construir el primero .Construir una parte del sistema para evaluar factibilidad /riesgos

*Análisis de Arbol de Faltas: Ayudan a descomponer el diseño para identificar situaciones que podrían generar una falla árbol lógico desde el efecto a las posibles causas

Entradas relacionadas: