CS 160: Software Engineering
GREEN SHEET
Sections 1 and 2
Spring Semester 2008
Department of Computer Science
San Jose State University
Instructor: Prof. Ron Mak
Section 1: Tuesdays and Thursdays, 7:00 – 8:15 pm, MacQuarrie Hall,
room 225
Section 2: Tuesdays and Thursdays, 8:30 – 9:45 pm, MacQuarrie Hall,
room 225
Office hours: Tuesdays and Thursdays, 5:30 – 6:45 pm
Office location: Duncan Hall, room 282
E-mail: mak@cs.sjsu.edu
(e-mail preferred over phone)
Phone: (408) 533-2726 (cell)
Course catalog description
“Software engineering
principles, requirements elicitation and analysis, design, configuration
management, quality control, project planning, social and ethical issues.
Required team-based software development, including written requirements
specification and design documentation, oral presentation, and tool use.” 3 units
Goal
To educate students
on the general concepts of software engineering and all the relevant subjects
in the software development process through a hands-on team term project.
Basic objectives
Additional objective
Student learning outcomes
Prerequisites
|
CS 146 |
Data
structures and algorithms |
grade C- or better |
|
CS 151 |
Object-oriented
design |
grade C- or better |
|
CS 100W |
Technical
writing |
grade C or better or instructor
consent |
Required textbook
Bernd
Bruegge and Allen H. Dutoit, Object-Oriented
Software Engineering Using UML, Patterns, and Java, 2nd edition,
Prentice Hall, 2004. ISBN 0-13-047110-0.
There will
be additional reading assignments from the Internet. URLs will be provided.
Useful references
Alternate software engineering
textbooks:
Software engineering tools and methods:
Software engineering methodologies:
Procedure
During the
semester, we will simulate the commercial software product development process by
breaking up the class into project teams and having each team participate in all
the development phases. The instructor will play the role of the project
manager. Besides generating project documentation and product code, each team
will give several presentations to the class. During a presentation, the members
of the rest of the class will play the roles of customers and advisors for the
presenting team’s product.
A team is not
expected to develop a finished product during the semester. A key skill to
learn is how to make a complete project schedule with milestones. Each team should
achieve its early project milestones by the end of the semester. The goal of
this course is not to produce a winning product (although that could be a very
lucrative bonus for the team members!) but to learn team-based software engineering
processes, methodologies, and tools.
Schedule (subject to change)
|
Week |
Dates |
Topics and activities (activities in italics) |
Chapters |
|
1 |
Jan 24 |
What is
software engineering? Processes
and methodologies Software
project organization The class
projects |
1 |
|
2 |
Jan 29,
31 |
Development
activities Requirements
elicitation Use cases
and functional specifications Conceptual
designs Agile
programming Rapid
prototyping Rapid
Application Development (RAD) The
Unified Modeling Language (UML) Form project teams |
2, 3, 4 |
|
3 |
Feb 5, 7 |
Preliminary
design review preparation Software
build tool: Ant Project
management tools, including: - Subversion (source control) - Trac (project tracking) - Bugzilla (bug tracking) Managing
expectations Risk
reduction Software
estimation Managing
dependencies Project
scheduling |
|
|
4 |
Feb 12,
14 |
Project team conceptual design
reviews and prototype demos* |
|
|
5 |
Feb 19,
21 |
Software design and architecture:
- Requirements analysis
- Mapping use cases to objects |
5, 6 |
6 |
Feb 26,
28 |
Software design and architecture: - System and enterprise architecture - Techniques for robust and reliable
software
- Design documentation |
7 |
|
7 |
Mar 4, 6 |
Software design and architecture: - Design patterns - Reusable components - Specifying interfaces |
8, 9 |
|
8 |
Mar 11,
13 |
Software
design and architecture: - Logical and physical data models - Coding and refactoring - Legacy and commercial off-the-shelf
(COTS) software |
10 |
|
9 |
Mar 18,
20 |
Midterm exam (Mar 18) Review midterm Final
design review preparation |
|
|
10 |
Mar 24-28 |
Spring recess |
|
|
11 |
Apr 1, 3 |
Project team final design reviews* |
|
|
12 |
Apr 8, 10 |
Code
review preparation Software
quality assurance (SQA) Verification
and validation Test
plans Unit,
system, and stress testing Regression
testing Failure
analysis |
11 |
|
13 |
Apr 15,
17 |
Project team code reviews* |
|
|
14 |
Apr 22,
24 |
Project
management Project
plans Configuration
management Measuring
progress Software
metrics |
12, 13,
14 |
|
15 |
Apr 29, May 1 |
Social,
ethical, and legal issues The
Capability Maturity Model (CMM) Model-Driven
Architecture (MDA) The
Rational Unified Process (RUP) Extreme
Programming (XP) Project
post mortem assessments Demo
preparation |
15, 16 |
|
16 |
May 6, 8 |
Project team demos* |
|
|
17 |
May 13 |
Class review |
|
|
18 |
May 15,
20 |
Final exam:
Both finals will be held in
MacQuarrie Hall, room 225 |
|
* Each
project team gives a presentation to the rest of the class. Brevity is crucial!
Members of the rest of the class play the role of customer or advisor to the
team making the presentation.
Homework assignments
Besides the
ongoing class projects, there will be homework assignments, at most one per
week, for each student to complete individually. Each assignment will due after
one week (two class meetings later). Each assignment is worth a maximum of 100
points. Late assignments lose 25 points for each class meeting after the due
date.
Class projects
A major
portion of the coursework will be the class projects. The projects provide an
opportunity to apply immediately the material taught in the classes and from
the textbook.
Students
can form their own project teams of 4-6 members each. Each team can choose its
own software product to develop. This product must satisfy certain minimum
criteria, described in a separate project
document. The product should be sufficiently substantial so that it would
take an entire team working fulltime between a semester and a year to completely
develop it. (But remember that each team is only expected to achieve its early
milestones by the end of the semester.) A team can also choose to develop the
default product, also described in the project document.
A student
who is not initially part of a team must advertise his or her skills and
interests in order to get “hired” by an existing team. A team that needs
additional members must “recruit” students who are not already part of a team.
Once teams
are formed, students may not move from one team to another without the
instructor’s permission.
During the
semester, each team will experience the various phases of software product
development. Each team is expected to produce the appropriate artifacts from
the phases, such as use cases, functional specifications, project schedules,
design documents, etc. Some phases include giving oral presentations, such as
design reviews and product demos. During the presentations, the members of rest
of the class will play the roles of advisors or customers for the team’s
product. Each team must use the project management tools and track its own
progress.
This can be
a great opportunity for a team to start development on an actual hot product
idea!
Project grade
Each
student’s project grade will be determined by the quality of the team’s
artifacts and presentations and by his or her participation in producing the
work. (Who worked on what can be tracked by the project management tools.)
Participation
also includes playing the role of advisor or customer to the teams giving
presentations. Therefore, class
attendance is especially important during presentation days.
At the end
of the semester, each student will individually write a post mortem assessment
(3-4 pp. single-spaced) of his or her project, which will include:
·
a
description of what he or she learned from being on the team
·
a
self evaluation of his or her own work on the team
·
an
evaluation of the other team members
Therefore,
each student’s project grade will be weighted as follows:
|
40% |
quality
of the team’s artifacts and presentations |
|
30% |
individual
student’s participation |
|
30% |
individual
student’s written post mortem assessment |
Exams
The midterm
and final examinations will be open book and notes. Laptops may be used, but
instant messaging, e-mails, or similar communications to other students during
the exams will be strictly forbidden.
Overall class grade
|
|
Adding and dropping
Students
are responsible for understanding the policies and procedures about add/drops,
academic renewal, etc. found at http://sa.sjsu.edu/student_conduct.
Be aware of the new deadlines and penalties for adding and dropping classes.
Classroom protocol
As
mentioned above, it is very important for each student to participate, both on
behalf his or her own project team and on behalf of other teams that are making
presentations.
Cell phones
in silent mode, please.
Academic integrity
Students
are expected to be familiar with the University’s Academic Integrity Policy.
Please review this at http://sa.sjsu.edu/student_conduct.
“Your own commitment to learning, as evidenced by your enrollment at
“Instances
of academic dishonesty will not be tolerated. Cheating on exams or plagiarism
(presenting the work of another as your own, or the use of another person’s
ideas without giving proper credit) will result in a failing grade and
sanctions by the University. For this class, all assignments are to be
completed by the individual student unless otherwise specified. “If you would
like to include in your assignment any material you have submitted, or plan to
submit for another class, please note that SJSU’s Academic Policy F06-1
requires approval of instructors.”
Campus Policy in Compliance with the
American Disabilities Act
“If you
need course adaptations or accommodations because of a disability, or if you
need to make special arrangements in case the building must be evacuated,
please make an appointment with me as soon as possible, or see me during office
hours. Presidential Directive 97-03 requires that students with disabilities
requesting accommodations must register with the DRC (Disability Resource
Center) to establish a record of their disability.”
Special
accommodations for exams require ample notice to the testing office and must be
submitted to the instructor well in advance of the exam date.