Please enable JavaScript.
Coggle requires JavaScript to display documents.
FUNDAMENTOS DEL DISEÑO DE SOFTWARE - Coggle Diagram
FUNDAMENTOS DEL DISEÑO DE SOFTWARE
Ingeniería del software y diseño del software
Conduce a representaciones evaluables en términos de calidad.
Metodologías de diseño
diseño de datos
Convertir el modelo de campo de información en las estructuras de datos esenciales para la implementación del software.
diseño procedimental
Convertir los componentes estructurales en una descripción de los procedimientos del software.
diseño arquitectónico
Establecer conexiones entre los elementos clave de la estructura del programa.
El proceso de diseño
El primer paso de la fase de desarrollo de cualquier producto o sistema de ingeniería.
Proceso de convertir los requisitos en una representación del software.
se realiza en dos etapas: el diseño preliminar y el diseño detallado
Atributos compartidos por las metodologías de diseño.
Parámetros de evaluación de la calidad.
Pautas para la refinación y división.
Sistema de notación para representar componentes funcionales y sus interfaces.
Método de conversión de requisitos en representación de diseño.
DISEÑO Y CALIDAD DEL SOFTWARE
Se evalúa a través de una serie de revisiones técnicas formales con objetivos específicos:
Lograr un buen diseño de software no es tarea sencilla.
Lograr que los proyectos sean gestionables.
Obtener un software desarrollado de manera coherente.
Asegurar que el software ha sido representado según los estándares establecidos.
Asegurarse de que el software cumple con sus requisitos.
Detectar fallos en la función, la lógica o la implementación.
Fundamentos del diseño
La sabiduría de un programador radica en discernir la distinción entre lograr un programa funcional y lograr uno que funcione correctamente.
ABSTRACCIÓN
Al contemplar un enfoque modular para resolver cualquier problema, es posible definir múltiples niveles de abstracción.
En el nivel más alto de abstracción, se plantea una solución en términos generales y en lenguaje natural.
En niveles de abstracción inferiores, se emplea una orientación más procedimental.
Abstracción procedimental
Abstracción de datos
REFINAMIENTO
La arquitectura de un programa se construye en etapas sucesivas de detalle y refinamiento procedimental.
Se crea una jerarquía descomponiendo una función de manera progresiva.
MODULARIDAD
El software se fragmenta en componentes específicos con nombres y ubicaciones designadas, llamados módulos.
ARQUITECTURA DEL SOFTWARE
Se hace referencia a dos características significativas del software:
La estructura de datos.
La estructura jerárquica de los módulos del software.
JERARQUÍA DE CONTROL
Refleja la estructura jerárquica de los módulos de un programa e implica una jerarquía de control.
Usualmente se representa mediante diagramas de árbol.
ESTRUCTURA DE DATOS
Representación de la lógica que conecta los elementos individuales de información.
Las estructuras de datos clásicas incluyen elementos escalares, arrays, listas y árboles.
PROCEDIMIENTOS DEL SOFTWARE
El procedimiento del software se enfoca en los detalles de procesamiento de cada módulo individual.
Debe proporcionar una especificación precisa del procesamiento.
OCULTAMIENTO DE INFORMACIÓN
Los módulos deben definirse de manera que la información dentro de un módulo no sea accesible para otros módulos que no la requieran.
Se trata de definir una serie de módulos independientes.
Diseño modular efectivo
Los fundamentos previos del diseño tienen como propósito fomentar la creación de diseños modulares.
TIPOS DE MÓDULOS
Se emplea la abstracción y el ocultamiento de información.
Módulos incrementales
Además, pueden ser interrumpidos antes de su finalización por el software de la aplicación.
Módulos paralelos
Se realiza simultáneamente con otro módulo en entornos multiprocesadores.
Módulos secuenciales
Operan sin interrupciones notables por parte del software de la aplicación.
INDEPENDENCIA FUNCIONAL
Resulta directamente de la modularidad, abstracción y encapsulamiento.
Se logra al crear módulos con funciones definidas y relaciones limitadas con otros módulos.
La independencia se evalúa mediante dos criterios cualitativos: cohesión y acoplamiento.
Acoplamiento
Evalúa la interconexión entre los módulos en una estructura de programa.
1 more item...