CS4320 - Software Processes
MWF 1300-1400 Room 53 CoC
Instructor: Bob Waters , CoC Room 120, Send Email, Office
Hours by appointment. Normally available Tue/Thursday anytime, drop
by.
TA: TBA
Textbook:
Software Engineering Process with
the UPEDU
Pierre Robillard, Philippe Kruchten
and Patrick d'Astous
Addison Wesley, 2003
Objectives
This course provides students with an overall context in which
software systems are developed from the viewpoint of processes that support the
development. Software engineering is described as the set of activities
developers engage in to create high-quality products within schedule and budget
constraints.
Learning Objectives:
- Understand the theoretical basis for process improvement
efforts.
- Understand and apply process improvement initiatives:
- At the personal level
- At the team level
- At the organizational level
- Understand and apply minimalist processes.
- Compare and contrast specific processes and best practices
with process evaluations
Topics
This course has six major parts which we will examine:
- Total Quality Management (TQM): The basis of all process improvement
methodologies
- Process Modeling: How do we specify and model processes?
- Personal Software Process (PSP): Process Improvement at the individual
level
- Team Software Process (TSP): Process Improvement at the team level
- Capability Maturity Model (CMM): Process Improvement at the organizational
level
- Extereme Programming (XP): The quintessential minimalist process
Interspersed throughout these topics we will look at industry best
practices and how they relate to process improvement.
Grading
Final Exam 25%
Final Project 35%
Homeworks
30%
Individual Presentation
10%
Homeworks
Each homework will be an exercise illustrating
issues with various levels of software process improvement efforts.
HW 1:
TQM Statistical Process Control Exercise (Individual) (5%)
HW 2: PSP Exercise
(Individual) (5%)
HW 3: TSP
Exercise (5 Person Team) (8%)
HW 4: CMM Exercise (Individual) (7%)
HW 5: XP Exercise
(2 Person Team) (5%)
Final Project Suggestions
The final project will consist of a team
software development project which uses the Rational Unified Process. The
entire class will work on the same project. I have in mind developing a
tool to support the team software process. We will decide as a class the
first couple of weeks what we want to work on together. Some class periods
will be devoted to team meetings and reports on the rational process.