[ont.events] SOFTWARE ENGINEERING SEMINAR

wlrush@water.waterloo.edu (Wenchantress Wench Wendall) (10/12/89)

will speak on ``Software Complexity and Maintainability''



DEPARTMENT OF COMPUTER SCIENCE
UNIVERSITY OF WATERLOO
SEMINAR ACTIVITIES
SOFTWARE ENGINEERING SEMINAR

                    -Thursday, October 19, 1989

Mr.  Dani  Zweig,  Carnegie-Mellon Univ., will speak on
``Software Complexity and Maintainability''

TIME:                 3:30 p.m.

ROOM:                 DC 1302

ABSTRACT

    It  is  generally  assumed  that,  in the long run,
complex,  ill-structured  code  will  be  difficult and
costly  to  maintain,  even  in  cases  where it can be
developed  cheaply.   Since  most  software  costs  are
expended  in  maintenance, rather than new development,
such  code  is no bargain.  We will test the assumption
that  the  maintainability of a system is influenced by
the  complexity  of  the  code.  In particular, in this
study  we investigate the impact of software complexity
upon the cost of software maintenance.

    To  do  this,  we  must  first  select  appropriate
metrics   for   measuring   software   complexity.   An
examination  of the literature reveals an embarrassment
of  riches:   One  can find over a hundred metrics from
which  to  choose.   An  empirical  analysis  of  COBOL
programs  at  a  commercial  data  processing  site was
undertaken  to  analyze  many  of  the  major  software
complexity metrics which have been proposed.

    Automated tools were used to compute a large number
of  complexity  metrics  for several thousand programs.
Analysis  of these metrics determined that almost their
entire information content could be represented by four
selected  metrics:   program  size,  average subprogram
size,  density of decision points within a program, and
density of branching within a program.

    A  sample  of  62  maintenance projects at the same
research  site  was  analyzed  in order to estimate the
cost-impact  of  software  complexity.  Controlling for
project  size, programmer skill and experience, and the
use  of  software  tools,  we  find  that program size,
modularity,  and  the degree of branching significantly
affect software maintenance costs. The methodology used

                    October 5, 1989


                         - 2 -

allows  us to make actual dollar estimates of the costs
of software complexity.

                    October 5, 1989