SlideShare una empresa de Scribd logo
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
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
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
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
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
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
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
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

Más contenido relacionado

PPTX
Ventajas y desventajas de moprosoft
DOC
Requerimientos norma ieee830
PPTX
Ventajas y desventajas de cmmi
PPTX
Calidad en el desarrollo del software
DOCX
Ejemplos de proyectos al modelo en cascada
PPTX
Cuadro Comparativo en Sistemas Operativos Windows
PPTX
Categorías del software
Ventajas y desventajas de moprosoft
Requerimientos norma ieee830
Ventajas y desventajas de cmmi
Calidad en el desarrollo del software
Ejemplos de proyectos al modelo en cascada
Cuadro Comparativo en Sistemas Operativos Windows
Categorías del software

La actualidad más candente (20)

PPT
costos del software
PPTX
tecnicas de revisión del software
PPTX
Metodología CommonKADS
PDF
DISEÑO MEJORAMIENTO DE LOS SISTEMAS
PDF
Cuadro comparativo entre moprosoft y cmmi
DOCX
Requerimientos funcionales y no funcionales de la aplicación
PPTX
Factores de calidad del software
PPTX
Documentación de Software
PPTX
1.7 principios aplicados a los auditores informaticos
PDF
Mobile D (programacion dispositivos moviles)
PDF
Mapa mental uml
PPTX
Rational rose
PDF
Diagramas de Actividades
PPTX
La práctica en el Desarrollo de Software: Una visión general!
PPTX
Herramientas case
PPT
Ingenieria web
DOCX
Modelo incremental
PPTX
Componentes de Business Intelligence
DOCX
Unidad 2 interfaces
PDF
Arquitectura de Software
costos del software
tecnicas de revisión del software
Metodología CommonKADS
DISEÑO MEJORAMIENTO DE LOS SISTEMAS
Cuadro comparativo entre moprosoft y cmmi
Requerimientos funcionales y no funcionales de la aplicación
Factores de calidad del software
Documentación de Software
1.7 principios aplicados a los auditores informaticos
Mobile D (programacion dispositivos moviles)
Mapa mental uml
Rational rose
Diagramas de Actividades
La práctica en el Desarrollo de Software: Una visión general!
Herramientas case
Ingenieria web
Modelo incremental
Componentes de Business Intelligence
Unidad 2 interfaces
Arquitectura de Software
Publicidad

Similar a Contexto de la Programación (20)

DOCX
1 estado arte_software
PDF
Resolver Problemas Por Medio De La Ingeniería De Sistemas
PPTX
Fundamentos básicos de programación
PDF
13BarreroN4.pdf
PDF
Niebla sortillon jesus francisco actividad1.1 si5 1
PPTX
Metodologia de desarrollo
DOCX
Metodologia de software
PPTX
Libro 3: tareas y saber del programaador
DOCX
Galdamez mejia
PPTX
Ingeniería de software
PPTX
Ingeniería de software
DOCX
PDF
01.1_Semana_1_Conceptos_basicos_programacion.pdf
DOCX
Ha2 nm50 canseco g ana-sweb
PDF
U1T2 - El concepto de la programación Vs el concepto de la MetodologíaU1 t2 e...
PDF
Mi estudio de caso
PDF
Tabla comparativa de programacion orientada , objetos y estructurada.
PDF
Paradigmas de programacion
PPTX
Técnica en informatica
PDF
Programmer visions
1 estado arte_software
Resolver Problemas Por Medio De La Ingeniería De Sistemas
Fundamentos básicos de programación
13BarreroN4.pdf
Niebla sortillon jesus francisco actividad1.1 si5 1
Metodologia de desarrollo
Metodologia de software
Libro 3: tareas y saber del programaador
Galdamez mejia
Ingeniería de software
Ingeniería de software
01.1_Semana_1_Conceptos_basicos_programacion.pdf
Ha2 nm50 canseco g ana-sweb
U1T2 - El concepto de la programación Vs el concepto de la MetodologíaU1 t2 e...
Mi estudio de caso
Tabla comparativa de programacion orientada , objetos y estructurada.
Paradigmas de programacion
Técnica en informatica
Programmer visions
Publicidad

Más de Luis Eduardo Pelaez Valencia (20)

PPTX
Seguridad social presentacion.pptx
PPTX
20180802 inicio-public
PDF
El Anteproyecto en el contexto de un Proyecto de Ingeniería
PDF
El proyecto en Tecnología en Desarrollo de Software
PPTX
Sesión 01 presentación del curso investigación en tecnología-tds-public
PPTX
Sesión 01-Presentación del Curso de Anteproyecto
PPTX
Presentación en Sala de Coordinadores-informe de escuela de pares
PPTX
SQA versión 2: la calidad en el proceso y el producto
PPTX
SQA-Sesión 01-Presentación de Fundamentos SQA-16x9
PPTX
SQA-Presentación ejecutiva del seminario-4x3
PPTX
SQA-Propuesta de proyecto para el seminario
PPTX
SQA-Presentación detallada del seminario-16x9
PPTX
Visibilidad de la producción académica
PDF
Curso de Estructuradores de Proyectos Red CTeI
PDF
Curso de Estructuradores de Proyectos Red CTeI
PDF
Curso de Estructuradores de Proyectos Red CTeI
PPTX
Política y Niveles de Educcación
PDF
Pico y placa para dispositivos móviles en la casa
PPTX
Diccionario de Datos
PPTX
Taller 080364 sgbd-0102 - java&amp;postgre sql
Seguridad social presentacion.pptx
20180802 inicio-public
El Anteproyecto en el contexto de un Proyecto de Ingeniería
El proyecto en Tecnología en Desarrollo de Software
Sesión 01 presentación del curso investigación en tecnología-tds-public
Sesión 01-Presentación del Curso de Anteproyecto
Presentación en Sala de Coordinadores-informe de escuela de pares
SQA versión 2: la calidad en el proceso y el producto
SQA-Sesión 01-Presentación de Fundamentos SQA-16x9
SQA-Presentación ejecutiva del seminario-4x3
SQA-Propuesta de proyecto para el seminario
SQA-Presentación detallada del seminario-16x9
Visibilidad de la producción académica
Curso de Estructuradores de Proyectos Red CTeI
Curso de Estructuradores de Proyectos Red CTeI
Curso de Estructuradores de Proyectos Red CTeI
Política y Niveles de Educcación
Pico y placa para dispositivos móviles en la casa
Diccionario de Datos
Taller 080364 sgbd-0102 - java&amp;postgre sql

Último (20)

PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
PPT
Cosacos y hombres del Este en el Heer.ppt
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
DOCX
Tarea De El Colegio Coding For Kids 1 y 2
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
PDF
Metodologías Activas con herramientas IAG
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
Cosacos y hombres del Este en el Heer.ppt
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
Tarea De El Colegio Coding For Kids 1 y 2
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
caso clínico iam clinica y semiología l3.pptx
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
Metodologías Activas con herramientas IAG
Escuelas Desarmando una mirada subjetiva a la educación
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf

Contexto de la Programación

  • 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