Metodología de programación en ingeniería de sistemas
1. FACULTAD CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
Metodología de la programación
CONTEXTO DE LA PROGRAMACIÓN EN LA CONSTRUCCIÓN DE SOFTWARE
Nombre __________________________________________________________________
INTRODUCCIÓN
Ya se han hecho consideraciones sobre el concepto errado de reconocer la
programación como la propia construcción o desarrollo de software, concluyendo que la
codificación o la generación de código es solo una parte de una conjunto denominado
construcción del software que a su vez hace parte del acumulado desarrollo de software
o construcción del sistema de información.
Sin embargo, es importante también hacer consideraciones sobre la importancia y el
papel que la programación juega hoy día en el entorno local, nacional e internacional. Es
clave que las personas que se dediquen a aprender la programación de computadoras
reconozcan en su orden: la disciplina que requieren para ello, la documentación con la
que deben contar, las tendencias en los paradigmas utilizados y el papel de los actuales y
los próximos lenguajes de programación. Todo lo anterior, obedeciendo a una temática,
tarea o actividad tan cambiante como la programación de sistemas de información.
DISCIPLINA REQUERIDA PARA PROGRAMAR
En la década de los 1940 y tiempos cercanos a ella, el proceso de desarrollo de
software originalmente consistía en la mera fase de codificación. Software era sinónimo
de programación, de programa, y todo era hecho por una sola persona dado que el
problema a resolver era de amplio dominio. No se consideraba la necesidad de
requisitos, de análisis, de diseño e incluso de mantenimiento. Las personas lograron
amplio reconocimiento en esta área y eso las llevó a generar costumbre de tranquilidad
y luego de descuido frente al funcionamiento de sus programas.
INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
Metodología de la programación
Luis Eduardo Peláez Valencia
2. FACULTAD CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
Hoy, es de suma importancia reconocer que la programación no puede ser un tema de
momento, de moda o de deseo. Si bien, se han logrado avances interesantes en formar
a l@s ingenier@s para que hagan con seriedad el desarrollo del software, la historia sigue
siendo tan fuerte que uno de los aspectos relevantes para el programador, en este caso,
es la disciplina para que no repita la historia.
Actualmente las personas que se formen en programación o que se dediquen a ello
deben considerar seriamente tres aspectos para una buena labor: 1. la comprensión de
los diferentes paradigmas y sobre todo el que se utilizará, 2. Los lenguajes de
programación y sobre todo el que se ajuste a su problema y, 3. La preparación del
entorno de desarrollo o de programación que le permite llevar a cabo, con la comodidad
del caso, la tarea de resolver el problema.
Figura 1. Aspectos necesarios para la labor de programación
La disciplina inicia por reconocer el orden adecuado en el que se deben comprender y
preparar los aspectos según la gráfica. Luego, la labor se encamina en la dedicación
INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
Metodología de la programación
Luis Eduardo Peláez Valencia
3. FACULTAD CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
responsable que se tenga con la solución del programa según la estimación de esfuerzo
que se haya realizado.
DOCUMENTACIÓN
En tres sentidos cobra importancia el tema de la documentación a la hora de
programar.
1. Documentación del código generado: es importante escribir, a manera de
comentarios o de cualquier otra forma, mensajes que ayuden en el futuro a
entender el código y las razones de haber colocado cada porción del mismo en
determinado lugar. Se logra simplemente escribiendo, de manera organizada,
texto adicional y pensando que alguien más deberá entender lo que se está
escribiendo.
2. Documentación para el usuario del programa: es común creer que se está
haciendo programas de fácil comprensión y por ello no se lleva a cabo la tarea
de generar documentación para los usuarios finales. Esta es indispensable al
momento de liberar una versión determinada para las pruebas.
3. Documentación para el programador: consiste en la documentación que
debemos tener como parte de la disciplina al inicio de la labor de programación,
es decir, documentación disponible sobre el paradigma utilizado, documentación
sobre el lenguaje y documentación sobre el entorno de desarrollo utilizado. Toda
esta documentación debe estar disponible y a la mano para las personas que
llevan a cabo la tarea de programar.
TENDENCIAS EN LOS PARADIGMAS
Al momento de comprender determinado paradigma de programación, es
recomendable también tener mente abierta para entender el camino que recorrerá ese
paradigma y el tiempo en el que podrá ser reemplazado por uno nuevo. Aunque la
historia de la programación nos ha enseñado cuatro paradigmas relevantes: imperativo,
funcional, lógico y orientado a objetos; es bueno revisar la forma en que algunos de estos
se han ramificado y han intentado explorar más allá, inclusive, de las ciencias
INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
Metodología de la programación
Luis Eduardo Peláez Valencia
4. FACULTAD CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
computacionales. La programación de aspectos, programación de eventos, desarrollo
rápido de aplicaciones, etc.; son algunas de las ramas que han surgido de los
paradigmas estandarizados, pero se debe tener cuidado al momento de elegir una
filosofía de programación que parece ser una tendencia adecuada al problema que se
pretende solucionar, pero que más tarde puede colocar al equipo de programación en
apuros, precisamente por la falta de documentación y de estandarización de la elección.
Ahora bien, aunque algunos Autores coinciden en que no existe una frontera bien
definida para cada paradigma, si es importante ubicarse en uno de ellos antes de elegir
un lenguaje de programación para iniciar la codificación. Aunque finalmente la
experiencia podrá dar cuenta de lenguajes que permiten resolver problemas aplicando
varios paradigmas; a estas herramientas de desarrollo se les conoce como lenguajes
multiparadigmas.
Un caso de multiparadigma lo muestra la Universidad de Guadalajara con el proyecto de
investigación denominado MOPHOUA que consiste en la creación de un lenguaje de
programación que integra los enfoques orientado a objetos, orientado a roles y
orientado a eventos, todo ello en un modelo de programación denominado COOP
(Context Object Oriented Programming)
EL PAPEL DEL LENGUAJE DE PROGRAMACIÓN
En 1995, en un ensayo que pretendía responder la pregunta ¿Por qué hay tantos
lenguajes de programación y siguen apareciendo nuevos?, la Dra. Hanna Oktaba (Oktaba,
1995), reconocida investigadora en el tema del software y la programación, hizo la
siguiente consideración:
<< La computadora, a diferencia de otras herramientas que en general apoyan el esfuerzo físico
de los humanos, fue inventada para facilitar el trabajo intelectual. Si el hombre tiene algún
problema, por ejemplo "sumar dos y dos", el diseñador define el algoritmo que resuelve el
problema, el programador lo codifica en un lenguaje de programación, el cual la computadora es
capaz de "entender", luego la computadora ejecuta el algoritmo expresado como programa en el
lenguaje de programación en cuestión, y listo. La máquina le entrega al hombre la respuesta "4",
sin que éste tuviera que esforzar sus neuronas.
INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
Metodología de la programación
Luis Eduardo Peláez Valencia
5. FACULTAD CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
¿Cuál es el papel del lenguaje de programación en este proceso? Es muy importante, el lenguaje
de programación es el medio de comunicación entre el hombre y la máquina. El modelo general
de las computadoras, desde que fue esbozado por von Neumann, no ha cambiado mucho,
mientras que la invención humana para proponerse nuevos problemas a resolver, usando la
computadora, parece no tener límites. En consecuencia, los lenguajes de programación tienen
que adaptarse a éstas crecientes necesidades y aumentar la expresividad para poder resolver
problemas muy diversos y cada vez más complejos. Además, tienen que ofrecer cierta eficiencia
en la ejecución. Es un logro difícil de alcanzar y por lo tanto, se requiere una búsqueda constante
de nuevos lenguajes para ello..>>
Según su tesis, los lenguajes nacen con la concepción de adaptarse a los nuevos
problemas y las nuevas necesidades, lo que los deja inmersos en un mundo dinámico y
competente. Esto también, exige de parte de la persona que se dedica a la
programación, un esfuerzo adicional al momento de elegir el lenguaje adecuado.
Cada lenguaje de programación parte de un paradigma o una filosofía de programación;
en este orden de ideas, existen lenguajes imperativos, lógicos, funcionales orientados a
objetos y, siendo coherentes con el capítulo anterior, también existen lenguajes
productos de las ramificaciones de los paradigmas estandarizados y de las intenciones
multiparadigmas. A continuación, la evolución de los lenguajes hasta el año 2000 en la
figura 2.
INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
Metodología de la programación
Luis Eduardo Peláez Valencia
6. FACULTAD CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
Figura 2. Evolución de los lenguajes de programación
En conclusión, quien piense que elegir un lenguaje de programación es cuestión de moda
o de dificultad/facilidad, debe re-pensar en los paradigmas, las tendencias, los lenguajes
o lo que cada uno de ellos llega a resolver. La selección de un lenguaje adecuado es un
compromiso con el que un buen diseñador/programador se compromete a tener en
cuenta en primera instancia el problema que se quiere resolver y su adaptación a
determinado paradigma, luego el nivel de abstracción deseado del problema y el nivel de
abstracción que ofrecen los lenguajes, para, finalmente, evaluar la arquitectura
hardware y el alcance de todo el sistema de información con el que interactuará la
solución deseada. Así, el lenguaje de programación no juega un papel de estética, ni de
moda, sino de compañero o “partner” en la solución que se busca para un problema
objeto de solución computacional
INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
Metodología de la programación
Luis Eduardo Peláez Valencia
7. FACULTAD CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
BIBLIOGRAFÍA
ANSI. (s.f.). ISO 9241-12:1998. Recuperado el 05 de Marzo de 2010, de American
National Standards Institute:
http://webstore.ansi.org/RecordDetail.aspx?sku=ISO+9241-
12%3a1998&source=google&adgroup=iso8&keyword=iso%209241-
12&gclid=CITKpIXYoKACFQ-bnAodyE8_Zw
Calderón, A., Valverde Rebaza, S. D., & J. C. (2007). Metodologías Ágiles. Recuperado el
18 de Abril de 2010, de Sociedad de Estudiantes de Ciencia de la Computación:
http://www.seccperu.org/files/Metodologias%20Agiles.pdf
Carrillo Pérez, I., Pérez González, R., & Rodríguez Martín, A. D. (Octubre de 2008).
Metodologías de desarrollo de software. Recuperado el 15 de Mayo de 2010, de
solusoft-g11.googlecode.com/files/Metodologias%20de%20desarrollo.pdf
Casas, S. I., & Reinaga, H. H. (s.f.). Aspectos Tempranos: Un Enfoque Basado en Tarjetas
CRC. Recuperado el 20 de Abril de 2010, de Escuela de Sistemas Universidad
Nacional de Colombia:
http://pisis.unalmed.edu.co/avances/archivos/ediciones/Edicion%20Avances
%202009%201/09.pdf
Fernández Enrich, M. (2003). Crystal Methodologies. Recuperado el 12 de Mayo de
2010, de Departamento de Sistemas Informáticos y Computación, Universidad
Politécnica de Valencia:
www.dsic.upv.es/asignaturas/facultad/lsi/trabajos/282002.ppt
Fernández Lanvin, D. (2004). Desarrollo de una Metodología para un nuevo Paradigma
de Desarrollo de Software. Recuperado el 28 de Enero de 2010, de
Departamento de Informática Universidad de Oviedo:
www.di.uniovi.es/~dflanvin/home/?download=pi-lanvin.pdf
Fowler, M. (2003). La Nueva Metodología. Recuperado el 12 de Mayo de 2010, de
Programación Extrema:
http://www.programacionextrema.org/articulos/newMethodology.es.html
IEEE. (2010). Publications & Standards. Recuperado el 18 de 10 de 2009, de The
Institute of Electrical and Electronics Engineers, Inc:
http://www.ieee.org/web/standards/home/index.html
INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
Metodología de la programación
Luis Eduardo Peláez Valencia
8. FACULTAD CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
IEEE, Computer Society. (2004). SWEBOK - Software Engineering Body Of Knowledge.
California: IEEE Computer Society.
Oktaba, H. (1995). El Lenguaje de programación: ¿Por qué hay tantos lenguajes y
aparecen nuevos? Soluciones avanzadas.
Oktaba, H. (s.f.). Lecciones aprendidas del desarrollo de la norma internacional ISO/IEC
29110 basada en MoProSoft. Recuperado el 26 de Marzo de 2010, de
Slidechared: http://www.slideshare.net/RevistaSG/lecciones-aprendidas-del-
desarrollo-de-la-norma-internacional-isoiec-29110-basada-en-moprosoft
Rumbaugh, J., Blaha, M., Lorensen, W., & Frederick, E. (1991). Object-Oriented Modeling
and Design. Prentice-Hall.
Weitzenfeld, A. (2002). INGENIERIA DE SOFTWARE ORIENTADA A OBJETOS. México:
Thomson.
Yourdon, E. (1997). Análisis estructurado moderno. México: Prentice Hall.
INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
Metodología de la programación
Luis Eduardo Peláez Valencia