EEC 626 Software Engineering Project
Syllabus (Spring 2009)
This is a project course. Students will apply software engineering
principles, methods, and tools learned in their course work in building
realistic software systems. Students work as small teams in solving real world
problems. Students will meet regularly in class and teams meet
- Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified Modeling
Language User Guide, 2nd Edition, Addison-Wesley Professional,
- Philippe Kruchten, The Rational Unified Process: An Introduction,
Third Edition, Addison-Wesley Professional, 2003.
- Robert C. Martin, Agile Software Development, Principles,
Patterns, and Practices, 1st edition, Prentice Hall, 2002.
This course consists of a group project and an individual research
- Students will form small teams and each team works on a project to develop
a software product. The instuctor will act as a consultant to the project.
- In the first class meeting, the students will form teams. Each team
chooses its own project, organization, and tools. In the second class meeting,
each team is required to come up with a preliminary project plan. The project
plan should describe the project the team has chosen and the management of the
project (organization, schedule, communications, roles and assignments, etc).
- All projects should be developed iteratively. An iteration is roughly two
weeks. At the end of each iteration, the team will deliver a version of the
targeted software product. Successive versions with increasing functionality
lead to the final version of the software product. A tentative list of
iteration end dates is given below.
- At the end of each iteration , each group will give a short presentation
of the project status and a demonstration of the software. The whole class
then discuss issues related to the project.
- Every week, each team should submit a weekly log, which summarizes
activities, participants, and times spent in the past week. The activities
include development activities such as analysis, design, coding, testing,
documentation, etc, as well as supporting activities such as planning,
discussion, setting up environment, preparing for presentation and
- During the last week, each team and each student will meet with the
instructor to reflect on the project and the course.
Besides the group project, each student will work on an individual research
report. The research report will be on a technical topic related to software
engineering agreed upon by the instructor.
- To prepare for the report, a student is expected to read 10-15 technical
papers related to the selected topic, about one per week.
- The initial draft of the report is due on April 9. The final draft is due
on May 7.
- Each student will give two presentations about their report, one on April
9 and another on May 7.
At the end of semester, during final exam week, each team
should submit the final project deliverables as follows. Each student will
submit their research report.
- Project documentation (project plan, requirements specification, design,
test plan, test cases, known bugs)
- Source code
- Development environment (tools, data)
- Installation guide
- User manual
Each student will be graded based on the group project and individual
- Participation in class meetings, team meetings, etc. (10%)
- Presentation and demostration in iterations (30%)
- Project deliverables (30%)
- Individual research report (30%)
The conversion to letter grade is as follows:
- Attendance to all classes is required. Students must obtain advanced
permission to be absent.
- A student who misses two or more classes must see the instructor
immediately with an explanation.
- Students are expected to follow ACM Code of Ethics and
Professional Conduct. http://www.acm.org/about/code-of-ethics.