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 de software
Metodologías de diseño
Diseño de datos
Transforma el modelo creado en una estructura de datos
Diseño arquitectónico
Define las relaciones entre los elementos del programa
Diseño procedimental
Transforma elementos estructurales en una descripción procedimental
Diseño de software
Se preocupa de generar un sistema...
Estable
Mantenible
fácil de probar
Evaluable
Proceso de diseño
Diseño preliminar
Transformación de requisitos en los datos y en la arquitectura del software
Diseño detallado
Refinamiento del diseño preliminar y las representaciones algorítmicas del software
Calidad del software
Criterios
Organización jerárquica
Diseño modular
Diseño coherente y reproducible acorde a la información obtenida en el análisis
Diseño que reduzca la complejidad de las conexiones entre los módulos y el exterior
Diseño que genere módulos funcionales e independientes
Diseño con representaciones variadas y separadas de los datos y procedimientos
Fundamento del diseño
Abstracción
Abstracción de datos
Conjunto de datos que describen un objeto
Abstracción procedimental
secuencia de instrucciones que poseen una función limitada
Refinamiento
refinamiento sucesivo
La arquitectura se desarrolla en niveles sucesivos de refinamiento de los detalles procedimentales
Modularidad
Division de componentes en modulos (con nombres y ubicaciones determinadas) que se integran para satisfacer los requisitos del proveedor
Existen un tipo de software llamado monolítico (un solo modulo). Este software es muy complejo por el numero de parámetros que este posee
Arquitectura del software
Estructura jerarquica
organizacion que implica una jerarquia de control
Profundidad
Numero de niveles de control
Anchura
Amplitud global de control
Grado de salida
Numero de modulos que controlan a un modulo
Grado de entrada
Numero de modulos que controlan a un modulo
Visibilidad
Componentes que pueden ser invocados por un modulo
Conectividad
Componentes a los que se invoca directamente o se utilizan sus datos
Estructura de los datos
Representacion de la logica que existenentre los elementos individuales de informacion
Procedimiento del software
Proporciona una especificacion precisa del procesamiento, incluyendo la secuencia de sucesos, puntos concretos de decisiones y la repeticion de operaciones e incluso la estructura de los datos
Ocultamiento de información
Los módulos deben especificarse de forma que la información contenida dentro de un modulo sea inaccesible a otros módulos que no necesiten tal información
Diseño modular efectivo
Tipos de modulos
Modulos secuenciales
Se ejecutan sin interrupción por parte del software
Modulos incrementales
Pueden ser interrumpidos y reestablecerse posteriormente su ejecución en el mismo punto.
Modulos paralelos
Se ejecutan de manera simultanea en entornos multiprocesadores
Independencia funcional
Cohesion
Modulo que ejecuta una tarea sencilla y requiere poca interaccion con procedimientos que ejecutan otras partes de un programa
Acoplamiento
Medida de interconexion entre los modulos de una estructura de programa
Consecuencias
Módulos independientes fáciles de desarrollar
Creación de interfaces sencillas
Facilidad para la prueba y el mantenimiento
Se reduce la propagación de errores
Se fomenta la reutilización de módulos