Advanced DSS for scheduling: software engineering aspects and the role of Eigenmodels