- computer programming - writing code - software development - good developer - know lang - know how to design program - here: OO - software engineering - systematic, disciplined - development, testing, maintenance - software life cycle - conception --> operation - phases - analysis - needs of customer - feasibility - yes --> requirements specification - testable - design - specification --> design - OO: set of classes - coding - design --> program - here: Java program - easier than design - testing - run program - varying data sets - types (OO) - unit: classes individually - integration: classes working together - debugging: eliminating errors (design and coding) - operation - use program - maintenance - make changes - additional features - undetected errors - 70% software cost Quick Check: 1. Analysis, Design, Coding, Testing, Operation 2. Good design decreases maintenance cost. 3. Debugging is the process of eliminating errors.