MODULARIDAD(TIPOS DE DATOS)

LA ESTRUCTURA DEL MODULO

DISEÑO DE MODULOS

MODULARIDAD

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.

1)Meter

2)Sacar

3)Crear

4)Destruir

5)PiloVacia