00491364

7
8/10/2019 00491364 http://slidepdf.com/reader/full/00491364 1/7 78 Balancing Process and Product Donald J. Bagert Department of Computer Science Texas Tech University [email protected]  Lubbock TX 79409-3 104 Abstract The following research question vas posed: an large-team projects with in-house customers be used to eflectively teach the software engmeering development process, while still producing completed and usefil products within a set time period? This paper describes undergraduate and graduate software engineering courses taught at Texas Tech University which have large-team projects. In those courses, there is a balance achieved so neither the process nor the product aspects of software development are overly emphasized. In other words, having a completed or nearly-completed project at the end of the semester is essential. Equal parts of the grades in those courses is given to the process and product aspects of the large-team software development project. A number of successful projects have been developed using thls method. the grades in the process and product phases of the course being approximately the same. Interaction with industry has provided input which h s resulted in some improvements in the software process used in these courses. A self-study of the software process maturity at Texas Tech found the process to be level 2; materials have been developed using the self-study team’s recommendations, wth the goal being to improve the process maturity to level 3. 1 Introduction There has been a sipficant initiative in last several years to improve the software engineering development process, usmg such tools as the Capability Maturity Model (CMM) [CMU/SEI 19951 and the Personal Software Process [Humphrey 19951. This has led software engineering educators to examine and improve the software process techniques that are taught and used in their own project ( for instance n [Coyle et al 19941, [Werth 19941, and [M oore and Brennan 19951). However. several educators, such as Petex Denning in I s keynote address at the Conjkrence on Software Engineering Education in 1994, have of overemphasizing the process at the expense of the product (the latter being the primary concern of the customer). Therefore, it is important that when software engineering is taught, th t there is some type of balance achieved so neither the process nor the product aspects of software development are overly emphasized. So, in project courses, such as the large-team course dehed by Tomyko [1987], having a completed or nearly-completed project at the end of the semester (or quarter) is eSSential. 0 8186 7249 8/96 05.00 0 1996 IEEE

Transcript of 00491364

Page 1: 00491364

8/10/2019 00491364

http://slidepdf.com/reader/full/00491364 1/7

78

Balancing Process and Product

Donald J. Bagert

Department of Computer Science

Texas

Tech University

[email protected] 

Lubbock

TX

79409-3 104

Abstract

The following research question vas posed: an large-team projects with in-house

customers be used

to

eflectively teach the software engmeering development process, while

stillproducing completed an d usefil products within a set time period?

This

paper describes undergraduate and

graduate

software engineering courses taught

at

Texas Tech University which have large-team projects. In those courses, there is a balance

achieved

so

neither the process nor the product aspects of software development are overly

emphasized. In other

words,

having a completedor nearly-completed project at the end

of

the

semester

is

essential.

Equal

parts

of

the

grades

in those

courses

is given

to

the process and

product

aspects of

the large-team software development project.

A number of

successful

projects have been developed using

t h l s

method. the grades in the process and product

phases of the course

being

approximately the same.

Interaction with industry

has

provided input

which h s

resulted

in

some im provements

in

the software process used in these courses.

A

self-study

of

the software process maturity at

Texas Tech found the process to be level 2; materials have been developed using the self-stud y

team’s

recommendations,

wth

the goal being to improve the process maturity t o level

3 .

1 Introduction

There

has

been a sipfica nt initiative

in

last several years to improve the software

engineering development process, usmg such tools as the Capability Maturity Model (CMM )

[CMU/SEI 19951 and the P ersonal S oftware Process [Humphrey 19951. This has led software

engineering educato rs

to

examine and improve the software process techniques

that

are taught

and

used in

their

own project

(

for

instance

n

[Coyle

et

al

19941,

[Werth 19941, and [M oore and

Brennan

19951).

However. several educators,

such as Petex Denning in I s k ey no te address at the

Conjkrence on Software Engineering Education

in

1994, have

of

overemphasizing

the

process

at

the expense of

the

product (the latter being the primary concern

of

the customer).

Therefore,

it is

important that when software engineering is taught,

th t

there

is

some type of

balance achieved so neither the process nor the product aspects of

software

development are

overly emphasized.

So,

in project

courses,

such

as

the large-team course de he d by T om yk o

[1987], having

a

completed or nearly-completed project at the end

of

the semester

(or

quarter)

is

eSSential.

0 8186 7249 8/96 05.00 0 1996

IEEE

Page 2: 00491364

8/10/2019 00491364

http://slidepdf.com/reader/full/00491364 2/7

79

The literature is

also

filled with examples of the importarice of having industry involved in

software engineering education, such as being the customer ion class projects (e.g. [Tomayko

19911; [Moore and

Potts

19941).

In

this manner, tudents have the experience of dealing with a

“real world” customer in creating

a

“real world” project h i c h will1 actually be put into use.

However, it becomes more difficult to have the project be of a s8izewhich can actually be

completed in a single semester when a n “ou tside” customer is

used.

Therefore, other alternatives

should be considered.

At Texas Tech University, the alternative proposed

in

1991 was

to

have the projects

generated inside of the computer science department, while having those projects be ones that are

actually used upon comp ktion. (Oth er courses could have inlduStriid custom ers; see Section

5

for how

this

occurs at Texas Tech.) In other words, the following research question was posed:

Can large-team projects with in-house customers be used fo efictively teach the sofiware

engineering development proc ess. while still producing completed and usefkl products within a

set time period?

Over the last five years a t Texas Tech, the answer

has

been found to be

yes .

This paper describes the introductory undergraduate and

graduate

s o h e engineering

courses at Texas Tech which have been implementing successful large-team projects with

in-

house customers since the spring of 1991.

Section 2 provid’es and overview of these courses,

while Section 3 shows how the process and product aspects

of

software development are

b a l a n d during project implementation. Section 4 describes current work being implemented to

improve the maturity of

the software

process used in courses at Texas Tech, including some

interaction with industry. Section

5

describe s how

maintenance

and cdmncement of the software

developed in these courses are performed, and how “outside“ customers are used in follow-up

courses. Finally, Section

6

provides a summary.

2. Overview o f the lntroductory Courses

at

Texas

Tech

Computer Science 3365 (Software Engineering) and 5363 (softw are Engineering Systems)

are the introductory undergraduate and undergraduate sofimre engineering courses,

respectively, a t Texas Tech University.

C

S 3365 is

the first course

of

a required three-semester

software engineering sequence (the other

courses

will be di jcussetl

in Section 5),

and uses a

variatiodrefin emen t of the T omayko model for large-team project courses [Tomayko 19871.

Most of the students n this course a re computer science majors. C S 5363 assumes that the

students have

a

basic intrcduction to software engineering concepts from either a previous

course or work experience, while s t i l l using the same large-team model as the undergraduate

course.

Several of the students in 5363 are non-majors (usually from

some

other engineering

disciplie); it is one of the most popu lar grad uate courses at the iuniversity (usually about 20

students are tumed away du e to lackof space).

The projects are chosen a re cho sen using several criteria, the most important of which are:

1)

the probability of completion of the pro ject during the semester, 2) the ability to put into

practice software engineering skills during the development of the project, and

3)

the potential

usefulness of the project afte r completion.

There are two type of projects that are usually

given

in these courses.

One is the

development of a software tool which

can used in

later semesters of this course’. Examples of

The class

also uses educational versions of

commercial

CASE

tools:during the course.

Page 3: 00491364

8/10/2019 00491364

http://slidepdf.com/reader/full/00491364 3/7

80

such projects have been a Configuration Management Tool 0.Testing aNd Evaluation

Tool (TNET), and a software defect tracking mechanism (inspired by w er th 19941). The other

t p e of project is the development

of

some software that

wll

be used at Texas Tech, such as a

Student Tracking And Recruiting Tool

(START),

for prospective

students;

a degree plan

maintenance system (DPLAN), and a Graphical Orientation Advising Tool (GOAT’), which

is

used to help formulate schedules during summer new student orientations at Te xas Te ch.

Virtually all of the products developed

in

the large-project

courses

were delivered on time,

in complete or near-complete form, and are currently being (or have previously been) used

successfully at Texas Tech. The projects are maintained and en h a n d by students who have

previously taken this course (see

Section 5 .

In two cases, an unusable product was delivered. Both times, the cause was due to severe

personnel problems at key positions. Usually, however. serious personnel problems have been

overcome using standard conflict resolution t ec hq ue s.

3. BalancingProcess and Product

Currently 30 of a student’s grade from their performance in the software development

process and

30%

comes

from

the evaluation of the delivered product. (The remainder of the

grade comes from the course exam inations, peer evaluations, and the fi n

oral

presentation

of

the project). The.grade for the final product is same for each student in the class. The 30

“process” grade is broken down

as

25%

for the

six

project

assignments

(modified and retined

from

those defined by T omayko), and

5 comes a

re-evaluation of those assignm ents after the

project is completed. Since he amou nt of work

is

differentat

a

particular

phase

of the project,

depending on the student’s duties (e.g. Configuration Manager), the percmtage for

each

assignment

s different for each individual and group

within

the project team Table

contains

the percentage breakdown that \vas

most

recently used.

Assignmcnt

1

2

3 4 5

Principal Architect 12

Project Adm inistrator I Yo

Quality Assurance Manager 5

Design Group

2

Implementation Group 2%

Documentation Specialist

2

Test

&

Evaluation

Engineering

Group

2

V & V Engineering Group 2

Configuration Manager 6

5yo

3

yo

3%

4%

11%

2%

3%

4

4

2

3

4%

1

2Yo

4

4%

3yo

4

2

3yo

3

4

o

3

%

4

4 o

4%

4

2

3

4

1Yo

6%

6%

6%

6

3yo

 

Table

1.

The process assignment percentage breakd own s

for each g roup within

a

team.

Okay,

so he project team

doesn’t always choose

the

best of

acronyms

6

2%

6%

7

4

o

9

6%

5?o

5

Page 4: 00491364

8/10/2019 00491364

http://slidepdf.com/reader/full/00491364 4/7

81

There are two main criteria used to assess whether promss

and

project has been balanced

sufficiently. One

is

the amount of effort required for fine-tuning (tiefore release), maintenance

and enhancement of the system in future semesters.

In

general, ihe software

has

been very

maintainable, with only a small fraction of the original project cmts required. (The main

problem in maintenance

has

been for the students

to

keep the :same l'evel of process management

as

in

the

original

project;

this

s discussed further in Section

5 .

The other criteria used is to compare the average of the 30% of the grade assigned to

process issues with the grade given to the final delivered prodiuct. Although the process average

is

g e n d y higher th nthe delivered product grad e,

it

not significclnt& higher (usually around

3%))".

The satisfaction level of the course has been high with both students, the inshu ctor (i.e. the

author), faculty who have t ught the later courses

in

the wndergr,aduatesoftware engineering

sequence, and employers of gradu ates

who

took

his

course.

'The

students found a

great amount

of sa ti sW o n and sense of personal achievement by being able

to

deliver a completed. usable

project at the end of the semester.

4. Current Process Improvement Initiatives

During most summers, the author teaches

a

software enginexring course as part of the

Masters of Systems En gin ee hg degree program

at

Texas Tech. The students n

this

course are

practicing

system

engineers

from

arge companies. Due

to

the short physical length ofthe class

(four weeks of contact), a large-team project

is

not assigned.

However, the Capability Maturity Model is covered in tlhe software engineering course4.

In

the summer of 1994 the systems engineers were asked to do

a

brief evaluation of the prmess

maturity (as dethed using the CMM) of the s0-e engineering large-team projects at Texas

Tech, using coursematerials and a recent project supplied to them. The students, n teams, were

required to give both

oral and written

reports of their findings.

All of the te m concluded that the software process currently used in those courses

was

either at a level

I

or a level 2, although all of the teams were impressed with the quality of the

process for an academic environment. Several reC0 "end ;ltions were made on mproving the

standards and policies guidelines, and in formalizing the process in places to better reflect

industrial practices. Many of these recommendations were snccesr;fully implemented during the

1994-95 School

YW.

In the summer of

1995

two students who had taken the undergraduate sofhvare engineering

course

during the previous spring were assigned

to

do a formal self-study of the software

engineering process used at Texas Tech, using the Capability Maturity Model, and materials

supplied by the SoftwareEngineering Institute [Zubrow

et

a1 19941. The two students used the

&jhvare ProcessImprovementGame (§PIG)' [AST 19931 o help them leam about level 2

of

The author also believes that he

gr des

the

project

assignments

a

little

easier

than the

final

delivered

product.

Perhaps e

needs o leam

a lit tle more

balancing ..

Since

he studentsrecognizedtheapplicabilityof the CMM to

system

engineering, they were

not

surprised o

learn that

a System EngineeringCapability Maturity Model

(SE-C")

was b5ng developed

The SoftwareProcess mprovement Game is

993

by

Bob

and

Vicky Holanan.

Page 5: 00491364

8/10/2019 00491364

http://slidepdf.com/reader/full/00491364 5/7

a2

the CMM.

So

as not to bias their findmgs, these students were not given access to the previous

reports written by the various system engineering

eams.

The

evaluators gave a detailed report which classified the

Texas

Tech software

process as

level 2, with a number of recommendations on how to make improvements in order to progress

to

level

3.

The author accepted these recommendations, and for the rest of the

summer,

these

same

students to developed materials based on their report findings. The new

materials,

including updated and expanded standards and policies, will

be

implemented at Texas Tech

starting in the spring of 1996, and will also be used in the later courses of the undergraduate

software engineering sequence.

5. Follow-up Coursework

5.1 Software Maintenance and Enhancement

Due to the limited time frame of

a

one-semester software engineering

course.

there is no

opportunity for

a

maintenance cycle. Therefore, fine-tuning (before actual

use).

maintenance

and enhancement of the projects have been performed using the undergraduate and graduate

Special Topics classes. Students in these courses work either as individuals or in small teams.

Virtually every project developed by

C S

3365 and

5363 has

gone through at least one such

maintenance cycle. s with most

successful

software products,

various

enhancements have been

made for future releases.

In

several cases, this has included porting the software from DOS@ o

Mi cros ob WindowsW.

The only problem

that

the students have

had

with this approach is the lack of separate

Testing & Evaluation and V& V

groups

to test and inspect, respectively. their work, as

is

done

in the introductory software engineering

courses.

However, this deficiency will be

corrected

through the use of students from the year-long senior project class (described in Section 5.2

below).

5.2 Using Industrial Customers

As

was

mentioned in the introduction, there have

b e n

many

cases

described

in

the literature

of

successful projects developed

for

industry w ithin software engineering courses. There has

been

two

ways that

this has

been accomp lished in the past at Texas Tech in the undergraduate

sequence. One is through the Sp ecial Topics classes, and the other is through the two-semester

senior project

sequence (Computer Science 4411 and 4412). Several successful software

development projects have developed for local companies using this format.

However,

although h e

year-long

senior

project

class

has

h d

as

one

of its

prerequisites the

introductory software engineering course

for

several years,

the

three-semester sequence has not

been tightly

coupled. However, this will change during

the

1996-97 school year;

starting in

the

fall of 1996, the senior project courses will be using the same set of software development

standards discussed in Section 4.

The

benefits of

this are

obvious: not only is training time

reduced, but by

giving

the students

a

single department standard for doing their software

engineering projects. it will give the students the same experience as they would for

working

in

various departmentsof the same company.

Page 6: 00491364

8/10/2019 00491364

http://slidepdf.com/reader/full/00491364 6/7

83

The primary focus

of

the revised senior project courses swill be the development,

maintenance and enhancement of software for “outside” customers. Some students will work on

several different projects. and all will be exposed to dilTerent aspects

of

the software

development process th nthey were

in

the introductory course.

Also, as

previously mentioned in

Section 5.1, testing and inspection support will be given to shidents performing maintenance of

the in-house projects developed within the introductory courses

In summary while the first undergraduate software engineering course provides the student

a very neat and compact project where there is a sense

of

completion and closure, the senior

project courses introduces them to more of the open+nded complexities

of

real-world software

engineering. The overall experience

is

intended to g ive the stuidents

a

well-rounded background

to take with them into the workplace. (Unfortunately , however, thexe no equivalent to

“studio”

equivalent to senior projects at this time in the graduate program, although one has

been

discussed for many years, and its eventual implementation

is

envisioned.)

6.

Conclusions

The following research question was posed:

Can Imge-team projects with in-house

customers be used to efectiveiy teach the sofrware engmeering deveIopment process, while

still producing completed and usefil products within a set time period? Since

199

1

at Texas

Tech University, the answer has been found

to

be in the aflimative.

This paper described the introductory undergraduate and graduate sofhvare engineering

courses taught at Texas Tech. In those

courses.

there

is

a balance achieved

so

neither the

process nor the product aspects of software development are overly em phasized. In other words.

having a completed or nearly-completed project at the end O the semester is essential. Equal

parts

of

the grades in th ose courses is given to the process andl product aspects of the large-team

software development project. A number of succ ess ll projects have

been

developed using this

method, with the grades in the process and product p hases of ihe course being approximately the

same.

Interaction with ind ustry has provided input which allowed for some improvements

in

the

s o h e process used in these cou~ses .

A

subsequent self-study of the software process

maturity at Texas Tech found the process to

be

level

2.

Materials have been developed using the

recommendations of the self-study te mwith the goal being 10 improve the process maturity

to

level 3.

Follow-up courses give the student further software engineering background

through

pdonning soffware maintenance and enhancement on projects developed in the introductory

courses. and by having students work on projects with industrial custom ers.

In

summary

the Texas Tech Department of Computer Scienwe intend to continue to teach

their large-team introductory undergaduate and

graduate

software engineering courses in their

current format. The satisfaction level of these courses

has

been hi with students. faculty, and

employers.

Page 7: 00491364

8/10/2019 00491364

http://slidepdf.com/reader/full/00491364 7/7

84

References

[AST 19931

Advanced Sys tem

Technology,

Inc., Lawton OK, 1993. ( ba rd game)

c Software Process Improvemenf Game?

[Coyle et a119941

m ed Systems Te

Coyle,

Frank

P.; Forest, Edward; Tanik,

Murat,

M ;nd Frailey, Dennis. Meeting the needs of industry:

SMU's master 's

degree

program

in sohare

engineering.

Proceedings of the 7th Conference

on

Software

Engineering Education Lecture Notes in Computer Science

750),

5-7 January 1994, San Antonio TX

(Published by Springer-Verlag, Berlin, Germany, Jorge L. Diaz-Herrera, ed.), pp. 543-554.

[CMU/SEI 19951

Camegie Mellon University, SoftwareEngineering Institute. The C a p b i l i ry Maturity Model: Guidelines

for Improving the Sofhvare Process. Addison-Wesley Publishing Company

(SEI

Series in Software

Engineering),

Raiding

MA; Mark C. Paulk, Charles V. W e b k , Bill Curtis and Ma q Beth Chrissis,

principal conhibulrors

and

editors.

[Ilumpiuey 19951

Humphrey, Watts S.

A

Discipline fo r S o f t r e Engineenng. Addison-Wesley Publishing Company

( S a

Series in Sofhvare

Engineering),

ReadingMA.

pfoore and Brennan 19351

Moore, Melody

hl .

and Brennan,

Terence.

Proceedings of the

8ih

Conference

on

Sofwore Engineering

Education Lecture Notes in Computer Science 895), 29 March-1 A p r i l 1995, New Orleans LA (Published by

Springer-Valag, IMin, Germany, RosalindL.

Ibrahim,

ed.),pp. 123-130.

pfwre and Potts 19941

Moore, MelodyM. nd Potts, Colin.

Proceedings ofth e 71h Conferenceon

Sofrwore

Engineering Education

Leciure Notes in Computer Science 750), 5-7 January 1994,SanAntonioTX (Published by

Springer-Verlag,

Berlin,Germany, .forgeL. Diaz-Herr-

ed ,

p. 151-164.

uomayko 1987

Tomayko, ames E. Teaching a Project-lniensive Introduction io

Sofrwore

Engineering. Special Report

CMUBEI-87-SR-11, Soflware Engineering Institute, Carnegie-MeUon University, Pittsburgh PA, March

1987.

[Tomyko 19911

Tomayko, James I . Teaching

sofhvaredevelopment in

a

studio environment. Proceedings of the

Tweniy-

Second SIGCSE Technical Symposium

on

Compuier Science Education (Published by ACM Press, New

York, B a r b Botcher Owens, ed.), held in anAntonio TX, 7-8 March 1991,pp. 300-303.

[wath

19941

W a t h , Laurie

Honor.

An adventure n software

process

improvement. Proceedings of the 7th Confirence on

Sofiware Engineering Education Lecture Notes in Computer Science 750),

5-7 J a n w 1994, San Antonio

TX Publishedby :Springer-Verlag, Berlin, Germany, Jorge

L.

Diaz-Herr- ed.), pp. 191-210.

[Zubrow et all 9941

Zubrow, David; Hayes, William; Siegel, Janq and Guldenson, Dennis.Maturity

Questionnaire.

Special

Report CMU/SEI- )4-SR-7, Software

Engineering

nstitute, Cmegie-Mellon University, Pittsburgh PA, June

1994.