

|
Tutorials
International
Conference on
Reliable Software
Technologies-
Ada-Europe'99
|
June
7-11, 1999 - Santander, Spain
Sponsored
by Ada-Europe, in cooperation with
Ada-Spain and ACM
SIGAda
Monday, June 7th
Tutorial
1: Java for Ada Programmers
by Benjamin M. Brosgol
(full day)
Tutorial
2: Windows Development with Ada
by Örjan Leringe
(full day)
Tutorial
3: Software Interoperability: Principles and Practice
by Jack C. Wileden
and Alan Kaplan (morning)
Tutorial
4: Building Ada Development Tools: ASIS and other GNAT Technologies
by Cyrille Comar
and Sergey I. Rybin (afternoon)
Tutorial
5: MetaH - An Architecture Description Language For Building Avionics
Systems With Ada
by Bruce Lewis and
Dennis Cornhill (afternoon)
Friday, June 11th
Tutorial
6: High Integrity Ada - The SPARK Approach
by John Barnes (full
day)
Tutorial
7: FUSION: An Object-Oriented Development Method, with Mapping to Ada
by Alfred Strohmeier
(full day)
Tutorial
8: Ada & Java: A Manager's and Developer's Road Map
by Franco Gasperoni
and Gary Dismukes (morning)
Tutorial
9: Using GNAT for the Java Platform
by Emmanuel Briot,
Gary Dismukes and Franco Gasperoni (afternoon)
Tutorial
1 (Monday):
Java for Ada Programmers
Benjamin M. Brosgol
(Aonix)
brosgol@aonix.com
Audience Background
This introductory/intermediate
level tutorial presents the main features of the Java language, with a
strong focus on the Object-Oriented Programming Features. Since semantic
points are often demonstrated by comparison with Ada, some previous experience
with either Ada 83 or Ada 95 would be helpful. No previous knowledge of
Java is required.
Abstract
Some of the questions
that will be addressed are the following:
What features does Java
lack, and what is the effect of their absence?
What is the nature of
Java's run-time model, and what are the implications of dynamic loading?
How do the Java package
and class constructs relate to Ada packages and tagged types?
How does Java support
inheritance, polymorphism, and dynamic binding?
How are constructors
used?
What is the significance
of Java's interface feature?
How do exceptions work
in Java?
How does Java's thread
mechanism address concurrent programming requirements?
Can Java be used for
real-time programming?
Time permitting, the
tutorial will also describe Java's approach to GUIs (the Abstract Windowing
Toolkit) and applets. The handout material provides complete examples of
these subjects, if time constraints prevent detailed coverage during the
lecture.
Biography
Dr. Brosgol has been
involved with Ada since its inception. He led the “Red” language team during
the original design competition, served as a Distinguished Reviewer of
Ada 83, and participated in the Ada 95 revision. He is a senior member
of the Aonix Professional Services group and is also the current chair
of ACM SIGAda. He has presented papers and tutorials at many Ada Europe
and SIGAda conferences in the past, and delivered an invited keynote address
at the 1998 AdaUK conference. Dr. Brosgol's continued participation and
broad experience in almost all facets of Ada activity - as a designer,
implementor, user, and educator - have gained him international recognition
and acclaim in the Ada community.
Tutorial
2 (Monday):
Windows Development
with Ada
Örjan Leringe
ol@mariadata.se
Audience Background
Knowledge of Ada 95
is required. It is assumed also that the audience knows Microsoft Windows
as a user. Knowledge of the inner working of Windows is not necessary.
Acquaintance with C++ will be helpful in connection to the presentation
of MFC and Ada (two hours).
Abstract
This tutorial presents
how Windows applications can be developed using Ada 95. The working principles
of Windows are presented. This is done by showing how Windows programs
traditionally are built using C and how these programs just as well, or
better, can be written in Ada using the Win32Ada binding.
The traditional development
model for Windows programs, with a message loop managed directly by the
programmer, results in poorly structured programs. OO frame-works like
the Microsoft Foundation Classes (MFC) provides access to Windows on a
much higher abstraction level. The tutorial will present the principals
behind MFC and an Ada binding which gives access to all the features of
MFC.
The tutorial will
also consist of an overview of other existing tools and bindings making
Windows development with Ada easier. Among these are Claw from R &
R Software, essentially a class library written almost altogether i Ada.
GUIBuilder from Aonix is an Ada code generating tool. We will examine the
inner working, pros and cons, of these tools and give some live demonstrations.
Biography
Örjan Leringe is
the manager of Mariadata, a company specialised in education in system
development. The last few years he has given a number of week-long courses
on the subject of Ada and Windows development at Swedish companies. He
has been working as a lecturer in Computer Science at the University of
Lund and the Technical University of Stockholm. He has been working in
the industry for many years as a consultant and manager. Most of the work
has been technically oriented like being the project manager for the VAX
11 Simula Compiler. Örjan is the chairman of Ada in Sweden.
Tutorial
3 (Monday morning):
Software Interoperability:
Principles and Practice
Jack C. Wileden (University
of Massachusetts), and Alan Kaplan (Clemson University)
jack@cs.umass.edu,
and kaplan@cs.clemson.edu
Audience Background
This tutorial is aimed
at an introductory to intermediate level audience, primarily of software
practitioners, but possibly of researchers as well. Teachers and students
of object-oriented technology will also find this tutorial extremely useful.
Some general appreciation of interoperability issues and some familiarity
with software development, preferably using object-oriented technology
and programming languages, will be helpful. Participants will benefit most
if they are acquainted with one or more interoperability approaches already,
but no detailed knowledge of any approach will be presumed.
Abstract
Software interoperability
is fundamental to a number of contemporary software engineering topics,
such as component-based software development, software reuse and distributed
or network-based software. A variety of (often partial) approaches to interoperability
exist, but what they do, how they compare, and exactly what problems they
are solving is sometimes unclear. This tutorial is intended to provide
a solid understanding of software interoperability problems and various
proposed approaches to solving those problems. Participants should expect
to gain a generally applicable foundation for assessing both problems and
approaches, a detailed understanding of several specific approaches, and
an ability to understand and critically evaluate new and different interoperability
problems and approaches in the future.
Biography
Jack C. Wileden received
the A.B. degree in mathematics and theM.S. and Ph.D. degrees in computer
and communications sciences from the University of Michigan, Ann Arbor.
He is a Professor in the Department of Computer Science at the University
of Massachusetts at Amherst and Director of the Convergent Computing Systems
Laboratory there. His current research interests centre on tools and techniques
supporting seamless integration of advanced capabilities into computing
systems. Recent projects in his laboratory have focused on object management
topics, including persistent object systems and name management, and on
interoperability support for multilingual programming. He has served as
an ACM National Lecturer and an IEEE Distinguished Visitor and has presented
tutorials on various software engineering topics in North and South America,
Europe, Australia and Japan.
Alan Kaplan received
the B.S. degree in computer science from Duke University, Durham, NC, and
the M.S. and Ph.D. degrees in computer science from the University of Massachusetts
at Amherst. He is currently on the faculty of the Department of Computer
Science at Clemson University in Clemson, South Carolina. Prior to his
current appointment, he spent a year on the faculty of the Department of
Computer Science at Flinders University in Adelaide, South Australia. His
research interests include tools and techniques supporting software development,
object-oriented databases, and interoperability. Professor Kaplan is a
member of the IEEE Computer Society and the Association for Computing Machinery.
Tutorial
4 (Monday afternoon):
Building Ada Development
Tools: ASIS and other GNAT Technologies
Cyrille Comar (ACT Europe),
and Sergey I. Rybin (ACT Europe & Moscow State University)
comar@act-europe.fr,
and rybin@gnat.com
Audience Background
The tutorial is of introductory
level. The audience should have a good understanding of Ada semantics.
Basic experience on programming with GNAT is helpful, but not required.
Abstract
The tutorial will explain
how you can build your own Ada development and program analysis tool when
using GNAT. The general architecture of the GNAT compilation system and
the existing GNAT toolset will be presented. Different technologies for
building additional tools will be discussed and compared. Using ASIS (the
Ada Semantic Interface Specification) as the effective technology for building
the wide range of useful tools will be discussed in detail. Using the ASIS
implementation for GNAT for building and running ASIS-based tools will
be explained.
Biography
Cyrille Comar is Managing
Director at ACT Europe. He has been actively involved in the GNAT technology
since 1993 first at New York University then at Ada Core Technologies.
Sergey Rybin has
more than 15 years of research, development and teaching activities with
Ada. He is an active member of the ASIS Working Group and he has been participating
in the development of the ASIS definition for Ada 95. Currently, Sergey
Rybin is a principal architect of the ASIS implementation for GNAT. In
the past, he was involved in various Russian Ada-related projects and in
the development of the Russian national information technology standards.
Tutorial
5 (Monday afternoon):
MetaH—An Architecture
Description Language For Building Avionics Systems With Ada
Bruce Lewis (US Army
Aviation and Missile Command), and Dennis Cornhill (K&C Software Company)
lewis@sed.redstone.ARMY.MIL,
and dennis.cornhill@htc.honeywell.com
Audience Background
The tutorial will cover
architecture description language concepts, MetaH impact on development
and evolvability, MetaH language constructs, and application development
using MetaH and Ada. The tutorial assumes a general understanding of embedded
time-critical systems and software development methods. Expertise in Ada
is not required. Project managers, systems engineers and software engineers
should find the tutorial valuable.
Abstract
MetaH is a language
and toolset for specifying, analyzing and integrating computer control
systems. It was specifically developed to meet the requirements of aircraft
and missile avionics and flight control but may be useful in many embedded
time-critical applications where a highly integrated, rapidly evolvable
approach is desired.
Developers use MetaH
to specify (1) how code modules, written in Ada or other programming languages,
are combined to form an application, (2) execution behaviour, (3) the hardware
target system, and (4) how the software is allocated to hardware. Given
the specification, the engineer can use MetaH to model the architecture,
generate in Ada the application executive and architectural glue, and integrate
the software and hardware components into an executing system on the target
hardware. The MetaH language is designed for the specification of real-time,
fault-tolerant, securely partitioned, dynamically reconfigurable multi-processor
system architectures. A draft Avionics Architecture Language standard is
being developed using MetaH as a base under the Society of Automotive Engineers
(SAE).
Biography
Bruce Lewis is a computer
engineer responsible for the development, assessment and transition of
new software engineering technology. He started working with Ada in 1983
and was a software engineer on several missile programs developed with
Ada using object based approaches. He has worked with DARPA over the last
7 years on architecture based software development and re-engineering technology.
He is the DARPA technical Agent for the development of the MetaH technology
and is the Chairman of the SAE task group developing a standard Avionics
Architecture Description Language.
Dennis Cornhill has
contributed to the development of the MetaH translation tool, application
of the technology to avionics systems, and MetaH training. His involvement
with Ada dates to the development of the Green language in the late 1970s.
Subsequently, he investigated techniques for using Ada in distributed and
hard deadline applications.
Tutorial
6 (Friday):
High Integrity Ada—The
SPARK Approach
John Barnes
jgpb@jbinfo.demon.co.uk
Audience Background
Attendees will be expected
to be familiar with the mainstream ideas of Ada (83 or 95). No knowledge
of SPARK will be assumed. No prior knowledge of formal methods is required.
Note: This tutorial is not for the novice but nor will it contain heavy
indigestible proof stuff so it is classed as Intermediate. The audience
will be expected to attempt some simple exercises.
Abstract
SPARK was designed for
applications where the risk of an incorrect program causing damage to life
or property must be minimized (the so-called safety-critical area). However,
most programs deserve to be correct and SPARK is applicable to high integrity
applications in general. SPARK can be seen as a subset of Ada 95 with embedded
annotations (as comments) giving additional information about the program.
The tutorial will
present the key ideas behind SPARK including abstraction, refinement and
flow analysis and how a program can be proved to be correct with respect
to its specification. It will also discuss the SPARK tools which are the
Examiner for flow analysis and the Simplifier and Proof Checker for generating
proofs.
Finally, the tutorial
will consider other aspects of writing reliable Ada software such as the
ISO Guide for the use of Ada in High Integrity Systems and the Safety and
Security Annex.
In summary, the
main purpose is to give attendees an appreciation of the scope of SPARK
and what might be achieved by its use in practice. An important goal is
to show that the SPARK approach can bring useful benefits without every
programmer having to have a doctorate in formal methods!
Biography
John Barnes read Mathematics
at Trinity College Cambridge. His early career was with Imperial Chemical
Industries where he worked on the development of languages for process
control applications. He has been involved with Ada from the early days.
He was a member of the Ada 83 and Ada 95 design teams and was principal
author of the Rationale for Ada 95. He has written a number of books including
High Integrity Ada - The SPARK Approach (upon which this tutorial is based)
as well as Programming in Ada 95. He is currently President of Ada-Europe.
Tutorial
7 (Friday):
FUSION: An Object-Oriented
Development Method, with Mapping to Ada
Alfred Strohmeier
alfred.strohmeier@epfl.ch
Audience Background
The tutorial is intended
for anyone who wants to learn an object-oriented development method. We
assume some acquaintance with object-oriented concepts, but no specific
knowledge in object-oriented development methods is required.
Abstract
Fusion is an object-oriented
software development method. It is a full-coverage method, providing for
all of analysis, design, and implementation. By integrating and extending
existing approaches, Fusion provides a direct route from a requirements
definition through to an implementation. The advantage of the Fusion method
is that it offers not only notations for describing models, but a process
for development.
Biography
Alfred Strohmeier is
a Professor of Computer Science at the Swiss Federal Institute of Technology
in Lausanne (EPFL), Switzerland, where he leads the Software Engineering
Laboratory. He has been teaching object-oriented technologies and Ada in
academic and industrial settings. He was a Distinguished Reviewer of Ada
95 and participated in its definition. His current interests are software
engineering; software development methodologies, especially object-oriented
approaches; software development environments; and technologies related
to the Ada language, including software components and bindings.
Tutorial
8 (Friday morning):
Ada & Java: A Manager's
and Developer's Road Map
Franco Gasperoni (ACT
Europe), and Gary Dismukes (Ada Core Technologies)
gasperon@act-europe.fr,
and dismukes@gnat.com
Audience Background
Any manager, project
leader, software engineer or programmer that is interested in understanding
the Java technology, its opportunities and how Ada can be used on this
platform.
Abstract
The objectives of this
tutorial are:
Explain the important
elements of the Java technology. Aspects of the technology that will be
covered include: The Java programming language, the Java virtual machine
and its performance, the Java API, the JNI (the interface that allows native
applications to interface with Java), as well as how to use Java technology
in embedded applications.
Help managers and developers
understand the opportunities represented by this emerging technology, which
spans applications ranging from internet applets to fully featured information
systems running on mainframes, PCs or workstations as well as internet
appliances and embedded systems such as intelligent automobiles, smart
cards, telephones with built-in Web browsers and state-of-the-art cellular
telephones.
Provide a road map for
project managers & software engineers to help them understand where
Ada fits in the world of Java and how companies can take advantage of their
Ada investments for the Java platform. More importantly, this tutorial
will illustrate how the use of Ada can provide a competitive advantage
on this emerging platform.
Biography
Franco Gasperoni is
managing director of ACT-Europe, the european GNAT company. He has been
involved in the implementation of Ada compilers for 10 years. He has taught
courses in programming languages, compilers, operating systems, and software
engineering for 8 years. Franco is one of the main architects of the GNAT
to Java effort that is currently underway.
Gary Dismukes is
a senior software engineer with Ada Core Technologies. He was involved
with the development of Ada 95 as a Distinguished Reviewer and has worked
on the development of Ada compilers for over 15 years. His training experience
includes teaching Ada 95 courses to industry programmers. His most recent
work has been on the design and implementation of the Ada Core Technologies
project targeting the GNAT compiler to the Java Virtual Machine.
Tutorial
9 (Friday afternoon):
Using GNAT for the Java
Platform
Emmanuel Briot (ACT-Europe),
Gary Dismukes (Ada Core Technologies), and Franco Gasperoni (ACT Europe)
briot@gnat.com,
dismukes@gnat.com, and gasperon@act-europe.fr
Audience Background
Attendees should have
a reasonable understanding of Ada. Knowledge of the object-oriented features
of Ada 95 would be helpful but is not required.
Abstract
The objectives of this
tutorial is to explain how to write Ada applications for the Java platform
using JGNAT, the GNAT Ada 95 toolchain for the Java Virtual Machine. This
includes writing new Ada applications as well as porting existing Ada code.
Seamless interoperability
between Ada and the Java programming language along with the use of the
Java API (Application Programming Interface) from Ada will be discussed
in depth. The tutorial will also show how native code written in Ada can
use the Java API directly without the need to port the Ada code to the
Java virtual machine.
The tutorial will
contain down-to-earth examples to help participants acquire a concrete
grasp of the concepts presented.
Biography
Emmanuel Briot is a
software engineer at ACT-Europe. He recently got his diploma from the ENST
Bretagne in Brest, France, and started working in the Ada Wonderland at
Ada Core Technologies in New York. One of his contributions to the GNAT
Technology is in the cross-referencing tools distributed with the compiler.
He is currently working on the GNAT compiler targeted to the Java Virtual
Machine.
|