Science Models
Science Fair Projects


With the strong focus that undergraduate computer science programs are now placing on software engineering there is still one area where students are not exposed to the technology that our colleges in the commercial sector have been embracing for some time.

That area is the implementation and use of bug tracking systems. This paper will discuss the design goals and development of a bug tracking system that is targeted for use by student groups to aid them in managing the development of software projects by minimizing the hassle of tracking bugs in the various versions of the software.

The final system itself allows groups to collect and store various computer anomalies, errors, and problems from the project that they are working on and to be able to effectively document and communicate these bugs to the members of their group in a real-time system.

The paper will examine design choices that were made to create such a system that provides powerful bug tracking abilities to students, while still serving as a gentle introduction to these systems as they are used in commercial software development.

We will also examine the ideal audience for this type of system and talk about its ability to scale to larger groups as the number of communication paths between group members grows.

Finally this paper will examine the benefits of exposing students to this type of software system during their time in school.

Bug tracking systems are a tool used by software developers to enhance the quality of their software products. The automation that bug tracking systems provide allows for efficient monitoring and controlling of reported bugs.

Generally bug tracking systems allow developers and testers to add bugs to a database, provide details about the bugs in the database and make updates to the bugs as progress is made. Along with these features there also features that allow bugs to be assigned to specific developers.

This allows for allows for developers to use the bug tracking system as a to do list when the development cycle enters a maintenance stage.

Finally bug tracking systems allow for the bugs that are entered into them to be prioritized making critical bugs easier to find in the database.

By providing a bug tracking system aimed at students we are giving students a chance to experiment with technology that the industry is currently using, but still have a system that serves as a gentle introduction to the use of bug tracking systems.

The use of a bug tracking system provides groups with an advantage when it come to documenting the system since the bug database serves as a record of the maintenance and improvements that have been made to the software.

The use of a bug tracking system also allows developer to keep track of bugs in a more organized fashion than other methods. Finally, after reviewing currently available bug tracking systems there were none available that were targeted to be used by students as an introduction to using bug tracking systems.

There are many benefits to introducing students to bug tracking systems. Specific to students there is the benefits that exposure to this technology can bring when they enter the work force.

However all developers can receive benefits offered by bug tracking systems like streamlining the bug tracking process, providing repeatable tests, and reducing development time and cost by allowing for improved coordination and communication among team members.


One of the most important benefits of introducing this type of knowledge management technology is the exposure that it gives to undergrads. By giving them this exposure before they first enter the workforce they will be familiar with bug tracking systems.

This will be an advantage as when they start new projects there are many other things that they will likely need to be brought up to speed on such as coding standards, libraries, and development environments. Eliminating the need to learn how to use a bug tracking system will allow them to become productive members of the team in a shorter time span