ICS 125: Project in Software Engineering

Course Information

NumberICS 125
TitleProject in Software Engineering
QuarterWinter 2004
Course Code36345
InstructorJason Robbins
LectureTu Th 12:30-1:50pm ELH 110
TAYang Wang
DiscussionsW 9:00-9:50am ET 202
Final ExamFriday Mar 26, 10:30am in ELH 110

Syllabus

Week
Monday
Tuesday Lecture
Wednesday Discussion
Thursday Lecture
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
Hands on mockups
Project proposal
User needs
Practical requirements techniques
Project proposal presentations
3
Interview questions
Presentations countined
Software Req. Spec.
HTML mockup
How to give a status report
Design concerns & approaches
4
Status report 1
Practical Design Techniques
Meet TA: design
Practical UML
5
Status report 2
Automated builds: Ant
Issue tracking
Quality concerns & approaches
Hands on IZ
Hands on Ant
Design
QA plans
Test suites
6
Status report 3
Project status presentations
Meet TA: QA
Presentations continued
7
Status report 4
Unit test frameworks with JUnit
Design and code reviews
Hands on reviews
Hands on JUnit
QA Plan
Release checklists
Additional documentation
8
Status report 5
Review meeting notes
System test suite
Project status presentations
Meet TA: implementation
Presentations continued
9
Status report 6
Release 1.0.0 checklist
TBD/Review
Release 1.0.0
TBD/Review
10
Final demonstrations
Demonstrations continued
Demonstrations continued
Finals
No lecture
Release 1.0.1
Postmortem report
No lecture
Final exam on Friday

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. Knowledge-base contributions are handed in via 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.

Discussion Section Slides

sample use case templatesample test plan templateexample project plan template