International Conference on
Reliable Software Technologies
Monday 2 June
09.30 - 17.30 (full day)
Real-time object oriented architecture
09.30 - 17.30 (full day)
Ada 95 as a foundation language for undergraduate programs
09.30 - 13.00 (half-day)
Writing JavaÔcompatible applets in Ada 95
14.00 - 17.30 (half-day)
Programming distributed applications with Ada 95 and an inside look at the GNATDIST implementation
Friday 6 June
09.00 - 17.00 (full-day)
Object-oriented programming with Ada 95
09.00 - 17.00 (full-day)
Elements of software architecture with Ada 95
09.00 - 17.00 (full-day)
Object-oriented analysis & design for Ada 95 with Colbert's object-oriented software development method
09.00 - 17.00 (full-day)
High Integrity Ada with SPARK 95
by Mark Gerhardt (Lockheed Martin Space and Range Systems) and Doug Locke (Lockheed Martin Software Systems Resource Center
The concepts of architecture, objectoriented development and programming, and realtime systems are historically very disjoint, having emerged from separate communities. Members of all three communities commonly believe that the concepts of object oriented architecture and realtime response are mutually contradictory. In fact, the software intensive systems being designed and built today need to merge these concepts into a unified approach for systems and software development. Many objectoriented design approaches defer dealing with timing and concurrency until late in the design process; in contrast, the authors address timing concerns early in the process. A continuous interaction between partitioning, schedulability analysis, and performance is integral to our method.
This tutorial will use a combination of lecture, discussion, and the simple design exercise to highlight the motivations underlying our method, convey an overview of the process of creating a predictably successful realtime architecture, and cite experiences gained to date regarding its introduction and use. The tutorial includes a class participation example, designed to highlight the difficulties of creating objects when starting with a blank slate, giving the students the opportunity to experience the discovery process of object creation and analysis.
It is assumed that the student has been exposed to introductory ObjectOriented Terminology, but need not have more than beginning familiarity with OO terminology and usage, or realtime systems theory.
Mark Gerhardt has been in the aerospace and defense industry for over twenty five years. He has designed and built realtime systems for signal and radar processing, computer architectures, fault tolerant systems as well as designed and implemented embedded software applications including C3I and early warning receivers. Mark is currently a member of the Advanced Technology Department at Lockheed Martin Western Development Labs in San Jose, CA. Mark's interests include software and system engineering methods, system and software architecture, objectbased languages and Ada. He has been involved with Ada since the inception of the Higher Order Language Working Group in 1975. He has presented many tutorials and lectures at ACM SIGAda meetings. Mark is currently Past Chairperson of ACM SIGAda and was a Distinguished Reviewer for Ada95.
Doug Locke is the Chief Scientist for Lockheed Martin Corporation's Software Systems Resource Center where he has spent 30 years designing and building large realtime systems over a wide range of applications including command & control, space, aircraft, shipboard, submarine systems, and information systems. Currently, Dr. Locke acts as a consultant for a wide variety of Lockheed Martin system development, research, and product development activities on issues related to realtime systems development, open systems, Ada realtime applications, objectoriented development issues, and general systems and software performance. In addition, he serves as the Chairman of the IEEE Technical Committee on RealTime Systems, he is an associate editor of the RealTime Systems Journal, and has served as program/general chair and on numerous program committees for such events as the RealTime Systems Symposium, and the International Workshops on Ada RealTime Issues. As a member of the POSIX 1003.4 RealTime Extensions Working Group, he was the principal author of the scheduling chapter in the POSIX standard. He received his B.A. in Physics from Kalamazoo College, Kalamazoo, Michigan, and his Ph.D. in Computer Science from Carnegie Mellon University, Pittsburgh, Pennsylvania, USA. His principal technical interests consist of realtime systems theory and practice, operating systems, objectoriented development, and software/ systems architecture for realtime and non-real-time applications.
by Michael B. Feldman (George Washington University), Chairman of the SIGAda Education Working Group
Ada is currently the foundation language in over 100 institutions worldwide. Teachers of Ada 95 are building on a tenyear base of experience with Ada 83 as a foundation language; moreover, Ada 95 is supported by a range of undergraduate textbooks (including at least four at introductory level), as well as several stable and inexpensive compilers and toolsets for the most popular academic computing platforms.
This tutorial will provide a general background on the advantages of Ada in the undergraduate curriculum, especially as a foundation language, and will summarise available Ada 95 resources. It will discuss the role of "object thinking" in introductory courses, and the role of encapsulation, generic templates, and inheritance in this context. It will look in detail at a typical introductorylevel course with Ada 95, with fullycoded examples of typical projects, and at a typical secondlevel course (software construction and data structures), again with fullycoded project examples (including Java byte code applets coded in Ada 95). Finally, it will discuss Ada's role in higherlevel courses such as file structures, compiler construction, and realtime systems.
Attendees should have interest and experience in teaching academic courses in computing. No extensive familiarity with Ada is assumed.
Michael Feldman is a Professor in the Department of Electrical Engineering and Computer Science at The George Washington University, Washington, DC, where he has been a faculty member since 1975. He has taught a CS2level course with Ada every year since 1985, and a CS1level course with Ada every year since 1991. Both courses are now in their second year using Ada 95. Prof. Feldman also teaches a realtime course which is built around a scale model of the Washington, D.C. rapid transit (metro) system, with Ada 95 controls. Prof. Feldman has published numerous articles on Ada in undergraduate courses and related issues. He is the author of two wellreceived 1996 textbooks, "Ada 95 Problem Solving and Program Design" (with Elliot Koffman) and "Software Construction and Data Structures with Ada 95". These are texts at CS1 and CS2 level, respectively.
by S. Tucker Taft (Intermetrics Products and Technology Group)
JavaÔ is a new technology from Sun which allows small applications ("applets") to be automatically downloaded to a client machine as part of browsing an HTML Web page with a Javaenabled Web browser. Sun has designed a new objectoriented language called "Java" as part of this technology, and provides a compiler to translate Java source programs into a bytecode representation ("Jcode") for secure and efficient transmission across the Internet. When a Javaenabled browser encounters an HTML Web page with a reference to a Java applet, the Jcode for the applet is automatically downloaded and executed, giving it control over a specified part of the screen displaying the Web page.
Jcode is a platform independent bytecode, and is intended for efficient execution by an interpreter, or efficient onthefly translation to machinecode for execution by the client hardware.
As it turns out, the semantics of Ada 95 fit remarkably well the underlying capability of Jcode. Recognising this, Intermetrics has adapted its validated Ada 95 front end to directly generate Jcode, allowing Javacompatible applets to be implemented in Ada 95. This new product is called AppletMagicÔ.
This tutorial will provide an introduction to the Java language, its virtual machine, and the standard Java classes. It will explain how the Intermetrics Ada95/Java compiler maps Ada95 to Jcode, what programming and naming conventions should be followed, and how to use the compiler with a Javaenabled browser, the Java interpreter, or a Java applet viewer. It will explain how to write applets for different purposes in Ada 95, using a number of examples. Finally, it will discuss the future of Ada 95 and Java on the Web, and the potential of Jcode for creating a true multilingual programming culture.
S. Tucker Taft is Technical Director of the Intermetrics Products and Technology Group and is chief architect for Intermetrics' Ada 95 technology, called "AdaMagicÔ". Mr. Taft graduated from Harvard College in 1975 with a bachelor's in Chemistry, Summa Cum Laude, and then worked four years for Harvard in the student computer center, managing the first UNIX system that was installed outside of AT&T. Thereafter he worked one year as a private consultant, and then in 1980 joined Intermetrics. While at Intermetrics, he participated in the development of the Ada Integrated Environment for the Air Force, a commercial C crosscompiler, the Common APSE Interface Set (CAIS), and an Ada binding to SQL (SAME). From 1990 to 1995, Mr. Taft led the Ada 9X language design team, culminating in the February 1995 approval of Ada 95 as the first ISO standardised objectoriented programming language. More recently, Mr. Taft led the development of Intermetrics' Ada 95 to Java bytecode compiler.
by Yvon Kermarrec (Télécom Bretagne University), Laurent Pautet (Télécom Paris University), and Samuel Tardieu (Télécom Paris University)
This tutorial is intended for designers and programmers of Ada applications that will be executed on a distributed system.
Ada 95 presents an approach for programming distributed systems which is quite complete. Nevertheless, the potentials of the language are not immediate and the reader of the Reference Manual might become puzzled with the number of restrictions which are stated.
The first part of the tutorial is devoted to the benefits of Ada 95 and to its paradigms: client/server, distributed objects and shared memory. Our aim is to present a programmer's view of distributed applications and to compare the Ada approach with other existing technologies: CORBA and OSF DCE.
The second part of the tutorial will be devoted to a presentation of GNATDIST which is our approach for configuring distributed applications, and to the current implementation of the Distributed Systems Annex in GNAT. This will give the attendees the opportunity to experiment with the paradigms studied in the first part. The information will also be of practical interest for those who need to incorporate additional features in our current implementation.
Attendees should have experience or concerns in programming distributed applications, or be familiar with classical approaches (UNIX network programming, client/server model).
Dr. Yvon Kermarrec is assistant Professor at ENST de Bretagne in Brest. He is a member of the GNAT team and is working on the design and implementation of the Distributed System Annex of Ada 95. His research interests are distributed systems and platforms, CORBA, OSF DCE and software engineering. He is the main designer of the implementation of the distributed system features into GNAT. He has written many papers on distributed systems and Ada.
Dr. Laurent Pautet is assistant Professor at ENST, Paris and member of the GNAT team. His research interests include software engineering, distributed systems, and realtime systems. He is currently participating to the implementation of the Ada 95 Distributed System Annex in the realm of the GNAT project. He is the main architect of GARLIC (the communication support for distributed Ada applications) and GNATDIST. He has written many papers on distributed systems and Ada.
Samuel Tardieu is a PhD student at ENST, Paris and member of the GNAT team. His research areas include distributed, embedded and real-time systems. He is currently participating in the implementation of the Ada 95 Distributed System Annex for GNAT (called GLADE). He also maintains the Ada-France WWW server and mailing-list in his spare time.
by Alfred Strohmeier and Thomas Wolf (Swiss Federal Institute of Technology, Lausanne)
This tutorial provides a comprehensive view of objectoriented programming with Ada 95. It covers the new objectoriented features of the language, how to integrate them into good programming practice, and examples demonstrating the proper use of the language features.
The tutorial starts by examining the object-oriented features of the language, their use, and how they fit into Ada's strong typing system and genericity mechanisms. Basic objectoriented mechanisms are covered: encapsulation, inheritance, and polymorphism. An overview of system structuring by hierarchical library units is also presented. The integration of these mechanisms into good programming practice is then shown; topics include incremental programming, class-wide programming, heterogeneous data structures, mixin and sibling inheritance, and design for reuse. A short chapter shows how to transition smoothly from Ada 83 to Ada 95. Finally, the standard object-oriented idioms in Ada are compared with those of other major object-oriented languages, i.e. C++, Smalltalk and Eiffel.
Attendees will find it useful to have some knowledge of Ada, although this tutorial will be of interest to programmers familiar with other objectoriented programming languages.
Alfred Strohmeier is a Professor of Computer Science at the Swiss Federal Institute of Technology at Lausanne, Switzerland, where he leads the Software Engineering Laboratory. He has been teaching objectoriented technologies and Ada (since 1981) 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 objectoriented approaches; software development environments; and technologies related to the Ada language, including software components and bindings.
Thomas Wolf is a research assistant at the Software Engineering Laboratory at the Swiss Federal Institute of Technology in Lausanne (EPFL) since 1995, where he works on a Ph.D. thesis in faulttolerant computing. After his graduation at ETH Zurich in 1991 he worked for four years in the compiler industry. Current interests include distributed and faulttolerant computing, programming languages, and objectoriented programming.
by Magnus Kempe (Kempe Software Capital Enterprises)
Software architecture deals with design problems that extend beyond algorithms and data structures; it enables the development of firm and stable foundations for largescale software systems.
This tutorial provides a practical introduction to software architecture with Ada 95 and shows how to use, evaluate, and write fundamental, proven architectural building blocks. In addition to appreciating the importance of software architecture for largescale software systems, participants will gain a practical understanding of styles and basic elements of software architecture. Participants will be able to immediately integrate useful architectural elements in the systems they develop, and they will be ready to actively monitor the emergence of this field in software engineering.
The tutorial has five parts: the nature and value of software architecture; architectural styles and structures (e.g. subsystems, layers, implicit invocation, repositories, distribution); how to design for adaptability (e.g. genericity, tabledriven mechanisms, objectorientation, external configuration); some proven, fundamental elements of software architectures written in Ada 95 (e.g. containers, filters, modelviewcontroller, blackboard); and finally how to find or create further useful architectural elements (metaphors and patterns).
Tutorial attendees should have knowledge of generics and objectoriented mechanisms in Ada 95, but need have no previous acquaintance with software architecture.
Magnus Kempe has taught "ObjectOriented Programming with Ada 95" tutorials at many international conferences (e.g. TRIAda, OOPSLA, AdaEurope); these tutorials have been very well received. This tutorial on software architecture was first given at TRI-Ada'96; the 1997 version has been improved based on experience teaching it. Magnus Kempe is the editor and publisher of the Ada Home Web site and maintains the Ada FAQs regularly posted to the comp.lang.ada usenet newsgroup. He has worked as a lecturer at the Swiss Federal Institute of Technology in Lausanne, a prominent academic institution in Switzerland. He has excellent knowledge of Ada 95, having been involved in the ISO revision process and a member of the ARG; he has also written several papers on advanced uses of the OO mechanisms of Ada 95.
by Edward Colbert (Absolute Software Co., Inc.)
This tutorial will explore Colbert's ObjectOriented Software Development method (OOSD) and its support for Ada, including Ada 95. OOSD focuses on the objects of a problem throughout development, and is particularly compatible with Ada. OOSD addresses realtime issues, quickly communicates the information developed during analysis and design, and allows exceptionally high reuse of both design representation and code. Its rigorous analysis of behaviour is valuable whenever high reliability is needed, and allows early error detection; this rigour can be relaxed where appropriate. It has been used in system engineering, enterprise modelling, and simulations.
The student will learn to model a system using an "objects first" approach, to identify classes by generating them from objects in the system, and to refine the system object into its component objects. The student will learn how to validate the model against the user's needs during requirements analysis, and how to verify iteratively against the requirements during design. OOSD detailed design provides a smooth transition to Ada 95 code.
Participants should have a general familiarity with objectoriented concepts, and languages such as Ada 83.
Familiarity with Ada 95, and experience developing large realtime or distributed systems, are useful, but not required.
Ed Colbert, creator of the ObjectOriented Software Development method (OOSD), is SIGAda's Patterns Working Group Chair and Ada Awareness Manager, and previously ViceChair for Liaison (198995). He has taught and consulted on Ada, objectoriented methods, and software engineering since 1982. Clients of his Absolute Software company include Honeywell, KPMG Peat Marwick, Lockheed Martin Vought Systems, NASA Langley Research Center, and TRW. Ed has delivered presentations at TRIAda (1996, '95, '92, '89, '88), Ada UK (1995), UNICOM (1993), OOPSLA (1993), Object Expo (1993), Object Expo Europe (1992), LOOK (1992), OOP (1992), and SCOOP Europe (1991).
by John Barnes (John Barnes Informatics) and Bernard Carré (Praxis Critical Systems)
SPARK is used in organisations developing safety critical software in avionics, railway signalling and similar industries. The recent revisions to Ada resulting in Ada 95 stimulated a reconsideration of the definition of SPARK which has resulted in a revised version known as SPARK 95.
The prime goal of SPARK is to enable programs to be constructed correctly and to be shown to be correct. The ability to do this depends on having an appropriate language model. A number of the revisions to Ada provide a better foundation for this.
As a consequence of the revisions, SPARK can now be used at three levels: (i) a normal level which encourages good software structures and detects many flaws through detailed analysis of information flow; (ii) a rather simpler level especially useful for reverse engineering when a program has already been written; this provides data flow analysis at minimum annotation burden; (iii) full formal proof through verification conditions; this level is particularly applicable to high risk software which just has to be correct.
Attendees will gain a good appreciation of the capabilities of SPARK and its associated tools. This tutorial will be of interest to all who wish to write programs correctly and not just to those in the safety critical area. Attendees should have prior knowledge of the general principles of Ada 95, but need not be familiar with SPARK.
The tutorial will draw widely on material from the book by John Barnes entitled "High Integrity Ada: the SPARK Approach". Attendees will receive a copy of the book as well as tutorial notes.
John Barnes was a member of the Ada 83 and Ada 95 design teams, was the principal author of the Ada 95 Rationale and has given lectures on Ada for nearly twenty years. He is President of Ada-Europe.
Bernard Carré is the principal designer of SPARK and has given many lectures on SPARK world- wide over the last ten years. He is Product Strategy Director of Praxis Critical Systems.
Organised byAda UK on behalf of Ada-Europe, in co-operation with ACM SIGAda.
This site maintained byJim Briggs. We appreciate and welcome all comments.
Last updated 21 May 1997