Please enable JavaScript.
Coggle requires JavaScript to display documents.
FUNDAMENTOS DEL DISEÑO DE SOFTWARE ent-software-businessman-ts-100539050…
FUNDAMENTOS DEL DISEÑO DE SOFTWARE
El proceso de diseño
Diseño y calidad del software
-
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 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.
- Un diseño debe tener representaciones distintas y separadas de los datos y de los procedimientos
-
es un proceso:
mediante el que se traducen los requisitos
en una representación del software, que se acerca mucho al código fuente
Etapas:
-
Diseño detallado
se ocupa del refinamiento y de la representación arquitectónica que lleva a una estructura de datos refinada y a las representaciones algorítimicas del software
-
Fundamentos del diseño
Abstracción
Niveles de abstracción
-
-
-
-
Refinamiento
El refinamiento sucesivo es una primera estrategia de diseño descendente propuesta por Niklaus Wirth
La arquitectura de un programa se desarrolla en
niveles sucesivos de refinamiento de los detalles procedimentales
Se desarrolla una jerarquía descomponiendo una función de forma sucesiva hasta que se llega a las sentencias del lenguaje de programación
Modularidad
-
Divide y vencerás
modularidad del software facilita el desarrollo del mismo, pero hasta un cierto límite
si llegáramos a dividir el problema en infinitos módulos, los módulos tendrían una complejidad y un esfuerzo mucho menor
Arquitectura de software
se obtiene mediante un proceso de partición, que relaciona los problemas del mundo real con las soluciones software para resolver los problemas software.
-
Jerarquía de control
-
-
Estructura de datos
-
la estructura de datos es tan importante como la estructura del programa en la representación de la arquitectura del software
Procedimiento de software
La estructura del programa define la jerarquía de control, independientemente de las decisiones y secuencias de procesamiento
Proporcionar una especificación precisa del
procesamiento, incluyendo:
- Los puntos concretos decisiones
- Repetición de operaciones
- Organización/estructura de los datos
-
Ocultamiento de información
Sugiere que los módulos deben especificarse de forma que la información contenida dentro de un módulo sea inaccesible a otros módulos que no necesiten tal información.
Diseño modular efectivo
Propiedades:
-
-
- Implementación más sencilla
- Permite el desarrollo paralelo de partes diferentes de un sistema
Independencia funcional
-
cada módulo se centra en una subfunción específica de los requerimientos y tenga una interfaz sencilla
Consecuencias positivas son:
- 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
Tipos de módulos
Características de ejecución del módulo
- Historial de incorporación
-
Se refiere a la forma en que se invoca a un módulo, que puede ser de referencia o de interrupción
Módulo describe la forma en que se ejecuta internamente, y son los que se describen a continuación.
-
-
-
Definición de diseño según Taylor
“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”