Please enable JavaScript.
Coggle requires JavaScript to display documents.
Fundamentos del diseño de software - Coggle Diagram
Fundamentos del diseño de software
Definición
problemas
Se encuentra en una etapa relativamente temprana, por lo que es un problema
Proceso de aplicar distintas técnicas y principios con el propósito de definir un dispositivo, proceso o sistema con los suficientes detalles como para permitir su realización física
Ingeniería del software y diseño del software
diseño de datos
transforma el modelo de campo de información, creado durante el análisis, en las estructuras de datos que se van a requerir para implementar el software
diseño arquitectónico
define las relaciones entre los principales
elementos estructurales del programa
diseño procedimental
transforma los elementos estructurales en
una descripción procedimental del software
El diseño es la única forma mediante la que podemos traducir con precisión los requisitos del cliente en un producto o sistema acabado
Sin diseño, nos arriesgamos a construir un sistema inestable
El proceso de diseño
es un proceso mediante el que se traducen los requisitos en una representación del software, que se acerca mucho al código fuente
diseño preliminar
se centra en la transformación de los requisitos
en los datos y la arquitectura del software
diseño detallado
se ocupa del refinamiento y de la representación arquitectónica que lleva a una estructura de datos refinada
DISEÑO Y CALIDAD DEL SOFTWARE
se evalúa mediante una serie de revisiones técnicas formales (RTF)
Descubrir los errores en la función, la lógica o la implementación de cualquier representación del software
Verificar que el software alcanza sus requisitos
Garantizar que el software se ha representado según los estándares
establecidos
Conseguir un software desarrollado de forma uniforme
Hacer que los proyectos sean manejables
criterios para determinar la calidad del
software
Un diseño debe tener una organización jerárquica.
Un diseño debe ser modular, es decir, el software debe estar dividido
en elementos que realicen funciones específicas
Un diseño debe tener representaciones distintas y separadas de los datos y de los procedimientos
Un diseño debe llevar a módulos que exhiban características
funcionales independientes
Un diseño debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los módulos y el exterior
Un diseño debe obtenerse mediante un método que sea reproducible y que esté dirigido por la información obtenida durante el análisis de requerimientos
CARACTERÍSTICAS COMUNES
Mecanismo para la traducción de requisitos en una representación de diseño
Notación para representar los componentes funcionales y sus
interfaces
Heurísticas para el refinamiento y la partición
Criterios para la valoración de la calidad
Fundamentos del diseño
ABSTRACCIÓN
Conforme nos movemos por los diferentes niveles de abstracción, se divide en
abstracción de datos
es un conjunto de datos que describen un
objeto, como puede ser el DNI de una persona
abstracción procedimental
es una determinada secuencia de instrucciones que tienen una función limitada y específica, como puede ser “mover objeto”
REFINAMIENTO
MODULARIDAD
El software se divide en componentes con nombres y ubicaciones determinados
ARQUITECTURA : DEL SOFTWARE
Caracteristicas importantes
La estructura jerárquica de los módulos del software
La estructura de los datos
JERARQUÍA DE CONTROL
se suele representar con diagramas de árbol,
aunque también se pueden utilizar otros tipos de notaciones
PROCEDIMIENTOS DEL SOFTWARE
OCULTAMIENTO DE INFORMACIÓN :
Diseño modular efectivo
Reduce la complejidad
Facilita los cambios
Implementación más sencilla
Permite el desarrollo paralelo de partes diferentes de un sistema
TIPOS DE MÓDULOS
Módulos secuenciales
Módulos incrementales
Módulos paralelos
INDEPENDENCIA FUNCIONAL
Cohesión
es una extensión del concepto de ocultamiento de información
Acoplamiento
es una medida de la interconexión entre los módulos de una
estructura de programa