130 likes | 152 Views
Understand the process of developing an application, from problem analysis to testing, documentation, and planning for future releases. Learn about programming and data structures, user interface design, and code testing.
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