Abstract
In keeping with the ICSR'5 theme, "Putting the Pieces Together," the selection of papers and topics addressed in this ICSR reflected the maturity of the reuse field. Papers focused on technical issues surrounding software development with reusable components, program generators, functional techniques, and domain-specific technologies. While these technologies reflect significant progress in the "state-of-the-reuse-art," as Program Chairs we also observed that many of the conference attendees continue to call for more support for the "state-of-the-reuse-practice."
Introduction
The Fifth International Conference on Software Reuse
took place in Victoria, British Columbia, from 2-5 June 1998.
For ICSR'5 we chose the theme "Putting the Pieces Together."
This theme provided the perfect double entendre for a reuse conference:
it refers to the assembly of components into software systems
and also indicates the growing maturity of the field as it builds
upon its previous successes. ICSR'5 showed that many of the exciting
innovations that have been reported and discussed in previous
ICSRs are now starting to bear fruit. These include the areas
of component-based and object-oriented reuse, generative reuse,
domain analysis, reuse metrics, architecture, and others.
The ICSR series of conferences began in July, 1991,
with 46 participants as the International Workshop on Software
Reuse (IWSR) in Dortmund, Germany. IWSR'2 took place in Lucca,
Italy, in March 1993, and combined papers, panels, and workshops
on a selection of reuse topics. IWSR changed to a conference format
for its third meeting, officially becoming ICSR'3 in Rio de Janiero,
Brazil, in November 1994. ICSR'4 continued to expand with outstanding
technical and tutorial programs in April 1996 in Orlando, Florida.
ICSR'5, with 211 registered attendees, has graduated to a full conference center and has gained the attention of the world's software engineering community. This article summarizes the keynote presentations, tutorials, and technical program at ICSR'5.
Keynotes and Invited Speakers
ICSR'5 featured three very informative keynote addresses
by:
Philip Wadler's talk, titled "Leftover Curry
and Reheated Pizza: How Functional Programming Nourishes Software
Reuse," explained how functional programmers and reuse engineers
use type abstraction, parameterized types, and higher-order functions
to reuse code. The talk started with a review of modern functional
languages and continued by describing Pizza, an attempt to make
functional programming ideas more widely accessible by embedding
them in Java. Pizza contains Java as a subset, so it is easy to
learn.; and since compiles to the Java Virtual Machine, it runs
anywhere Java runs. Generic Java (GJ), a variation of Pizza, also
contains Java as a subset. GJ is designed to add parametric types
on top of existing Java libraries, thus enhancing reuse.
Tony Williams spoke on "Reusable Components
for Evolving Systems." We want to build on what has gone
before: new things should coexist with and leverage older things.
Looking at the computing world as a large, continuously evolving
information system, Williams described how anyone can extend or
augment open systems by adding components and new configurations.
During these changes systems must keep running and must preserve
their integrity. The four D's of software are design, development,
debugging and deployment. The first three get their fair share
of attention from the research community, but deployment does
not. Williams described the requirements for deploying reusable
components and their infrastructure, and explained how deployment
requirements feed back into software development.
Jim Waldo's talk, titled "Code Reuse, Distributed
Systems, and Language-Centric Design," highlighted the fact
that code reuse and distributed systems seem to have become dominant
approaches to developing software systems. However, Waldo noted
that the great success of these technologies seems always to be
tantalizingly in the future. There are a number of reasons for
this, one of which is that almost no proposed solution for either
code reuse or distributed computing actually solves software development
problems in any serious way. After all, "cut and paste"
is not a reuse strategy, but a production technique. Waldo pointed
out that, nearly by accident, we have stumbled across some useful
combinations of distributed computing and software reuse while
we were figuring out how to use the World Wide Web. Waldo discussed
how the WWW combines distributed computing and language-centric
design to reuse code in ways that will help in the construction
of large and robust systems.
The program also included an invited paper titled "Engineering Domains: A Family-Based Software Development Process" by David A. Cuka and David Weiss, Lucent Technologies. Their approach to software development is to find the appropriate abstractions for the family of systems, to create a language for describing the family, and then to translate descriptions of family members into deliverable software. Weiss described this family-oriented, abstraction, specification, and translation (FAST) process in which he can rapidly create different members of a program family. The approach is made feasible by using principles underlying design for change.
Tutorials and Special Sessions
Due to the hard work of the Tutorial Chair, Jim Ning,
Andersen Consulting, ICSR'5 boasted an excellent tutorial
program. The 15 tutorials presented at ICSR'5 spanned a wide range
of topics that form the core of the field of reuse. Attendees
had the leading experts in our field present on topics such as
object-oriented domain engineering, component-based reuse, reuse
metrics and economics, software system generators, software architectures,
and managerial issues. The tutorials included:
Finally, thanks to Exhibitions/Demos Co-Chairs Don Batory, University of Texas at Austin and Hausi Mueller, University of Victoria (British Columbia), ICSR supported numerous Birds-of-a-Feather Sessions (BOFs), posters, and demos throughout the conference. The six BOFs ranged from techniques for modular, evolvable domain-specific language systems to managerial issues. The 13 poster presentations ranged from product displays from companies offering reuse services to recent research results from leading academic institutions. Eight tool demonstrations were also presented on topics related to supporting reuse in software development.
Technical Program
ICSR'5 had an excellent roster of accepted papers,
with paper sessions on domain specific languages, objects and
components, software architecture, internet-based reuse, domain
modeling, industrial experiences, and one on advanced topics.
ICSR'5 received 96 very strong submissions, of which we were able
to accept 31. The reviewing process involved at least four reviews
of each paper, followed by final selection at an all-day Program
Committee meeting that we held at the S.A.I.C. facilities
in Reston, Virginia in January.
The paragraphs that follow give a very brief overview
of each paper session and each of the three panel sessions.
Paper Session: "Objects and Components I"
Robert Biddle, Victoria University of Wellington
(New Zealand), moderated one of the first paper sessions of the
conference, which addressed a traditionally important technical
topic: reusing components to build software. The main theme was
doing this better than we have in the past, and each of the following
papers focused on a different aspect of the problem:
Joe Hollingsworth presented the first paper, and
introduced a new way to use wrappers for components to allow easy
checking that the components and clients satisfy their respective
obligations. Yannis Smaragdakis then discussed a new approach
to larger scale components that uses groups of cooperating classes,
and connects them together to create a larger reusable component.
Shingo Takada presented a study about how programmers determine
which reusable component to use, and discussed the difficulties
that especially novice programmers can have when trying to match
their requirements with the descriptions of reusable components.
Finally, Claus Wohlin discussed reliability certification of reusable
software components, and presented a modeling approach as a starting
point for understanding many issues that arise. Together, these
papers covered many important ideas in component based reuse:
testing, larger-scale, human factors, and certification.
Paper Session: "Domain Modeling and Process
Issues"
Steven Fraser, Nortel, moderated this session,
which focused on techniques and procedures for analyzing a problem
area, capturing the common aspects of that area, and considering
developing reusable components to address those common aspects.
The papers included:
The papers in this session included three papers
focused on domain analysis modeling and one on a process-oriented
approach to software reuse. All papers were extensions of previous
work; interestingly, the domain modeling papers all traced their
heritage to the seminal work by Kang et.al. (1990) on FODA (the
SEI's Feature-Oriented Domain Analysis method). There were no
major new revelations and only limited demonstrations from practical
application. Not surprisingly, object-oriented software influences
have become very visible in this arena with references to "use
cases," UML, design patterns and other OO methodology innovations.
Paper Session: "Domain Specific Languages
and Generators"
Ira Baxter, Semantic Designs, Inc., moderated
this session, which included transformational methods for generation
and use of the lambda calculus as support for Domain Specific
Languages (DSLs). The papers included:
Bill Aitken discussed the foundations of Microsoft's
Intentional Programming (IP) tool, where abstract syntax tree
nodes represent "Intentions," or domain-specific abstractions,
that are transformationally refined to a base programming language.
Of particular interest was the need to schedule the order in which
transformations are accomplished, and how IP achieves this by
declarative relations between transforms. On a similar note, Ted
Biggerstaff talked about how Microsoft was controlling low-level
application of transformations using high level knowledge of domain-specific
optimizations and the synthesis process. He demonstrated the effectiveness
of this approach by refining a Sobel (computer-vision domain)
edge detection abstraction into extremely efficient nested loops
on pixel arrays. Don Batory described his Jakarta Tool Set, which
has embedded abstract objects and methods in Java that provide
essentially a DSL for specifying and manipulating abstract syntax
trees. JTS uses the Genvoca layered components model to generate
instances of the tool set appropriate for special purposes. Paul
Hudak showed a methodology for building DSLs by embedding them
in a larger context, especially higher-order functional languages.
The value in embedding is that a DSL almost always needs some
non-domain-specific additional support and such functional languages
can provide very general support; several DSLs can be embedded
in the same base language to ease the integrated use of the DSLs.
A musical score DSL was demonstrated that played quite sophisticated
tunes with very simple DSL notations and some function compositions.
Paper Session: "Industrial Experience Reports"
Masao J. Matsumoto, University of Tsukuba
(Japan), moderated this session, which targeted practitioners
and recent results from industry. The papers included:
As an old proverb says, "knowing facts is more
interesting than reading fiction." The audience's appreciation
of these four presentations showed just how true this proverb
is. The authors presented experiences from varieties of industries
including Information Technology, Telecommunications, and Automobile
Manufacturing. These industrial experiences are necessary for
researchers to target their research as well as for practitioners
to help improve the objectives of their reuse programs. This session
motivated a lot of researchers to further innovate technology
and address real-life problems that industry needs to fix.
Panel: "Linking Domain Analysis and Domain Implementation"
Bill Frakes, Virginia Tech, moderated the
first panel of the conference with a discussion of the practical
issues surrounding moving from domain analysis to successful reuse
implementation. The panelists included:
To achieve systematic, domain-based, reuse, the outputs
of domain analysis must be linked to the inputs of domain implementation.
The panel explored the need to specify the outputs of domain analysis,
the inputs required to build a generator, and how to establish
a clear mapping between them. Don Batory proclaimed that the future
lies in self-adaptive software in which a set of agents monitor
the system and switch to more effective algorithms over time.
The panel concurred on one key point: "even if you have all
the pieces that you need to build a system, you still need an
overall design or architecture."
Paper Session: "Objects and Components II"
Joe Hollingsworth, Indiana University Southeast,
moderated the second paper session on object-oriented and component-based
technologies. The papers included:
This session had something technical for everybody.
Topics covered include: modification of library components when
inserted into a system; the effect on program reasoning and understanding
caused by varied uses of code inheritance; the application of
object- oriented domain analysis to an aeronautical software business;
and the use of the Haskell programming language to writing scripts
for reusable COM objects. Each paper contained new and useful
contributions.
Paper Session: "Internet Support for Reuse"
Kevin Benner, United HealthCare Corporation,
moderated the session on the reuse technologies fostered by the
widespread growth of the Internet and its related need for highly-portable
applications. The papers included:
Anita Behle described the REGINA Software Bibliothek,
or RSB-Project, which involves a consortium of nine software producing
organizations and their industrial partners to support a cooperative
software information system over the Internet. The presentation
described the classification schema, implementation, and lessons
learned, and how to access the system via the WWW. Ernesto Guerrieri
described a generalized approach to reusing everything from requirements
to user manuals by treating each as an eXtensible Markup Language
(XML) document. XML provides a standard format for embedding descriptive
information within a document to enable delivery across the WWW.
Guerrieri showed how to take advantage of the structures provided
by XML to support reuse of diverse information. Don Batory addressed
a common problem in reuse and in program generation; how to guide
users in their selection of components for constructing particular
applications. He showed how domain-specific generators use graphical
specification languages, or applets, as front-ends to tools that
produce customized code on demand and then demonstrated a container
applet, its generator, and a design wizard that helps programmers
make design decisions. Finally, Birgit Geppert presented a case
study on the design of communication protocols using formalized
design patterns in SDL. SDL patterns describe a generic solution
of a recurring context-specific design problem, with all the benefits
of guiding the instantiation and documentation of frameworks as
provided by conventional design patterns. However, SDL adds a
formal mathematical foundation.
Paper Session: "Software Architecture"
Martin Griss, Hewlett-Packard Laboratories,
moderated the session on reuse issues related to Software Architecture.
The papers included:
An appropriate architecture is critical for effective
large-scale reuse; however, there are many techniques for designing
and improving an architecture to increase flexibility and reuse.
Objects, patterns and (layered-modular, componentized) styles
are some of the most important of these. Each of the four papers
in this session covered a range of architecture topics and combined
several approaches and methods. These included an OO style for
process control and measurement systems, the reengineering of
a domain-specific architecture for measurement, techniques for
modeling, reengineering and transforming architectures, tools
for manipulating and transforming architectures, patterns for
aggregation and transformation and a specific layered architecture
for flexible Enterprise Resource Planning (ERP) business components.
UML is a popular notation for describing architectures, used by
several of the papers.
Paper Session: "Advanced Topics in Software
Reuse"
Murali Sitaraman, West Virginia University,
moderated the final paper session, which covered formal methods
and leading-edge reuse technologies. The papers included:
Dr. Steven Atkinson from the Reusable Software Research
Group at the West Virginia University explained how to
integrate alternative retrieval schemes formally and uniformly
within a single framework to effectively address complex queries.
Professor Peter Henderson of the University of Southhampton
then set forth a set of "laws" for developing dynamic
systems. While one of the laws for designing systems and components
defensively (that "new components should not disrupt the
behavior of the system") went well with the audience, his
other laws came under considerable questioning. The last speaker
of the session, Gene Lee, a doctoral student at the University
of British Columbia, explained the potential for reuse in
interactions for animation. His fancy demonstration with plentiful
audio/visual effects provided a fitting conclusion for an interesting
session.
Panel: "The Reusably Incorrect Forum"
Wayne C. Lim, Lombard Hill Group, moderated
an entertaining and informative panel designed to stir controversy
and interaction with the audience. ICSR's first Reusably Incorrect
panelists included:
The Reusably Incorrect Forum brought together reuse
researchers and practitioners to discuss topical areas and challenge
long-held notions in reuse. Examples of debated topics include:
whether product-line reuse should be touted as the primary form
of reuse, whether a reusable software component industry will
emerge, whether lower level management is a major obstruction
to reuse, and whether market factors alone will determine the
success of reuse. To stir debate, the topics ranged from "Great
reusers are born, not made" to "Reuse is a sham, realized
by few companies." Mark Simos reflected a general agreement
by saying: "reuse is the consequence of doing things right,
not a cause for doing things right."
Panel: "How to Solve the Reuse Problem"
James Neighbors, Bayfront Technologies, moderated
the closing panel and plenary session of ICSR'5 by bringing together
all of the keynote and invited speakers. During their solo presentations,
each speaker covered a portion of entire range of software development
with reuse, to include domain analysis, OLE, COM, DCOM, Pizza,
Haskell, and Java-centric distributed computing. This panel provided
an opportunity to learn about each of these subjects in detail
and to bring ICSR'5 to an exciting close by featuring the presenters
together in a plenary panel to do battle and compare their favored
approaches.
Even though the panelists represent some of the most
powerful tools for reuse (Java, OLE/COM/DCOM, functional programming,
and domain analysis) there was a surprising consensus that the
complementary tools must be used by educated users in an environment
where the configuration and version are carefully controlled.
Education of the prospective users is a central concern. The tools
do not make the project; educated users using the tools make the
project.
The reuse problem then seemed a matter of education.
After several panelists stated "people should never write
a linked-list again," a question was asked from the floor:
"if we don't want users to write linked lists, then why do
we teach them how to do it?" This points out a key issue.
What do we teach modern developers? Perhaps if Computer Science
curricula solely looks back at the machine, then it is not looking
where we are going.
So, in retrospect, the panel's answer to "How
to Solve the Reuse Problem" is to:
Conclusion
As Jim Neighbors aptly summarized: "I like to
compare reuse to golf. I have an entire bag of clubs, and given
the lie of the ball, I have to choose the club that will get me
as close to the hole as I can. In reuse, we have to choose the
best tool for the situation." ICSR'5 brought together the
very best papers and people from all over the world to help "put
the reuse pieces together" and make further progress into
solving the reuse problem. We recognize that no one tool, technology,
or method will guarantee that we get "a hole in one."
However, ICSR'5 moved us quite a bit closer to the green.
For further information on the conference or to obtain a copy of the 388-page ICSR'5 Proceedings, see http://www.cs.vt.edu/icsr5/.
Corporate Sponsors
The following organizations and corporations made substantial contributions to ensure the success of ICSR'5. We would like to recognize their generosity and thank each for support:
Acknowledgments
We would like to further acknowledge the hard work
and contributions of the members of the executive committee whose
names did not specifically appear in the summary above:
We would like to acknowledge the Regional Chairs
for their help with publicity and obtaining corporate sponsorship:
We would also like to thank the Paper Session Chairs
for their support during the conference and for their contributions
to this conference summary.
Of course, no conference can take place without a
dedicated and professional program committee. To all members of
the PC, we say a hearty "thank-you." Finally, we would
like to thank Joan Ruscin, S.A.I.C., for handling virtually
all of the review process, registration, and administrative functions
of ICSR'5. We could not have done it without her.