140 likes | 166 Views
Learn about the five phases of software development life cycle (SDLC) in procedural method projects: Analysis, Design, Implementation, Testing, and Maintenance. Understand how to specify problems, design solutions, code, test thoroughly, and maintain projects. This guide provides detailed steps for each phase, from formal specifications to code implementation and testing. Follow this structured approach to ensure successful project development and meet all project requirements effectively.
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)