tutorial: (ITLaguna 2012) Building Adaptive Software: Software architecture meets Affective computing and Machine learning

   🙂 I presented this keynote at the Instituto Tecnologico de La Laguna

Academic Forum 2012
Torreón, Coahuila, Mexico. March 2012
12:30–13:30, Thursday (Mar 08) — Instituto Tecnologico de La Laguna


Adaptive Software evaluates its own behavior and changes it when the evaluation indicates that it is not accomplishing what the software is intended to do, or when better functionality or performance is possible, or when the interaction with the user could be improved. Adaptation is a feature that needs to be implemented on design time and applied at runtime. Building adaptive software implies:

  • the software has multiple ways of accomplishing its purpose, and has enough knowledge of its architecture to make effective changes.
  • the software design follows the best practices to make it possible to have an elastic design that makes the adjustment feasible.
  • the software has the ability to take care of the user understanding his necessities, being aware of events in the UI but also sensing and understanding user’s emotional reactions.
  • the software is intelligent enough for evaluating its behavior and performance, as well as the ability to plan and reconfigure its operations in runtime.
  • the software is aware of it own resource management and can adapt its execution to assure the best consumption of it.

In this talk, we will provide a sneak peek of how to achieve those facts and the disciplines behind them with a practical orientation. Lets review the future of software in a roadmap that confront us with ubiquity, mobility, multi-agent technology, software engineering, software architecture, artificial intelligence, cloud computing, affective computing, human computer-interfaces, and data mining.


These are my slides (in Spanish) for the keynote, comments are more than welcome.