Software engineering concepts - Fairley, Richard E.