1. Introducción
Las técnicas para
facilitar el entendimiento del problema son:
v
El
diseño TOP-DOWN (de arriba hacia abajo)
v
Los
diagramas de estructura
v
Los
diagramas de flujo
v
El
pseudocódigo
2. Conceptos
de Diseño Estructurado
Las
características del diseño estructurado son:
v
Tiene
una entrada y una salida con variaciones ocasionales
v
Utiliza
programación modular
v
Elimina
el uso de la sentencia GOTO.
3. Diseño Top
Down (refinamiento “paso
a paso”)
El diseño top
down, que implica ir de lo más general a lo más específico, es el
proceso de dividir un problema en subproblemas más pequeños.
Para entender el
diseño top down vea el siguiente problema:
Se le ha
solicitado que escriba un programa para una tienda de videos. El objetivo del
programa es permitir que un cliente registrado en la tienda alquile videos.
La tienda tiene
un conjunto de reglas que deben cumplirse para que un cliente alquile
un video, las
cuales son:
v El cliente es un miembro registrado
v
No
tiene ningún alquiler vencido
v
No
debe nada a la tienda
v
La
película está en el inventario
v
La
película no está reservada
Un programa de
alto nivel será:
v
Alquilar
un video.
Al descomponer
este programa de alto nivel, se obtienen los siguientes sub-programas:
v
Verificar
si el cliente es un miembro registrado
v
Verificar
los alquileres vencidos
v
Verificar
si el miembro debe algún dinero
v
Verificar
si la película está en el inventario
v
Verificar
si la película ha sido ya reservada
Al descomponer de
nuevo, cada uno de los pasos anteriores, se obtiene:
1. Verificar si
el cliente es un miembro registrado:
v
Ingresar
el número de teléfono u otra identificación del cliente en el sistema
v
Leer
la pantalla para ver si el sistema ha encontrado un perfil que coincide
2. Verificar los
alquileres vencidos:
v
Ver
si el perfil refleja cualquier alquiler vencido en el sistema
3. Verificar si
el miembro debe algún dinero:
v
Ver
si el perfil refleja algún cargo pendiente
4. Verificar si
la película está en el inventario:
v
Ingresar
el nombre de la película al sistema
v
Verificar
si hay alguna copia que no está alquilada
5. Verificar si
la película ha sido ya reservada:
v
Ver
si las copias que no están alquiladas no están reservadas.
De nuevo, al
descomponer el sub-programa "Verificar si el cliente es un miembro registrado"
1.1. Verificar si
el cliente es un miembro registrado
v
Preguntar
el número de teléfono u identificación al cliente
1.2. Ingresar el
número de teléfono en el sistema:
v
Seleccionar
del menú la opción de verificar el número de miembro
v
llenar
el número de teléfono del cliente en el prompt
v
Presionar
la tecla que indica al sistema que se está listo para que éste verifique por un
número que coincida con el que se ha ingresado
1.3. Leer la
pantalla para ver si el sistema ha encontrado alguna coincidencia
v
Visualmente,
verificar si el sistema dice que 'sí' o 'no' es un miembro.
4. Diagramas de Estructura
Es una manera gráfica
de representar el diseño top down. Nos Permite representar en forma clara la
organización de alto nivel de un programa.
Un diagrama de
estructura parcial del ejemplo anterior:
Diagrama de
Estructura del Problema Anterior
5. Diagramas
de Flujo
Es una representación
gráfica de la lógica del diseño. Generalmente, está a un nivel de detalle
más bajo que los diagramas de estructura. Un diagrama de flujo resulta adecuado
cuando se desea seguir bajando a un nivel con mayor detalle, tal como agregar
bifurcación de condicionales y/o iteración.
5.1 Símbolos
6. Diagramas
N-S O de Nassi-Schederman:
Es una forma de
representación semejante al diagrama de flujo, pero sin flechas y cambiando los
símbolos de condición y repetición. Está conformado por una serie de cajas de procesos
que constituyen las secuencias de acciones necesarias para presentar el
algoritmo. Las cajas de proceso o acción van unidas entre sí. Los Diagramas N-S
son muy útiles para representar diagramas estructurados.
Representación
de Condiciones:
Condición
Estructuras
Repetitivas:
6.1 Ejemplo de Diagrama N-S o de
Nassi-Schederman
Se presenta a
continuación de nuevo el problema de determinar el producto de un conjunto de
enteros representada la solución con un diagrama de N-S.
INICIO
|
||||||||||||
p=1
|
||||||||||||
Leer num
|
||||||||||||
Mientras (num
>= O)
P = P x
num
Leer num
|
||||||||||||
Escribir p
|
||||||||||||
FIN
|
Figura 2.4:
Diagrama de NS para el Cálculo del Producto de Enteros
7.
Pseudocódigo
El Pseudocódigo
es un lenguaje de documentación de programas similar al inglés (o español) que
se parece a cualquier lenguaje de programación de alto nivel, pero no necesita
seguir ninguna regla específica, como si lo requieren los programas que van a
ser traducidos o compilados. El pseudocódigo normalmente no es muy específico
para las áreas de E/S.
El pseudocódigo
tiene la ventaja que se puede crear fácilmente con cualquier editor de texto.
No hay ningún estándar en la industria definido para los pseudocódigos.
Un ejemplo de
pseudocódigo parecido a PL/I, se muestra a continuación:
do while(count
= O )
do process
count = count
- 1
end
Un ejemplo de
pseudocódigo parecido a COBOL:
perform
until count = O
perform
process
subtract 1
from count
end-perform
El pseudocódigo
también puede utilizar una serie de palabras claves o palabras especiales que
van indicando lo que significa el algoritmo.
Ejemplo de
palabras claves en pseudocódigo:
1.
Inicio
y Fin: Por donde empieza
y termina el algoritmo.
2. Si <condición>
Entonces
<acciones>
Sino <acciones>
3.
Mientras
<condición> hacer
4.
Repetir / hasta
<condición>
5.
Desde / hasta
6.
Según
sea (Para evaluar opciones múltiples)
Los comentarios
van encerrados entre llaves.
Hay que utilizar
la identación.
La estructura
recomendada para los algoritmos en pseudocódigo es:
Algoritmo <nombre algoritmo>
Var
<nombre>:
<tipo>
Inicio
<Instrucciones>
Fin
8.
Programación Modular
Cuando se trabaja
con programas grandes se hace difícil:
v
Desarrollar
la lógica
v
Escribir
el código
v
Probar
totalmente el código
v
Realizar
el mantenimiento
La solución para
esto es usar la programación modular.
La programación
modular rompe el programa en unidades o módulos más pequeños y manejables. Estas
unidades más pequeñas se llaman subprogramas, procedimientos o funciones dependiendo
del lenguaje que se esté usando.
El ejemplo de la Tienda de video
representado en forma modular se presenta en la siguiente Figura.
Representación
de la
Programación Modular de la Tienda de video







HOLA, PORDRIA USTED RECOMENDARME UNA PAGINA O LIBRO DONDE PUEDA ENCONTRAR LA HISTORIA DE LA ESTRUCTURA DE DATOS?
ResponderEliminarLE AGRADECERIA MUCHO SU AYUDA