190 likes | 197 Views
This project involves developing a computer program for income tax calculation based on 2006 tax schedules for QuikTax. Learn about the software development life cycle stages, from requirements specification to maintenance and enhancement.
E N D
Algorithms II Software Development Life-Cycle CMSC104 Section 301 Fall 2005
Problem Solving • Problem solving is the process of transforming the description of a problem into the solution of that problem by using our knowledge of the problem domain and by relying on our ability to select and use appropriate problem-solving strategies, techniques, and tools.
Why Use Computers • Use a computer to solve a problem if: • It has extensive input. • It has extensive output. • Its method of solution is too complicated to implement manually. • If done manually, it takes an excessively long time to solve. • We expect to use the same method often.
Software Development Life Cycle • Requirements Specification • Analysis • Design • Implementation • Testing and Verification • Documentation • Maintenance and Enhancement
Requirements Specification Analysis Design Implementation Testing and Verification Documentation Maintenance and Enhancement
The Problem - QuikTax The phone rings one day and we get an offer from QuikTax, a local federal income tax preparation service to “Develop a computer program to compute income tax from tax schedules for the tax year 2006.”
Requirements Specifications • One of the most important steps in problem solving is understanding exactly • what the problem is, • what is needed to solve it, • what the solution should provide, • and if there are constraints and special conditions. • In this step you eliminate ambiguities in the problem statement.
Analysis • In this phase we identify: • Inputs to the problem and their form • Outputs expected from the solution and their form • Special Constraints • Assumptions • Formulas
Inputs • What items must be provided to be able to get a solution? • Taxable income $0.00 to $1,000,000,000.00 • Filing statusSingle, Married/Jointly, Married/Separate, Head of household • Number of dependents0 - 99
Output • Intermediate results • Final results • Completed tax information
Constraints • What are the limits on the data? • Income can not be a negative number. • Number of dependents must be zero or positive, but not more than what number ? • Filing status must be one of a set of values
Assumptions • Problem deals in $US • Only for 2006 • What’s implied by the Requirements?
Formulas • For income tax, it is the tax tables. • For determining the area, it islength x width • For grades, it is: >90.0% A 80.0% - 89.99% B 70.0% - 79.99% C 60.0% - 69.99% D >60.0% F
Design • Develop a series of steps with a logical order which, when applied to the input would produce the specified output. (does this sound like an ALGORITHM?) • This phase is when you think about how to solve the problem!! • This phase can take 40% of the effort.
Implementation • Implementation is the phase where the design is transformed into code. • This is the only portion of the process that is computer and compiler specific. • This should be approximately 10% of the effort.
Implementation Errors • Design errors • Syntax errors • Run-time errors
TestingandVerification • Once the code is developed: • Prove the program produces correct results. • Prove that the program that was built solves the problem that was described in the requirements specification. • Manually solve the problem with a data set, then compare that to the program’s output!
Documentation • Consists of • A concise requirements specification • Description of inputs, outputs, constraints, and formulas used • Pseudocode or flowchart of the algorithm • Source code listing • Hard copy of a sample of data and the output • User’s guide explaining how to use the program
MaintenanceandEnhancement • Environments change, so programs must be changed • Tax tables change • Name of organization changes • Users want (or need) the program to do more • New tax credits • Elimination of old tax credits.