La programacion modular trata de descomponer un programa en un pequeño numero de abstracciones coherentes que pertenecen al dominio del problema y cuya complejidad interna es susceptible de ser enmascarada por la descripcion de un interfaz
el objeto abstracto (o tipo abstracto) se caracteriza:
1.Un estado actual, definido por un cierto numero de atributos
2.Un conjunto de acciones posibles
En esencia, las abstracciones se implementan en módulos, conocidos en la terminología de Booch como objetos, que agrupan en una sola entidad:
1.Un conjunto de datos
2.Un conjunto de operaciones que actuan sobre los datos
Un modulo se caracteriza fundamentalmente por su interfaz y por su implementacion.
se estructura asi:
1 interfaz
a)Primitivas de acceso
b)Descripcion de propiedades de los datos
2)Seccion privada
a)Atributos
b)Representancion
c)Algoritmos
d)Parametros actuales
Un método de diseño debe ayudar al programador a resolver un problema, dividendo el problema, dividiendo el problema en subproblemas mas pequeños, que se puedan resolver independientemente unos de otros. también debe de ser fácil conectar los diferentes modulos los restantes, dentro del programa que esté escribiendo.
REGLAS DE LA MODULARIZACION
1)unidades modulares: la estructura Modulares con las cuales se pueden describir las diferentes unidades. De este modo, el lenguaje(y el compilador)puede reconocer un modulo y debe de ser capaz de manipular y gobernar su uso, además de las ventajas evidentes relativas a la legibilidad del codigo resultante.
Aunque el diseño modular persigue la division de un sistema grande en modulo mas pequeños y a la vez manejables, no siempre esta division es garantía de un sistema bien organizado.
DISEÑO DE MODULOS
El acoplamiento es una medida del grado de interpendencia entre modulos, es decir, el modo en que un modulo esta siendo afectado por la estructura interna de otro modulo.
el sistema modular se divide:
1)La sustitucion de un modulo por otro, de modo que solo unos pocos modulos seran afectados por el cambio.
2)El seguimiento de un error y el aislamiento del modulo defectuoso que produce ese error.
COHESION DE MODULOS
La cohesion es una extension del concepto de ocultamiento de la informacion, Dicho de otro modo, la cohesion describe la naturaleza de las interacciones dentro de un modulo
3)Interfaces explícitos: el interfaz o parte visible externamente de un modulo que se debe declarar y describir explícitamente; el programa debe especificar cuales son los datos y procedimientos que un modulo trata de exportar y cuales deben permanecer ocultos en su exterior.
2)Interfaces Adecuados: Es la estructura de un programa en unidades es beneficiosos que existan pocos interfaces y que estos sean pequeños..
4)Ocultación de la información: Todos los módulos deben de seguir el principio de la ocultación de la información cada debe representar al menos un elemento de diseño (por ejemplo, la estructura de un registro, un algoritmo, una abstracción, etc..)
Lo modulos deben seguir las siguientes reglas:
TIPOS DE DATOS
Un tipo de dato es un conjunto de valores, y un conjunto de operaciones definidas por esos valores. un valor depende de su representación y de la interpretación de la representación, por lo que una definición informal de un tipo de dato es representación + operaciones.
ABSTRACCION EN LENGUAJES DE PROGRAMACION
Los lenguajes de programación son las herramientas mediante las cuales los diseñadores de lenguajes pueden implementar los modelos abstractos.
ABSTRACCIONES DE CONTROL
Las abstracciones y estructuras de control se clasifican en estructuras de control de nivel de sentencia y a nivel de unidades. Las abstracciones de control a nivel de unidad se conoce como Abstracción procedimental.
Es esencial para diseñar software modular y fiable. La abstracción procedimental se basa en la utilización de procedimientos o funciones, sin preocuparse de como se implementan.
La abstracción aparece en los subprogramas debido a las siguientes causas:
1)Con el nombre de los subprogramas, un programador puede asignar una descripción abstracta que captura el significado golbal de subprograma.
2)Los subprogramas es pascal proporcional ocultacion de la informacion.
3)Los parámetros de los subprogramas, junto con la ocultación de la información anterior, permite crear subprogramas que constituyen entidades de software propias.
OTROS MECANIMOS DE ABSTRACCION DE CONTROL
La evolución de los lenguajes de programación ha permitido la aparición de otros mecanismos para la abstracción de control, tales como manejo de excepciones, correinarías, unidades concurrentes, plantillas(templatees) estas construcciones son soportadas por lo lenguajes de programación basados y orientados a objetos, tales como Modula-2, Ada, C++, Smalltalk o Eiffel.
ABSTRACCION PROCEDIMENTAL(por procedimientos)
ABSTRACCIONES DE DATOS
Es la técnica de programación que permite inventar o definir nuevos tipos de datos(tipos de datos definidos por el usuario)adecuados a la aplicación que se desea realizar.
LOS TIPOS DE DATOS DEFINIBLES DE TIPO ABSTRACTO DE DATO(TAD):
1)Existe una construcción del lenguaje que le permite asociar la representación de los datos con las operaciones que lo manipulan.
Los tipos abstraccion de datos proporcionan el mecanismo adiciional mediante el cual se realiza una separacion clara entre el interfaz y la implementacion de tipo de dato. La implementacion de un tipo abstracto de dato consta de:
ABSTRACCION EN LENGUAJES DE PROGRAMACION
IMPLEMENTACION DE LOS TAD
Un tipo de dato definido por el programador se denomina tipo abstracto de datos(TAD)para diferenciarlo del tipo fundamental (predefinido) de datos. TAD se compone de estructuras de datos y los procedimientos o funciones que manipulan esas estructuras de datos.
Un tipo de abstracto de datos es un modelo(estructura) con un numero de operaciones que afectan a ese afectan a ese modelo.
LOS BENEFICIOS
1)Permite una mejor conceptualizacion y modelizaciion del mundo real.Mejora la representacion y la comprensibilidad clarifica los obejtos basados en la estructuras y comportamientos comunes.
6)Recoge mejor la semántica del tipo. Los tipos abstractos de datos agrupan o localizan las operaciones y la representación de atributos.
3)Mejora el rendimiento (presentaciones) para sistemas tipeado, el conocimiento de los objetos permite la optimización de tiempo de compilación.
2)Los representación del nuevo tipo de dato esta oculta de las unidades de programa que lo utilizan[Ghezzi 87]
2)Mejora la robustez el sistemas. Si hay una característica subyacentes en los lenguajes, permiten la especificación del tipo de cada variable, los tipos abstractos de datos permiten la comprobación de tipos para evitar errores de tipo en tiempo de ejecución
4)separa la implementación de la especificación. permite la modificación y mejora de la implementación, sin afectar al interfaz publico del tipo abstracto de dato.
5)permite la extensibilidad del sistema. Los componentes de software reutilizable son mas faciles de crear y mantener.
2)Las operaciones: eleccion de los algoritmos.
1)La representacion: Eleccion de las estructuras de datos
VENTAJAS DE LOS TIPOS ABSTRACTOS DE DATOS
Los lenguajes convencionales, tales como pascal, permiten la definición de nuevos tipos y la declaración de procedimientos y funciones para realizar operaciones sobre objetos de los tipos.
En los lenguajes en el que los modulos(TAD)se pueden implementar como una uniad, estos rec
1)Turbo/Borland Pascal (Unidad, objeto)
2)Modula-2 (Modulo)
3)Ada (Paquete)
4)C++(Clase)
5)Java(Clase)
TIPOS DE ABSTRACTOS DE DATOS EN TURBO PASCAL
Los lenguajes convencionales, tales como pascal, permiten la definición de nuevos tipos y la declaración de procedimientos y funciones para realizar operaciones sobre objetos de los tipos.
ESTRUCTURA DE DATOS
Almacena una serie de elementos del tipo elemento. La pila esta inicialmente vacia y los elementos se meten o sacan en la pila por el mismo extremo
OPERACIONES
Procedimientos que actuan sobre la estructura de datos.