to Software Engineering For 'tis the sport to have the engineer Hoist with his own petar. Shakespeare, Hamlet In the previous chapter, we introduced same basic information about pro gramming and programming languages, particularly C. If this were a book about building bridges, this first chapter might have been an introduction to the tools you would neeci-hammer, saw, drill, etc. Obviously there is a lot more to building a good bridge than simply knowing how to use the tools. Similarly, creating software products requires considerably more skill than simply wielding the programming tools. There is an entire discipline called software engineering that deals with designing, creating, testing, and maintaining large software products. In this chapter we introduce some key software engineering themes, many of which we will revisit through out the course of the book. 10 2: Introduction to Software Engineering 2.1 Introduction Though the cost of computer hardware-the silicon chips containing the millions of transistors that form the instruction set and memories-has shown a consistent trend downward over the years, the cost of software has not followed suit. The high cost of software is due largely (and para doxically) to the ease and flexibility with which it can be shaped.