ICS 121: Optional Mini-Project


This course is mainly about learning software engineering tools and methods and using them individually. If you do that well, you can get a good grade in the course without the mini-project.

However, software development is a team activity, so early practice at teamwork is helpful. The optional mini-project allows students to work in pairs to specify a software product of their own choice. The effort needed to do the mini-project is roughly equivalent to doing one or two extra question on each weekly homework assignment.

Choosing a Project

You may choose your own project idea. It should be a large enough project that you can specify enough use cases, feature specs, and test cases. The product that you specify should be analogous to an existing commercial product.

You do not need to actually implement anything for this project. You will just write the requirements, UML design, and test plan.

If your project is interesting and the right size for an ics125 project, I'll consider acting as customer for the project in future offerings of ics125.

If your proposal is rejected, you will have a chance to change it and resubmit it by Friday of 4th week.


Due Monday of 4th week: Project Proposal
Hand in print outs of the following to the distribution center:
  • Proposal. Fill in sections:
    • Project information
    • Add the names and UCI email addresses of both students working on this project
    • Background and motivation
    • Goal, except links to other documents
    • Scope, use the In/Out table
    • Risks and Rewards
  • Target audience and benefits. Fill in sections:
    • Target audience, especially the links to competing products
    • Benefits
    • Potential downside
  • Glossary.
    • Define any technical terms that would otherwise be unclear
  • You do not need to fill in any of the other templates linked from these.
Due before midnight Monday of 8th week: Draft Project Documents and Status Report
Use CVS to check in your updates to these files:
Due in 8th or 9th week: Project status presentation
A short verbal presentation. Details TBA.
Due before midnight Monday of 9th week: Project Requirements, Design, and Testing
  • Final Use cases.
  • Final Feature specifications.
  • Final UML diagrams of your choice.
  • Final Test cases.
  • Status report. Fill in sections:
    • Project information: Just Project Name, Resources Used, and Status Summary
    • Detailed Status
  • Fill in all sections of each use case, feature specification, and test case.
  • You do not need to fill in any of the other templates linked from these.
Due Friday of 10th week: Project Corrections
Check for issues in your project issue tracker from the instructor and TA. You must make requested changes to your documents. You must briefly describe how you fixed the problem and mark the issue RESOLVED in the issue tracker.

Mini-Project Tools

After proposal proposals are reviewed. I will create project workspaces for each project on the server that I use for ics125. That server provides CVS and issue tracking.

You may use ArgoUML or Rational Rose or another UML tool for UML diagrams. You may not use a drawing tool such as MS Word, Powerpoint, or Visio.

Mini-Project FAQ

example use case templatesample test plan templateProject plan template