Number | ICS 125 |
---|---|
Title | Project in Software Engineering |
Quarter | Winter 2004 |
Course Code | 36345 |
Instructor | Jason Robbins |
Lecture | Tu Th 12:30-1:50pm ELH 110 |
TA | Yang Wang |
Discussions | W 9:00-9:50am ET 202 |
Final Exam | Friday Mar 26, 10:30am in ELH 110 |
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.
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.