|
The
Senior Software Engineering Project
CSCI 4308 - CSCI 4318
at the University of Colorado at Boulder
is taught as a two semester sequence
in which student teams complete a substantial "real world" project
provided by sponsors drawn from both industry and research organizations.
These projects are developed under the direction of the course instructor
and members of the sponsoring organization.
The course has been offered yearly since its inception in 1987. During this
time 321 projects involving
1347 students have been completed.
Project proposals are solicited by the instructor each year during the summer
before classes begin the following fall. Proposals are very brief descriptions
of ideas for projects provided by industry. Once classes begin, these proposals
are given to the students, who then form teams, select projects, and begin
their development.
The development process essentially follows two iterations of a spiral
lifecycle model and usually encompasses the following phases, although this
sometimes varies depending on the nature of the specific project:
- Initial Requirements
-
The student team interacts with the sponsor to gather requirements for the
software that they are to develop. This first step involves a rather quick,
but thorough, job of gathering initial requirements.
- System Architecture
-
As with the quick first cut at requirements, the team then does a relatively
quick, high-level architectural design for the project.
- Overview Presentation
-
At this stage of the project each group gives a half-hour
overview presentation on the project to the class.
- Prototyping
-
Once the team has an initial set of requirements and a high-level design,
they build a prototype of the system. In addition to learning more about
the requirements for the project and appropriate design strategies, prototyping
allows the students to procure necessary hardware and software and to become
familiar with the development environment that will be used on the project.
- Requirements Spec
-
Towards the end of prototyping, requirements are revisited and
a more complete requirements specification is developed.
- Design Spec
-
Given the requirements specification, high-level design, and
what was learned during prototyping, a more complete,
detailed design specification is developed.
- Design Presentation
-
At the end of the fall semester, each team gives a design presentation to the
sponsor at the sponsor site. These presentations are open to anyone within the
sponsoring organization who has an interest in the project or who might be able
to offer feedback on the design.
- Development
-
Full scale development of the software is underway by the beginning of the
spring semester. This includes not only development of the software, but also
module and systems level testing, development of a test plan, and the delivery
of a beta version of the software to the sponsor.
- Documentation
-
Each project team will produce a set of customer documentation appropriate for
the particular project. In most cases this consists of a user reference manual
(a detailed definition of the software from the user's perspective),
a user tutorial manual (an informal guide to assist the first time user),
and a developer manual (an overview of the implementation for programmers who
will inherit the software).
- Final Presentation
-
Near the end of the spring semester,
meetings are again held at the sponsor site
for a presentation and demonstration of the completed project.
- Release
-
Once all software is written and tested and all documentation is complete, the
project is released to the sponsor. The release package contains the software
and all documentation.
Browse these pages to find information on the prerequisites for taking the
class, as well as information for organizations who would like to sponsor a
project. You will also find information on each project that has been
completed, including a description of the project, the sponsor, the team of
students who did the project, and current contact information for those
students.
|