I recommend the following outline as a general starting point for your writeup:
1) Problem Description and Motivation. Describe the problem in great detail; make it clear to the readers what you're trying to solve. You must also give the readers the sense that the problem is worth solving, otherwise they will stop reading.
2) Previous Work. What other solutions have been proposed or implemented for this problem? Why are they not good enough? You must prepare the readers to believe that your solution (which you have not yet said anything about) is better than these other attempts. This is also the section where you describe any work that your solution is built on top of.
3) Requirements. Describe the process you used to
gather requirements for the system. Explain how you decided on
the form the requirements take, how you gathered them, verified them,
etc. Put the finished Requirements document in the
appendix. Any prototyping should be included in this section.
4) Design. Describe the process you used to design
the system. Give an analysis of the
design tradeoffs you made. Explain your finished design in high
level terms. Put the finished Design document in the appendix.
5) Implementation. Describe
the process you used to implement the system.
6) Testing. Describe the
process you used to verify that the system meets the
requirements. Explain how you decided what testing tools to use,
4) Problems Encountered. Explain the problems you encountered during development. What alternatives did you consider? How did you resolve the issue? (As an alternate to writing a separate "problems" section, you can describe problems in each of the stages of development above).
Describe your results.
Did the project accomplish its goals?
Why or why not?
Which requirements are complete and which are not? Explain what
obstacles prevented you from reaching the goal. As much as possible,
give quantitative measures of success.
6) Future Work. What is the next stage? What didn't you get done that you should have? Now that you're done, what should the next person do to carry on the project? Frequently senior projects are a portion of a larger project, and you have to make sure that your work is understandable by the next person to work on the project.
7) Lessons Learned. Summarize any important insights you've gained from the experience of completing your senior project. In what ways are you a better computer scientist or software engineer as a result of this project? What aspects were successful and what aspects would you do differently next time?
If your project involves writing some code that other people will use,
you must write a user's manual.
The appendix also contains your development artifacts: Requirements,
Design, Implementation, Tests. Also list the development
environment and tools you used. Include any custom scripts or
tools you created.