Software engineering design : theory and practice - Otero, Carlos E.