Software Design (CSC-223 97F)
- Assigned: Monday, October 6, 1997
- Due: In class, Friday, October 18, 1997
You are to propose a project for 223, describing various issues
pertinent to the design and implementation of that project.
This assignment is based on
one by John Stone from a previous session of 223.
Write and submit an HTML document describing the project you intend to
complete in this class. Note that you will have approximately seven
weeks to complete the project, and that each project member should be
planning to average at least five hours per week on the project.
You may organize your project proposal as you wish. However, you should
make sure to answer all of the following questions in whole or in part.
- What is the project's objective? That is, what is the overall
intent of the project (other than to meet the requirements of the course)?
There are (at least) two parts for this component:
- A high-level summary intended for the casual reader.
- A set of specifications that we can use to determine
whether or not you've been successful.
- What are the main tasks you envision for this project, and who
is responsible for completing each task? Many
projects require more than just coding. For most projects, you will have
- Come up with an overall project design.
- Develop a format (or formats) for representing your
project-specific information (e.g., a scheduling application
will need a way to store
- Learn one or more topics not covered in class
(e.g., networking in Java).
- Write the code.
- Develop and test a user interface.
- Document everything.
- What are the primary objects and classes you expect to
implement, and how do they relate? Obviously, you can't come up with
a complete specification this soon, but you should have a rough idea of
what is necessary.
- What role or roles will each member of the group play? For
example, one member might be documentation specialist, another might
be responsible for ensuring that you stick to your timetable, still
another might be responsible for testing the various components, and
so on and so forth.
- What is your timetable for finishing this project? You should
have clear goals for what you will accomplish each week and how much time
it will take. If you read
ahead in Humphries, you may be able to use his strategies for estimating
lines of code and time to complete those lines of code.
- What obstacles do you expect to encounter?
- If you are unable to complete the full assignment in the required time,
what is your fallback subproject? Note that you must have
something reasonable working by the end of the term, but I understand
that not everyone will complete their project to the full specifications.
- If you find that you are able to accomplish everything significantly
quicker than expected, what extensions might you add?
It is certainly acceptable for you to answer these questions at an
appropriate level of abstraction. For example, you don't need to
specify all the methods of your classes, nor how you expect to implement
them. However, you should not be vague in your answers; we should be
able to look back at this document over the coming weeks, and have a
clear sense of what you will accomplished and how you will accomplish
Disclaimer Often, these pages were created "on the fly" with little, if any, proofreading. Any or all of the information on the pages may be incorrect. Please contact me if you notice errors.
Source text written by Samuel A. Rebelsky.
Source text last modified Mon Oct 6 10:46:10 1997.
This page generated on Mon Oct 6 14:14:49 1997 by SamR's Site Suite.
Contact our webmaster at firstname.lastname@example.org