Schaum's outline of theory and problems of software engineering