FUND
UNIDAD VI
DISEÑO Y ARQUITECTURA DE PRODUCTOS DE SOFTWARE
Se refiere a determinar como funcionará de forma general sin entrar en detalles. Consiste en incorporar consideraciones de la implementación tecnológica, como el hardware, la red, etc.
6.1 DESCOMPOSICIÓN MODULAR.
Descomposición Modular o Modularización es el proceso de descomposición de un sistemaen un conjunto de elementos con un índice bajo acoplamiento (independientes) y alto índice de cohesión (con significado propio).
Consiste en descomponer el problema a resolver en módulos o tareas más simples. Cada tarea representa una actividad completa y se codifica de manera independiente. Facilita el diseño descendente del problema, centrándonos cada vez en la resolución de subproblemas demagnitud inferior. A la resolución de cada uno de estos subproblemas de complejidad inferior se denomina refinamiento por pasos. Los módulos pueden ser planificados, codificados, comprobados y depurados independientemente, y a continuación se combinan uno a uno con otros módulos.
Abstracción procedimental.
Con este concepto se hace referencia a la necesidad de separar el propósito de un subprogramade suimplementación.
Consideraciones.
Cada algoritmo que resuelve el diseño de un módulo equivale a una caja negra que ejecuta una tarea determinada.
Cada caja negra especifica lo que hace pero no cómo lo hace.
Cada caja negra puede utilizar a cualquiera de las demás cajas negras.
Normalmente, estas cajas negras se implementan como subprogramas: procedimientos y funciones.
Abstracción de datos.Pretende separar el concepto de datos y operaciones necesarias para operar con los datos, de su representación e implementación respectivamente. La materialización de este concepto son los Tipos de Datos Abstractos (TDA) que se definen como una colección de datos y un conjunto de operaciones sobre estos datos.
Ocultamiento de información.
Facilitará las diversas abstracciones, ocultando yevitando que se pueda acceder a la representación e implementación de los módulos y TDA. Se consigue haciendo uso de facilidades aportadas por el lenguaje de programación.
Programación orientada a objetos
Paradigma de programación que hace uso de todos conceptos anteriores y algunos más para el desarrollode software.
Descomposición modular mediante diseño descendente.
Cuando crece un programa lastareas de programación se hacen más difíciles. La diferencia entre un programa modular grande y pequeño influye solamente en el número de módulos.
Tiene un impacto positivo en los siguientes aspectos de programación:
Construcción del programa. Pueden trabajar diversos desarrolladores gracias a la independencia de los módulos.
Depuración del programa. Se centrará en cada uno de los módulos porseparado y posteriormente se comprobará la interacción.
Legibilidad del código.
Eliminación de código redundante.
Objetivo: Conseguir una visión del software como una estructura jerárquica de módulos
E(P1 U P2)> E(P1) + E(P2)
Ideas fundamentales.
Reducir el esfuerzo de desarrollo.
Separación entre estructuras de datos y procedimientos.
Independencia funcional: Cada módulo debe realizar una tareaconcreta que afecte lo menor posible al resto.
Ocultamiento de Información: La información de un módulo es inaccesible para el resto de módulos.
Ventajas.
Evita la propagación de errores
Facilita las interfaces e independiza la codificación
Conceptos.
Acoplamiento: Grado de interdependencia de los módulos
Cohesión: Grado del alcance de la tarea de un módulo
Criterios a seguir durante eldiseño.
Reducir acoplamiento
Aumentar la cohesión
Conseguir módulos con interfaces sencillas
Figura: Programción Modular
Figura: Diagrama de Estructura.
Ejemplo: Descomposición Modular en C (I)
/**
@file gestionsimple.c
@brief Gestión simple de cuentas bancarias
@version 3.1
*/
#include
#include
/*Variables Globales y constantes*/
const iva=0.16;
/* DEFINICIONES DE...
Regístrate para leer el documento completo.