[T1] An In-Depth Look at Reusability (B. Meyer)
[T2] オブジェクト指向ソフトウェア工学 (本位田)
[T3] Using Design Patterns: Elements of Reusable Architectures (R. Helm)
[T4] Open Implementation Analysis and Design [TM] (G. Kiczales et al)
[T5] Efficient Implementation of Object-Oriented Programming Languages (C. Chambers)

T1 1996年3月11日 (午前・午後)

An In-Depth Look at Reusability

Bertrand Meyer (ISE)


Drawing on by the experience of thousands of widely reused classes, this presentation will explain the issues, both managerial and technical, that must be addressed for a successful reuse policy. It will review what managers must do to promote reuse in their organization, and describe the technical tools that are necessary to produce large numbers of high-quality reusable components. The technical part of the presentation will be based on the Eiffel approach to reusability and reliability.

Bertrand Meyer is president of ISE Inc. (Santa Barbara), editor of Prentice Hall's Object-Oriented Series, chairman of the TOOLS conference Series (Technology of Object-Oriented Languages and Systems), and consulting editor of Addison-Wesley's Eiffel Series. He is the author of a number of books on software methodology, programming languages and object technology, including two that have been translated into Japanese ("Object-Oriented Software Construction" and "Introduction to the Theory of Programming Languages"), as well as "Object Success", a presentation of object technology for managers, "Eiffel: The Language" and "Reusable Software". He has directed the development of products and libraries totaling more than half a million lines of object-oriented software and is an associate member of the applications section of the French Academy of Sciences.

T2 3月11日 (午前・午後)


本位田真一 (東芝)


本チュートリアルは、2部から構成され、第1部では、オブジェクト指向分析・ 設計に関して、その基本コンセプト、方法論の事例、最新動向、実問題への適 用事例を解説していただきます。この中で、実問題への適用によって洗い出さ れた、実践する際のポイントについても述べていただきます。また第2部では、 最近特に注目されているデザインパターン、フレームワーク、コンポネントウェ アなどの再利用の枠組に関して、その概要、特徴、課題などを紹介していただ きます。

本位田真一氏は、1976年に早稲田大学理工学部電気工学科を卒業し、1978年に 早稲田大学大学院修士課程を修了し、(株)東芝に入社し、現在に至っています。 現在は、同社の研究開発センターシステム・ソフトウェア生産技術研究所の主 査をされています。1986年に早稲田大学より工学博士を授与され、1989より早 稲田大学非常勤講師を兼務しています。氏の主要著訳書には、エキスパートシ ステム基礎技術(共著,オーム社)、 オブジェクト指向システム開発(共著,日 経BP出版センター)、 オブジェクト指向システム分析(共訳,近代科学社)、 オブジェクト指向分析・設計(編著,共立出版)、 デザインパターン(監訳,ソ フトバンク) などがあります。

T3 3月12日 (午前・午後)

Using Design Patterns: Elements of Reusable Architectures

Richard Helm (IBM Consulting Group/ISSC)


Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Experience shows that any object-oriented systems exhibit recurring structures or "design patterns" of communicating and collaborating objects that promote extensibility, flexibility, and reusability. This course describes a set of fundamental design patterns and, through a design scenario, demonstrates how to build reusable object,oriented software based on them. Participants will learn a valuable set of desion patterns that they can apply to the design of their own object-oriented systems, thereby making them more effective designers. The course covers the roles design patterns play in the object-oriented development process: how they provide a common vocabulary, reduce system complexitv, and how they act as reusable architectural elements that contribute to an overall system architecture. This tutorial is intended for architects, system designers, and programmers who design object-oriented software. Attendees should have experience in object,oriented design and should understand object-oriented concepts such as polymorphism and type versus interface inheritance.

Richard Helm is a consultant with the object technology practice with IBM Consulting Group/ISSC Australia in Sydney Australia. There he is actively applying patterns to the design of commercial systems. Prior to IBM, Richard was with DMR Group based in Montreal, Quebec, and prior to that he was a research staff member with IBM at the T.J. Watson Research Center in New York. Richard has numerous international publications, is a frequent speaker at international conferences, and is one of the four co-authors of the award-winning book Design Patterns: Elements of Reusable Object-Oriented Software. Richard has a Ph.D. from the University of Melbourne Australia.

T4 3月12日 (午前)

Open Implementation Analysis and Design
(How to Make Black Boxes Easier to Reuse)

Gregor Kiczales, Chris Maeda (Xerox PARC), and
Arthur Lee (Korea University)


Open Implementation Analysis and Design is a new methodology for designing Open Implementations of substrate software. The designer of any performance-critical reusable software faces a difficult challenge: there are many implementation decisions that will invariably bias the system's performance towards one kind of client use and away from others. For example: a file system implementation can be designed to penalize or favor the use of many small files; a virtual memory system can be designed to penalize or favor its use in implementing a database; a set abstraction can penalize or favor frequent delete operations etc. We call such decisions implementation strategy dilemmas, to reflect the fact that the designer seems forced to choose between making some clients happy vs making other clients happy. Open Implementation is an architectural solution to this problem that works by allowing clients of a module principled control over the module's implementation strategy decisions. So, for example, one client of a file system could choose the block size for their files and in doing so ensure that the file system was biased towards their needs. Open Implementation Analysis and Design is a methodology that allows designers to decide what aspects of a module's implementation a client should control, and how best to provide that control. This methodology is synergistic with OOA/D methodologies, but places more of an emphasis on how to make software that is tailorable by clients.

Gregor Kiczales is the leader of the Open Implementation project at Xerox PARC. He is the inventor of the concept of Open Implementation, and one of the developers of OIA/D. He has done extensive work in object-oriented programming languages and techniques, and in the area of metaobject protocols.

Chris Maeda is a member of the Open Implementation project at PARC. He is one of the developers of OIA/D.

Arthur Lee is a professor at Korea University, where he heads a new project on Open Implementation. He is one of the developers of OIA/D.

T5 3月12日 (午後)

Efficient Implementation of Object-Oriented Programming Languages

Craing Chambers (University of Washington)


How are object-oriented languages implemented? What features of object-oriented languages are expensive? What optimizations have been developed to make object-oriented languages more efficient? How important is compiler optimization for supporting high-level object-oriented languages? What are important considerations when assessing the effectiveness of compiler optimization? This tutorial aims to provide some answers to these questions. The tutorial will begin by presenting the important language design issues, identifying the features of object-oriented languages that are difficult to implement efficiently. In the main part of the tutorial, three classes of implementation techniques will be presented. First, run-time system techniques such as virtual function dispatch tables and inline caches will be described. Second, the tutorial will describe several levels of static analyses which seek to identify at compile-time the possible classes of message receivers in order to reduce or eliminate the overhead of dynamic binding. Third, the tutorial will discuss ways in which dynamic execution profiles can be exploited to complement static analysis techniques. The tutorial will present empirical measurements of the effectiveness of these various techniques for different kinds of programs and languages.

Craig Chambers has been researching object-oriented language design and implementation since 1987, with publications in OOPSLA, ECOOP, and PLDI on the topic. He developed the first efficient implementation of the Self language, and he is the designer of the Cecil language and heads the Vortex optimizing compiler project. Chambers is currently an Assistant Professor of Computer Science & Engineering at the University of Washington.

渡部 卓雄 (ISOTAS '96 広報担当).