U1T2 - El concepto de la programación Vs el concepto de la MetodologíaU1 t2 el concepto de la...

9
FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA Ingeniería de Sistemas y Telecomunicaciones METODOLOGÍA DE LA PROGRAMACIÓN Metodología de la programación Prof. Luis Eduardo Peláez Valencia UNIDAD I TEMA II EL CONCEPTO DE LA PROGRAMACIÓN Vs EL CONCEPTO DE METODOLOGÍA: ALGUNOS APORTES QUE PUEDEN INICIAR LA DISCUSIÓN ALREDEDOR DE SU DIFERENCIA. El presente documento pretende entregar algunos aportes que servirán para promover la diferencia y la reflexión entre los conceptos: programación de computadoras y la metodología de programación de computadores. Algunos aportes, unos aislados, otros coherentes, tienen fundamento en autores con amplia trayectoria en el campo. Finalmente, lo que se busca es sentar posición entre la diferencia que hay alrededor de ambos conceptos y las competencias que cada sujeto debe tener para llevar a cabo cualquiera de ellas: programación o metodología. LA PROGRAMACIÓN ORIENTADA A OBJETOS: ALGUNOS APUNTES, REFLEXIONES E HISTORIA SOBRE EL PARADIGMA. Después de la programación secuencial, la programación lineal, la programación estructurada o enfocada a los datos y otras más fruto de mezclas entre las anteriores, aparece la Programación Orientada a Objetos (POO), tal vez reconocida como el paradigma 1 de programación más utilizado en la disciplina de la ingeniería del software en los últimos años. La POO configura una serie de nuevos enfoque a los retos que se plantean en la programación estructurada 1 RAE. paradigma. (Del lat. paradigma, y este del gr. παράδειγμα). 1. m. Ejemplo o ejemplar. 2. m. Ling. Cada uno de los esquemas formales en que se organizan las palabras nominales y verbales para sus respectivas flexiones. 3. m. Ling. Conjunto cuyos elementos pueden aparecer alternativamente en algún contexto especificado; p. ej., niño, hombre, perro, pueden figurar en El -- se queja.

description

La importancia de reflexionar sobre la diferencia entre Programación Orientada a Objetos y Metodología de la Programación Orientada a Objetos. Puede solicitar informacion adicional a [email protected]

Transcript of U1T2 - El concepto de la programación Vs el concepto de la MetodologíaU1 t2 el concepto de la...

  • 1. FACULTAD DE CIENCIAS BSICAS E INGENIERA Ingeniera de Sistemas y TelecomunicacionesMETODOLOGA DE LA PROGRAMACINUNIDAD I TEMA IIEL CONCEPTO DE LA PROGRAMACIN Vs EL CONCEPTO DE METODOLOGA: ALGUNOS APORTES QUE PUEDEN INICIAR LA DISCUSIN ALREDEDOR DE SU DIFERENCIA.El presente documento pretende entregar algunos aportes que servirn parapromover la diferencia y la reflexin entre los conceptos: programacin decomputadoras y la metodologa de programacin de computadores.Algunosaportes, unos aislados, otros coherentes, tienen fundamento en autores conamplia trayectoria en el campo. Finalmente, lo que se busca es sentar posicinentre la diferencia que hay alrededor de ambos conceptos y las competencias quecada sujeto debe tener para llevar a cabo cualquiera de ellas: programacin ometodologa. LA PROGRAMACIN ORIENTADA A OBJETOS: ALGUNOS APUNTES, REFLEXIONES E HISTORIA SOBRE EL PARADIGMA.Despus de la programacin secuencial, la programacin lineal, la programacinestructurada o enfocada a los datos y otras ms fruto de mezclas entre lasanteriores, aparece la ProgramacinOrientada a Objetos (POO), tal vezreconocida como el paradigma1 deprogramacin ms utilizado en ladisciplina de laingenieradelsoftware en los ltimos aos.La POO configura una serie denuevos enfoque a los retos que se plantean en la programacin estructurada1 RAE. paradigma. (Del lat. paradigma, y este del gr. ). 1. m. Ejemplo o ejemplar. 2. m. Ling.Cada uno de los esquemas formales en que se organizan las palabras nominales y verbales para susrespectivas flexiones. 3. m. Ling. Conjunto cuyos elementos pueden aparecer alternativamente en algncontexto especificado; p. ej., nio, hombre, perro, pueden figurar en El -- se queja.Metodologa de la programacin Prof. Luis Eduardo Pelez Valencia

2. FACULTAD DE CIENCIAS BSICAS E INGENIERAIngeniera de Sistemas y Telecomunicaciones METODOLOGA DE LA PROGRAMACINcuando los problemas a resolver son complejos. Al contrario que la programacinprocedimental que enfatiza en los algoritmos, la POO enfatiza en los datos y lasacciones que estos requieren para ser manipulados. En lugar de intentar ajustarun problema al enfoque procedimental de un lenguaje, POO intenta ajustar ellenguaje al problema. La idea es disear formatos de datos que se correspondancon las caractersticas esenciales de un problema. (BROOKSHEAR, 2006)Desde su concepcin y a travs de su historia, la POO ha tenido como objetivocentral, facilitar la modelacin y/o simulacin del mundo real en un mundocomputacional. En el mundo real cada elemento se puede reconocer como unOBJETO y un grupo de objetos que comparten caractersticas y/o propiedades sepueden identificar como una CLASE. As, LaPOO permitefabricar programas de forma ms parecida al pensamiento humano. De hecho simplifica el problema dividindolo en objetos y permitiendo centrarse en cada objeto, para de esa forma eliminar la complejidad. Cada objeto se programa de forma autnoma yesa es la principal virtud. Al aparecer la programacin orientada a objetos (1980s.Aunque se reconoce la aparicin de Simula 67 como sus primeros pasos, es enesta poca donde oficialmente se le reconoce como paradigma), aparecieronvarios lenguajes orientados a objetos y tambin se realizaron versiones orientadasa objetos (o semiorientadas a objetos) de lenguajes clsicos. (Snchez, 2004).Metodologa de la programacin Prof. Luis Eduardo Pelez Valencia 3. FACULTAD DE CIENCIAS BSICAS E INGENIERA Ingeniera de Sistemas y TelecomunicacionesMETODOLOGA DE LA PROGRAMACINResulta adecuado reconocer que la aparicin de la programacin orientada aobjetos tuvo eco algunos aos despus de su aparicin, porque se empezaron acomprobar las bondades que sus antecesores tenan como problemas: Un cdigo enmaraado (cdigo spaghetti2) por un cdigo ms organizado ycomprensible. La independencia de los conceptos: antes, quien haca un programatambin deba disear los datos que soportaran los flujos de ese programa.Ahora hay independencia absoluta entre los procesos, las acciones, loseventos y los almacenes de datos a los que llegar la informacinresultante (Ullman., 1994). La reusabilidad: en los paradigmas anteriores a la POO cada necesidadtena que ser programada, aunque entre requisito y requisito existiera unamnima diferencia. Lo mximo que lograban los programadores paraahorrar tiempo erra copiar el cdigo de una funcin o un procedimiento enotro nuevo para hacer los cambios del nuevo proceso.Ahora, con lareusabilidad se permite que un componente pueda ser utilizado para variossistemas sin que requiera modificacin. Entre otros.Es importante destacar que cuando hacemos referencia a la POO no estamoshablando de unas cuantas caractersticas nuevas aadidas a un lenguaje deprogramacin. Estamos hablando de una nueva forma de pensar acerca delproceso de descomposicin de problemas y de desarrollo de soluciones deprogramacin.La programacin orientada a objetos surge en la historia como un intento paradominar la complejidad que, de forma innata, posee el software. Tradicionalmente,2 El cdigo spaghetti es un trmino peyorativo para los programas de computacin que tienen una estructurade control de flujo compleja e incomprensible. Un programa que se escribe a medida que se hace unasolicitud o se detecta un problema; sin control de documentacin, sin metodologa, sin reglas.Metodologa de la programacin Prof. Luis Eduardo Pelez Valencia 4. FACULTAD DE CIENCIAS BSICAS E INGENIERAIngeniera de Sistemas y Telecomunicaciones METODOLOGA DE LA PROGRAMACINla forma de enfrentarse a esta complejidad era empleando lo que se conoce comoprogramacin estructurada, que consiste en descomponer el problema objeto deresolucin en subproblemas y ms subproblemas hasta llegar a acciones muysimples y fciles de codificar. Se trata de descomponer el problema en acciones,en verbos. En el ejemplo de un programa que resuelva ecuaciones de segundogrado, descomponamos el problema en las siguientes acciones: primero, pedir elvalor de los coeficientes a, b y c; despus, calcular el valor del discriminante; y porltimo, en funcin del signo del discriminante, calcular ninguna, una o dos races.Como podemos ver, descomponamos el problema en acciones, en verbos; porejemplo el verbo pedir, el verbo hallar, el verbo comprobar, el verbo calcular(Izquierdo, 2007)La POO es otra forma de descomponerproblemas. Este nuevo mtododedescomposicin es la descomposicin enobjetos; fijarse no en lo que hay que haceren el problema, sino en cul es el escenarioreal del mismo, e intentar simular eseescenario en nuestro programa. (Idem)Los lenguajes de programacin tradicionales no orientados a objetos, como C,Pascal, BASIC, o Modula-2, basan su funcionamiento en el concepto deprocedimiento o funcin. Una funcin es simplemente un conjunto de instruccionesque operan sobre unos argumentos y producen un resultado. De este modo, unprograma no es ms que una sucesin de llamadas a funciones, ya sean stas delsistema operativo, proporcionadas por el propio lenguaje, o desarrolladas por elmismo usuario (M. Abadi, 1996). Metodologa de la programacinProf. Luis Eduardo Pelez Valencia 5. FACULTAD DE CIENCIAS BSICAS E INGENIERA Ingeniera de Sistemas y TelecomunicacionesMETODOLOGA DE LA PROGRAMACINEn el casode loslenguajes orientadosaobjetos, como es el casode C++, PHP y Java, elelemento bsico no es lafuncin,sino un entedenominado precisamenteobjeto. Un objeto es larepresentacinen unprograma de un concepto,ycontienetoda lainformacinnecesariapara abstraerlo: datos quedescriben sus propiedades y operaciones que pueden realizarse sobre losmismos. La programacin orientada a objetos es una nueva forma de pensar, unamanera distinta de enfocar los problemas.En resumen, la programacin orientada a objetos es la accin de programarcomputadoras que aparece por la trascendencia que deban tener los lenguajessecuenciales, estructurados, imperativos, etc., para resolver los problemas quecada vez se iban presentando con mayor complejidad. De ah que su nombresiempre especifique que es ORIENTADA; lo que quiere decir que tuvo unaconcepcin inicial de paradigmas tradicionales, pero que poco a poco se fueacomodando a los objetos. As, podemos reconocer entonces que tambin existeun paradigma de objetos, el que no es orientado porque su filosofa de creacinsiempre fueron las clases y los objetos. Metodologa de la programacinProf. Luis Eduardo Pelez Valencia 6. FACULTAD DE CIENCIAS BSICAS E INGENIERA Ingeniera de Sistemas y TelecomunicacionesMETODOLOGA DE LA PROGRAMACINEn su texto (Aragon M., 2005) aseguraque los lenguajes orientados a objetos,en algn momento partierondeunlenguaje base que era de paradigmaslineales y estructurados, y a medida queibanincorporandomejorasquepermitieran aplicar el paradigma orientadoaobjetos, seiban convirtiendoenlenguajes orientados a objetos. Con baseen este argumento podemos decir, porejemplo, que Java no es orientado aobjetos sino un lenguaje de objetos; puesdesde su concepcin se pens en esta filosofa como el estndar del mismo. Javaes lenguaje de un solo paradigma: el de clases y objetos. LA METODOLOGA DE LA PROGRAMACIN: DIFERENCIACIN CONLA ACCIN DE CODIFICIAR O PROGRAMAR.Hablar de metodologa3 resulta confuso, engorroso y un trmino que es ms fcilevadir que enfrentar, sobre todo en programas donde la norma es hablar de TICs(Tecnologas de Informacin y Comunicacin).El concepto hace referencia a los mtodos de investigacin que permiten lograrciertos objetivos en una ciencia. La metodologa tambin puede ser aplicada alarte, a la ingeniera, en fin, a todas las disciplinas que requieran en su quehacer3 RAE metodologa. (Del gr. , mtodo, y -loga). 1. f. Ciencia del mtodo. 2. f. Conjunto de mtodosque se siguen en una investigacin cientfica o en una exposicin doctrinal. Metodologa de la programacinProf. Luis Eduardo Pelez Valencia 7. FACULTAD DE CIENCIAS BSICAS E INGENIERAIngeniera de Sistemas y Telecomunicaciones METODOLOGA DE LA PROGRAMACINuna observacin rigurosa. Por lo tanto, la metodologa es el conjunto de mtodosque rigen una investigacin cientfica o en una exposicin doctrinal.En otras palabras la metodologa es una etapa o conjunto de etapas especficas ydetalladas que precede a las acciones necesarias para concretar un proceso oproducto, y que procede de una posicin terica, analtica, epistemolgica.As, hablar de PROGRAMACIN es comnmente un llamado a la accin decodificar, de interactuar con la mquina a travs de una serie de smbolos oinstrucciones que, al escribirse, permiten que una computadora lleve a cabodeterminadas tareas. Esta accin de codificar no lleva inmerso el concepto delprofundo anlisis de la necesidad, ni el estudio de las herramientas adecuadas, nila estimacin del esfuerzo para lo que se va a generar, de tal manera que lamayora de las acciones quedan disponibles a lo que ocurra con la aplicacin delensayo y error. No hay planeacin previa de las acciones, por lo tanto, no sepuede medir si los resultados son o eran los esperados. Visto de esta forma,puede ser una competencia del hacer que se logra desarrollar mediante estudios tcnicosy/o tecnolgicos, nivelesaquienes est encomendado el hacer y el saber hacer. Sinembargo, hablar de METODOLOGAllevaa trabajarenuna seriede estrategias organizadas que permiten visualizar, desde el todo hasta el detalle, la forma en que la solucin a unMetodologa de la programacin Prof. Luis Eduardo Pelez Valencia 8. FACULTAD DE CIENCIAS BSICAS E INGENIERAIngeniera de Sistemas y Telecomunicaciones METODOLOGA DE LA PROGRAMACINproblema tuvo su concepcin, su anlisis, su modelacin, su desarrollo. Esta si esuna competencia que requiere una formacin ms exigente que el nivel tcnico.Por ello es un llamado a que el personal dedicado a la ingeniera, logre desarrollardicha competencia y logre evidenciar diferencias entre la solucin que resulta deun problema abordado por profesionales y un problema abordado por personasque no alcanzan dicho nivel de formacin.Una metodologa de programacin es un conjunto o sistema de mtodos,principios y reglas que permiten enfrentar de manera sistemtica el desarrollo deun programa que resuelve un problema algortmico. Estas metodologasgeneralmente se estructuran como una secuencia de pasos que parten de ladefinicin del problema y culminan con un programa que lo resuelve (Giraldo &Nio, 2009). A continuacin se presenta de manera general, no tan compleja, lospasos de una metodologa de programacin: El dilogo, estudio de campo o establecimiento de requisitos: con la cual se busca comprender totalmente el problema a resolver La especificacin, validacin o educcin: con la cual se establece de manera precisa las entradas, salidas y las condiciones que deben cumplir El diseo o la modelacin: en esta etapa se construyen los elementos o artefactos necesarios para que respondan de manera coherente a la solucin (algoritmos, modelos, etc). La codificacin o programacin: la accin de traducir el diseo o la modelacin a un lenguaje de programacin Prueba y verificacin: se realizan pruebas del programa codificado con el objetivo de encontrar errores que no han sido detectados previamente. Documentos: sistematizacin de la documentacin requerida para su implementacin.Metodologa de la programacin Prof. Luis Eduardo Pelez Valencia 9. FACULTAD DE CIENCIAS BSICAS E INGENIERA Ingeniera de Sistemas y TelecomunicacionesMETODOLOGA DE LA PROGRAMACINDe esta forma, resulta importante seguir reflexionando y permitiendo el debateentre la Programacin Orientada a Objetos y la Metodologa de la Programacin.BIBLIOGRAFAAragon M., F. (2005). Introduccin a la Programacin Orientada a Objetos. Madrid.BROOKSHEAR, J. G. (2006). Computer Science, Eigth ed. Boston (USA): Pearson/Addison- Wesley.Giraldo, G., & Nio, L. (03 de 09 de 2009). Universidad Nacional de Colombia, Direccin Nacional de Servicios Acadmicos Virtuales. Recuperado el 26 de 11 de 2010, de http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/index.htmlIzquierdo, L. (2007). Resources for computer modelling. Recuperado el 23 de 01 de 2011, de http://luis.izqui.org/resources.htmlM. Abadi, L. C. (1996). A Theory of Objects (Paradigma Orientado Objeto). Springer.Snchez, J. (2004). JAVA 2. Madrid: Snchez, Jorge. Bajo Lic. Creative Commons.Ullman., J. D. (1994). ML Programming. (Paradigma Declarativo Funcional, ML). Prentice Hall.Metodologa de la programacin Prof. Luis Eduardo Pelez Valencia