Una Teoría Para El Desarrollo Software Construida Mediante Técnicas Y Modelos De Gestión Del Conocimiento
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDADE DA CORUÑA FACULTAD DE INFORMÁTICA Departamento de Tecnologías de la Información y de las Comunicaciones Tesis Doctoral UNA TEORÍA PARA EL DESARROLLO SOFTWARE CONSTRUIDA MEDIANTE TÉCNICAS Y MODELOS DE GESTIÓN DEL CONOCIMIENTO. Autor: Ingeniero María Aurora Martínez Rey. Directores: Doctor Juan M. Ares Casal. Doctor Alfonso Rodríguez-Patón. A Coruña, mayo del 2008 RESUMEN En esta tesis se muestra y demuestra, cómo la ecuación fundamental del conocimiento, aplicada al propio conocimiento, mejora éste. Naturalmente, ésta es la forma de trabajar de los científicos en sus investigaciones, pero aquí se trata de probar que, usando técnicas de gestión del conocimiento, cualquier especialista en una materia puede sacar provecho de dicha ecuación. En este trabajo, se eligió el dominio del desarrollo del software como marco donde investigar la tesis propuesta. Así, en primer lugar, se detectó que el conocido “gap” entre el desarrollo del hardware” y el del software es básicamente consecuencia de que el primero tiene una verdadera ingeniería que lo soporta y por lo tanto, una ciencia que lo avala y fundamente; respectivamente, la electrónica y la física, en tanto la segunda, es aún más un arte que una ingeniería sin teoría científica que la avale. Por ello, la propuesta que se hace es presentar una teoría que convierta el desarrollo software en una verdadera ingeniería. Con esto “in mente”, se han establecido las condiciones formales y materiales de adecuación de cualquier teoría. A continuación, utilizado el teorema de Löwehim-Skolem y la generación de los números ordinales a partir del vacío, por von Neumann, se demuestra la factibilidad de dicha teoría. Posteriormente, y tomando como dominio la programación funcional, y más en concreto la “curryficación”, se comprueba la viabilidad de la teoría. Para, finalmente, proponer una teoría que, cumpliendo los requisitos exigibles a cualquier teoría, fundamenta el desarrollo software. Más aún, pues la teoría propuesta es tan amplia y robusta que pude aplicarse a cualquier sistema de información incluido el ADN y el Cerebro. Para contrastarla, se proponen, en todos estos dominios, distintos experimentos cruciales que, supuestamente, son capaces de falsarla. Como resultados concretos se han obtenido los siguientes: A) Establecimiento de los límites computacionales en 10 50 operaciones por segundo y 10 31 bits de memoria, para un “mentefacto” de 1kg. B) Que la conjunción del teorema de Löwehim-Skolem y la propuesta de generación de ordinales de von Neumann son suficientes para establecer una teoría para el III desarrollo del software. De paso, y como resultado añadido, se ve que la expresión de Kronecker sobre la creación de los números enteros hay que modificarla en el siguiente sentido: Dios creó el vacío, el hombre hizo el resto. C) La idea de la Programación funcional de Frege y Schöfinkel que desarrolló Curry, establece la efectividad de una teoría axiomática para el desarrollo software. D) Se propone una teoría con dos constructos y tres postulados, no sólo para el desarrollo software, sino también para cualquier sistema de información. E) Finalmente, y como efecto colateral, se muestra como Leibniz plagió al español Caramuel en la creación del sistema binario de numeración. IV ABSTRACT This thesis shows and proves how the elementary knowledge equation, applied to knowledge itself, improves knowledge. This is, of course, the way in which scientists pursue their research. Here, however, we demonstrate that, using knowledge management techniques, any specialist in a subject can benefit from the knowledge equation. In this work, the domain of software development was chosen as the framework for researching the proposed thesis. First, it was found that the well-known gap between hardware development and software development is basically a consequence of hardware being underpinned by a genuine engineering discipline —and therefore backed and supported by science, respectively, electronics and physics—, whereas software is still more of an art than engineering without any underlying scientific theory. The proposal then is to put forward a theory that converts software development into a true engineering discipline. Bearing this in mind, the formal and material adequacy conditions have been established for any theory. Then the feasibility of the proposed theory was proved using the Löwenheim-Skolem theorem and von Neumann’s ordinal number generation from vacuum. Subsequently, the theory was tested in the functional programming domain and, specifically, on curryfication. Finally, we propose a theory that, conforming to the requirements placed on any theory, underpins software development. Moreover, the proposed theory is broad and robust enough to be applied to any information system, including DNA and the brain. To prove this, a number of crucial experiments are proposed for all domains, which should falsify the theory. The findings are as follows: A) The computational limits for a 1kg mindfact are 10 50 operations per second and 10 31 bits of memory. B) The combination of the Löwenheim-Skolem theorem and von Neumann’s ordinal generation proposal are sufficient to establish a software development theory. As a spin-off, it was found that what Kronecker said about integer number creation needs to be restated as “ God made the vacuum; all else is the work of man”. V C) Frege and Schöfinkel’s idea of functional programming, developed by Curry, establishes the effectiveness of an axiomatic theory for software development. D) The proposed theory, which has two constructs and three postulates, applies not only to software development, but also to any information system. E) An incidental finding is that Leibniz plagiarized the Spaniard Caramuel’s binary numbering system. VI AGRADECIMIENTOS En primer lugar quisiera agradecer a mi familia el apoyo y comprensión incondicional que me han dado en todo momento, definitivamente sin ellos jamás hubiese llegado hasta aquí. En especial quiero destacar el esfuerzo de mis padres a fin de darme una educación que me permitiera tener unos cimientos lo suficientemente fuertes para poder alcanzar esta meta: A mi madre, por su constante dedicación, cariño y lucha para que continuara “al pie del cañón”. A mi padre, por su ejemplo incasable de trabajo y fortaleza, quien hasta en sus últimos momentos me enseñó la importancia de seguir adelante haciendo frente a las adversidades por grandes que fueran. También agradezco muy especialmente a mi hermana porque sin su ayuda, compañía y consejos, seguramente, no hubiese llegado más allá de la mitad del camino. También quiero agradecer a mis directores de tesis Profesores Doctores Juan Ares Casal y Alfonso Rodríguez-Patón Aradas, su comprensión y confianza en este trabajo tan arriesgado, sobre todo antes de presentarles resultados concretos. Naturalmente, sus consejos directos o indirectos fueron de valiosa ayuda para llevar a buen fin la investigación. Asimismo, en sus opiniones y conocimientos sobre la teoría propuesta en la que ellos habían trabajado previamente. Sin ellos, este trabajo no se habría llevado a cabo, en el peor de los casos, y en el mejor, no de ésta manera. Asimismo, quisiera mostrar mi reconocimiento a Javier Andrade y colegas, por permitirme usar sus propuestas experimentales como piedra de toque de la teoría propuesta. Mención aparte, merece el profesor Juan Pazos Sierra. Su apoyo, ayuda, ideas, conocimientos y críticas fueron esenciales tanto para la elección como el desarrollo de la investigación. Sólo voy a citar dos ejemplos de su apoyo crítico y sin contemplaciones para con la doctoranda. El primero, se produjo cuando, al explicarle el objeto de la tesis, me dijo: “Yo en estos casos siempre le doy a los doctorandos el siguiente consejo: Intenta una cosa que no has hecho tres veces. Una, para perderle el miedo a hacerlo. La segunda, para aprender a hacerlo. Y, la tercera, para ver si te gusta o no. ¡Ah! Y en cuanto veas que sabes hacer algo, inmediatamente ponte a hacer algo que no sepas”. Es decir, se creativa, perseverante y, por supuesto, la tesis no estará lista hasta que la escribas y reescribas al menos tres veces. El segundo, fue, tal vez, más descorazonador, fue cuando, al contarle en que quería trabajar, me soltó: “Hasta que te hayas leído el Menón de Platón (Platón, 1969) y entiendas VII perfectamente lo que es el método socrático de la “mayéutica”; es decir, el arte de, mediante el diálogo inquisitivo de pregunta-respuesta, alumbrar los espíritus, no quiero volver a hablar contigo de este asunto. Eso sí, después, en un tono menos perentorio, me empezó a hablar de Platón y los filósofos griegos clásicos, que me hizo aprender más de filosofía y ciencia que todo lo que me habían explicado y, o, leído hasta entonces. Posteriormente, y ya como fuente de conocimiento, fue una auténtica mina. No sólo me contestó con precisión y erudición a todo lo que le pregunté sino que sus consideraciones me hacían replantear mi investigación, haciendo ésta más productiva y eficiente. Y esto es de tal modo así, que tanto las ideas aportadas y los resultados obtenidos, como los métodos empleados para conseguirlos son tanto o más de él que míos. Naturalmente, el trabajo que implica todo ello es de la doctoranda, pero lo que quiero señalar es que cuando exponía una idea, absolutamente original para mí, él sin decirlo, ya parecía conocerla de toda la vida e inmediatamente me indicaba los problemas y dificultades que iba a encontrar en su desarrollo y verificación. Pero es que, además, Pazos siempre me insistió en que la mayéutica debe conducir a la claridad para que finalmente todo el mundo entendiera el conocimiento aflorado. Al respecto, ponía el ejemplo del premio Nobel de Física de 1965 Richard Philips Feyman (1918-1988). Éste en cierta ocasión fue requerido por un miembro del claustro del Caltech, donde trabajaba, para que le explicase por qué las partículas de espín un-medio obedecen a la estadística de Fermi-Dirac, en vez de la de Bose-Einstein.