Software engineering a programming approach - Bell (Prentice Hall, 1992)