Las respuestas hasta ahora son excelentes. Como con muchos otros, tendré que dar una lista.
- Actualmente no existe un buen libro que reúna lo que se conoce en los métodos formales y muestra cómo se puede usar la disciplina en la práctica para producir software real. Lo que existe actualmente es una colección de libros bastante fragmentarios, cada uno de los cuales trata con una herramienta específica aislada, principalmente con ejemplos de juguetes. Algunos no dan ejemplos en absoluto. +
- Actualmente no hay buenos libros que traten sobre metodologías de programación (programación extrema, cascada, etc.), nuevamente como una caja de herramientas desde la cual puede seleccionar herramientas. Por el contrario, hay muchos libros especializados que tratan sobre el estado del arte en una instantánea en el tiempo de un método específico. Para mí, esto es casi lo mismo que obtener un manual sobre cómo usar una llave inglesa, sin manuales sobre cómo construir un kart o reparar un automóvil.
- Hay muchos libros sobre cómo usar cualquier lenguaje de programación individual, pero casi nada sobre cuándo usarlos y absolutamente nada (más allá del elemento ocasional de preguntas frecuentes) sobre programación multilingüe y las restricciones impuestas por ABI estandarizados y suposiciones de paradigma. .
- Hay libros sobre las tres categorías principales de programación paralela (SIMD, MIMD, MISD) y las cuatro arquitecturas principales (estrechamente acopladas, clúster, cuadrícula, distribuidas), pero nuevamente son solo herramientas en la caja de herramientas y no hay información sobre cómo combinas las herramientas para hacer algo.
+ Considero ADT y ASM como ejemplos de métodos formales. Quizás de forma más controvertida, consideraría Why3 y otros métodos de validación formales como métodos formales cuando se sigue un régimen de “programación extrema” de prueba antes de implementar.
Puede notar un tema aquí. Si miras mis preguntas, notarás que el tema aparece ocasionalmente allí también. Lo mismo con mi blog externo. Si escribiera un solo libro que abordara todos los aspectos del tema para el desarrollo de cualquier sistema lógico, independientemente del tipo, entonces necesitaría encontrar un editor dispuesto a negociar en conjuntos de varios volúmenes de miles de volúmenes de páginas con páginas de folio completas. También necesitarías invertir en un gran ejército de escritores, porque incluso si pudieras extender la vida útil lo suficiente (lo mejor que puedes hacer es 120 años), nunca podrías mantenerlo actualizado, sincronizado y completo.
Es por eso que los libros de Donald Knuth son excelentes, pero anticuados para cuando terminen. Y ni siquiera está abordando más que los fundamentos. Décadas para una de las mentes más grandes de nuestro tiempo, simplemente para producir una guía completa de estructuras de datos. En ese tiempo, hemos visto el desarrollo de estructuras de datos ontológicos (como OWL y RDF), programación orientada a aspectos, programación orientada a características, datos relacionales de objetos y probablemente algunos otros. Por definición, estos no se pueden cubrir con tanta profundidad, porque no ha tenido el tiempo para llegar a ser tan competente en todo esto como lo es en las estructuras tradicionales y las metodologías tradicionales (como los tipos de datos abstractos). De hecho, es difícil pensar en alguna forma de convertirse en un experto en todo esto y mantenerse al día con las metodologías tradicionales.
- ¿Cómo escribir reseñas de libros, reseñas de películas y trabajos de investigación? ¿Dónde encuentro la guía adecuada para desbloquear el dilema?
- ¿Está bien tener mucha historia de fondo en el capítulo uno de una novela?
- ¿Es posible influenciar a otros, principalmente a los maestros, mediante una determinada forma de escritura? ¿Qué libros recomendarías para eso?
- ¿Sobre qué desea que alguien escriba un libro?
- ¿Cómo crear un libro?
Dado que Donald Knuth está cubriendo los cimientos y teniendo en cuenta que las herramientas, los pilares construidos sobre esos cimientos, están bien cubiertos, lo que estoy buscando es Knuth II. La construcción de pisos que descansan sobre esos pilares de tal manera que pueda soportar adecuadamente una estructura real encima de ellos. Históricamente, esto refleja la forma en que progresó la arquitectura física. Estamos en el escenario de Viking Longhouse en este momento, quiero un libro que nos traiga quizás otros cuatro o cinco siglos.
Pero no me hago ilusiones sobre cuán compleja es esa tarea. El campo completo, si se dirige a este nivel, podría tomar fácilmente cuatro o cinco siglos de trabajo si se realiza de forma secuencial: elegir herramientas no es tan malo, pero su interacción está sujeta a una explosión combinatoria. Reducido, porque muchas combinaciones no son válidas, pero una explosión combinatoria no obstante.