On the Contributions of Reuse Research and Development to the State-of-the-Practice in Reuse
Jeffrey S. Poulin, Lockheed Martin Federal Systems,
Owego, NY
Reuse Research and Development (R&D) has had
a positive affect on many practical problems faced by industry.
Early work on library methods gave the field a focus, and allowed
it to grow. More recently, research on reuse practices, organizations,
domain analysis techniques, and metrics have found a place in
the daily routine of large industrial development organizations
[Poulin97]. Techniques such as object-orientation and software
architectures often rely on software reuse as a unifying goal
or objective. Finally, technologies such as visual programming
languages (e.g., Visual Basic (VB)) provide a natural medium for
developers to unconsciously practice reuse. As Ed Yourdon observes,
"the real benefit of languages such as VB/Powerbuilder may
be software reuse rather than the visual paradigm" [Yourdon96].
I would like to expand on the dynamic relationship
between R&D, large-scale software development, and software
reuse. We know that new technologies often take a very long time
before they move from R&D into general acceptance and practice.
During this time, our perceptions and expectations with respect
to the technology often change dramatically.
A Growing Need for Technology "Experts"
The world's appetite for software seems to have no
bounds. This need for software eventually will (if it has not
already) outgrow our development abilities. Meeting this "software
crisis" will require a far more radical change in our approach
to software development than anything we have conceived of to
date. However, I see us meeting this challenge in much the same
way as the world met another radical technology, the telephone.
In 1876 Alexander Graham Bell filed for and obtained
a patent for his version of the telephone. Seizing
upon the opportunity to promote his new invention, Bell introduced
the telephone to the world later that year at the Centennial Exhibition
in Philadelphia. Bell's telephone immediately became the talk
of the international scientific community and one of the most
amazing things in America. Within a year of the centennial exhibition,
Bell had installed 230 phones and had established the Bell Telephone
Company. Four years after its creation, 60,000 phones existed;
by the turn of the century that increased to two million.
Despite its novelty and its rudimentary audio quality,
the telephone took a quick and fierce hold on American society.
Within 25 years (about the same time it took for computers to
move from the raised floors of a few select corporations to the
desktop) the telephone became a necessity. However, people needed
to work through a switchboard operator in order to place a call.
This meant that with the explosive growth of the telephone came
an explosive growth in the need for operators. By 1910, New York
Telephone had 6,000 women working on its switchboards. Projections
showed that if the growth in telephone use continued, a significant
portion of the population would have to become operators in order
to keep up with the enormous number of calls. The telephone company
avoided this crisis by assigning everyone a phone number and fielding
the rotary-dial phone. This meant that everyone essentially became
an operator.
The computer, like the telephone, has brought a radical
change to way the world conducts its business. However, computers
have traditionally required highly technical training to operate
and program. With nearly everyone demanding specialized software
and custom applications, the world will soon find itself hopelessly
short of people with this technical training. I predict that
we will address this crisis much as we did with telephone operators.
In short, we will make programming computers accessible to everyone,
whether or not they have a technical background. Our challenge
comes in developing the technologies to make this possible.
Everyone Becomes a Programmer
Many technologies have progressively made programming
more accessible to the computer novice; a couple of these deserve
mention. The designers of COBOL intended to make a language in
which "managers could program, too." The spreadsheet
allowed financial analysts to "write" their own programs
to do what they used to do with pencils and budget sheets. Visual
languages gave computer novices the ability to quickly build useful
applications with tools on their personal computers. The World-Wide-Web
(WWW) has helped make the computer more accessible to everyone,
and in so doing provided non-threatening opportunities to do simple
programming.
Not surprisingly, the WWW helped popularize the notion
of everyone becoming a programmer. Before the advent of what-you-see-is-what-you-get
(WYSIWYG) editors for WWW pages, people who wanted to truly experience
the WWW had to create their own pages using HyperText Markup Language
(HTML). However, WWW pages can do much more than simply present
information; they can interface with other applications and with
computers all over the world. People who had never programmed
soon found themselves authoring simple Common Gateway Interface
(CGI) scripts so that they could launch their favorite programs
from HTML. Even those that missed the CGI experience now find
themselves using JavaScript, if for no other reason than they
want to jazz up their pages with bells and whistles that they
discovered while surfing the Internet.
I predict that this trend will continue and must
continue. Why? Because the world cannot meet its own demand for
software unless we make programming so easy that everyone can
do it without even knowing that they have "written a program."
The technologies that we create today will eventually allow us
to do things that currently require the services of professional
software developers; many of these technologies will come from
the R&D and experiences of the software reuse community.
References
[Poulin97] Poulin, Jeffrey S., Measuring Software
Reuse: Principles, Practices, and Economic Models. Addison-Wesley
(ISBN 0-201-63413-9), Reading, MA, 1997.
[Simon97] Simon, Kirk, and Karen Goodman, "The Telephone," The American Experience Series, WGBH/Boston and the Corporation for Public Broadcasting, 1997, http://www.pbs.org/wgbh/pages/amex/technology/telephone/abprogram.html.
[Yourdon96] Yourdon, Ed, "Lipstick on a Pig
or a Real Silver Bullet?," American Programmer, Vol. 9, No.
11, November 1996, pp. 25-29.