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

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)