Project requirements for COMP 530 project
On-line
submission system for eagle
We need an on-line submission system
for the BSC computer science compute server (eagle)
This system needs to allow users to
submit a file (probably a compressed archive) from eagle. The file
selection would ideally be both windowed or command line (selected by
the user). Once the file is selected, it should be copied to a
directory owned by the instructor. There must therefore be a way of
specifying what class the student is submitting for. (ideally each
classes submissions should go into their own subdirectory. Once the
file is submitted, the student should not be able to touch the file.
However, the students should be able to resubmit later if he/she so
chooses. The newer file should overwrite the older one. Once the
student has submitted the files, he/she should be able to view the
file names, timestamps and file size of the files submitted. There
should be a view of any zip files that allows the contents of a zip
file to be inspected.
This solution should work for any unix system with eagle's current
capabilities. There is some chance that eagle will migrate from a
solaris/sparc architecture to a linux/intel environment.
Assignment 1:
Due Feb 21st in class, one document per group.
You will now gather a more formal set of requirements for this project.
Each group should schedule a time with the instructor to meet and use
that as an interview for requirements gathering. Groups that have a
hard time scheduling the interview can, with the permission of the
instructor, work up a document with an outline and questions and send
that to the instructor for answers.
Each group will produce a requirements document including
- A domain analysis (probably a bit less than a page)
- A requirements section including each of the
types of requirements studied in the class lecture. (3ish pages)
- at least 3 use cases that you think will be critical in some
way to the system.
Assignment 2:
Due March 26th (after break) (once again, there should be one document per group)
I strongly encourage you all to read Chapter 9 completely before starting this phase.
Now it is time to design your proposed system. Produce an
objected oriented design that implements your requirements. Include UML
class diagrams showing the proposed classes and their relationships to
one another. You should also include Object constraint language
statements for any required conditions and any other text that would be
needed for a computer scientist unfamiliar with this project to
understand the design. Suggest languages to be used for each of the
various pieces of the solution. Declare and summarize any external
existing systems that will be used in your design.
You should use any of the design patterns studied in class (or others that you are familiar with) as appropriate in your design.
Optional: This is a class
focusing on object oriented software engineering. However, if you feel
strongly that a non-objected oriented solution would be better, you may
add and additional section with the non-object oriented design and
defend your thesis that it is better.
Project part 3: working with a design documents
Part a: (Variable due dates)
Every person will be given anonomized versions of the design
documents turned in by all of the groups. Those documents are
labeled Alternative 1 through Alternative 4. Each group must choose one
of these alternative designs to implement. (the project is small enough
that I think each group can implement a complete project.) The group
may choose to implement its own design or another design. The group
must let the instructor know which design they have chosed by Friday
April 6th at Midnight.
Each person (on his or her own) must also take one of the designs which
was not produced by his/herown group and write a short (1-2 pages in
normal spacing and font sizes) critique of the design concentrating on
what you would want/need to know beyond what is in the document itself
before you tried to implent it. Editorial comments are not appropriate
for this document; Only constructive suggestions and requests for
additional clarification are appropriate. This is due in class Monday April 9th
Part b: Due Monday April 23rd
Each group should implement their chosen design. Submission of code by soft copy will be by email. One submission per group.
Project part 4: QA and documentation
Due Friday March 11th at midnight by email to instructor.
Testing: Write a set of test cases for testing your program. Describe
the equivelence classes to be used along with the testing regimin to be
used. Categorize them as level 1, 2, or 3 tests as defined by your
book. Include any automated testing mechanisms that you use in your
submission.
Actually run the test cases. Record any bugs found and fix them (or
describe why not.) remember I have your original code submitted to me
and I'll run some of these tests myself.
Documentation: Finally, write documentation for the software. You
should include two sections, one for a naieve student user for the
client part, and one for a cs faculty member to understand how to use
the overall system. (How to configure, if you have a daemon style
server, etc)