CS4320 - Software Processes
Instructor: Bob Waters , CoC Room 120,
Send Email, Office Hours by appointment. Normally available Tue/Thursday anytime,
drop by.
TA: Giovanni Iachello,
Send Email, Office
Hours MWF 1100-1200 Student Commons Area
Textbooks:
Managing the Software Process
Watts Humphrey
ISBN: 0-201-18095-2
Addison-Wesley
Rapid Development: Taming Wild Software Schedules
Steve McConnell
ISBN 1-55615-900-5
Microsoft Press
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
Midterm Exam 15%
Final Exam 25%
Final Project 35%
Homeworks 25%
Homeworks
Each homework counts 5% and will be an exercise illustrating issues with
various levels of software process improvement efforts.
HW 1: TQM Statistical Process Control Exercise
HW 2: PSP Exercise
HW 3: TSP Exercise
HW 4: CMM Exercise
HW 5: XP Exercise
Final Project Suggestions
The final project is designed to allow you to examine process improvement
in more detail in a specific area that you are interested in. It may
be a group or individual project. The size of the group determines the
level of detail expected. Some potential suggestions:
(Individual) Read a non-CS book on process improvement and then apply it
to software engineering. THIS IS NOT A BOOK REPORT!!!! It is an analysis
of the author's theory, followed by your application to software engineering.
Some books that might be used are:
The Fifth Discipline, Peter Senge
Out of the Crisis, Edward Deming
Reengineering the Corporation, Michael Hammer
(Individual or Group) Do a CMM evaluation of a project being conducted in
Real World Lab. This is especially effective if you currently (or in the recent
past have) worked on a specific process in RWL. Write up the results
of the evaluation, and give specific recommendations for improvements.
(Individual) Complete the entire PSP and write up an analysis of your opinion
of its effectiveness.
(Individual) For foreign students, you might look at alternatives to CMM
(like SPICE or SPIRE), ISO 9000, and write a comparative analysis between
that methodology and the CMM.
(Individual or Group) Design and Prototype a software tool to support either
process improvement or a specific process element.