403 lecture 2 Preliminaries: Anonymous question: In your technical presentation notes, you say "(For men, this is a dress shirt with slacks.)". What are women supposed to wear? I can't give an answer. Honestly, I am not qualified to give fashion advice to *anyone*. An engineer should be willing to say "I don't know." Common problems with homework: * Not thinking of a specific event, but a general type of problem with a vague description. * Believing that all problems you have had are due to ignorance or inexperience (they are not!) * Believing that tools would solve all your problems (they would not!) * Lack of imagination: looking at one small part of the problem rather than creatively thinking about the real underlying problem. 21 people spoke in class last week. Great! That means 50 people did not. Followups from last class: I have a confession: Last class, I lied. (Because class ended before I could correct a statement I made.) What did I lie about? It is actually possible for testing to return "yes" to the question "is my program correct?". Our analysis of even vs. odd: "even", "odd", "unknown" is an abstraction. What is abstraction? What is a model? We talked about the purpose of building a model. What are the differences between a model airplane and a real airplane? We will "run" the program. The semantics of the operation is called a "transfer function". Examples: +, *, / * the analysis had *one job*, (tell us if the answer is even or odd), and it didn't do it. * we got an exact answer by writing a full symbolic representation of the program's output * what is the problem with that? What is a concrete example? [To do: add text for the board, to make the lecture more specific and convey the ideas more effectively.] Now, go to lecture slides ]To do: ad a picture for Purify/LCLint analysis.]