130 likes | 141 Views
Program Development. Goals. By the end of this lecture you should … Understand how programmers develop an application using a well-defined process. Developing a Program. Analyze the problem Plan a solution to the problem Design the user interface Code the solution
E N D
Goals By the end of this lecture you should … • Understand how programmers develop an application using a well-defined process.
Developing a Program • Analyze the problem • Plan a solution to the problem • Design the user interface • Code the solution • Test and debug the solution • Complete program documentation • Plan for next release
1. Analyze the Problem • Questions to ask: • Who is my intended audience? • What SPECIFIC outcomes does my audience expect? • What business rules is my audience expecting to have incorporated into the solution? • What is the SCOPE of the problem?
2. Plan a Solution • What types of programming structures do I need? • Sequential structures • Conditional structures • Looping structures
2. Plan a Solution (continued) • What data structures do I need? • Variables • Lists • Arrays • What form will my input take? • What form will my output take?
3. Design the User Interface • Is the UI “learnable”? • Is it simple? (Limit user choices) • Does the UI promote error-proof use? • Is the layout of the UI arranged in a fashion conducive to the user’s culture and expectations?
4. Code the Solution • Develop an actual program from an algorithm • Should be the “easiest” part of the process – all the work should already be done!
5. Test & Debug the Solution • Alpha Testing – Internal testing done with expected client data. • Beta Testing – Testing done at the client site with their data. • Try to predict common user errors • Test subjects should be Power Users, Normal Users and Neophytes
6. Complete Documentation • User Documentation: • User Manual • Technical Documentation (for System Administrators) • Internal Documentation: • Documentation comments • Code comments • Procedural comments
7. Plan Next Release • What bugs do we need to fix? • Are bugs “critical”? (Fix in a minor release) • If bugs are not critical, you should fix them in the next major release. • What product enhancements do the users want for the next release?
Summary • Analyze the problem • Plan a solution to the problem • Design the user interface • Code the solution • Test and debug the solution • Complete program documentation • Plan for next release