Integrating the Personal Software Process (PSP) across the Undergraduate Curriculum
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Integrating the Personal Software Process (PSP) across the Undergraduate Curriculum
Massood Towhidnejad, Thomas Hilburn
Computer Science Department
Embry-Riddle Aeronautical University
Daytona Beach, FL 32114
[towhid, hilburn]@db.erau.edu
http://erau.db.erau.edu/~[towhid, hilburn]
Abstract overcome this has been the introduction of project
courses where students are grouped into teams and
This paper summaries some Embry-Riddle assigned a "realistic" (but toy-sized by industry
University activities on the incorporation of Watts standards) problem to solve. This has not proven to
Humphrey’s Personal Software Process (PSP) be effective for several reasons: 1) students are
throughout the undergraduate computer science expected to apply methods and techniques of
curriculum. This paper includes a description of the software development to a "realistic" problem while
project’s objectives, a discussion of the activities they are learning these topics; 2) very little
engaged in by students, an explanation of how the instruction on planning, teamwork, and intergroup
activities were integrated into the curriculum, a coordination is given; 3) faculty, in most part, lack
description of the data collected and an assessment knowledge of practical aspects of software
of the impact and value of the project. Finally ideas development and project management; and 4) an
about modification and extension of the project’s academic semester is too short a time period to learn
concepts are presented. and practice all the life cycle issues. In addition,
many topics critical to software companies are not
Introduction even discussed, often because the university faculty
members are simply unaware of industry’s primary
The existence of a gap between industry software issues. Some of these topics are quality control,
engineering needs and academic software change management, configuration control, software
engineering education has been widely reported requirements and specifications, and software sizing,
[1,2,8]. Industry requires software engineers but estimating, and planning [8].
Universities are educating computer scientists [2].
A recent Software Engineering Institute report It is almost impossible to design a program that will
succinctly states the problem: "Students are not address all of the above issues. However, we believe
prepared to make the jump between computer that by modification of the existing traditional
science or software engineering in school to computer science programs, we will be able to get
software engineering in the professional world." closer to graduating students with qualifications that
are needed currently in industry. The computer
One reason for the gap between what students learn science faculty at Embry-Riddle University have
in Universities and the skills required by the developed a computer science program that addresses
software industry is that few existing academic some of the issues. This program is centered around
programs address the competencies expected of an aviation application domain and emphasizes good
incoming software engineers. These are software engineering practices. Some of the key
programming in the large, ability to work in teams, elements of the program are: 1) software
knowledge of process, quality and the ability to engineering concepts introduced intp the first year
estimate time and labor costs. Computer science courses (CS1 and CS2) and expanded on in
education, where most software engineering subsequent years; 2) team software development is
education occurs, too often focuses on individual introduced in the junior year, and emphasized
contributions rather than managed group efforts through at least seven courses. A detailed discussion
involving these competencies. Group efforts, on the software engineering aspects of this program
however, are the norm in the software industry [8]. is contained in reference [2].
Current curricula do not allow students to develop
real software, but rather focus on what can be called In the following sections, we will discuss one specific
"toy projects in toy situations" [1]. One approach to experiment that has been used to implement theincorporation of software engineering practices In the 1995-1996 academic year we decided to
across the curriculum. introduce software process concepts and activities
into our CS1 and CS2 courses. We used an early
draft version of Watts Humphrey's Introduction to
The DQW/PSP Experiment the Personal Software Process [5] to teach the
material. The book is written for students new to
In recent years there has been a great deal of computer science and software engineering. Its
emphasis on the assessment and improvement of the narrative style, examples and exercises have been
software development process. The Capability tailored to first year computer science majors. There
Maturity Model (CMM) developed at the Software is a major emphasis on time management, and the
Engineering Institute is used by many organizations PSP material on estimation and design has been
as a basis for the formulation and the maintenance of simplified. Also, there are no prescribed
an effective development process [1,7]. In addition programming assignments for the PSP activities, so
to our undergraduate program in Computer Science, the material can be used with a variety of different
we offer a Master of Software Engineering (MSE) programming assignment profiles.
program that concentrates on the development of
effective processes for software development [6]. We called this project "Doing Quality Work"
(DQW). (Throughout this paper we refer to this
The Personal Software process (PSP) was created by project as DQW/PSP.) Our goal was to emphasize to
Watts Humphrey [4] to address the need for the students, from the very beginning, how important
individual software engineers to acquire a quality was in their work. More specifically our
disciplined and effective approach to writing objectives were:
programs. The philosophy behind the PSP is that an
organization’s ability to build large-scale software Provide students with learning experiences
systems is dependent upon the ability of its that will help them to understand the
individual software engineers to develop high quality importance of a disciplined approach in the
small-scale programs in a disciplined, effective development of software;
manner. The PSP is designed to help engineers
organize and plan their work, track their Engage students in activities in which they
performance, manage software defects, and analyze use the elements of a defined personal
and improve their personal process. The PSP is software process;
currently being taught in a number of industrial
organizations and has been offered at the senior Provide a foundation for further
undergraduate level and the graduate level in various development/improvement of the student's
academic programs. personal software process and its use in
individual and team projects.
The basic PSP content (as described in Humphrey’s
book [4]) consists of ten programming assignments We started with time management and beginning
and four reports. Students start with a simple planning activities within CS1. We felt that a
process that includes estimating and recording their beginning college student could best assimilate and
effort for the different process phases. As students benefit from the time management activities.
progress through the assignments, they learn about, However, although all students entering our CS1
and use, more detailed and mature processes. The course had some programming experience, we did
PSP relies heavily on data collection, mathematical not feel they were yet ready for a formally defined
estimation techniques, formal reviews (design and software development process. At this stage we felt
code), and the use of analysis to improve process they neither understood nor appreciated the problems
effectiveness. in modern software development. Nor did they have
any real comprehension about the role of a software
We are using the PSP as the basis for the first course engineer.
in our MSE program. The PSP serves as an
introduction to software engineering and as a In CS2 we formally introduced PSP activities.
foundation for process activities that are introduced Students carried out project planning for each
in subsequent courses. project. This included using historical data to
estimate size, effort. and quality (defect projection).Actual data for each project was collected and example, it was hard for them to decide on whether
recorded on a summary sheet. We felt students at the time spent coding after a compile need to be
this level (after finishing CS1 and their first semester recorded in coding, compile, testing or even design
in college) had the maturity and were ready for a stage.
more disciplined way to develop their programs. We
also felt that delaying the introduction of PSP for a As might be expected, freshman students do not
further semester (or year) would allow sloppy and relish this sort of intensive record keeping. A student
undisciplined programming practices to become opinion survey, taken about nine weeks into the
more entrenched and make such practices much course in the fall of 1995, indicated resentment about
more difficult to change. including this material in CS1. Many students
voiced concern about sacrificing time needed to study
programming material in order to perform
Material covered in “Computer Science 1" (CS1) DQW/PSP work.
In CS1, topics in time management, scheduling, and An analysis of the comments on the CS1- Fall 1995
planning were combined with the normal material survey form show the following reasons for the
(introduction of computer science and fundamentals negative attitude toward DQW:
of programming) [3]. Students were required to
develop and/or use several types of documents: time The way that DQW was introduced into
logs, task schedules and plan/summary documents. CS1
After the introductory work was completed, students
began each week by estimating the effort (time) Age and lack of maturity of students
necessary to complete their CS1 tasks. Throughout
the week they recorded the time it actually took to Lack of commitment of some students to
complete those tasks, and, at the end of the week, computer science/software engineering as a
they summarized the time spent on the week’s career (some are not majoring in CS and
activities and compared their estimated times with some CS majors have the normal freshman
their actual times. For their programming tasks doubts about their long-term goals)
students recorded their estimated and actual data for
both effort (time in minutes) and program size (lines The effort required for DQW work versus
of code). the apparent reward
During our first offering, students were also asked to As a result of this analysis, changes were made in the
keep an accurate time log which represented the time organization and delivery of CS1.
they spent on CS1 tasks. This time included
interruptions down to the minute. The DQW/PSP The main change in the delivery technique was to try
material was distributed rather uniformly throughout to make the DQW/PSP material as transparent as
the semester. On the average, one chapter of the text possible in the overall delivery of the CS1 subject
was covered every one and a half weeks. About matter. We also decided to cover much of the time
every three weeks, a quiz on DQW/PSP material management/planning material in the first three
was given. Starting in the early part of the semester, weeks of the semester. This allowed students to
students were asked to keep track of nine separate start collecting data at an earlier point. This
tasks: class attendance, reading Ada material, concentration of most of the DQW material in the
preparation for a quiz or test, reading and first part of the course eliminated the regular
preparation for DQW material, and programming. interruption of normal course material (with
The programming task was divided into five scheduled lectures) throughout the semester, while
subtasks: requirements, design, coding, compile, and still allowing for selective re-enforcement of DQW
test. In the latter part of the semester we simplified concepts, when necessary. The second change, was
the programming task, by requiring all programming to relax some of the requirements for time tracking.
activities to be combined into one activity. This was Students were no longer required to keep track of
based on the fact that, at this time, a majority of small interruptions, and only asked to estimate
students had a problem distinguishing between the interruptions of five minutes or more.
time spent on each stage of the life cycle. For
DQW assignments consisted of time managementexercises where students were asked to keep track of spring semester of 1996. The DQW/PSP efforts were
the time they spent on the following four activities: concentrated on software defect management and
used the second half of Humphrey’s introductory text
CLASS the time spent in class [5]. A simplified version of PSP was combined with
the usual CS2 topics (introduction to data structures
DQW the time spent on filling and algorithms) [3]. Students were asked to estimate
out forms and performing and record data about effort in each of six phases of a
necessary calculations. program development process: planning, design,
code, compile, test, and postmortem. As the course
PROGRAMMING progressed, students were asked to identify and
the time spent on a record their defects. They cited the phases in which
programming assignment defects were injected and in which they were
removed. A primary focus of this effort was to
READING the time spent preparing encourage thorough and productive code reviews.
for class, including class,
quiz and exam
preparation During the Spring 1996 semester students were
assigned seven programming projects. Each
There were a total of eleven weeks of DQW/PSP assignment involved PSP work (maintaining timing
assignments. Each weekly assignment consisted of logs, defect logs, summary data forms) that counted
two sub assignments: a planned/estimated time that a for 10 to 20 percent of their assignment grade. Each
student would spend on any of the four activities new PSP concept was introduced in a fifteen to
during a week, and the actual time the student spent twenty minute class discussion. Whenever and
on each of the four activities. Chart 1 shows the wherever possible the PSP concepts were related to
average estimation error (for the 36 students) for the the normal course material. A reading assignment
CLASS, DQW, PROGRAMMING and READING was made prior to the introduction of each new PSP
tasks for weeks 2 through 11. The estimation error is concept and any new forms were made available (in
computed using the below formula: text format) in a public directory on our computer
network. New concepts were introduced every other
assignment, so students had a couple of assignments
100 * (actual - estimate) / estimate to get used to a new concept. Defect data was
collected for programs 3-7, and a formal code review
The error for PROGRAMMING and READING was required for programs 5-7.
indicate more irregularity in this data than for the
DQW and CLASS data. This can be attributed to An interesting and beneficial side effect of this
the variation in assignment difficulty and course experiment has been the large supply of data that is
topics, and the fact that students are learning new made available to the teacher. The data can provoke
material for each assignment. On the other hand, the questions about the effectiveness and productivity of
CLASS and DQW data estimates show little error. student programmers and the quality of their work.
This can be attributed to the fact that these tasks The data then provide the basis for a detailed
have less variation from week to week and, hence, analysis of such questions.
are easy to predict.
As an example, consider Charts 2 and 3. Chart 2
Notice that in the last week of CLASS data the error shows the defects/kLOC (normalized defects) for all
is relatively large ( -33% = 100 * (120 - 180) / 180 ). students for program 4. Chart 3 shows the
There was a scheduled study day (no class) that week defects/kLOC for all students for program 6. For
and a close look at individual data showed the program 4 most students had 100 or more
students were not aware of the study day when their defects/kLOC, while for program 6 most students
estimates were made. had fewer than 50 defects/kLOC. Why such a
dramatic change? One explanation might be that
formal code reviews began in program 5 and that by
Material covered in “Computer Science 2" (CS2) program 6 the code review was so effective that
program quality (by one measure) was dramatically
DQW/PSP activities were introduced into CS2 in the improved. However, a closer look at the data revealssome other possible factors for this improvement; throughout the CS curriculum.
type of program or quality of testing .
5 DQW/PSP data provides teachers with
valuable information for analyzing student
DQW/PSP Experiment Results and Expansion effectiveness in completing course work -
especially programming projects.
Based on the objective and subject evaluations of the
DQW/PSP activities, in the 1995-1996 academic
year, we do not feel that DQW/PSP objectives have
been fully achieved. However, we have made some
meaningful progress. We think that with additional
effort, and some changes in our approach, we believe
we are getting closer to achieving our objectives.
We are also working on a world wide web project
involving automated data entry by the students
involved in DQW/PSP activities. This should reduce
the burden on students and make it easier to collect
and analyze data.
Students are required to perform the full PSP
activities in two additional courses: Data Structures
and Algorithms and Computer Organization II. We
have introduced some aspects of PSP in second third
and the fourth year of our undergraduate curriculum.
For example, the students are required to follow the
time management activities in all of their team
project courses. Of course the team project
introduces a new challenges in relation to the PSP
experiment, since PSP’s foundation is based on the
individual effort. Currently, our graduate program
involve, with cooperation of Watts Humphry, an
experiment called the Team Software Process (TSP).
Soon, we hope to be able to use the result of this
experiment in our undergraduate applied computing
classes.
The following list summarizes the conclusions of our
DQW/PSP work:
1 Humphrey’s introductory text [5] provides
an excellent foundation and motivation for
teaching DQW/PSP concepts.
2 There is a need for simplification and
automation of forms, logs and record
keeping.
3 We must continue to adjust and modify our
teaching techniques to accommodate and
integrate DQW/PSP concepts into CS1 and
CS2.
4 DQW/PSP concepts needs to be integratedReferences
1 Dion, Raymond, "Process Improvement and
the Corporate Balance Sheet", IEEE
Software, July 1993.
2 Hilburn, T., Hirmanpour, I. and Kornecki,
A., "The Integration of Software
Engineering into a Computer Science
Curriculum", Lecture Notes in Computer
Science: Software Engineering Education,
Proceedings of the Eight SEI Conference
on Software Engineering Education, March
1995.
3 Hilburn, T. and Salimi, A., Ada, From Top
to Bottom, Embry-Riddle Aeronautical
University, August 1995..
4 Humphrey, Watts S., A Discipline for
Software Engineering, Addison-Wesley,
Reading, MA, 1995.
5 Humphrey, Watts S., An Introduction to the
Personal Software Process, Addison-
Wesley, Reading, MA, 1997
6 Khajenoori, S., "Process-Oriented Software
Education", IEEE Software, November
1994, pp. 99-101.
7 Paulk, M., et. al., "Capability Maturity
Model, Version 1.1", IEEE Software, July
1993, pp 18-27.
8 Tucker, A. M., "Computing Curricula
1991", Communications of the ACM, 34(6),
June 1991, pp. 68-84.Chart 1: Average Effort Estimation Error
36 students - CS 115 - Spring 1996
150
50
Class
DQW
-50 Programming
Reading
-150
Weeks 2-11You can also read