ICS 125: Project in Software Engineering

Course Information

NumberICS 125
TitleProject in Software Engineering
QuarterSpring 2003
Course Code36230
InstructorJason Robbins
LectureTuTh 8:00-9:20am ELH 110
TASam Robertson
Final ExamTuesday June 10, 8am in ELH 110


Course information and goals
Survey of student background
Overview of deliverables
Elements of the "larger product"
Members of the "larger team"
Team assignments
Development facilities
How to propose a project
Typical risks in development
Practical teamwork
Planning and scheduling releases
Project rankings
Version control with CVS
Requirements concerns & approaches
Working with customers
Project proposal
Practical requirements techniques
Project proposal presentations
Presentations countined
Req. Spec.
HTML mockup
How to give a status report
Design concerns & approaches
Status report 1
Practical Design Techniques
Practical UML
Status report 2
Automated builds: Ant
Issue tracking
Project status presentations
Status report 3
Quality concerns & approaches
Presentations continued
QA plans
Test suites
Status report 4
Design and code reviews
QA Plan
Unit test frameworks with JUnit
Release checklists
Status report 5
Review meeting notes
Project status presentations
Presentations continued
Status report 6
Release 1.0.0 checklist
Additional documentation
Release 1.0.0
Final demo and presentation
Presentations continued
Final exam
Release 1.0.1
Postmortem report
No lecture

Monday and Wednesday deliverables are due before midnight. Tuesday and Thrusday deliverables are due in lecture. All deliverables (other than the individual postmortem report) are to be handed in using CVS in your project workspace, including all presentation materials. The individual postmortem report will be handed in by email.

Goals for the Course

Expectations for the course

Projects Offered

Here is the list of available projects.

Deliverables and Grading

Project proposal05%
System Requirements Specification15%
QA plan and tests10%
Checklist, review, post-mortem10%
All status reports and team web site10%
All presentations and KB contributions10%
Final exam10%

Normally, all team members will get the same grade on their project work. Individual grades can vary based on final exam scores and my judgement of how much work each team member did. I will base that judgement on the individual postmortem reports and metrics such as the number of closed issues, the number and type of source code changes made, and participation on team mailing lists and in lecture.

Textbooks and Reading

Class Knowledge-base

Throughout this course we will work together to build a knowledge-base of relevant information. I will start off by providing an outline and initial content. Information in the knowledge-base will expand on ideas presented in lecture by adding your own thoughts and experience.

Each student is required to contribute at least two pieces of information to the knowledge-base. Each item must not already be in the KB. If two students propose the same item at the same time, the one who expresses it best will get credit and the other will have to contribute a different item. You make your contribution by emailing it to the knowledge-base mailing list. Note that everyone else in the class will see your item when you send it. I may ask you questions, and you must respond.

The instructor and TA will review items posted to the mailing list and add them to the knowledge-base. I will maintain the organization of the knowledge-base, but suggestions for new sections are certainly welcome.

The contents of the class knowledge-base may be covered on the final exam.

The purpose of this exercise is to convey more information than can be covered in lecture, and to allow students to practice effective participation in professional mailing lists.

Development Document Templates

Software engineering requires careful thought and planning. This is done by writing documents for the project proposal, overview, plan, requirements, specification, design, release notes, demos, etc. This is usually a significant fraction of the overall effort put into software development.

For this course, you will use a set of project document templates. You will fill in the content to describe your particular project. This will allow the course to go into greater depth and breadth with less effort spent on mechanics. The templates themselves contain a good amount of useful information to get you started and make you think.

Catalog description

125 Project in System Design (4). Specification, design, construction, testing, and documentation of a complete software system using concepts learned in ICS 52, 121, and 141. Special emphasis on the need for and use of teamwork, careful planning, and other techniques for working with large systems. Prerequisites: ICS 51 with a grade of C or better; ICS 121 and 141; Mathematics 2A-B-C.


Any student who feels he or she may need an accommodation based on the impact of a disability should contact me privately to discuss his or her specific needs. Also contact the Disability Services Center at (949) 824-7494 as soon as possible to better ensure that such accommodations are implementationed in a timely fashion.