Forging New
Links! - ICSE98 in Kyoto Call for Participants
Tutorials
APRIL 20 (MONDAY) 1998
Morning (9:30 - 13:00)
TH01: Software Patterns
Ralph Johnson (University of Illinois)
Experts are distinquished by their knowledge. It usually takes years
to acquire the knowledge to become an expert software designer. What
does an expert software designer need to know? Patterns are a way
of documenting design knowledge. This tutorial will describe some
of the kinds of knowledge that it takes to become a software expert, such
as design patterns, problem domain patterns, and software process patterns.
It will describe how to benefit from the patterns that have already been
documented, and current work in documenting more patterns. Most of the
patterns that will be described are object-oriented, but the tutorial does
not assume expertise in object-oriented programming.
Ralph Johnson is one of the four authors of "Design Patterns" and the
conference chair of the first Pattern Languages of Programming conference.
Since receiving his PhD from Cornell, he has been at the University of
Illinois studying object-oriented design and frameworks. Besides
writing patterns, he teaches courses at the university on object-oriented
design and Smalltalk, teaches courses at companies on design patterns and
framework design, and helps companies document their frameworks.
TH02: Software Testing and Analysis for Practitioners
Mauro Pezze' (Politecnico di Milano) and Michal Young (University
of Oregon)
A detailed survey of state-of-the-art software testing and analysis methods
and tools is presented in a framework that highlights their relations and
complementarities. This tutorial addresses the needs of practitioners
who wish to improve software quality through testing and analysis, and
who require a coherent framework for considering which combination of techniques
and tools is appropriate to their needs. It will also be of interest
to teachers and students who seek a broad understanding of industrial-strength
testing and analysis techniques. It emphasizes practical approaches, rather
than theoretical issues.
TH03: The Rational Objectory Process
Philippe Kruchten (Rational Software Corporation)
This tutorial introduces the Rational Objectory Process. Objectory provides
guidance to a development organization to ensure the production of high-quality
software. This software engineering process captures many of the best practices
in modern software development in a form that is tailorable for a wide
range of projects and organizations. It was originally developed in Sweden
by Dr. Ivar Jacobson, centered around the concept of use case and an object-oriented
design method. It has gained recognition in the software industry and has
been adopted by many companies world-wide. Since 1995, Objectory has been
integrated with the Rational Process, to become a controlled iterative
process, focused on software architecture, spanning the whole development
life-cycle, and supported by a wide range of tools. It uses the UML notation
recently adopted as a standard by the OMG.
Dr. Kruchten is director of process development at Rational Software
Corp. in Vancouver, BC, Canada.
TH04: Cleanroom's Place in Today's Software development
World
Charles Engle and Dave Fuhrer (Q-labs)
Cleanroom Software Engineering (CSE) is a software development process
which has an engineering and mathematical foundation. CSE offers a means
for achieving higher productivity, improved quality and shorter development
time. This tutorial gives an introduction to CSE and will also include
recent developments such as the mapping of CMM KPAs to the Cleanroom reference
model.
Dr. Charles B. Engle, Jr. is currently helping organizations identify
and solve 'Year 2000' problems. Previously, he held positions at the DOD,
the Florida Institute of Technology, and the SEI.
Mr. Dave Fuhrer is currently introducing and adapting CSE into existing
software development processes. He has over 20 years of software
engineering experince in the public and private sectors.
Afternoon (14:00 - 17:30)
TH05: Using Design Patterns to Construct Frameworks
Ralph Johnson (University of Illinois)
Most of the patterns in "Design Patterns" are common in object-oriented
frameworks. They can be used both to document existing frameworks and to
design new ones. This tutorial will describe the Java AWT from a
pattern perspective, as well as a telecommunications billing framework.
It will demonstrate the power of patterns to document frameworks and how
they describe design trade-offs.
Attendees should have read "Design Patterns" and should have
experience with object-oriented design. Ralph Johnson is one of the four
authors of "Design Patterns" and the conference chair of the first Pattern
Languages of Programming conference. Since receiving his PhD from
Cornell, he has been at the University of Illinois studying object-oriented
design and frameworks.
Besides writing patterns, he teaches courses at the university
on object-oriented design and Smalltalk, teaches courses at companies on
design patterns and framework design, and helps companies document their
frameworks.
TH06: Introducing the Unified Modeling Language (UML)
Stephen Morris (The City University, London)
This tutorial aims to provide a thorough introduction to the major aspects
of the Unified Modeling Language (UML). The UML is an important step towards
standardising representations for object-oriented analysis and design,
and facilitating communication via object-oriented design artefacts. Participants
can expect to learn about the nature and status of the UML, its documentation,
detailed notations and semantics and possible impact on
current working practices. The tutorial is aimed at any professional
wishing to widen the intelligibility and usability of their work in this
field.
Stephen Morris is a Lecturer in the Department of Information Science,
City University, London, U.K.. He has worked over the past year developing
teaching material based on UML and incorporating it into existing approaches
to object-oriented analysis and design.
TH07: C++ for Software Engineering: Standard Solutions
for Standard Problems
Mehdi Jazayeri and Georg Trausmuth (Technical University
of Vienna)
The proposed 1995 C++ Standard includes many features that support accepted
and novel software engineering practices. The C/C++ languages have always
been popular among systems programmers but the languages have so far addressed
only programming-in-the-small issues. The new standard adds many features
and support for programming-in-the-large. This tutorial will highlight
the programming-in-the-large aspects of the new C++ language and illustrate
their application in example case studies.
Mehdi Jazayeri and Georg Trausmuth are on the faculty of Technical
University of Vienna. Mehdi Jazayeri has managed many projects at companies
in Silicon Valley, most recently at Hewlett-Packard Laboratories. He is
co-author of Programming Language Concepts (John Wiley, 1998), Fundamentals
of Software Engineering (Prentice Hall, 1991), and Process-centered software
engineering envioronments (IEEE Press, 1995). Georg Trausmuth has
been teaching academic and professional courses on C++.
TH08: Software Surgery
Keith Gallagher (Loyola College)
Imagine that "Pat the Programmer," who could be a developer or a maintainer,
is sitting at a terminal staring at a piece of code and contemplating a
change. Pat asks the following questions:
1. Can I analytically determine if the change is as small as
I believe?
2. Can I be sure that I don't introduce new errors with the change?
3. Are there any approaches to changing the code that will minimize
my effort?
The answers to Pat's questions are "Yes!" This tutorial will
show software engineers how to put hard boundaries on the effects of a
change, whether in development or maintenance, and guarantee that no new
errors ripple beyond these boundaries. This in turn substantially reduces
evolution effort. The method is applicable to a wide variety of programming
languages and certainly addresses the year 2000 problem.
Keith Gallagher is an Associate Professor of Computer Science at Loyola
College in Maryland, USA, and a Faculty Research Associate the United States'
National Institute of Standards and Technology. His research focuses around
the question: "What can I do to help software maintainers `in the trenches'?"
Full day (9:30 - 17:00)
TF01: The Experience Factory: How to Build and Run One
Victor Basili and Frank McGarry (University of Maryland)
This course presents the fundamental concepts behind software process and
product improvement using measurement and evaluation in an Experience Factory
Organization. It will provide a set of examples associated with understanding
the software engineering process, product, and environment, improving it
over time and packaging experience in the form of models and measures to
create an experience base that can be reused by future projects.
It discusses how this approach is being used in the Software Engineering
Laboratory (SEL) at NASA/ Goddard Space Flight Center and how it has been
expanded to other NASA sites and to other production environments in private
corporations such as Computer Sciences Corporation (CSC). The emphasis
is on how to develop and run an Experience Factory.
Dr. Victor R. Basili is Professor of Computer Science
at the University of Maryland, College Park, the Executive Director of
the Fraunhofer Center - Maryland, and one of the founders and principals
in the Software Engineering Laboratory (SEL). His interests include
quantitative approaches for software management, engineering, and quality
assurance.
Mr. Frank McGarry is currently a Senior Member of the Executive
Staff at Computer Sciences Corporation after having spent 28 years at NASA/
Goddard, where he headed the Software Engineering Branch and was one of
the founding principals of the Software Engineering Laboratory (SEL).
APRIL 21 (TUESDAY) 1998
Morning (9:30 - 13:00)
TH09: Requirements Analysis for Evolving Systems
Colin Potts (Georgia Institute of Technology)
Systems are designed to support goals. This tutorial will tell you how
to identify and refine goals, use scenarios to check requirements against
them, and map them onto the architecture of evolving systems. Practical
templates and guidelines are included. Colin Potts is associate professor
in the College of Computing at Georgia Tech. He is an international expert
in system requirements and is co-editor of Requirements Engineering and
Program Chair of the 1999 International Symposium on Requirements Engineering.
Potts works closely with companies in the US and Japan, and the tutorial
materials are based
on the practical application of state-of-the art techniques.
TH10: An Introduction to OMG/CORBA
Wolfgang Emmerich (University College London)
The Common Object Request Broker Architecture (CORBA) standard adopted
by the Object Management Group is the industry standard middleware for
heterogeneous and distributed object-oriented computing. Participants will
be provided with an overview of the different constituents of CORBA, including
the CORBA object model, the interface definition language, programming
language bindings, the dynamic invocation interface, the interface repository,
the portable object adapter and interoperability protocols. Although
the main focus of the tutorial is on the standard and its rationales, participants
will also be given a brief overview of the most important products implementing
CORBA.
Dr. Wolfgang Emmerich is a senior consultant of the OMG representative
in Central Europe, LogOn Technology Transfer. He has given numerous CORBA
training courses to the European software industry and is a consultant
on the use of CORBA in the financial and engineering sector. Dr. Emmerich
is also a Lecturer at University College London, where he conducts research
into distributed software architectures and teaches distributed systems
and software engineering.
TH11: COTS Software Evaluation: Theory and Practice
Kurt Wallnau and David Carney (Software Engineering Institute)
The proportion of critical system functionality being provided by COTS
software is increasing. While many documented methods for evaluating COTS
software exist, few of these directly address the role of evaluation as
an integral part of the system design process, or its role in supporting
design trade-off analysis. This tutorial explores a foundation for COTS
evaluation in terms of design theory and decision theory. An evaluation
practice framework is described that relates a range of techniques to this
foundation. Topics include: quantifying fitness for use in design trade-off
analysis; uncertainty and confidence intervals; the pragmatics of disciplined
COTS evaluation. David Carney and Kurt Wallnau are senior embers
of the Software Engineering Institute. Carney has participated in several
DoD COTS-based acquisitions, and Wallnau has been system architect of a
COTS-based reuse program and technical lead of the SEI's COTS-based system
initiative. Both have published articles and papers on the topic of product
and technology evaluation.
Afternoon (14:00 - 17:30)
TH12: "Why I did the things I did": A detailed tour through the Java spec
with a discussion of why the various design decisions were made
James Gosling (Sun Microsystems)
TH13: Distributed Software Architectures
Jeff Kramer and Jeff Magee (Imperial College)
This tutorial provides an introduction to distributed software architectures,
explaining the concepts, principles and benefits. Software architectural
description is used as a framework both for distributed system building
by composing software component implementations and for system analysis
by composing component behaviours. A particular feature of this tutorial
is the use of design and model checking tools to demonstrate the utility
of the architectural approach for architecture description and behaviour
animation and analysis.
Jeff Kramer is a Professor at Imperial College, and head of the
Distributed Software Engineering research section. He is the author of
over 100 journal and conference publications and an associate editor for
IEEE Concurrency and for ACM TOSEM.
Jeff Magee is a Reader at Imperial College. He is Honorary Editor
of the IEE/BCS Proceedings on Software Engineering and the author of over
70 refereed conference and journal publications.
TH14: What Every Software Engineer Should Know about
Hypermedia for Designing World Wide Web Applications
Michael Bieber (New Jersey Institute of Technology)
This tutorial covers many aspects of hypermedia as a concept for managing
relationships, a technique for structuring and navigating an information
space, and an approach for designing applications. We discuss applying
over 30 years of hypermedia research to the World Wide Web. Through examples,
we describe the full hypermedia feature set, much often missing from the
Web. We describe the Relationship-Navigation Analysis for engineering
Web applications and application integration. The tutorial includes
a hands-on exercise on designing a hypermedia-enhanced CASE tool.
Michael Bieber is Assistant Professor at the New Jersey Institute
of Technology's CIS department. He has been performing
hypermedia automation research since 1987. Dr. Bieber may be reached
at bieber@njit.edu or http://megahertz.njit.edu/~bieber.
Full-day (9:30 - 17:00)
TF02: Design by Contract: Making Object-Oriented
Programs That Work
Bertrand Meyer (Interactive Software Engineering Inc.)
To deliver on its promises, object-oriented technology must be able to
produce systems that are reliable (correct and robust). Only under these
conditions will the other quality factors advertized for the method, in
particular the increase in reusability and extendibility, yield the expected
benefits for software practitioners.
It is indeed possible to use object-oriented technology to produce,
almost routinely, software systems that reach a degree of reliability without
any equivalent in conventional methods, languages and tools. This requires
a strict application of pure object-oriented concepts, in particular seamlessness
(the use of a consistent method and notation throughout the software lifecycle),
information hiding, automatic garbage collection, static typing, and the
combination of static typing and dynamic binding. Another key component
of this approach is the notion of design by contract, which leads to the
production of system whose correctness is built-in rather than ensured
ex post facto.
The presentation will explain the theory of Design by Contract and
its applications through a number of examples. It will show how the ideas
lead to sound architectural principles in the design of large-scale systems,
make it possible to control the use of inheritance, and yield a disciplined
approach to the handling of abnormal cases.
Bertrand Meyer is president of Interactive Software Engineering Inc.,
providing reusable software components and libraries for mission critical
developments. He is one of the pioneers of modern software engineering
and a leading international authority in Object-Oriented Technology. Active
in both the business and academic scenes he has directed the development
of widely used O-O tools and libraries totaling hundreds of thousands of
lines, and taught O-O principles and modern software engineering worldwide.
He is the author of numerous books and articles on Object Technology, editor
of the Object Technology column of IEEE Computer, the Prentice Hall O-O
Series and has delivered keynotes and tutorials at most major conferences
on software engineering and object technology around the world.
Bertrand Meyer holds an engineering degree from Ecole Polytechnique,
Paris (France) a Masters from Stanford University and a PhD from the University
of Nancy (France). He is an associate member of the applications section
of the French Academy of Sciences. He is the recipient of the 1997 Software
Development-Jolt product Excellence award for his book "Object-Oriented
Software Construction, 2nd Edition", published by Prentice Hall.