TÉCNICAS PARA EL DISEÑO DE SOLUCIÓN
El proceso de diseño comprende al
desarrollo de una visión conceptual del sistema, el establecimiento de una
estructura, la identificación de las cadenas de datos y su almacenamiento, la
descomposición de funciones de alto nivel en su subfunciones, el
establecimiento de las relaciones e interconexiones entre componentes, el
desarrollo de la representación de datos en forma concreta y la especificación
de los detalles de los algoritmos.
Las técnicas de diseño comúnmente
están basadas en las estrategias de las jerarquías de ‘’hacia abajo’’ y de
‘’hacia arriba’’ . Por medio del enfoque de arriba a abajo, se pone atención
inicialmente en los aspectos globales de todo el sistema ; conforme el
diseño progresa, el sistema se descompone en subsistema, poniéndosele el mayor
consideración a los detalles específicos. El encadenamiento hacia atrás resulta
fundamental en este tipo de diseño. Con el fin de reducir este encadenamiento
hacia atrás, muchos diseñadores proponen el uso de una estrategia mezclada, la
cual es predominantemente hacia abajo, pero que primero requiere de la
especificación de los módulos inferiores. La ventaja primordial de esta
estrategia es que se dedica a la atención
a las necesidades del cliente, a las interfaces con el usuario y a
la naturaleza global del problema a
resolver.
En el enfoque hacia arriba del diseño
de productos de programación, el diseñador primero intenta identificar al
conjunto primitivo de objetos acciones y relaciones que proporcionarán una base
para la solución del problema ; los conceptos de alto nivel son después
formulados en términos del conjunto de primitivos. La estrategia hacia arriba
requiere que el diseñador combine las características proporcionadas por el lenguaje
de instrumentación para dar entidades son a su vez combinadas hasta que se
construye un conjunto de funciones, estructuras de datos e interconexiones para
resolver el problema por medio del uso de las facilidades del ambiente de
programación existente ; este tipo de diseño puede también requerir del
rediseño y el encadenamiento hacia atrás del mismo. El éxito de este enfoque
depende de la identificación del conjunta adecuado de ideas primitivas que sean
suficientes para la instrumentación del sistema.
Estas técnicas tienen el objetivo de
facilitar el diseño de algoritmos y la organización de los diversos elementos
de los que se componen se utilizan algunas técnicas que muestran una
metodología a seguir para resolver los problemas. Estas técnicas hacen que los
programas sean más fáciles de escribir, verificar, leer y mantener.
Algunas de las técnicas más conocidas son :
Ø
top down
Ø bottom up
Ø warnier orr
TOP DOWN
El diseño desendente (top down) es el proceso
mediante el cual un problema se descompone en una serie de niveles o pasos
sucesivos de refinamiento (stepwise).
La metodología descendente consiste en efectuar una
relacion entre las sucesivas etpas de estructuracion de modo que se relacionen
unas son otras mediante entradas y salidas de información .
es decir se descomponen el problema en etapas o
estructuras jerárquicas, de modo que se puede considerar cada estructura desde
dos puntos de vista: lo
que hace?, y cómo lo hace ?. Si se considera un nivel n de
refinamiento, las estructuras se consideran de la siguiente forma :
nivel n : Vista desde el exterior.
"lo que hace ?"

Nivel n+1 :
Vista desde el interior.
![]()
![]()
![]()
![]()
![]()
"cómo lo hace ?"
![]()
![]()
![]()
![]()
![]()
Ejemplo de un diseño descendente (top-down )
de un control de almacén :

Esta técnica consiste en partir de los detalles
más precisos del algoritmo completando suscesivamente módulos de mayor
complejidad, se recomienda cuando ya se cuenta con experiencia y ya se sabe lo
que se va a hacer.
Conforme se va alcanzando el desarrollo de
módulos más grandes se plantea como objetivo final la resolución global del
problema.
Este método es el inverso del anterior y es
recomendable cuando se tiene un modelo a seguir o se cuenta con amplia
experiencia en la resolución de problemas semejantes.
La técnica de Botton Up es frecuentemente
utilizada para la realización de pruebas a sistemas ya concluidos.
El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan computarizarse con forme vayan apareciendo, su análisis como sistema y su codificación, o bien, la adquisición de paquetes de software para satisfacer el problema inmediato.
Ejercicio :
Realiza el diseño ascendente para la gestión del control de un hotel utilizando
la siguiente información :
· pagos a empleados (nombre, puesto,
sueldo, horas extra)
· prestamos externos (cliente,
préstamo, aval, plazo)
· libro de reservaciones(nombre,
departamento, entrada, salida)
· mantenimiento (área, daños, total)
Esta gráfica
muestra los módulos generales que va a contener el programa.
SUBPROGRAMA
CONTROL
20
![]()
![]()
![]()
![]()



SUBPROGRAMA SUBPROGRAMA SUBPROGRAMA
SUBPROGRAMA
PAGOS A PRESTAMOS
LIBROS DE
MANTENIMIENTO
EMPLEADOS
5 EXTERNOS RESERVACIONES 15 19
Es un
conjunto de normas e instrucciones y
procedimientos que nos permiten estructurar un programa. También apunta a las
estructuras de datos. Existen 3 elementos que deben estar presentes para
aplicarla:
a) La
especificación de programas tiene que estar dada por:
Entradas
Salidas
Reglas
de procesamiento
b) Diagrama
de lógica del programa o diagrama de flujo: Es el resultante de aplicar la
metodología
c) Lista de instrucciones que van a estar ordenados según secuencias lógica o según el objetivo de cada uno de las instrucciones.
También
warnier utiliza estructuras jerárquicas para representar las entradas, salida y
el proceso. Define las entradas y las salidas como conjunto que tienen elementos componentes.
Ejemplo:
Registro
Alumnos
|
Rut |
Nombre Alumno |
Dirección |
Fecha Nacimiento |
beca |
|||
|
apellido paterno |
apellido materno |
nombres |
calle |
N° |
|||

![]()

Notación
utilizada para especificar las ocurrencias
1
® Una
sola vez.
n
® Una o más veces.
(0,1) ® opcional, puede estar presente y si está
presente ocurre sólo una vez.
(0,n) ® opcional, puede estar presente y si está
presente ocurre una o más veces.
Según
Warnier: todo programa se puede representar como un conjunto de secuencias
lógicas y los datos de entrada son vistos como un conjunto de elementos para
ese programa.
El
CP (comienzo de programa) y FP (Fin de Programa) se utilizan en cada una de las
llaves que aparezcan en la secuencia lógica.
Secuencia
lógica: Es un conjunto de instrucciones que están entre 2
bifurcaciones o entre un conector y bifurcación o entre dos conectores.
Secuencia
repetitiva simple de datos de entrada: elementos
que se esta procesando varias veces o a lo menos 1
Estructura
repetitiva simple de programa: es un conjunto de secuencias
lógica inicial que se ejecuta una vez, una secuencia lógica que se procesa
varias o al menos una vez y un secuencia lógica fina que se ejecuta una vez.
Estructura
alternativa simple de datos de entrada: es
aquella en que la presencia de un elemento es aleatoria o dicho de otra forma
que posee un elemento que cumple un determinada condición.
Estructura
alternativa simple de programa: es un conjunto de secuencias
lógicas formado por una secuencia lógica inicial que se ejecuta una u otra pero
no amabas y una secuencia lógica final que se ejecuta una sola vez.
1.
Leer atentamente las especificaciones del problema
2. Construir
el diagrama que represente la salida
del programa
3. Construir
el diagrama de entrada considerando el diagrama de la salida
4. Construir
un diagrama de la estructura del programa
5. Construir
un diagrama de flujo del programa
6. Determinar
cuales serán las pseudo-instrucciones de cada secuencia lógica.
Categorías
de Pseudo-instrucciones.


Lecturas
Preparación
de la bifurcación ( es cuando se lleva un valor a la zona de referencia)
Bifurcación
Preparación
de cálculo y cálculo
Preparación
de salida y salidas (para ambas impresión y salida)
Ejemplo
de un diagrama de Warnier Orr, de un control de almacén

(0,n) = De cero veces a n veces
(1,n) = De una vez a n veces