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.
本チュートリアルは、2部から構成され、第1部では、オブジェクト指向分析・
設計に関して、その基本コンセプト、方法論の事例、最新動向、実問題への適
用事例を解説していただきます。この中で、実問題への適用によって洗い出さ
れた、実践する際のポイントについても述べていただきます。また第2部では、
最近特に注目されているデザインパターン、フレームワーク、コンポネントウェ
アなどの再利用の枠組に関して、その概要、特徴、課題などを紹介していただ
きます。
本位田真一氏は、1976年に早稲田大学理工学部電気工学科を卒業し、1978年に
早稲田大学大学院修士課程を修了し、(株)東芝に入社し、現在に至っています。
現在は、同社の研究開発センターシステム・ソフトウェア生産技術研究所の主
査をされています。1986年に早稲田大学より工学博士を授与され、1989より早
稲田大学非常勤講師を兼務しています。氏の主要著訳書には、エキスパートシ
ステム基礎技術(共著,オーム社)、 オブジェクト指向システム開発(共著,日
経BP出版センター)、 オブジェクト指向システム分析(共訳,近代科学社)、
オブジェクト指向分析・設計(編著,共立出版)、 デザインパターン(監訳,ソ
フトバンク) などがあります。
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.
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.
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.
T1 1996年3月11日 (午前・午後)
An In-Depth Look at Reusability
Bertrand Meyer (ISE)
T2 3月11日 (午前・午後)
オブジェクト指向ソフトウェア工学
本位田真一 (東芝)
T3 3月12日 (午前・午後)
Using Design Patterns: Elements of Reusable Architectures
Richard Helm (IBM Consulting Group/ISSC)
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)
T5 3月12日 (午後)
Efficient Implementation of Object-Oriented Programming
Languages
Craing Chambers (University of Washington)