La experimentación crucial basada en una teoría de holones e informones para el desarrollo de software
- J. Andrade Garda Director
- Rafael García Vázquez Director
Defence university: Universidade da Coruña
Fecha de defensa: 23 October 2009
- Juan Pazos Sierra Chair
- Bernardino Arcay Secretary
- A. Pazos Committee member
- Fernando Alonso Amo Committee member
- Anselmo del Moral Bueno Committee member
Type: Thesis
Abstract
A pesar de estar estrechamente relacionados, la lenta evolución del software contrasta con la rápida y eficiente evolución del hardware, Entre las razones para argumentar esta afirmación destacan la inexistencia de una teoría científica de soporte al desarrollo de software y la escasez de experimentación, en particular, en base a la teoría; lo cual sí existe para el desarrollo del hardware. El objetivo esencial de esta tesis es lograr que el desarrollo de software abandone esta tendencia estacionaria en su evolución y avance de forma similar al hardware. Para ello, es preciso plantear soluciones a los obstáculos fundamentales anteriores. Con respecto a la falta de teoría, es posible afirmar que en el desarrollo de software, salvo rarísimas excepciones, ni siquiera hay leyes generales comúnmente aceptadas. Más aún, existe una clara tendencia hacia lo que se puede definir como "nuevo experimentalismo", según el cual una teoría es una explicación de algún fenómeno, lo cual no es correcto, puesto que no todas las explicaciones de fenómenos son teorías Esta clara inexistencia de una teoría se contrapone a la realidad cotidiana de otros ámbitos de la Ciencia, donde sí están establecidas formalmente teorías sobre las que basar los estudios o contraponer los experimentos. Por lo tanto, el primer subobjetivo de esta tesis es definir una teoría de soporte al desarrollo de software, basada en los conceptos de holón, informón y sus adyacentes. Por otro lado, mucho de lo que se cree acerca de los distintos enfoques pertenecientes al desarrollo de software se basa en anécdotas, intuiciones, opiniones de expertos e investigación defectuosa; en vez de en cuidadosa experimentación. Sin embargo, si se desea avanzar por el camino de la ciencia, la realización de experimentos es imprescindible, pero no cualquier experimento. La tipología de experimentos que se consideran en esta tesis se basa en el grado de dificultad intelectual de los mismos. De este modo, los experimentos pueden ser Cruciales o Vulgares. La Experimentación Crucial es aquella en la que unos pocos experimentos son suficientes para confirmar o falsar las hipótesis, leyes o teorías. A su vez, puede ser Real (i.e. Descomposición de la luz de Newton; Existencia del Éter de Michelson-Morley) o Mental (i.e. Refutación de la Caída de los Graves de Galileo; Imposibilidad de violación del Segundo Principio de la Termodinámica de Maxwell). En cambio, en la Experimentación Vulgar se necesitan muchos experimentos para obtener alguna conclusión. A su vez, este tipo de experimentación puede basarse en la estadística (i.e. Diseño Experimental de Fisher; Análisis de Dispersión por Matrices de Varianza y Covarianza) o en otros métodos (i.e. Técnicas de Optimización como Gradiente o Análisis Factorial; Benchmarking). Claramente, la Experimentación Crucial presenta el mayor grado de dificultad intelectual y, quizás por este motivo, ha sido el vehículo para los avances científicos más significativos. Sin embargo, la escasa experimentación existente en desarrollo de software se encuentra principalmente el nivel Vulgar, limitándose, casi exclusivamente, al test de hipótesis. Por lo tanto, el segundo subobjetivo planteado en esta tesis es la definición un proceso de Experimentación Crucial, en base a la teoría desarrollada a partir del primer subobjetivo. Este proceso se ejecutará sobre los modelos conceptuales obtenidos en el desarrollo de software ya que, desde el punto de vista de la experimentación, un modelo para un problema se puede considerar como una hipótesis, la cual se deberá verificar o falsar a través de un proceso definido de Experimentación Crucial. Así, se posibilitará la escenificación de una situación experimental regida por principios teóricos, captando su esencia sin entrar en detalles engorrosos.