Mostrando entradas con la etiqueta SoftwareView. Mostrar todas las entradas
Mostrando entradas con la etiqueta SoftwareView. Mostrar todas las entradas

DSN_XP y el pensamiento de Floyd

Codificar como análisis

Desarmar para comprender

Informe de Stanford, 7 de noviembre de 2001 
Robert Floyd, pionero en la programación informática, muere a los 65 años

DAWN LEVY

... "En los viejos tiempos, los programadores simplemente jugaban con los programas hasta que parecían funcionar", dice el profesor emérito de El arte de la programación informática, Donald Knuth. 

Este primer enunciado, nos evidencia la presencia del modelo codificar y corregir como el modelo de desarrollo más básico asociado a la programación, lo mismo que descubrimos con DSN_XP 

"Floyd demostró que había una manera de probar que los programas funcionarían". Su enfoque de casar las matemáticas con la informática fue "una revelación para el campo", dice Knuth.

"El método de invariantes de la década de 1960 de Floyd, en el que las afirmaciones se adjuntan a puntos en un programa de computadora, sigue siendo la base de mucho trabajo para demostrar que los programas de computadora cumplen con sus especificaciones", dice John McCarthy, profesor emérito de ciencias de la computación.

En el mirar de Floyd, entendemos algunos de los criterios con los cuales fuimos formados como analistas programadores bajo la malla curricular insertada en el modelo educativo del Ecuador, debido a la necesidad de observar a la programación como un flujo de estados y eventos que determinan el comportamiento de lo que se ha programado en base a las restricciones del lenguaje de programación y consecuentemente, del paradigma de diseño requerido para el proceso de abstracción y transformación en código programable.

Biografía 

Robert Floyd, pionero de la programación
Nacido en Nueva York el 8 de junio de 1936, Floyd fue reconocido como un niño prodigio a los 6 años; se saltó tres grados y terminó la escuela secundaria a los 14 años. Una beca le permitió estudiar en la Universidad de Chicago, donde recibió una licenciatura en artes liberales en 1953 a los 17 años. Después de eso, se mantuvo a sí mismo y obtuvo otra licenciatura en física. en 1958.

Toda su carrera en computación se basó en esfuerzos autodidactas”, recuerda su segunda ex esposa, Christiane Floyd, científica informática de la Universidad de Hamburgo en Alemania. 
"Comenzó como operador en el turno de noche, aprendió por sí mismo a programar, comenzó a publicar a principios de la década de 1960 y volvió a ingresar a la academia como profesor asociado en Carnegie Mellon a la edad de 27 años. Tenía solo 32 años cuando obtuvo su título". cátedra completa en Stanford".

Aunque nunca realizó los trámites para obtener un doctorado, antes de su nombramiento como profesor asociado de informática en Stanford en 1968, había escrito al menos una docena de artículos considerados superiores a cualquier tesis doctoral en informática en ese momento. Uno de los temas más candentes en informática en ese momento era el lenguaje de programación de computadoras. Dice Knuth: "Solo hubo cuatro buenos artículos sobre el tema, todos de Floyd".

Su investigación incluyó el diseño y análisis de algoritmos para encontrar las rutas más cortas en una red, analizar (descomponer) lenguajes de programación, calcular cuantiles, imprimir tonos de gris en una impresora de puntos, clasificar información y seleccionar permutaciones y combinaciones aleatorias.

Sin embargo, su logro científico más importante fue ser pionero en métodos sistemáticos de verificación de programas. Su artículo seminal de 1967, "Asignación de significados a los programas", abrió el campo de la verificación de programas. Su idea básica era adjuntar las llamadas "etiquetas" en forma de aserciones lógicas a declaraciones o ramas de programas individuales que definirían los efectos del programa en función de una definición semántica formal del lenguaje de programación. 
Muchos investigadores en métodos formales de computación en todo el mundo adoptaron este método. Una de las influencias más importantes fue la de CAR Hoare, quien en 1969, a partir del trabajo de Floyd, desarrolló su cálculo de la semántica de precondiciones y poscondiciones para programas de computadora.

Al principio, Knuth y Floyd encontraron sus intercambios académicos tan productivos que decidieron que tenían que estar en la misma institución, y ambos vinieron a Stanford. Los dos estaban en comunicación constante cuando Knuth estaba trabajando en su libro El arte de la programación informática (originalmente destinado a ser un volumen), que se suponía que reuniría todos los algoritmos interesantes que la informática tenía para ofrecer. Pero Knuth no pudo terminar su libro. Mientras escribía, tenía que lidiar constantemente con algoritmos nuevos y elegantes que necesitaba acomodar. Floyd, el principal revisor previo a la publicación del libro y la persona citada más que nadie en el libro, fue el principal "culpable".

Floyd puede haber sido el primer defensor de la refactorización: la reescritura de programas de trabajo desde cero, reutilizando solo las ideas esenciales. La refactorización es ahora una práctica estándar entre los programadores de computadoras. Al buscar continuamente formas más simples de hacer lo mismo, Floyd pretendía mejorar no solo los programas, sino también las habilidades y la comprensión de los programadores.

En Stanford, enseñó cursos algorítmicos, incluidos "Clasificación y búsqueda". Con su antiguo alumno de posgrado Richard Beigel, escribió un libro de texto titulado El lenguaje de las máquinas: una introducción a la computabilidad y los lenguajes formales (Computer Science Press, 1994).

Floyd fue presidente del Departamento de Ciencias de la Computación de 1973 a 1975, un período de gran crecimiento del departamento cuando Ciencias de la Computación se mudó de Forsythe Hall a Margaret Jacks Hall, ubicado en un lugar más céntrico. Floyd pudo usar el prestigio de su puesto junto con Amnistía Internacional y un cuadro internacional de científicos de sistemas para ayudar a salvar al exministro de Educación de Chile, Fernando Flores, quien fue relegado por el gobierno de Pinochet a uno de los peores campos de prisioneros de Chile. Sobre la base de una invitación para estudiar en Stanford, emitida por Floyd, a Flores se le permitió salir del país con su familia;

En 1978, Floyd ganó el Premio Turing de la Asociación de Maquinaria de Computación (ACM), el más alto honor en ciencias de la computación, "por tener una clara influencia en las metodologías para la creación de software eficiente y confiable, y por ayudar a fundar los siguientes importantes subcampos de la informática: la teoría del análisis sintáctico, la semántica de los lenguajes de programación, la verificación automática de programas, la síntesis automática de programas y el análisis de algoritmos".

En 1991, la Sociedad de Computación del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) le otorgó a Floyd su premio Computer Pioneer por su trabajo en los primeros compiladores. (Un compilador es un software que traduce un programa de computadora como un todo en un código de máquina que se guarda para su ejecución posterior en el momento deseado).

Floyd, quien se retiró de Stanford en 1994, fue miembro de la Academia Estadounidense de las Artes y las Ciencias, la Asociación Estadounidense para el Avance de la Ciencia y la ACM.

DSN_XP y el tablero de ideas

DSN_XP.Tablero



Necesitábamos un tablero de ideas para organizar formalmente los lineamientos propuestos por DSN_XP como escuela de pensamiento sobre el diseño de software en Ecuador.

Decidimos aplicar DSN_XP para hacer ingeniería inversa a DSN_XP como metodología de investigación científica del software.

La idea de crear un tablero como blog fue posible gracias a las sugerencias de varias personas que desean seguir nuestras ideas ya sea por curiosidad, porque les parece interesante, porque necesitan referencias, etc.

Tablero

  • Este blog está escrito en español porque toda la información técnica acerca del software usualmente suele estar escrita en inglés y es necesario para América Latina propagar el conocimiento en español :o)
  • Este blog está dedicado a publicar nuestras investigaciones (desde el año 2003) sobre la ingeniería de software y recopila todos aquellos comentarios teóricos que hemos publicado en varios sitios de la Internet, esperamos que nuestras investigaciones sean de apoyo para nuestros lectores y usuarios.

DSN_XP


  • DSN_XP es un marco de trabajo que originalmente fue creado para aplicar ingeniería inversa al diseño y desarrollo de software (esto es ingeniería de software)
  • Como el software se ha convertido en una herramienta fundamental para los negocios, por extensión también probamos que DSN_XP puede aplicarse para la ingeniería inversa al mundo de los negocios
  • Una vez que aplicamos DSN_XP tanto al diseño de software como al diseño de procesos del negocio, pudimos aplicar DSN_XP al estudio del comportamiento humano y el proceso del pensamiento en base al diseño de modelos (a esto lo denominamos como perspectivas)
DSN_XP como metodología (estudio del método) tiene la capacidad de adoptar cualquier artefacto definido en otros métodos y recomendar su aplicación en cierto contexto de uso. DSN_XP utiliza un marco de trabajo basado en los principios propuestos por el manifiesto ágil.

DSN_XP es un producto Ecuatoriano y por lo tanto en espíritu es libre por lo cual recomendamos su utilización para consultas o soporte teórico en la ingeniería de software.