5th International Conference on Software Reuse (ICSR'5)

Conference Summary

Jeffrey S. Poulin and Prem Devanbu, Program Co-Chairs

Lockheed Martin Federal Systems and University of California-Davis

(Jeffrey.Poulin@lmco.com, devanbu@cs.ucdavis.edu)

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:

  1. teach developers to use a variety of tools and techniques appropriate to the task at hand;
  2. carefully control the configuration and version space not only of the system and but also of its environment; and,
  3. focus on the functional requirements of the system over low level implementation details.

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.