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
Actividades Tecnicas
Diseño
Diseño de Datos
Transformación del modelo creado en el proceso de analisis en estructuras de datos
Diseño Arquitectonico
Relaciones entre elementos
Diseño Procedimental
Transforma elementos estructurales en una descripción procedimental del software
Codificación
Prueba
Importancia
Las fases absorbe el 75% o mas del coste de ingenieria del software
Sin diseño:
Se arriesga realizar un sistema inestable
Dificil de probar
Se arriega gastar presupuesto de mas
El proceso de diseño
Etapas en gestión del proyecto
Diseño detallado
Refinamiento y representación de la etapa anterior.
Diseño preliminar
Transformación de los requisitos a datos y estructuras.
Diseño y calidad del software
Revisión de calidad
Revisiones tecnicas formales (RTF)
Objetivos
Descubrir errores
Verificación de requisitos
Garantizar estandares
Conseguir un software uniforme
Hacer los proyectos manejables
Ejecución
Reuniones planificadas, controladas y atendidas para lograr el exito
Criterios para determinar la calidad del software
Diseño en organización jerarquica
Diseño modular
Diseño con representaciones distintas y separadas de datos y procedimientos
Diseño con modulos que exhiban caracteristicas funcionales independientes
Diseño conduciente a interfaces que reduzcan la complejidad de conexiones entre modulos
El diseño se debe obtener mediante un método que sea reproducible
Caracteristicas comunes de las metodologias de diseño
Mecanismo para a traducción de requisitos en una representación de diseño
Notación para representar los componentes funcionales y sus interfaces
Heuristicas para el refinamiento y la partición
Criterios para la valoración de la calidad
Fundamentos del Diseño
Abstracción
Niveles
Niveles inferiores
Solución procedimental
Nivel superior
Solución en terminos generales
Niveles mas bajos
Solución de implementación directa
Tipos
Abstracción de datos
Conjunto de datos, ej DNI
Abstracción procedimental
Secuencia de instrucciones, ej "mover objeto": "abrir pinza", "Mover pinza"...
Refinamiento
Se desarrolla una jerarquía descomponiendo una función de forma sucesiva hasta llegar las sentencias del lenguaje de programación
Modularidad
División de componentes con nombres y ubicaciones determinados y que se integran para satisfacer los requisitos del proveedor
Arquitectura del software
Estructura jerarquica de los modulos del software
Estructura de los datos
Jerarquía de control
Se suele presentar con diagramas de árbol
Términos relacionados
Profundidad
Número de niveles de control
Anchura
Amplitud global del control
Grado de salida
Número de módulos que controla un módulo
Grado de entrada
Numero de módulos que controlan a un módulo
Visibilidad
Conjunto de componentes del programa que pueden ser invocados por un modulo
Conectividad
Conjunto de componentes a los que se invoca directamente o se utilizan sus datos
Estructura de datos
Representación de la lógica que existe entre los elementos individuales de información
Procedimientos del software
Se centra en los detalles del procesamiento de cada módulo individual
Debe proporcionar una especificación precisa del procesamiento
Secuencia de sucesos
Puntos concretos de decisiones
Repetición de operaciones
Organización/Estructura de datos
Ocultamiento de información
La información contenida dentro de un módulo debe ser inaccesible para otros módulos que no necesiten tal información
Facilita
Modificaciones
Pruebas
Mantenimiento
Diseño modular efectivo
Tipos de módulos
Modulos secuenciales
Ejecución sin interrupción
Modulos incrementales
Corrutinas, pueden ser interrumpidos antes que terminen por el software de la aplicación
Módulos paralelos
Módulo paralelo que se ejecuta a la vez que otro módulo en entornos multiprocesadores
Independencia Funcional
Cohesión
Extensión del concepto de ocultamiento de información
Un módulo cohesivo solo hace una cosa
Se busca evitar la baja cohesión
Acoplamiento
Medida de interconexión entre módulos de una estructura de programa
Depende de la complejidad de las interfaces entre los módulos y datos.
Se busca reducir el acoplamiento lo mas posible