Está en la página 1de 5

Modularizacin

Uso de subprogramas
Razones vlidas para crear un subprograma
Cohesin y acoplamiento
Pasos para escribir un subprograma
El nombre y los parmetros de un subprograma
Tipos de datos abstractos (TDAs)




Bibliografa
Steve McConnell: Code Complete.
Estados Unidos: Microsoft Press, 1994. ISBN 1-55615-484-4.



Uso de subprogramas

Razones vlidas para crear un subprograma
q Reducir la complejidad del programa (divide y vencers).
q Eliminar cdigo duplicado.
q Limitar los efectos de los cambios (aislar aspectos concretos).
q Ocultar detalles de implementacin (p.ej. algoritmos complejos).
q Promover la reutilizacin de cdigo (p.ej. familias de productos).
q Mejorar la legibilidad del cdigo.
q Facilitar la portabilidad del cdigo.


Cohesin
Medida del grado de identificacin de un mdulo con una funcin concreta.
Cohesin aceptable (fuerte)

q Cohesin funcional (un mdulo realiza una nica accin).

q Cohesin secuencial (un mdulo contiene acciones que han de realizarse
en un orden particular sobre unos datos concretos).

q Cohesin de comunicacin (un mdulo contiene un conjunto de
operaciones que se realizan sobre los mismos datos).

q Cohesin temporal (las operaciones se incluyen en un mdulo porque
han de realizarse al mismo tiempo; p.ej. inicializacin).
Cohesin inaceptable (dbil)

q Cohesin procedural (un mdulo contiene operaciones que se realizan
en un orden concreto aunque no tengan nada que ver entre s).

q Cohesin lgica (cuando un mdulo contiene operaciones cuya
ejecucin depende de un parmetro: el flujo de control o lgica de la
rutina es lo nico que une a las operaciones que la forman).

q Cohesin coincidental (cuando las operaciones de una rutina no guardan
ninguna relacin observable entre ellas).
Acoplamiento
Medida de la interaccin de los mdulos que constituyen un programa.

Niveles de acoplamiento (de mejor a peor):

q Acoplamiento de datos (acoplamiento normal): Todo lo que comparten
dos rutinas se especifica en la lista de parmetros de la rutina llamada.

q Acoplamiento de control: Una rutina pasa datos que le indican a la otra
rutina qu hacer (la primera rutina tiene que conocer detalles internos de
la segunda).

q Acoplamiento externo: Cuando dos rutinas utilizan los mismos datos
globales o dispositivos de E/S.

Si los datos son de slo lectura, el acoplamiento se puede considerar
aceptable. En general, este tipo de acoplamiento no es deseable
porque la conexin existente entre los mdulos no es visible.

q Acoplamiento patolgico: Cuando una rutina utiliza el cdigo de otra o
altera sus datos locales (acoplamiento de contenido).

La mayor parte de los lenguajes estructurados incluyen reglas para el
mbito de las variables que impiden este tipo de acoplamiento.


Objetivo
Reducir al mximo el acoplamiento y aumentar la cohesin de los mdulos.



Pasos para escribir un subprograma
1. Definir el problema que el subprograma ha de resolver.
2. Darle un nombre no ambiguo al subprograma.
3. Decidir cmo se puede probar el funcionamiento del subprograma.
4. Escribir la declaracin del subprograma (cabecera de la funcin).
5. Buscar el algoritmo ms adecuado para resolver el problema.
6. Escribir los pasos principales del algoritmo como comentarios.
7. Rellenar el cdigo correspondiente a cada comentario.
8. Revisar mentalmente cada fragmento de cdigo.
9. Repetir los pasos anteriores hasta quedar completamente satisfecho.
El nombre de un subprograma
q Procedimiento: Verbo seguido de un objeto.
q Funcin: Descripcin del valor devuelto por la funcin.

El nombre debe describir todo lo que hace el subprograma.

Se deben evitar nombres genricos que no dicen nada (p.ej. calcular)

Se debe ser consistente en el uso de convenciones.

Los parmetros de un subprograma

Orden: (por valor, por referencia) == (entrada, entrada/salida, salida)

Si varias rutinas utilizan los mismos parmetros, stos han de ponerse en
el mismo orden (algo que la biblioteca estndar de C no hace).

De acuerdo con la primera norma, las variables de estado o error se
ponen al final.

No es aconsejable utilizar los parmetros de una rutina como si fuesen
variables locales de la rutina.

Se han de documentar las suposiciones que se hagan acerca de los
posibles valores de los parmetros.

Slo se deben incluir los parmetros que realmente necesite la rutina
para efectuar su labor.

Las dependencias existentes entre distintos mdulos han de hacerse
explcitas mediante el uso de parmetros.


Tipos de datos abstractos
TDAs
Los tipos definidos por el usuario son una de las capacidades ms
importantes que ofrecen los lenguajes de programacin para clarificar el
significado de un programa.

q Se simplifican las modificaciones que tengamos que realizar.

q Se encapsulan detalles de implementacin (en vez de aparecer por todas
partes, estos detalles slo aparecen en la declaracin del tipo).

q Se ampla el vocabulario que podemos utilizar en nuestro programas.


TDA
Coleccin de datos y todas las operaciones que se efectan sobre esos datos

Ejemplos: Una ventana, un men, un fichero, una lista, una tabla...

PUNTO CLAVE: El acceso a los datos se realiza siempre a travs de las
operaciones definidas en el propio TDA.


Beneficios de la utilizacin de TDAs
q Se ocultan detalles de implementacin.
q Se facilitan las modificaciones que puedan afectar al programa.
q Es ms fcil mejorar la eficiencia del programa.
q Es ms fcil verificar la correccin del programa.
q La legibilidad de los programas mejora.
q Se simplifican las interfaces de los mdulos del programa.
q Se definen operaciones en funcin de los objetos sobre los que se
efectan.

También podría gustarte