Software Engineering I
Semester Project Details
This semester, your software development team will perform a full software engineering project. This
1) analyzing client business processes to identify the technical and business components of the
2) developing a project requirements analysis;
3) modeling all the relevant business processes, component interactions, and usage scenarios to
develop a detailed software design;
4) implementing the designed software system using applicable and/or specified technologies;
5) documenting the technical configuration and management of the software (for IT professiona;s)
6) documenting the usage for non-technical users of the software;
7) performing usability analysis of another teams implementation; and
8) delivering an end of semester summary presentation on the project.
The project is to develop a programming assignment/lab submission and collection system. The
software will include command line utilities, database supported web services, and a configuration
Development Team Organization
You will be paired with one partner for peer-review and other activities. You and your partner will be
paired with two other sets of partners to form a six student development team.
The Computer Science Department collects thousands of items of student work per week. Much of this
work is programming lab and homework code assignments completed on the Babbage servers. The
department requires a standardized submission and collection system which can support numerous
classes, course sections, teaching assistants, and all the enrolled students.
Students must be able to submit assignments using a command line program from the Babbage
environment, as well as via an assignment submission web form. All the submitted files should be
tracked and cataloged in a database management system (PostgreSQL). The web services and interface
will be built with the CodeIgniter model-view-controller framework (PHP).
The following are initial requirements identified by the client (CS Dept). Note, the customers of CS are
students that must submit computer programs to be graded.
1. Courses and instructors will be loaded before the beginning of the semester.
2. Instructors must be able to add TeachingAssistants (TA) to a course
3. Instructors and TA must be able to create course sections; logical organizations of the course for TAgrading distribution, such as
1. lab sections (e.g., A,B,C,D, etc) or
2. class partitioning (e.g., last name begins withA-F, G-M, N-Z).
4. Students must be able to submit from babbage using a command line tool. The command line
format must be: