ICS 125: Project in Software Engineering

Course Information

NumberICS 125
TitleProject in Software Engineering
QuarterFall 2003
Course Code36390
InstructorJason Robbins
LectureTu Th 8:00-9:20am ET 204
TAEugen Nistor
DiscussionsM W F 9:00-9:50am SH 174
Final ExamTuesday Dec 9, 8am in ET 204

Syllabus

Week
Monday
Tuesday
Wednesday
Thursday
1
Course information and goals
Survey of student background
Overview of deliverables
Elements of the "larger product"
Members of the "larger team"
Team assignments
Hands on teamwork
Hands on HTML & CSS
Development facilities
How to propose a project
Typical risks in development
Practical teamwork
Planning and scheduling releases
Project rankings
2
Version control with CVS
Requirements concerns & approaches
Working with customers
Hands on CVS
Customer role-playing
Project proposal
Practical requirements techniques
Project proposal presentations
3
Hands on mockups
Presentations countined
Req. Spec.
HTML mockup
How to give a status report
Design concerns & approaches
4
Status report 1
Practical Design Techniques
Practical UML
5
Status report 2
Automated builds: Ant
Issue tracking
Quality concerns & approaches
Design
QA plans
Test suites
Unit test frameworks with JUnit
6
Hands on IZ
Hands on Ant
Status report 3
Design and code reviews
Project status presentations
Presentations continued
7
Hands on reviews
Hands on JUnit
Status report 4
Vetrans' Day Holiday
QA Plan
Release checklists
Additional documentation
8
Status report 5
Review meeting notes
System test suite
Project status presentations
Presentations continued
9
Status report 6
Release 1.0.0 checklist
TBD/Review
Release 1.0.0
Thanksgiving Holiday
10
Final demo and presentation
Presentations continued
Finals
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

AssignmentWeight
Project proposal05%
System Requirements Specification15%
Design15%
Implementation15%
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.

Notes

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.
sample use cases templateexample software testing plan templateProject plan template