CS183 -- Project 2: Group Design Project



->Courses
->CS183
-->Objectives
-->Quiz 1
-->Lab 1
-->Lab 2
-->Project 1
->Project 2
->Electronic Submission
->Old Exams
->C++ Examples
->MSVC++ Info
->STL Info
->MFC/GUI Info
->Software
->Tentative Schedule
->Support Forum
->Course Policies

[Courses]
[Rich][Home][Rich]
[PHome]

Spring Quarter 2003

Course Objectives Addressed

  • Understand the rationale for object-oriented design and programming.
  • Understand data abstraction and abstract data types.
  • Be familiar with UML class notation and use cases.
  • Be familiar with composition, inheritance, polymorphism, and C++ templates.
  • Be able to design and implement simple C++ classes and class libraries.
  • Be able to design small software systems using classification and use cases.
  • Be able to document the design and implementation of small software systems.
  • Be able to work in a team to create a small software system.

Overview

The purpose of this project is to develop an httpd log file analysis program.

Acknowledgement

This assignment was developed by Dr. Chris Taylor.

Problem Statement

In small groups (3 or 4 team members) you are to develop a software application that will analyze a set of httpd log files (with perhaps only one file in the set) and generate a report with relevant statistics. The report may be in plain text, XML, and/or HTML format.

On the last day of class, each team will demonstrate their implementation and the class will vote on which implementation they like best. Extra credit may be awarded (ask your instructor) for the most liked implementation.

Constraints

Each team should select one implementation of the Histogram from the ones implemented by the team members. No changes to this implementation are permitted. Instead, you may derive another class from the Histogram class and override any member functions that need revision and add any other member functions that the group deems necessary. You may make use of the LogEntry class; however, you may not modify it either.

Design

Each team will decide what features their software will implement and make a proposal by the end of the first lab period. It may be useful to look at the following sites to get some ideas: Analog, Webalizer, AwStats, SuperStats, and WebStat.

Your design must consist of an annotated UML class diagram (see my useful software page for a tool to draw UML diagrams) expressing your high level design, a verbal description of how your objects/functions will interact, and at least one use case for your software application.

Team Evaluation

Upon completion of the project, each team member must complete the Team Evaluation Form and turn it in before taking the final exam.

Lab report

The lab report should consist of the following:

  • Your design documentation. (You may include images (in .png format) of scans of hand drawn UML diagrams and sequence diagrams if needed.)
  • A brief description of any problems you encountered or questions you have regarding the lab.
  • Any suggestions you have for how the lab could be improved.
  • Your individual activity logs and a summary of your activity logs indicating how much time you spent on the assignment. Please follow the time log format given in the template file. In particular, you should record the date and time for each block of time you work on the project. Please report the time in the following categories:
    • Designing
    • Coding
    • Debugging (before you think it's working)
    • Testing (after you think it's working)
    • Writing report
    • Other
  • The documented source code for your program. Include only the source files that you modified.

Deliverables

All deliverables should be done as one submission for the entire team.

  • Due: End of week 8 lab: Proposed feature set
  • Due: 11pm Friday of weeks 8 and 9: Activity log
  • Due: 11pm day before last class: Final report (should include all previously submitted material)
  • Due: before final exam: team evaluation

Project report template

As with any report you submit, correct spelling and grammar are required. In addition, your report should be submitted electronically following the Electronic submission guidelines. (You may wish to consult the sample report before submitting your report.) Be sure to keep copies of all your files, in case something gets lost.

Your lab grade will be determined by the following factors:

  • Meeting specifications
  • Technical quality
  • Design documentation
  • Internal documentation (comments)
  • Program clarity (formatting, etc.)
  • Narrative report
  • Activity logs
  • Correct program results
  • Spelling and grammar
  • Timeliness of submissions

If you have any questions, consult your instructor.

© 2002-2003 Dr. Christopher C. Taylor Office: CC-27C Phone: 277-7339 Last Updated: Thu May 8 18:13:13 2003
I am responsible for all content posted on these pages; MSOE is welcome to share these opinions but may not want to.