Member* | Non-member | |
---|---|---|
Fees per unit | 5,000 yen | 7,500 yen |
Student fees per unit | 500 yen | 750 yen |
*Reduced fees apply to JSSST, ACM, IEEE Computer Society, IEICE and IPSJ members.
Drawing on 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.
Among the topics surveyed:
Bertrand Meyer is president of ISE Inc. (Santa Barbara), editor of
two book series (Prentice Hall's Object-Oriented Series
and Addison-Wesley's ``Eiffel in Practice''), chairman of the
TOOLS conferences (Technology of Object-Oriented Languages and
Systems) and associate member of the applications section of the
French Academy of Sciences. He is the author of many books including
two available in Japanese (``Object-Oriented Software Construction'',
``Introduction to the Theory of Programming Languages''),
``Object Success'' (a presentation of object
technology for managers), ``Eiffel: The Language'', and
``Reusable Software'' (on the tutorial's topics). He has directed
successful projects of more than half a million lines of
reusable object-oriented reusable software.
[NEXT][TOP]
The tutorial has two major parts. Part one focuses on object-oriented
analysis and design method - the basic concept of methodology, the
several methodology examples, an overview of state-of-the-art
methodologies, and the applications to the practical system. It also
discusses some success and failure stories that shed light on the
lessons to be learned.
Part two focuses focuses on reusable software components, such as
design pattern, framework, and componentware. It gives an overview of
approaches and how to apply reusable software components in
application domains.
Shinichi Honiden received the B.E., M.E., and Dr. Eng. degrees in
electrical engineering from Waseda University, Tokyo, Japan, in 1976,
1978, and 1986, respectively. Since 1978, he has been with Toshiba
Corporation, Tokyo. His research interests include software
engineering and artificial intelligence, with particular reference to
object-oriented analysis and design, agent-oriented model, formal
specification languages and methodologies, and analysis and validation
techniques for real-time and concurrent systems. He has published
more than 70 papers in journals and international conferences of the
fields, and 6 books on object-oriented software engineering.
[PREV]
[NEXT]
[TOP]
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 design 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 complexity, 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.
[PREV]
[NEXT]
[TOP]
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.
[PREV]
[NEXT]
[TOP]
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 March 11th, 1996, One day (9:30 - 17:15), 2 units
An In-Depth Look at Reusability
Bertrand Meyer
(ISE Inc.)
Level: Intermediate
Attendees will be presented with a number of examples of good (and
bad) reusable library design.
T2 March 11th, 1996, One day (9:30 - 17:15), 2 units
Obeject-Oriented Software Engineering
Shin'ichi Honiden (Toshiba)
T3 March 12th, 1996, One day (9:30 - 17:15), 2 units
Using Design Patterns: Elements of Reusable Architectures
Richard Helm (IBM Consulting Group/ISSC)
Level: Advanced
T4 March 12th, 1996, Half day (9:30 - 12:45), 1 unit
Open Implementation Analysis and Design [TM]
(How to Make Black Boxes Easier to Reuse)
Gregor Kiczales, Chris Maeda (Xerox PARC), and
Arthur Lee (Korea University)
Level: Intermediate
T5 March 12th, 1996, Half day (14:00 - 17:15), 1 unit
Efficient Implementation of Object-Oriented Programming
Languages
Craig Chambers (University of Washington)
Level: Advanced