adaptive software system