Number | ICS 125 |
---|---|
Title | Project in Software Engineering |
Quarter | Spring 2003 |
Course Code | 36230 |
Instructor | Jason Robbins |
Lecture | TuTh 8:00-9:20am ELH 110 |
TA | Sam Robertson |
Final Exam | Tuesday June 10, 8am in ELH 110 |
Week | Monday Deliverables |
Tuesday Lecture |
Wednesday Deliverables |
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
|
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
|
Project proposal
|
Practical requirements techniques
Project proposal presentations
|
|
3 |
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
|
Design
|
Project status presentations
|
6 |
Status report 3
|
Quality concerns & approaches
Presentations continued
|
QA plans
Test suites
|
|
7 |
Status report 4
|
Design and code reviews
|
QA Plan
|
Unit test frameworks with JUnit
Release checklists
|
8 |
Status report 5
Review meeting notes
|
Project status presentations
|
Presentations continued
|
|
9 |
Status report 6
Release 1.0.0 checklist
|
Additional documentation
|
TBD
|
|
10 |
Release 1.0.0
|
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.
Here is the list of available projects.
Assignment | Weight |
---|---|
Project proposal | 05% |
System Requirements Specification | 15% |
Design | 15% |
Implementation | 15% |
QA plan and tests | 10% |
Checklist, review, post-mortem | 10% |
All status reports and team web site | 10% |
All presentations and KB contributions | 10% |
Final exam | 10% |
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.
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.
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.
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.