Software Development CMSC 202
“Good” Software When developing software, we strive for software that is correct (meets requirements) reliable (bug-free) easily maintained (corrections and upgrades) reusable CMSC 202
An OO approach to software looks at the problem in terms of “things” Procedural vs. OO A procedural approach to software looks at the problem in terms of functionality An OO approach to software looks at the problem in terms of “things” CMSC 202
Software Development Life Cycle Five phases: Requirements Analysis Design Implementation Testing Maintenance CMSC 202
Software Development Life Cycle (cont’d) Requirements Analysis Phase Formally specify (document) what the problem is Make sure that you and the “client” agree Develop system test cases CMSC 202
Software Development Life Cycle (cont’d) Design Phase Formally specify (document) how the problem is to be solved Make sure that the design conforms to the requirements (i.e., it will produce what was specified in the analysis phase) CMSC 202
Example – The game of Chess Procedural – what are the rules? OO – what chess pieces are there and how do they move? CMSC 202
OO – envision chess pieces and board and their attributes More Chess Procedural – envision a 2-D matrix for the board and functions that move a piece from one square to the next OO – envision chess pieces and board and their attributes CMSC 202
Software Development Life Cycle (cont’d) Implementation Phase Convert the design to code Procedural -- functions OO -- objects Compile and remove all syntax errors CMSC 202
Software Development Life Cycle (cont’d) Testing Phase Unit Testing: Test each unit (e.g., function, object) for logic errors and make corrections Procedural – function test driver OO – object test driver System Testing: Test the entire program to make sure that it conforms to the requirements CMSC 202
Software Development Life Cycle (cont’d) Maintenance Phase Fix bugs found by the customer Make modifications ($$!) Add new features ($$!) CMSC 202
So How Does the S/W Life Cycle Apply to My Projects? Follow the first four phases, but anticipate the last (Maintenance) Complete the Analysis Complete the Design Do a combination of Implementation and Testing CMSC 202