Grandes empresas con una importante necesidad de extender sus software a menudo se encuentran con problemas de mantenimiento. Un software es muy dependiente del hardware sobre el que funciona, de las necesidades de los clientes y del ambiente. Un ejemplo de esto es lo que ocurre con el cambio a un nuevo milenio o con los software de bancos cuando tienen que cambiar una moneda a Euros. Las razones a esta situación son varias: falta de diseño, de unit tests, pobre conocimiento de programación con objetos.
Este curso presenta técnicas (reverse engineering, program visualization, refactoring, design, data mining) que son efectivas para re-engineer y evolucionar software industriales.
Los objetivos de este curso son:
- Hacer del participante un mejor programador
- Desarrollar técnicas de diseño
- Desarrollar técnicas de visualización
- Analizar y discutir sobre el proceso de mantener la calidad de un software
- Identificar el problema relacionado a la evolución de sistemas
- Realizar una experiencia práctica con el objetivo de conseguir cartas de software que identifiquen las deficiencias de este.
Cada alumno va a tener un proyecto personal que va a desarrollar en clase, durante el semestre. La comunidad Pharo y Moose evaluará cada proyecto y dará feedback. Cada proyecto tiene que ser un beneficio para Pharo en general.