COMPUTER SYSTEMS RESEARCH
Program Iteration Report
Running version, planning, testing, and analysis of your program
Name: __________________________________, Period: _____, Date: ______________
Project title or subject: _______________________________
Language(s) and other software tool(s): ______________________
Iteration # _____
Which lifecycle model for software development currently best fits your project (see below): _________________________________________
What type of research model best exemplifies your project (see Pasteur's Quadrant below): ________________________________
Lifecycle models:
Research models:
(from Pasteur's Quadrant (1997) Donald Stokes)
- Pure basic research, performed with the goal of fundamental understanding (such as Bohr's work on atomic structure)
- Use-inspired basic research, to pursue fundamental understanding but motivated by a question of use (Pasteur's work on biologic bases of fermentation and disease)
- Pure applied research, motivated by use but not seeking fundamental understanding (such as that leading to Edison's inventions)
- Applied research that is not motivated by a practical goal (such as plant taxonomy or cladistics and computational paleontology - Latimer)
Description of this iteration:
- Problem definition - Clear statement of the problem this iteration is supposed to solve, and also perhaps how this fits into the larger scale, or longer term, problem you are solving, investigating, or analyzing with your project.
- Requirements (see Software Construction link for requirements list) - describe in detail what this iteration is supposed to do. You may want to relate this short requirement to longer term requirements of your project or system.
List specific requirements you have for this iteration:
- Architecture of your program - software architecture is the high-level part of software
design, the frame that holds the more detailed parts of the design (see the link to Software Construction for architecture list
- Outline your organization for this version of the program. Determine what types of inputs the program expects, what algorithms and processing the program is doing, and what output(s) you expect.
- Input(s) - try to test a variety of kinds of inputs:
- Algorithms and processing internal to the program (you can paste in code and explain):
- Types of output you expect, what do you expect the program to do, how should the program behave based on your input and algorithms?
- Tests - how are you validating the success or failure of this iteration. What pieces of code, functions, classes, algorithms are you checking and what specific tests are you doing?
- What do you think your focus will be for the next iteration of your program and project?