Software Engineering -- CS511
Boston University -- Fall 1999
Project Information
Option #1 -- Conference Room Scheduler
This program helps to solve the problem of finding a conference room for a meeting at a large company.
For simplicity, you can assume:
The program should allow users to:
Possible extra credit features:
Option #2 -- Mastermind Game
This project is based on the popular board game Mastermind. In Mastermind, one player selects a hidden pattern of four colors. The other player tries to figure out the color pattern by making guesses and receiving clues from the first player. (See the game itself for full details.) While it sounds simple, the game involves deductive reasoning and strategy.
For the project, the computer will be Player #2. You (a person) will choose a color pattern, and the computer will try to figure out what the pattern is in the least possible guesses.
The interface to this program can be simple (just a list of colored pegs) or fancy (an actual display of the playing board). Most of the challenge is in the reasoning/guessing algorithm.
Option #3 -- Things-To-Do List
This project implements a personal things-to-do list. While these types of programs are sometimes shared among multiple users, this is just for one user.
The program should present a fill-in-the-blanks form to the user, with spaces for the following fields:
The user should be able to:
Possible extra credit features:
General Notes
Divide and delegate work among your team. Have one primary person responsible for each deliverable, with a review by the entire team before submitting the material for grading. (There are six deliverables, including the class presentation.)
Put the name of the primary person on each deliverable. For the team presentation, this person will give the presentation.
Project deliverables are due at the start of class on the due date.
Much of the work can occur in parallel. For example, the person writing the test plan can begin this as soon as the functional specification is solidified. The user guide can also be sketched out from the functional specification. The person writing the code can begin a prototype (or high-level shell) alongside the technical design document.
The executable program primarily will be judged for structure (clarity and simplicity), rather than features and instruction speed.
I am open to alternate projects and presentations that your team may propose. Please do so quickly though, since the first deliverables are due soon.
You may write the program in any common language, such as C, C++, Visual Basic, or Java. It should run on either Unix or Win98. To be submitted how ????.
Written parts of the project should be submitted in two printed copies. Keep a backup.
A reduced feature set, done correctly, is better than a full feature set that is buggy or unfinished.
Copyright 1999 by Charles H. Connell Jr.