140 likes | 163 Views
Software Development. Software Development Life Cycle. Five phases: Analysis Design Implementation Testing Maintenance. Software Development Life Cycle (con’t). Analysis Phase Formally specify (document) what the problem is Make sure that you and the “client” agree
E N D
Software Development Life Cycle Five phases: • Analysis • Design • Implementation • Testing • Maintenance
Software Development Life Cycle (con’t) • Analysis Phase • Formally specify (document) what the problem is • Make sure that you and the “client” agree • Develop system test cases
Software Development Life Cycle (con’t) • Design Phase • Formally specify (document) how the problem is to be solved • Make sure that the design conforms to the requirements (i.e., will produce what was specified in the analysis phase)
Software Development Life Cycle (con’t) • Implementation Phase • Convert the design to code • Compile and remove all syntax errors
Software Development Life Cycle (con’t) • Testing Phase • Unit Testing: Test each unit (e.g., function, object) for logic errors and make corrections • System Testing: Test the entire program to make sure that it conforms to the requirements
Software Development Life Cycle (con’t) • Maintenance Phase • Fix bugs found by the customer • Make modifications ($$!) • Add new features ($$!)
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
Procedural Method for CMSC 202 Project Development • Analysis Phase • Write, in paragraph form, a general statement of the problem • Draw a detailed picture of the user interface • Define in detail each of the program inputs and outputs (possibly use a formal notation such as BNF) • Ask questions!
Project Development (con’t) • Design Phase (Procedural) • Using top-down stepwise refinement, draw a hierarchy diagram of the solution • Define the inputs and outputs for each module in the diagram • For each module in the diagram, write the pseudocode • Make sure that the pseudocode actually implements the requirements! (Do hand-traces of the pseudocode.)
Project Development (con’t) • Implementation & Testing Phases: A Combination Approach • Write the “skeleton” C++ code for the main (top) module: • any #include’s • all function prototypes • the main function code • “dummies”/”stubs” for all functions
Project Development (con’t) • Make sure that the code follows the pseudocode exactly! • Compile the code and remove any syntax errors • Run the “skeleton” • Code a single function, compile, and remove any syntax errors • Run the program and remove any logic errors
Project Development (con’t) • Code each function, one at a time, compiling, removing syntax errors, running the entire program, and removing logic errors • Typically, it is best to add functions in the following order: • output function(s) • input function(s) • follow the calling order
Project Development (con’t) • Make sure that the final program meets all project requirements! • Go back and review the project assignment for compliance • Test all possibilities for input values, legal, illegal, and boundary values (choose representative data if the set of possibilities is too large)