INTRODUCCIÓN
Las diferentes etapas del programa
suelen tener discontinuidad y son difícilmente identificables. En consecuencia
existe una difícil fase de desarrollo y mantenimiento. En este documento se
muestran las diferentes técnicas de programación las cuales permiten el
desarrollo eficiente y eficaz de un programa.
DEFINICIÓN
Una
técnica de programación es una metodología que debe de seguirse y tomarse en
cuenta al momento de programar. Deberá entenderse que para la programación
deberán asumirse ciertas normas que permitan la estandarización de la
programación, implicando una disminución de costos, independencia del
programador y seguridad. Debe de tomarse en cuenta los paradigmas de la programación.
IMPORTANCIA
El diseño de un programa que se
realiza sin seguir una metodología puede funcionar, pero se debe tener en
cuenta que con el tiempo se convertirá en un conjunto de instrucciones. Es
decir que las consecuencias de no utilizar un método determinado llevará a
cometer errores que pueden costar el buen funcionamiento del mismo. Por eso
seguir una metodología de programación es importante para obtener un buen
resultado en el ámbito de la programación.
PROGRAMACIÓN
ESTRUCTURADA
Cuando hablamos de Programación
Estructurada, nos referimos a un conjunto de técnicas que con el transcurrir
del tiempo han evolucionado. Gracias a éstas, la productividad de un programa
se ve incrementada de forma considerable y se reduce el tiempo de escritura, de
depuración y mantenimiento de los programas. Aquí se hace un número limitado de
estructuras de control, se reduce la complejidad de los problemas y se minimiza
los errores.
Gracias a la programación
estructurada, es más fácil la escritura de los programas, también lo es su
verificación, su lectura y mantenimiento. Esta programación es un conjunto de
técnicas que incorpora:
RECURSOS
ABSTRACTOS:
Los recursos abstractos son utilizados
como un apoyo en la programación estructurada, en vez de los recursos concretos de
los que se dispone (lenguaje de programación determinado).
Para disgregar un programa en términos
de recursos abstractos debemos descomponer acciones complejas en acciones más
simples, las que son capaces de ejecutar o constituyen instrucciones de
computadora disponible.
DISEÑO
DESCENDENTE:
Este es un
proceso en el cual el problema se descompone en una serie de niveles o pasos sucesivos. Esta metodología consiste
en crear una relación entre las etapas de estructuración, las que son
sucesivas, de tal forma que se interrelacionen mediante entradas y salidas de
información.
ESTRUCTURAS BÁSICAS:
Un programa propio puede ser escrito
utilizando sólo tres tipos de estructuras de control:
* ESTRUCTURA
SECUENCIAL:
Es la estructura en donde una acción
(instrucción) sigue a otra de manera secuencial. Las tareas se dan de tal forma que la
salida de una es la entrada de la que sigue y así en lo sucesivo hasta
cumplir con todo el proceso.
*ESTRUCTURAS REPETITIVAS:
Las estructuras que repiten una
secuencia de instrucciones un número determinado de veces se denominan bucles y,
al hecho de repetir la ejecución de una secuencia de acciones se denomina iteración.
PROGRAMACIÓN
MODULAR:
Este es uno de los métodos para el
diseño más flexible y de mayor performance para la productividad de un
programa. En este tipo de programación el programa es dividido en módulos, cada
uno de las cuales realiza una tarea específica, codificándose independientemente de otros módulos. Cada uno de éstos es analizado,
codificados y puestos a punto por separado.
*MEDIDA DE LOS
MÓDULOS:
La determinación del tamaño de los
módulos significa un obstáculo para la programación modular. No existe un
estándar qué determine qué tamaño debe tener un módulo, pero existen
alternativas que deben tomarse en cuenta, como una aproximación del tamaño
físico de una página, es por eso que los programadores tienen la tarea difícil
de poder hacer que los módulos tengan aproximadamente esta medida.
*IMPLEMENTACIÓN
DE MÓDULOS:
Este tipo de programación puede implementarse utilizando módulos que toman diferentes nombres, según el lenguaje de programación en el cual estén expresados: Subrutinas en BASIC, procedimientos en Pascal, subrutinas en FORTRAN, secciones en COBOL y funciones como módulos en todos los lenguajes.
Este tipo de programación puede implementarse utilizando módulos que toman diferentes nombres, según el lenguaje de programación en el cual estén expresados: Subrutinas en BASIC, procedimientos en Pascal, subrutinas en FORTRAN, secciones en COBOL y funciones como módulos en todos los lenguajes.
PROGRAMACIÓN ORIENTADA A OBJETOS:
En los últimos años la frase “orientada
a objetos”, se ha vuelto muy popular, escuchándose a cada momento frases como
sistemas “operativos orientados a objetos”, “lenguajes orientados a objetos”,
“programación orientada a objetos” (POO), etc. Sin embargo, el concepto ya tiene un tiempo de aproximadamente 25 años.
En esta parte se dará a conocer los principales conceptos más íntimamente
relacionados con la POO, así como la forma de implementarlos en C++.
Se hará mención de los conceptos
generales más utilizados en el modelo orientado a objetos, los cuales son: abstracción, encapsulación y modularidad. Y con respecto a
programación, son: objeto, clase,
método, envío y recepción de mensajes, herencia y polimorfismo.
*ABSTRACCIÓN:
Es una descripción o especificación
simplificada de un sistema que hace énfasis en algunos detalles significativos
y suprime los irrelevantes.
La abstracción debe enfocarse más en
qué es un objeto y qué hace antes, de pensar en la implementación. Por ejemplo,
un automóvil puede abstraerse como un objeto que sirve para desplazarse a mayor
velocidad, sin importar cómo lo haga.
*ENCAPSULAMIENTO:
Típicamente, la
información acerca de un objeto está encapsulada por su comportamiento. Esto significa que un objeto mantiene datos acerca de
cosas del mundo real a las que representa en su sentido verdadero.
Típicamente a un
objeto se le debe “pedir” o “decir” que cambie sus propios datos con un
mensaje, en vez de esperar que tales datos de procesos extremos cambien la
naturaleza de un objeto.
*MODULARIDAD:
La modularidad consiste en dividir un
programa en partes llamadas módulos, los cuales pueden trabajarse por separado.
En términos de programación, los módulos pueden compilarse por separado y la división no depende de cierto número de
líneas sino es una división en términos de integrar en un módulo un
conjunto de procedimientos relacionados
entre sí, junto con los datos que son manipulados por tales procedimientos. El
objetivo de la modularidad es reducir el costo de elaboración de programas al
poder dividir el trabajo entre varios programadores.
*CLASES Y
OBJETOS:
El estado de un objeto abarca todas
las propiedades o características distintivas del mismo y los valores de cada
una de estas propiedades. En términos de programación, puede decirse que las
propiedades son las variables que sirven para describir tal objeto.
El
comportamiento es la forma como actúa o reacciona un objeto en términos de
cambio de estado, envío y recepción de
mensajes. Está formado por la definición de las operaciones (funciones y
procedimientos) que puede realizar este objeto. Los tipos más comunes de
operaciones, o en POO métodos, son: modificar, seleccionar, iterar, construir y
destruir. El conjunto de operaciones que un objeto puede realizar sobre otro,
se conoce como protocolo.
*HERENCIA:
La herencia es la contribución más importante de la POO, pues
mediante este mecanismo es posible lograr la principal meta de la POO que es la
reutilización de código.
La herencia permite proporcionar una
jerarquía de clases. En tal jerarquía, algunas clases son subordinadas a otras
llamadas subclases, o como en C++, clases derivadas. Una subclase define el
comportamiento de un conjunto de objetos que heredan algunas de las
características de la clase padre, pero adquieren características especiales no
compartidas por el padre, en este sentido se dice que la subclase es una
especialización de la clase padre.
*POLIMORFISMO:
Otro de los mecanismos
aportados por la POO es el de polimorfismo,
el cual es la capacidad de tener métodos con el mismo nombre pero que su
implementación sea diferente. En la vida
diaria se presenta el siguiente ejemplo de polimorfismo: al tratar de frenar
un vehículo siempre se debe oprimir el pedal del lado izquierdo y el vehículo
se detendrá sin importar si los frenos son de tambor o de disco.
En los últimos años la frase “orientada
a objetos”, se ha vuelto muy popular, escuchándose a cada momento frases como
sistemas “operativos orientados a objetos”, “lenguajes orientados a objetos”,
“programación orientada a objetos” (POO), etc. Sin embargo, el concepto ya tiene un tiempo de aproximadamente 25 años.
En esta parte se dará a conocer los principales conceptos más íntimamente
relacionados con la POO, así como la forma de implementarlos en C++.
Se hará mención de los conceptos
generales más utilizados en el modelo orientado a objetos, los cuales son: abstracción, encapsulación y modularidad. Y con respecto a
programación, son: objeto, clase,
método, envío y recepción de mensajes, herencia y polimorfismo.
*ABSTRACCIÓN:
Es una descripción o especificación
simplificada de un sistema que hace énfasis en algunos detalles significativos
y suprime los irrelevantes.
La abstracción debe enfocarse más en
qué es un objeto y qué hace antes, de pensar en la implementación. Por ejemplo,
un automóvil puede abstraerse como un objeto que sirve para desplazarse a mayor
velocidad, sin importar cómo lo haga.
*ENCAPSULAMIENTO:
Típicamente, la
información acerca de un objeto está encapsulada por su comportamiento. Esto significa que un objeto mantiene datos acerca de
cosas del mundo real a las que representa en su sentido verdadero.
Típicamente a un
objeto se le debe “pedir” o “decir” que cambie sus propios datos con un
mensaje, en vez de esperar que tales datos de procesos extremos cambien la
naturaleza de un objeto.
*MODULARIDAD:
La modularidad consiste en dividir un
programa en partes llamadas módulos, los cuales pueden trabajarse por separado.
En términos de programación, los módulos pueden compilarse por separado y la división no depende de cierto número de
líneas sino es una división en términos de integrar en un módulo un
conjunto de procedimientos relacionados
entre sí, junto con los datos que son manipulados por tales procedimientos. El
objetivo de la modularidad es reducir el costo de elaboración de programas al
poder dividir el trabajo entre varios programadores.
*CLASES Y
OBJETOS:
El estado de un objeto abarca todas
las propiedades o características distintivas del mismo y los valores de cada
una de estas propiedades. En términos de programación, puede decirse que las
propiedades son las variables que sirven para describir tal objeto.
El
comportamiento es la forma como actúa o reacciona un objeto en términos de
cambio de estado, envío y recepción de
mensajes. Está formado por la definición de las operaciones (funciones y
procedimientos) que puede realizar este objeto. Los tipos más comunes de
operaciones, o en POO métodos, son: modificar, seleccionar, iterar, construir y
destruir. El conjunto de operaciones que un objeto puede realizar sobre otro,
se conoce como protocolo.
*HERENCIA:
La herencia es la contribución más importante de la POO, pues
mediante este mecanismo es posible lograr la principal meta de la POO que es la
reutilización de código.
La herencia permite proporcionar una
jerarquía de clases. En tal jerarquía, algunas clases son subordinadas a otras
llamadas subclases, o como en C++, clases derivadas. Una subclase define el
comportamiento de un conjunto de objetos que heredan algunas de las
características de la clase padre, pero adquieren características especiales no
compartidas por el padre, en este sentido se dice que la subclase es una
especialización de la clase padre.
*POLIMORFISMO:
PROGRAMACIÓN BASADA EN MODELOS MATEMÁTICOS:
El
significado de modelo matemático
en matemática fundamental, sin embargo, es algo diferente. En concreto en
matemáticas se trabajan con modelos formales. En el
aspecto de la programación los modelos permiten adelantarse a los resultados
concretos por medio de planteamientos, los cuales permitirían a la ayuda de un
programa.
CONCLUSIÓN:
Como conclusión podemos apreciar que
la programación es muy importante en la actualidad y lo seguirá siendo por un
buen tiempo, pero así como recalcamos su importancia decimos que lo más
importante no es el lenguaje de programación sino el planteamiento de la solución al problema, ya que podría caerse en un
error al pensar que sin las técnicas o métodos que se emplean para la
programación vamos a llegar fácilmente a la elaboración correcta de un
programa, lo cual no es imposible cuando se trata de programas sencillos y
pequeños, pero cuando se tienen que elaborar programas muy grandes y con un
alto grado de complejidad hay problemas para su diseño, porque para esto se
debe seguir un orden y utilizar técnicas que deben ser tomadas muy en
consideración para el diseño y la estructura general de los programas.
BIBLIOGRAFIA:
Fundamentos de Programación (Luis Joyanes Aguilar).
McGRAW –
HILL/INTERAMERICANA DE ESPAÑA S.A.
http://es.wikiversity.org/wiki/T%C3%A9cnicas_de_programaci%C3%B3n
http://perso.wanadoo.es/pictob/tecprg.htm