| |
|
Program
The slides of the talks can be accessed by clicking on the symbol next to each program item, the corresponding video recording by clicking on .
Monday, 22 November 2010 ETH Main Building (HG), Room F 30 (Audi Max)
9:00–10:30 Session 1 Session chair: Sebastian Nanz
- Engineering and Software Engineering
Michael A. Jackson

- Seamless Method- and Model-based Software and Systems Engineering
Manfred Broy

10:30–11:00 Coffee break
11:00–13:15 Session 2 Session chair: Andreas Zeller
- Precise Documentation: The Key to Better Software
David Lorge Parnas

→ Abstract
The prime cause of the sorry "state of the art" in software
development is our failure to produce good design documentation. Poor
documentation is the cause of many errors and reduces efficiency in
every phase of a software product's development and use. Most software
developers believe that "documentation" refers to a collection of
wordy, unstructured, introductory descriptions, thousands of pages
that nobody wanted to write and nobody trusts. In contrast, Engineers
in more traditional disciplines think of precise blueprints, circuit
diagrams, and mathematical specifications of component
properties. Software developers do not know how to produce precise
documents for software. Software developments also think that
documentation is something written after the software has been
developed. In other fields of Engineering much of the documentation is
written before and during the development. It represents forethought
not afterthought. Among the benefits of better documentation would be:
easier reuse of old designs, better communication about requirements,
more useful design reviews, easier integration of separately written
modules, more effective code inspection, more effective testing, and
more efficient corrections and improvements. This paper explains how
to produce and use precise software documentation and illustrate the
methods with several examples.
- Design Patterns – Past, Present & Future
Erich Gamma

- Internet Evolution and the Role of Software Engineering
Pamela Zave

13:15–14:30 Lunch (Dozentenfoyer)
14:30–16:00 Session 3 Session chair: Yuri Gurevich
- Some Future Software Engineering Opportunities and Challenges
Barry Boehm

→ Abstract
This paper provides an update and extension of a 2006
paper, "Some Future Trends and Implications for Systems
and Software Engineering Processes," Systems
Engineering, Spring 2006. Some of its challenges and
opportunities are similar, such as the need to
simultaneously achieve high levels of both agility and
assurance. Others have emerged as increasingly
important, such as the challenges of dealing with
ultralarge volumes of data, with multicore chips, and
with software as a service. The paper is organized
around eight relatively surprise-free trends and two
"wild cards" whose trends and implications are harder to
foresee. The eight surprise-free trends are:
1. Increasing emphasis on rapid development and adaptability;
2. Increasing software criticality and need for assurance;
3. Increased complexity, global systems of systems, and need for scalability and interoperability;
4. Increased needs to accommodate COTS, software services, and legacy systems;
5. Increasingly large volumes of data and ways to learn from them;
6. Increased emphasis on users and end value;
7. Computational plenty and multicore chips;
8. Increasing integration of software and systems engineering;
The two wild-card trends are:
9. Increasing software autonomy; and
10. Combinations of biology and computing.
- Computer Science: A Historical Perspective and a Current Assessment
Niklaus Wirth

→ Abstract
We begin with a brief review of the early years of Computer
Science. This period was dominated by large, remote computers and
the struggle to master the complex problems of programming. The
remedy was found in programming languages providing suitable
abstractions and programming models. Outstanding was the language
Algol 60, designed by an international committee, and intended as a
publication language for algorithms. The early period ends with the
advent of the microcomputer in the mid 1970s, bringing computing
into homes and schools. The outstanding computer was the Alto, the
first personal computer with substantial computing power. It changed
the world of computing.
In the second part of this presentation we consider the current state
of the field and the shift of activities towards
applications. Computing power and storage capacity seem to be
available in unprecedented abundance. Yet there are applications that
ask for even faster computers and larger stores. This calls for a new
focus on multiprocessing, on systems with hundreds of processes
proceeding concurrently. The invention of programmable hardware opens
new possibilities for experimentation and exploring ways to design new
architectures. Codesign of hardware and software becomes
mandatory. The days of the general purpose von Neumann architecture
seem to come to an end.
Finally, we will look at the present state of the art, the problems
and the tools with which the engineer finds himself confronted
today. Not only have computers become faster and storage bigger, but
the tasks have become accordingly more demanding. The mass of tools
has grown, programming is based on huge libraries, and the
environments appear monstrously complicated and obscure. The most
basic instruments, programming languages, have not improved. On the
contrary, outdated languages dominate. They, and their tools, belong
to the apparently irreplaceable legacy, and sometimes it seems that we
have learnt little from the past. What can we do?
16:00–16:30 Coffee break
16:30–18:00 Session 4 & Panel discussion I Session chair: Rustan Leino
- Panel discussion I
Panelists: Barry Boehm, Manfred Broy, Erich Gamma, Michael A. Jackson, David Lorge Parnas, Niklaus Wirth, Pamela Zave
19:30–23:00 Apéro and Dinner at Zunfthaus zur Waag, Zurich
Tuesday, 23 November 2010 ETH Main Building (HG), Room F 30 (Audi Max)
9:00–10:30 Session 5 Session chair: Erich Gamma
- Logical Abstract Domains and Interpretations
Patrick Cousot (with Radhia Cousot and Laurent Mauborgne)

- Tools and Behavioral Abstraction: A Direction for Software Engineering
Rustan Leino

10:30–11:00 Coffee break
11:00–13:15 Session 6 Session chair: Pamela Zave
- Component-based Construction of Heterogeneous Real-time Systems in BIP
Joseph Sifakis

→ Abstract
We present a framework for the component-based construction of
real-time systems. The framework is based on the BIP (Behaviour,
Interaction, Priority) semantic model, characterized by a layered
representation of components. Compound components are obtained as
the composition of atomic components specified by their behaviour
and interface, by using connectors and dynamic
priorities. Connectors describe structured interactions between
atomic components, in terms of two basic protocols: rendezvous and
broadcast. Dynamic priorities are used to select amongst possible
interactions -- in particular, to express scheduling policies.
The BIP framework has been implemented in a language and a
toolset. The BIP language offers primitives and constructs for
modelling and composing atomic components described as state
machines, extended with data and functions in C. The BIP toolset
includes an editor and a compiler for generating from BIP programs,
C++ code executable on a dedicated platform. It also allows
simulation and verification of BIP programs by using model checking
techniques.
BIP supports a model-based design methodology involving three steps:
- The construction of a system model from a set of atomic
components composed by progressively adding interactions and
priorities.
- The application of incremental verification techniques. These
techniques use the fact that the designed system model can be
obtained by successive application of property-preserving
transformations in a three-dimensional space: Behavior x
Interaction x Priority.
- The generation of correct-by-construction distributed
implementations from a BIP model. This is achieved by
source-to-source transformations which preserve global state
semantics.
We present the basic theoretical results about BIP including
modelling interactions by using connectors, modelling priorities,
incremental verification and expressiveness. We also present two
examples illustrating the methodology as well as experimental
results obtained by using the BIP toolset.
Further information is available at:
http://www-verimag.imag.fr/BIP,196.html
- Evidential Authorization
Yuri Gurevich (with Andreas Blass, Michal Moskal, and Itay Neeman)

- Mining Specifications: A Roadmap
Andreas Zeller

13:15–14:30 Lunch (Dozentenfoyer)
14:30–16:00 Session 7 & Panel discussion II Session chair: Michael A. Jackson
- Concurrent Programming Is Easy
Bertrand Meyer

- Panel discussion II
Panelists: Patrick Cousot, Yuri Gurevich, Rustan Leino, Bertrand Meyer, Andreas Zeller
16:00–16:30 Coffee & End of Symposium
Note: The talk of Dieter Rombach had to be cancelled due to illness.
|
|