SIGAda 2000
TUTORIALS
 
Sunday Full-Day Tutorials 
(9:00am – 5:30pm)

Monday Full-Day Tutorials 
(8:30am – 5:00pm)

Monday Morning Tutorials 
(8:30am – 12:00 noon)

Monday Afternoon Tutorials 
(1:30pm-5:00pm)

SIGAda 2000 will offer two days of outstanding  tutorials led by some of the most respected technical leaders in the industry.  More than a dozen half- and full-day sessions have been selected to meet the needs of software developers in today’s demanding environments.
Our tutorial program features a full line-up of Ada 95 and object-oriented technology sessions and covers a broad range of disciplines including systems and software engineering, software process standards-based development, architecture, software tools, reuse, and the World Wide Web.
 

Sunday Full-Day Tutorials 
(9:00am – 5:30pm)
Item
Title
Instructor(s)
SF1
Introduction to Ada and Ada95 Programming Language  David A. Cook, 
Leslie Dupaix
SF2
The Personal Software Process  Dan Roy
SF3
Implementing Design Patterns in Ada95 Matthew S. Heaney
SF4
Real-Time and Non-Real-Time CORBA Programming for Ada 95  Brad Balfour
SF5
Developing COM, DCOM, and COM+ Enabled Applications  with Ada95  David Botton
SF6
Java for Ada Programmers Ben Brosgol
SF7
Cleanroom Software Engineering: An Overview Bill Bail

Monday Full-Day Tutorials 
(8:30am – 5:00pm)
Item
Title
Instructor(s)
MF1
GtkAda, an Ada95 Object-Oriented Graphic Toolkit & GUI Builder Arnaud Charlet, 
Emmanuel Briot
MF2
Introduction to Web Technologies for Effective Dissemination of Information  Currie Colket, John McCormick, Clyde Roby, and David A. Wheeler

Monday Morning Tutorials 
(8:30am – 12:00 noon)
Item
Title
Instructor(s)
MA1
SPARK - High Integrity Ada Programming  John Barnes
MA2
Developing Ada for the Java Platform with JGNAT Gary Dismukes
MA3
Ada Tasking David A.Cook
MA4
TASH - an Ada Binding to TCL/Tk  Terry Westley

Monday Afternoon Tutorials 
(1:30pm-5:00pm)
Item
Title
Instructor(s)
MP1
Building Ada Development Tools with ASIS-for-GNAT Sergey Rybin,
Vasily Fofanov
MP2
New Directions in Windows GUI Programming  David Botton
MP3
Software Systems Architecture: A Practical Architectural Method  David Emery
MP4
The Software Engineering Body of Knowledge (SWEBOK)  James W. Moore,
Terry Bollinger

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Sunday Full-Day Tutorials (Noon – 7:00pm)

SF1:   Introduction to Ada and Ada95 Programming Language,Intro to Ada and Ada 95
           (half-day Intro to Ada Programming, half-day Advanced Ada 95 features)
          David A. Cook and Leslie Dupaix  [More Sunday Tutorials]

This full-day tutorial is designed for those have no knowledge of Ada, or who only have programmed in Ada 83.  The morning session will consist of a introduction to the basics of programming in Ada.  The afternoon will concentrate on the newer features of Ada 95, including object-oriented programming, the Ada 95 annexes, and other advanced features.

SF2:    The Personal Software Process
           Dan Roy  [More Sunday Tutorials]
 

For the last several years, SEI Fellow Watts Humphrey, in conjunction with the SEI process program, has been developing techniques to help software engineers better manage and control their work while improving their personal skills and capabilities.  This body of work is referred to as the Personal Software Process.

The Personal Software Process (PSP) is a scaled-down version of industrial process that is suitable for individual use.  The goal of the PSP is to make software engineers aware of the processes they use to do their work and the performance of those processes.  Software engineers set personal goals, define methods to be used, measure their work, analyse the results, and adjust their methods to meet their goals.

This one-day tutorial is designed for engineers and managers who want to better understand the PSP and its potential impact on their software development practice.

SF3:     Implementing Design Patterns in Ada95,
          Matthew Heaney  [More Sunday Tutorials]
 

The patterns movements, made popular by the book Design Patterns, is sweeping across the software community.  In this tutorial, attendees will learn how to implement design patterns in Ada95.  This tutorial is illustrated with myriad idioms for module structure, object-oriented programming, data synchronization, and inter-process communication.  In essence, participants will learn techniques that facilitate the construction of large software systems written in Ada 95.

SF4:       Real-Time and Non-Real-Time CORBA Programming for Ada 95,
               Brad Balfour  [More Sunday Tutorials]

This tutorial is aimed at Ada 95 developers interested in using CORBA technology in their Ada 95 applications to create high-performance distributed client/server applications and/or to mix Ada 95 with other languages on heterogeneous computing platforms.  Familiarity with object-oriented programming in Ada 95 will be helpful, but not required.  No experience or knowledge of CORBA is assumed.


SF5:     Developing COM, DCOM, and COM+ Enabled Applications  with Ada95
           David Botton  [More Sunday Tutorials]
 

A full day tutorial covering the creation and use of COM, DCOM and COM+ objects using GNATCOM, the Ada 95 COM/DCOM/COM+ development framework and tool set. GNATCOM comprises a framework covering binding and creation of all COM (Component Object Model) technology based objects and four powerful tools, MakeGUID, COMScope, BindCOM, and CreateCOM. The tutorial will cover an introduction to COM technologies and detailed coverage of creating and using COM, DCOM and COM+ objects. Time will also be spent on demonstrating the use of important COM based components available for Windows platforms, such as Active Data Objects (ADO), Microsoft Message Queueing (MSMQ), Microsoft's XML Parser, and the Internet Explorer Web Browser.

SF6:     Java for Ada Programmers,
            Ben Brosgol [More Sunday Tutorials]
 

This tutorial will consist of four parts:  Part One will cover Java fundamentals, basic properties of classes, and run-time models.  Part Two will cover lexical properties, expressions and statements, data type topics, and OOP (inheritance, polymorphism, dynamic binding, and interfaces).  Part Three will cover exceptions, threads, and advanced OO features (such as cloning and inner classes).  Part Four will cover the Abstract Windowing Toolkit and applets.  Participants will know how to write Java applications and applets after this tutorial, and also will understand how Java conpares with other languages, particularly Ada.  Knowledge of Ada 83 or Ada 95 is useful for this tutorial.


SF7:    Cleanroom Software Engineering: An Overview
           Bill Bail  [More Sunday Tutorials]
 
 

Cleanroom Software Engineering is an approach to the development of software that is strongly rooted in formal methods and mathematics.  Developed by Harlan Mills and his colleagues at IBM in the late 1970s, and officially named Cleanroom in 1987, this technique emphasizes defect avoidance.  While not gaining the notoriety that other techniques have enjoyed, projects that have applied Cleanroom have experienced significant benefits, including low defect rates.  Cleanroom emphasizes multiple builds in an incremental model, with each build constructed using forms known as box structures.  Verification of the structures is accomplished using correctness proofs, while software certification is based on usage models which facilitate statistical testing.  Recent work has integrated Cleanroom with Object-oriented models.  In addition the SEI has released a Cleanroom Software Engineering Reference Model, providing an integrated set of work products and processes for organizations wishing to apply this technique.

 
 

 
 

Monday Full-Day Tutorials (9am – 5:30pm)

MF1:     GtkAda, an Ada95 object-oriented graphic toolkit & GUI builder,
              Arnaud Charlet and Emmanuel Briot  [More Monday Tutorials]
 

This tutorial will introduce attendees to GtkAda.  Gtk is at the same level as Motif (with complex widgets ready to use), but is much easier to use. As opposed to Motif, Gtk was created from the beginning to make it easy to create bindings for languages other than C. There are already bindings for C++, Lisp, Perl, and many more. Most of Motif functions in C can have an indefinite number of arguments which makes it very difficult to have a strong type safety in an Ada binding. Gtk, on the other hand, makes it really easy to provide this, thus allowing most of the programming errors to be caught at compilation  time by the compiler, and saving tremendous time in your development cycle.

The Gtk port is free and is now running on Windows native, without the need of running an X server (it is based directly on the Win32 API).


 
 

MF2:     Introduction to Web Technologies for Effective Dissemination of Information,
               Currie Colket, John McCormick, Clyde Roby, and David A. Wheeler  [More Monday Tutorials]
 

This tutorial provides the basic information on  disseminating information effectively using the World Wide Web. The tutorial addresses the use of HTML and XML for developing web pages, incorporation of graphics, effective designs for web pages, and using automated tools (both UNIX and PC-based).  Strategies for announcements, configuration management, mailing lists, and databases are addressed.
The Ada Common Gateway Interface, AdaCGI, will be discussed; AdaCGI supports developing Ada programs to generate data, process forms, and perform other requests for WWW users.The ACM host machine will be used as a model. Although this tutorial is specifically designed to support the needs of SIGAda Working Groups and SIGAda Chapters, the information will be useful to all interested in learning how to set up a WWW home page.


 Monday Morning Tutorials (9am – 12:30pm)

MA1:     SPARK - High Integrity Ada Programming
           John Barnes  [More Monday Tutorials]
 

Critical software - software that can be trusted - takes many forms.  Historically we were most concerned with safety-critical software where failures would be life threatening. Increasingly, however, businesses are relying on software which is critical to their security or even financial survival.  SPARK, which was developed to meet the rigorous requirements of safety-critical systems, provides a cost-effective approach to the develpment of all critical systems. SPARK is a language designed to support the development of software used in applications where correct operation is vital either for reasons of safety or business integrity. There are versions of SPARK based on Ada 83 and Ada 95. With its support tool, the SPARK Examiner, and the high-quality mainstream Ada products, SPARK provides a solid engineering basis for complex, computer-based systems.


MA2:     Developing Ada for the Java Platform with JGNAT
           Gary Dismukes  [More Monday Tutorials]
 

This tutorial will introduce JGNAT, which comprises a compiler generating Java bytecode compatible with Java virtual machines conforming to Sun's specification (JDK 1.1 and above), and a set of tools to aid in developing Ada programs for the Java platform.  JGNAT comes with a tool called jvm2ada that serves to automatically generate compatible Ada bindings for the complete Java API (and in fact for any set of class files).  Programmers can use any Java class or component as well as develop Ada classes or components to be used in Java applications and applets and be assured that their code will inter-operate with the Java world and Java-enabled browsers. An interesting set of applets and applications is provided with JGNAT to illustrate interfacing between Ada and the Java world.

 

MA3:     Ada Tasking
           David A. Cook  [More Monday Tutorials]
 

In most languages, writing potentially parallel code is very difficult – hard to implement and hard to test.  Tasking, a construct of Ada, allows developers to design and code parallelism with great ease.  This tutorial is targeted at developers who want to understand how Ada tasking works, and see how to build Ada tasks.  Knowledge of basic Ada syntax is all that is required.  There will be multiple examples of Ada code showing how to correctly design and code Ada tasks.


MA4:     TASH - an Ada Binding to TCL/Tk
           Terry Westley  [More Monday Tutorials]
 

Imagine creating platform-independent graphical user interfaces, performing regular expression pattern matching and using associative arrays as easily in Ada as you can in scripting languages such as Perl, Tcl, and awk.  You can with TASH, a freely available Ada binding to Tcl/Tk. Tcl/Tk is a great scripting language. It is easy to learn and is very portable.  This tutorial will emphasis platform-independent scripting and GUI development with Ada using this free tool.


Monday Afternoon Tutorials (2-5:30pm)

MP1:     Building Ada Development Tools with ASIS-for-GNAT,
          Sergey Rybin and Vasily Fofanov  [More Monday Tutorials]
 

This tutorial will explain how you can build your own development and program analysis tools when working with GNAT.  The existing GNAT toolset and different approaches to tool development will be presented.  The use of the Ada Semantic Interface Specification (ASIS) as a tool-building technology is covered in detail.  The discussion will also provide examples of ASIS-based tools and the ASIS implementation for GNAT.  Participants should have a good understanding of Ada semantics.  Basic experience in programming with GNAT is helpful, but not required.

 

MP2:     New Directions in Windows GUI Programming
               David Botton  [More Monday Tutorials]
 

This tutorial will cover techniques to rapidly create GUIs for Microsoft Windows based Ada 95 applications. Includes detailed examples of binding to Microsoft's Dynamic HTML model and other ActiveX/COM GUI technologies and an overview of using GWindows, a new open source Windows framework.

MP3:     Software Systems Architecture: A Practical Architectural Method
           David Emery  [More Monday Tutorials]
 

The IEEE recently approved a Recommended Practice for Architectural Description.  A key part of the IEEE approach is that architectural descriptions consists of sets of views, where each view is an instance of a (potentially reusable) viewpoint.  In Ada terms, each view is an instance of a generic viewpoint.  This tutorial will review the requirements for Architectural Descriptions that conform to IEEE 1471.  It will then concentrate on developing a reusable set of viewpoints that can be used by the participants to describe architectures.


MP4:     The Software Engineering Body of Knowledge (SWEBOK)
           James W. Moore, Terry Bollinger  [More Monday Tutorials]
 

Is Software Engineering really Engineering? Not yet, according to the usual licensing and accreditation requirements of the engineering profession. The Guide to the Software Engineering Body of Knowledge (SWEBOK) is a joint project of the IEEE Computer Society and the Association for Computing Machinery that may change that state of affairs. The project is developing a broad consensus on the core contents of the software engineering discipline. It is anticipated that the Guide will find use in developing software engineering curricula, accrediting curricula, developing licensing examinations, and describing and certifying competencies. The current "Stone Man" version of the Guide outlines ten knowledge areas of software engineering, identifies generally accepted topics within these knowledge areas, points to relevant reference material for all topics, and specifies other disciplines related to software engineering. The next phase of the project will develop an "Iron Man" version based largely on trial application of the current version in realistic situations.

This half-day tutorial will provide an overview of the SWEBOK project with particular focus on one of the ten knowledge areas. The first part of the tutorial, presented by James W. Moore, will describe the history and organization of the project and provide an overview of the current Stone Man Guide. The second part, presented by Terry Bollinger, will provide a detailed look at the Knowledge Area most strongly related to the Ada language—Software Construction.


 



  Back to Main Page
  Top of this page
updated 2 October, 2000 - dfh