Semester Projects

The semester projects are addressing the issue of building graphic user interfaces (GUI) to help with the performance evaluation information post processing. Specifically, your semester projects will be building a GUI to help users manage the name space description files that specify the set of information sources available to a performance evaluation experiment, and a GUI that helps users manage the set of post-processing filter files that permit users to describe how the data collected during an experiment is analyzed.

Post-processing Software

The semester project will be built around the basic post-processing code, which includes examples of data being post-processed, but most importantly includes the code for reading and writing the name space and filter configuration files. Note that as with many software engineering projects, there have been several updates tot he software being delivered to you during the requirements and specification phase as the goals of the project have been clarified, and as a result, the details of the software your GUIs will need have been clarified as well.

The code is provided as a compressed TAR archive with the name "name.tar.gz". To unpack the archive, go to what ever directory you wish to have contain the provided files and :

  bash> cd 
  bash> tar ztvf name.tar.gz 
  bash> tar zxvf name.tar.gz 

These steps will first change the current directory to be a place you have specified for unpacking the files, then list the table of contents of the archive so you can see what will be created there, and finally will create files and directories as specified by the archive in the current directory

Project Groups

The semester projects will be done in groups of generally 3 or 4 people. Occasionally the number of students in the class or other circumstances will make a group of 5 a necessity. This can work out well, with care on the group members part, but it does require more effort to properly organize group activity. The current group membership is:

Group Work Areas

Work areas for each group have been set up in the EECS file server. These are areas, directory names re just your group numbers, are available on the EECS Linux machines in the directory:

       /courses/448/current/groups
Consult the group list above to see what number your group has. Note that Linux GROUPS have also been created withe the name "eecs448-X" where "X" is the group number. You should be able to create files, directories, shared work areas, data exchange directories, and cvs repositories as you wish.

Projects Overview

There will be 3 semester projects, even though the syllabus originally said there would be 4. This is not as large a change as it may seem, because all that is really happening is a combination of GP0 and GP1. GP0 was originally intended as a separate exercise to give you a chance to learn the Python post-processing code a bit by making a minor modification as a separate exercise. Various delays in getting the first version of the code ready. primarily but not exclusively a result of the original grader for the class finding an RA position make it a better idea to just roll that into the rest of the semester projects.

The basic layout of the Semester will thus be:

GP01: Requirements and Specification

Due 03/16

Develop the basic requirements for the desired GUI tools; the name space browser/editor, and the post-processing filter configuration tool. Consider what information the tools will require as input, what information they will be producing as output, and how the user will need and wish to interact with the information through the GUI based tools. Remember to limit yourself to the requirements not the implementation details. We combine the requirements which are supposed to be expressed in customer terms, and the specifications, which are supposed to be in programmer terms, in recognition of the fact that this is a semester project. In both cases you should concentrate on constraints and behaviors the software should satisfy, not on how the software should do it. Note also, however, that you have to learn enough about the existing software base and to experiment enough with the tools to form a moderately realistic view of what the needs of users will be. Thus, I recommend that you follow the advice in the TAR file about how to create an output form that is "human readable". This will assist you when experimenting with various post-processing example scenarios, but also give you a bit of experience with Python and with the code yo will be interacting with later in the semester.

The name space browser/editor will give the user the ability to interact with a file providing a definition for a name space of data sources. The GUI will also provide a convenient way for the user to edit the contents of the name space, producing a new name space specification file as output. It also seems clear that in many post processing situations the combination of more than one name space of data sources will be required, as data from different sources are combined for more sophisticated post processing.

The filter configuration tool will provide the user with a way to consider options in performing a range of post processing operations on experimental data sets, including combining sets from different sources. Clearly this tool will need to provide the user with a view of the relevant data set name spaces, but also with a list of the available filter types, and with an interface permitting configuration of filters selected for use. One of the most important aspects of post processing for Data Stream data is that a series of post processing steps can be used to perform quite interesting analyses on experimental data. This is the goal of the filter configuration tool: to provide the user with a clear idea of what set of filters they have to work with, an interface through which they can construct a sequence of filters for a particular data set, and interfaces for configuring the filter instances selected.

GP2: Software Design and Implementation Plan

Due 04/13

Here you illustrate specific product features and GUI designs, as well as describing substantial aspects of how the implementers should accomplish what the requirements and specifications described. The design should be described using pseudo-code to provide basic guidance for implementing the actions of your object oriented design.

GP3: Software Implementation and Documentation

Due 05/13

The implementation and documentation of the name space editing and post-processing filter configuration tools according to the requirements, specifications, design and implementation plans.