Project Steps

Fall 2007
updated July 31, 2007, minor corrections Aug 23
updated Nov 19, 2007: extended due date for WHAT TO HAND IN
    

EXTERNAL LEVEL

Step 0: Identify the real-world system you'll be working on, and who will be working on this project (presented Sept 6)

Step 1: Condition-response table

Step 2: Data dictionary for input & output user views (Steps 1 and 2 presented Sept 20)

CONCEPTUAL LEVEL

Step 3: Put tables into first normal form (1NF).

First normal form is explained in the Sept. 6-11 reading in the schedule in the course syllabus.

Step 4: Put tables into second normal form (2NF)

Second normal form is explained in the Sept. 6-11 reading in the schedule in the course syllabus.

Step 5: Put tables into Boyce-Codd normal form (BCNF) (presented Oct 18)

Boyce_Codd normal form is explained in the Oct. 9 reading in the schedule in the course syllabus.
In each table, show the primary key and any foreign keys.

Step 6: Final data dictionary of domains, attributes, & user views (i.e., a final version of Step 2)

LINK CONCEPTUAL --> EXTERNAL LEVELS

Step 7: Prepare test data

Try to cover the different cases which may arise in the real system (based on user requirements such as the Condition-Response Table)

Step 8: Referential integrity diagram

Step 9: Relational calculus operations to produce output user views

Step 10: PostgreSQL implementation of Steps 5, 8, and 9, and user interface to your database.

Step 11: Data entry & testing

Step 12: Demonstration to the class of a working PostgreSQL implementation and user interface for your project (presented Nov 13)

WHAT TO PRESENT

The purpose of this final presentation is mainly to demonstrate your working system in operation. You should not present step 6 or the code used in step 10. It would be a good idea to briefly present step 8 (referential integrity diagram) to give the class an overview of what's in your system at the beginning of your demo. Again, the main purpose of this last presentation is to demonstrate your working system in operation, and to show how you intend it to be used by users in practice.

WHAT TO HAND IN (Due Thursday Nov. 29)

Steps 1, 6, 8, 9, and 10 define what is expected as written documentation of your project (where step 10 consists of all the code needed to re-create your database and your user interface from scratch, in the form of runnable SQL scripts and user interface source code). I don't need hardcopy of Steps 1, 6, 8, 9, and 10, just put them in your electronic notebook and I'll print them out from there.
These steps should be revised as necessary to reflect any new thinking and to keep in synch with any design changes you make during the implementation process. The goal is that Steps 1, 6, 8, 9, and 10 when handed in should be consistent with the final implementation as demonstrated.
Steps 7 and 11 are necessary for a successful demo, but I don't need copies of them.
How to put SQL scripts and user interface source code into your electronic notebook:
If you attempt to upload php files containing any html into your electronic notebook, it may try to render the html rather than showing your source code. The workaround I'd suggest is to try zipping up a directory containing all your SQL scripts and user interface source code, then uploading the zipfile to your electronic notebook. If your php files are on a Linux machine such as www.cs.utk.edu, then I'd suggest you put them in a directory by themselves (at least temporarily, for zipping purposes) and then
       zip -r foo foo
where foo is the name of the directory they're in. See manpage excerpt & explanation below.

(excerpt from Unix zip manpage)

To zip up an entire directory, the command:
       zip -r foo foo
creates the archive foo.zip, containing all the files and directories in the directory foo that is contained within the current directory.

(explanation) in the command line above

To retrieve the files, I'll download your foo.zip from your electronic notebook and unzip them with

       unzip foo.zip

EVALUATION CRITERIA

Steps 1-12 above will be evaluated according to the following criteria. These criteria will be evaluated in the context of the level of difficulty of what was attempted. The idea here is that doing reasonably well on something difficult can be more significant than doing perfectly on something straightforward.



This document was generated using AFT v5.0792