Está en la página 1de 9

TEMA B: TÉCNICAS DE PROGRAMACIÓN

Introducción

La definición de algunas de las necesidades básicas para la obtención de un programa


ejecutable en un microprocesador, que resuelva las tareas de un proyecto, se conoce
como "Técnicas de programación".
A continuación fijaremos algunos criterios encaminados a sistematizar al máximo los
trabajos que precisa la consecución del objetivo, es decir, el o los programas requeridos
por la especificación del proyecto.
Con estos fines, descompondremos una tarea software en fases bien diferenciadas, que
pasamos a describir a continuación.

Análisis del problema

Para la resolución de cualquier problema el primer paso consiste en su análisis.


Analizar un problema software consiste en decidir exactamente qué funciones debe
realizar, es decir, confeccionar una "especificación funcional" de las características que
debe cumplir el sistema diseñado.
No siempre es fácil analizar la información que debe estar presente en una
"especificación funcional", sin embargo, podemos citar como imprescindible la
siguiente:

· Una concisa descripción del problema. Un breve párrafo donde se describa el


problema que el sistema pretende resolver.

· Hardware asociado. En esta información aparecerán definidas las señales y


circuitos asociados al problema.

· Software necesario. Cuando se diseña software, es necesario tener en cuenta la


coexistencia y comunicación entre los diferentes programas que configuran el
sistema. Se debe hacer especial mención de los formatos que se van a emplear.

· Descripción completa de cómo el sistema debe funcionar. Esto significa una


descripción detallada de cómo se debe comportar el sistema frente a
manipulaciones procedentes del exterior, así como la interacción necesaria,
mensajes de error, procedimientos de entrada y salida, etc.

Partición del sistema en bloques

La decisión de los bloques en los que se debe dividir el sistema viene fijada, en la
mayoría de los casos, por las características definidas en la especificación funcional.
La práctica es sin duda la mejor herramienta utilizada para la división o descomposición
del sistema en bloques. pero en todo sistema encontraremos algunos bloques
elementales, que son:

. Definiciones de datos. Es evidente que sin un conocimiento completo de los datos


iniciales disponibles para resolver un problema, el control sobre el problema puede
verse muy limitado. La información debe incluir características tales como el rango
de valores que puede tomar, los puntos de donde debe ser recogida, la duración de
su presencia en caso de ser señales de tipo impulsivo, etc.
· Definición de resultados. Tan importante como el conocimiento de los datos
iniciales de un problema, es la definición de los elementos que componen la
solución del problema. Los parámetros más interesantes de los elementos de la
solución del problema son similares a los de los datos iniciales. El rango de
valores en que debe encontrarse, la precisión con que el dato se ofrece, los puntos
y/o instantes en que está disponible, su duración, si ésta puede afectar al resultado
de algún modo, etc.

· Funciones de programa (transferencia de datos, búsqueda en memoria,


operaciones aritméticas. etc.).

. Control y temporizaciones.

· Estructura de datos (tablas, listas, etc.).

Desarrollo del algoritmo para cada partición

Con el desarrollo del algoritmo se hace la transición desde las particiones establecidas
anteriormente, al procedimiento de creación lógica de cada una de ellas. Para diseñar el
algoritmo que realiza las funciones de un determinado bloque, se deben seguir los
siguientes pasos:

. Decidir el bloque que se va a realizar.

· Decidir sobre qué datos se va a operar: ¿se pasan de otro bloque?, ¿se buscan en
una tabla?. etc. Una vez conocida la situación de estos datos, se definirán los
procedimientos de entrada.

· Idear un procedimiento para la realización de las funciones que se deben realizar


en el bloque. Éste es el significado real del algoritmo. Aquí será donde se
combinen los bloques de procesos, datos y decisiones para convertir los datos de
entrada en resultados de salida. Una vez confeccionado el algoritmo se debe
comprobar que resuelve todas las posibles situaciones que se pueden presentar, y
que las resuelve correctamente. Este paso es trascendental para obtener un buen
resultado de diseño.

. Decidir qué se debe hacer con los datos de salida del bloque: ¿.ponerlos en una
tabla ?. ¿enviar" por un circuito de salida?, etc. Una vez conocido el destino de los
datos, se definirán los procedimientos de salida.

Existen procedimientos gráficos para representar la secuencia de operaciones que se


han ideado para un determinado algoritmo. El procedimiento más universal es el uso
de diagrama de flujo o "flowcharts" y engloba tanto a la representación gráfica de la
circulación de datos e información dentro de un programa (organigrama) como a la
representación gráfica de la secuencia de operaciones que se han de realizar en el
mismo (ordinograma). El organigrama es simplemente un procedimiento gráfico, que
se ajusta a unos símbolos, para definir la secuencia de operaciones del algoritmo. Los
símbolos más universalmente utilizados son los que aparecen en la figura
Escribir el programa

Una vez realizada la definición del problema, las particiones en bloques y los diagramas
de flujos, se puede empezar a pensar en escribir el programa requerido por el sistema
lógico que se ha definido. Luego simplemente se debe realizar las funciones definidas
en el diagrama de flujo, usando un determinado lenguaje de programación válido para el
microprocesador elegido.

Diseño top down


A partir de la función general del programa, se obtienen funciones más elementales,
subordinadas cada una de ellas a la función general de la jerarquía superior en el
contexto del problema. Cada una de ellas , a su vez se podría descomponer en otras
funciones elementales.

Recursos abstractos

En el diseño top down podemos inferir que cada nivel le entrega a otro nivel entradas
para su correspondiente tratamiento, y estos a su vez devuelven el resultado de este
tratamiento a ortros niveles. Estos nivele se comportan como una instrucción que toma
datos, los procesa y entrega resultados, es decir que se comportan como recursos
abstractos. Esto se consigue realizando módulos o subrutinas que manejan datos
externos a ellos.

Las estructuras:

Estructura secuencial

Estructura alternativa

Las estructuras alternativas pueden ser :

Alternativa doble:
Alternativa simple

Alternativa múltiple:

Estructura repetitiva

Las estructuras repetitivas pueden ser:


Estructura PARA: Estructura MIENTRAS:

Estructura ITERAR:
Estructura HASTA:
Ejemplos de estructuras básicas

Estructura secuencial
Estructura alternativa

Estructura repetitiva
Ejemplo 1
Ejemplo 2

También podría gustarte