FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y Telecomunicaciones                            Metodología d...
FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y TelecomunicacionesHoy, es de suma importancia reconocer que...
FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y Telecomunicacionesresponsable que se tenga con la solución ...
FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y Telecomunicacionescomputacionales. La programación de aspec...
FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y Telecomunicaciones       ¿Cuál es el papel del lenguaje de ...
FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y Telecomunicaciones                  Figura 2. Evolución de ...
FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y TelecomunicacionesBIBLIOGRAFÍAANSI. (s.f.). ISO 9241-12:199...
FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y TelecomunicacionesIEEE, Computer Society. (2004). SWEBOK - ...
Upcoming SlideShare
Loading in...5
×

Contexto de la Programación

1,454

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,454
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Contexto de la Programación

  1. 1. FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y Telecomunicaciones Metodología de la programación CONTEXTO DE LA PROGRAMACIÓN EN LA CONSTRUCCIÓN DE SOFTWARENombre __________________________________________________________________INTRODUCCIÓNYa se han hecho consideraciones sobre el concepto errado de reconocer laprogramación como la propia construcción o desarrollo de software, concluyendo que lacodificación o la generación de código es solo una parte de una conjunto denominadoconstrucción del software que a su vez hace parte del acumulado desarrollo de softwareo construcción del sistema de información.Sin embargo, es importante también hacer consideraciones sobre la importancia y elpapel que la programación juega hoy día en el entorno local, nacional e internacional. Esclave que las personas que se dediquen a aprender la programación de computadorasreconozcan en su orden: la disciplina que requieren para ello, la documentación con laque deben contar, las tendencias en los paradigmas utilizados y el papel de los actuales ylos 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 PROGRAMAREn la década de los 1940 y tiempos cercanos a ella, el proceso de desarrollo desoftware originalmente consistía en la mera fase de codificación. Software era sinónimode programación, de programa, y todo era hecho por una sola persona dado que elproblema a resolver era de amplio dominio. No se consideraba la necesidad derequisitos, de análisis, de diseño e incluso de mantenimiento. Las personas lograronamplio reconocimiento en esta área y eso las llevó a generar costumbre de tranquilidady 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. 2. FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y TelecomunicacionesHoy, es de suma importancia reconocer que la programación no puede ser un tema demomento, de moda o de deseo. Si bien, se han logrado avances interesantes en formara l@s ingenier@s para que hagan con seriedad el desarrollo del software, la historia siguesiendo 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 ellodeben considerar seriamente tres aspectos para una buena labor: 1. la comprensión delos diferentes paradigmas y sobre todo el que se utilizará, 2. Los lenguajes deprogramación y sobre todo el que se ajuste a su problema y, 3. La preparación delentorno de desarrollo o de programación que le permite llevar a cabo, con la comodidaddel caso, la tarea de resolver el problema. Figura 1. Aspectos necesarios para la labor de programaciónLa disciplina inicia por reconocer el orden adecuado en el que se deben comprender ypreparar 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. 3. FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y Telecomunicacionesresponsable que se tenga con la solución del programa según la estimación de esfuerzoque se haya realizado.DOCUMENTACIÓNEn tres sentidos cobra importancia el tema de la documentación a la hora deprogramar. 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 PARADIGMASAl momento de comprender determinado paradigma de programación, esrecomendable también tener mente abierta para entender el camino que recorrerá eseparadigma y el tiempo en el que podrá ser reemplazado por uno nuevo. Aunque lahistoria 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 estosse 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. 4. FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y Telecomunicacionescomputacionales. La programación de aspectos, programación de eventos, desarrollorápido de aplicaciones, etc.; son algunas de las ramas que han surgido de losparadigmas estandarizados, pero se debe tener cuidado al momento de elegir unafilosofía de programación que parece ser una tendencia adecuada al problema que sepretende solucionar, pero que más tarde puede colocar al equipo de programación enapuros, 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 biendefinida para cada paradigma, si es importante ubicarse en uno de ellos antes de elegirun lenguaje de programación para iniciar la codificación. Aunque finalmente laexperiencia podrá dar cuenta de lenguajes que permiten resolver problemas aplicandovarios paradigmas; a estas herramientas de desarrollo se les conoce como lenguajesmultiparadigmas.Un caso de multiparadigma lo muestra la Universidad de Guadalajara con el proyecto deinvestigación denominado MOPHOUA que consiste en la creación de un lenguaje deprogramación que integra los enfoques orientado a objetos, orientado a roles yorientado a eventos, todo ello en un modelo de programación denominado COOP(Context Object Oriented Programming)EL PAPEL DEL LENGUAJE DE PROGRAMACIÓNEn 1995, en un ensayo que pretendía responder la pregunta ¿Por qué hay tantoslenguajes 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 lasiguiente 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. 5. FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngenierí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 nuevosproblemas y las nuevas necesidades, lo que los deja inmersos en un mundo dinámico ycompetente. Esto también, exige de parte de la persona que se dedica a laprogramació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 aobjetos y, siendo coherentes con el capítulo anterior, también existen lenguajesproductos de las ramificaciones de los paradigmas estandarizados y de las intencionesmultiparadigmas. A continuación, la evolución de los lenguajes hasta el año 2000 en lafigura 2. INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES Metodología de la programación Luis Eduardo Peláez Valencia
  6. 6. FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y Telecomunicaciones Figura 2. Evolución de los lenguajes de programaciónEn conclusión, quien piense que elegir un lenguaje de programación es cuestión de modao de dificultad/facilidad, debe re-pensar en los paradigmas, las tendencias, los lenguajeso lo que cada uno de ellos llega a resolver. La selección de un lenguaje adecuado es uncompromiso con el que un buen diseñador/programador se compromete a tener encuenta en primera instancia el problema que se quiere resolver y su adaptación adeterminado paradigma, luego el nivel de abstracción deseado del problema y el nivel deabstracción que ofrecen los lenguajes, para, finalmente, evaluar la arquitecturahardware y el alcance de todo el sistema de información con el que interactuará lasolución deseada. Así, el lenguaje de programación no juega un papel de estética, ni demoda, sino de compañero o “partner” en la solución que se busca para un problemaobjeto de solución computacional INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES Metodología de la programación Luis Eduardo Peláez Valencia
  7. 7. FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y TelecomunicacionesBIBLIOGRAFÍAANSI. (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_ZwCalderó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.pdfCarrillo 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.pdfCasas, 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.pdfFerná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.pptFerná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.pdfFowler, M. (2003). La Nueva Metodología. Recuperado el 12 de Mayo de 2010, de Programación Extrema: http://www.programacionextrema.org/articulos/newMethodology.es.htmlIEEE. (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. 8. FACULTAD CIENCIAS BÁSICAS E INGENIERÍAIngeniería de Sistemas y TelecomunicacionesIEEE, 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-moprosoftRumbaugh, 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

×