La primera entrega es un "pensar en voz alta" en mi indagación de libros útiles para enseñar y aprender Ingeniería de Software.

Autor: Jorge Valenzuela


"Al principio fué ... la linea de comandos" Es el nombre de un libro escrito por Neal Stephenson en 1999, de los libros de genero de no-ciencia ficción que escribió en el cual compara de manera "comprensible" las estrategias y el mercado futuro de los Sistemas Operativos libres y propietarios.

Es el primer domingo de Noviembre de 2015 y tengo como objetivo buscar 8 libros de Ingeniería de Software para actualizar el Syllabus del Curso que dicto en la Universidad. Tras recordar los libros que usé en mis épocas de estudiante universitario de pre-grado(1994-1999) y de maestría (2004-2006), a parte de los populares creadores de la metodología UML Grady Booch, Ivar Jacobson y James Rumbaugh que se constituyó como material fundamental para aprender y utilizar en el análisis y diseño de software: El Paradigma Orientado a Objetos, resalto "Diseño Orientado a Objetos (1991)" y "Programación Orientada a Objetos" de Peter Coad y Edward Yourdon (1993), Steve McConnell (1996). Rapid Development: Taming Wild Software Schedules, Microsoft Press Books luego recordé a Luis Joyanes Aguilar y sus libros "Fundamentos de Programación", "Algoritmos y Estructura de Datos", "Programación en Pascal", "Programación en C++". Eran tiempos en que recién se empezaba a usar Internet en el Perú, en la Universidad del Callao y San Marcos la velocidad no pasaba de 96Kbps, y la mayoría no tenía Internet en sus casas, si; era la época que los celulares eran del tamaño de un zapato. Los libros había que conseguirlos en las galerías Wilson y gran parte del código fuente que hacían referencia en los libros había que imaginárselo. Era sin duda otro escenario pero también era el mismo deseo que tenia de aprender con verdades objetivas, que me hizo destacar y que conservo hasta el día de hoy.

Hoy, mi búsqueda empieza en Wikipedia, reviso "Software Engineering" (confieso que todo lo busco en Inglés) y lo primero que obtengo es el SWEBOK de IEEE Computer Society, la verdad hace tiempo lo vengo utilizando (alrededor de 3 años) y en mi entender es la pila de conocimientos mas ordenada y completa que existe actualmente en Ingeniería de Software (se abarcan casi todos los temas de Ingeniería de Software incluyendo el Diseño de la Arquitectura de Software, las etapas naturales de desarrollo de software, y otros temas tales como la Gestión de Configuración del Software, Métodos Determinísticos y Ágiles, Estimaciones de Software y las Matemáticas de Ingenieria de Software) es decir si se requiere conocimiento con un nivel de consistencia alto es muy probable que allí lo encuentre. Y como es muy completo de nada valdria la pena incluir algun autor o libro que alli se hace referencia.

Entonces, giré mi cuestionamiento a algo sumamente original: ¿Que libros recomiendan Larry Page y Sergey Brin (nada mas ni nada menos que los creadores de Google) que influyeron de una manera dramatica en sus vidas?, lo que encontré resulta interesante: Sergey Brin: 1. "Surely You're Joking, Mr. Feynman!" by Richard P. Feynman 2. "Snow Crash" by Neal Stephenson Les recomiendo urguen e indaguen mas porque es simplemente lo que todo ingeniero de software necesita "empezar a volar su imaginación". Entre leia algo de Neal, encontre a su competidor en las lides de Ciencia Ficción afin a la Ingenieria de Software y encontré a William Gibson, solo queda chekar su sitio web y comprarse ( o hacerse de ) una copia antes de fin de año de una de sus novelas con el mismo fin: estimular la imaginación.

Por otro lado compare bibliografia de otros programas de Ingenieria de Software de las universidades locales UNI y UNAC.

A nivel mundial, el MIT, la Universidad de Sao Paulo (Instituto de Ciencias Matematicas y COmputacion), la Universidad de Carnegie Melon y la Cornell University.

Clase de Ingenieria de Software dictada por mi en Octubre 2015

Agregue algunos de mi cosecha porque me parecen super interesantes: Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. 1994. USA. Addison Wesley. Software Architecture for Developers. Simon Brown. 2015. USA. Patterns of Enterprise Application Architecture. Martin Fowler. 2003. Ken Schwaber (1996). Agile Project Management with Scrum, Microsoft Press Books The Mythical Man-Month: Essays on Software Engineering. Fred Brooks. 1975.1995.

Y estos dos que encontre en Amazon y se ven actuales: Software Engineering Essentials. Richard Hall Thayer. 2012. Building Microservices. Sam Newman. USA. 2015.

He aqui mi lista de libros (2015-2016) mas importantes para enseñar Ingeniería de Software:

1 IEEE Computer Society (2014). Guide to the Software Engineering Body of Knowledge (SWEBOK) V3.0. USA. IEEE.

2 PRESSMAN, R. (2014). Ingenieria de Software. Un enfoque practico. 8va edición. USA. Mc Graw Hill.

3 WEINTZENFELD, A. (2004). Ingenieria de Software orientada a objetos con UML, Java e Internet. USA. Thomson International.

4 SALTZER, J. KAASHOEK, M.F. (2009) Principios de Diseño de Sistemas de Computación. Una Introducción. USA. MIT.

5 CORMEN, T. LEISERSON, C. RIVEST, R. STEIN, C. (2001) Introduccion a Algoritmos. 2da. Edición. USA. Mc Graw Hill & MIT Press.

6 FAIRLEY,R.E. (1987) Conceptos de Ingenieria de Software. USA. New York, McGraw-Hill.

7 GHEZZI,C.; JAZAYERI,M.; MANDRIOLI,D. (1991) Fundamentals of Software Engineering. USA. Prentice Hall.

8 PFLEEGER, S. L. (2001) Software Engineering: Theory and Practice. USA, New Jersey, 2nd edition. Prentice Hall.

9 STALLINGS, W. (2008) Criptografia y Seguridad de Redes, 4a. Ediçion. USA. Prentice Hall.

10 SOMMERVILLE, I. (2010). Ingenieria de Software. 9a. Edicion. USA. Pearson.

11 VON MAYRHAUSER, A. (1990). Ingenieria de Software: Metodos y Gestión. USA. Academic Press.

12 BASS, L. CLEMENTS, P. KAZMAN, R. (2012). Software Architecture in the Practice - SEI Series in Software Engineering (3a. Edicion). USA. Adisson Wesley Professional.

13 LATTANZE, A. (2008). Architecting Software Intensive Systems. USA. Auerbach Publications.

14 CLEMENTS, P. BACHMANN, F. et al (2010). Documenting Software Architectures: Views and Beyond (2a edition). USA. Addison-Wesley Professional.

15 BROOKS, F. (1972) The Mythical Man Month: Essays on Software Engineering. USA. Addison-Wesley.

16 BOOCH, G. (1994) Object-Oriented Analysis and Design with Applications. 2a. Edition. USA. Benjamin Cummings.

17 POOLEY R. STEVENS P. (1999) Using UML Software Engineering with Objects and Components. Addison-Wesley.

18 BRUEGGE B. DUTOIT A.H. (2004) Object-Oriented Software Engineering Using UML, Patterns and Java. 2a. Edition. USA. Prentice Hall.

19 GAMMA E. HELM R. JOHNSON R. VLISSIDES J. (1994) Design Patterns: Elements of Reusable Object-Oriented Software. USA. Addison Wesley.

20 BROWN S. (2015) Software Architecture for Developers. USA. LeanPub.

21 FOWLER M. (2003) Patterns of Enterprise Application Architecture. USA.

22 SCHWABER K. (1996) Agile Project Management with Scrum. USA.

23 HALL R. (2012) Software Engineering Essentials. USA.

24 NEWMAN S. (2015) Building Microservices. USA.

Puesto que la memoria es fragil, prometo agregar algunos por recomendacion suya o como producto de traerlos a mi memoria nuevamente.

No se olviden que... "Al principio fué ... la linea de comandos".

:-) Jorge Valenzuela



Comentarios

Por favor accede o registrate para enviar un comentario.


Actualmente no existen comentarios.