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 2001 will offer two days of outstanding tutorials led by some of the most respected technical leaders in the industry. These 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, architecture, software tools, and the World Wide Web.
|
Sunday Full-Day Tutorials |
|||
|
|
|
|
|
|
|
Introduction to Ada and Ada95 Programming Language | David A. Cook, Leslie Dupaix,
& Eugene Bingue |
|
|
|
"Web Application Development û Using Ada and JGNAT to develop web applications using JDBC, JSP (JavaServer Pages), Java Beans, and Java servlet technology" | Terry Westley | |
|
|
"CORBA 3 and CORBA for Embedded Systems" | Ron Oliver | |
|
Monday Full-Day Tutorials (8:30am û 5:00pm) |
|||
|
|
|
|
|
|
|
Practical Experiences of Safety-Critical Ada Technologies | Peter Amey & Rod Chapman | |
|
Monday Morning Tutorials (8:30am û 12:00 noon) |
|||
|
|
|
|
|
|
|
Tasking in Ada | David Cook | |
|
|
Ada 95 û the language for everybody, not just Ada programmers. Lessons learned teaching Ada | Salih Yurttas | |
|
Monday Afternoon Tutorials (1:30pm-5:00pm) |
|||
|
|
|
|
|
|
|
Exceptions | Currie Colket | |
|
|
A Comparison of the Concurrency and Real-Time Features in Ada, Java, and POSIX | Ben Brosgol | |
Sunday Full-Day Tutorials (9:00am û 5:30pm)
SF1: "Introduction to Ada and Object-Oriented Programming"
David
A. Cook, Leslie Dupaix, and Eugene Bingue
[More Sunday Tutorials]
This tutorial is designed for those who have some familiarity with a programming language, but who are new to Ada. In the morning, we will discuss the basics of programming in Ada, to include typing, packages, syntax rules, and other Ada programming constructs. In the afternoon, we will cover the concepts of object-oriented programming, and show how object-oriented design can easily be implemented using Ada. Simple Ada programs will be constructed during the class, and the students will also see how to use various Ada programming environments and tools that can be downloaded for free over the web.
SF2: "Web Application Development û
Using Ada and JGNAT to develop web applications using JDBC, JSP (JavaServer
Pages), Java Beans, and Java servlet technology"
Terry
Westley
[More Sunday Tutorials]
In "Web Application Development," we will survey several techniques for using Ada to build dynamic, data-rich web sites. We will then focus on learning to use Ada and JGNAT to develop web applications using JDBC, JSP (JavaServer Pages), Java Beans, and Java servlet technology.This tutorial is best suited for those who can already build a static web page with HTML, can program in Ada, and wish to use JGNAT to take advantage of a growing set of open source tools built around Java technology for building web applications. These tools include the Apache web server, Tomcat servlet engine, MySQL database, JDBC, and JUnit. All of these technologies will be used to build a web application and will be demonstrated on a Windows XP computer as part of the tutorial.
SF3: "CORBA 3 and CORBA for Embedded Systems"
S.
Ron Oliver
[More Sunday Tutorials]
The morning session will be an overview of CORBA 3 with emphasis on changes from CORBA 2. The attendee need have no prior knowledge of CORBA. The session will begin with a brief introduction to Distributed Computing, in general, including fundamentals of Concurrent and Real Time systems, and of Computer Networks. Thus, the attendee need not be highly experienced in these subjects. However, treatment of this introductory background material will necessarily be limited, so some familiarity with it will be useful. Most of the morning session will include discussions of the Interface Definition Language (IDL), Client programs, Object (server) programs, CORBAServices, CORBAFacilities, and the CORBA Component Model (CCM).Monday Full-Day Tutorials (8:30am û 5:00pm)The afternoon session will focus on more advanced features of CORBA 3, primarily Minimum CORBA and Real Time CORBA. This session will be of particular interest to those who might wish to use CORBA for Embedded Systems. It will begin with a brief introduction to Embedded Systems and an overview of advanced CORBA features that could not be covered in the morning session. Most of the afternoon will be devoted to Minimum CORBA and RT CORBA, introducing these standards by way of a detailed example. All examples will be based on the highly successful TopGraphÆX product, ORBAda, and the Ada95 programming language.
MF1: Practical Experiences of Safety-Critical
Ada Technologies
Peter Amey & Rod Chapman
[More Monday Tutorials]
This tutorial will cover the following topics:
What is high-integrity software? What is safety-critical software? What is the difference?Reliable programming in standard languages
- not just a question of being "more careful", special techniques are needed
- problem of showing fitness for purpose before deployment
- difficulty of demonstrating ultra-reliability by testing alone
Standards and Projects, such as:
- deficiencies of programming languages
- superficial attractiveness of special-purpose languages
- safe use of standard languages, such as MISRA-C, HRG Report. and SPARK
Compilers
- Standards Overview
- DO178B and the Lockheed C130J
- Def Stan 00-55 and SHOLIS
- ITSEC E6 ("common criteria") and Mondex
Runtime systems
- Validation versus service history
- Desirable properties
Object Code Verification
- "Small" runtimes (e.g. C-SMART, MARK)
- Ravenscar profile
- GNORT
Conclusions
- Why is it needed?
- The "no surprises" rule
- OCV approaches
Monday Morning Tutorials (9am û 12:30pm)
MA1: Tasking in Ada
David 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.
MA2: Ada 95 û the language for everybody,
not just Ada programmers. Lessons learned teaching Ada
Salih
Yurttas
[More Monday Tutorials]
Programs are written as statements, blocks, procedures but software systems are designed and stored as units: both, compilation and library; either user defined or built-in. This tutorial will emphasize the need and understanding for a new teaching and learning approach in Ada-like languages, i.e., programming languages for large-scale software development.Library, package/task/procedure with spec and body separation as separate compilation units with generic instantiation will be understood not as a complexity, but simplicity to achieve good quality in software systems; quality added by exceptions will be presented. Type extension and hierarchical reuse and maintainability will be discussed as OO aspects of Ada-95 should be understood and practiced as software development tools not algorithmic and data structure implementation features.
tutorial scheme -
- programming is searching and sorting with I/O.
- programming is decomposition and composition by procedures/functions and packages separated as spec and body.
- programming is generic reusable components by extension.
- programming is safe and reliable by exceptions.
- programming is distributed and parallel by tasks.
Monday Afternoon Tutorials (1:30-5:30pm)
MP1: Exceptions
Currie
Colket
[More Monday Tutorials]
Exception processing was considered by Jean Ichbiah to be one of the 3 most important features of the Ada language. It has the power to detect serious problems in the execution of a program and return one back to a known safe state with high integrity. As such, it can be a very powerful tool for developing high quality software. Unfortunately many developers do not use the full power of exceptions. Frequently the use of exceptions is to simply log the problem and continue execution, allowing things to gracefully degrade. In the case of Ariane 5, exceptions were raised appropriately, but the result had not been well thought out, resulting in a disaster.This tutorial will start at the basics, discussing the Ada 83 concept of exceptions. To be effective, exceptions and their handling must be addressed at the design level and not at the code level where it is frequently performed today. This presentation will discuss several alternative approaches to addressing error handling in the design using exceptions. Ada 95 introduced some important changes to the exception area making them more effective. In particular, the addition of package Ada.Exceptions provides excellent facilities to support debugging and provides a mechanism to eliminate erroneous mapping of raised exceptions.
The use of exceptions can be assessed via automated tools. Several analyses that can be performed on a program via automated tools so the program quality can be improved will be discussed. The tutorial will conclude by addressing proposed needs for exceptions resulting from the May 2001 Exception Workshop held at Ada-Europe 2001. These needs may result in changes for the next version of the Ada language, Ada 0X.
MP2: A Comparison of the Concurrency and
Real-Time Features in Ada,
Java, and POSIX
Ben
Brosgol
[More Monday Tutorials]
Unlike sequential programming, the debate over whose programming language support was largely settled in the Structured Programming revolution of the early 1970s, concurrency and especially real-time programming remain subjects that elicit considerable controversy. Different languages have taken different approaches; some languages ignore the matter, believing that these topics are more in the realm of an operating system or real-time kernel.This tutorial identifies the issues that underlie concurrency and real-time programming and describes how they are addressed by Java, Ada, and Posix. It will cover thread/task lifetime properties (creation, termination), mutual exclusion, coordination / communication, asynchrony, dealing with time, and scheduling, with a focus on real-time requirements such as management of priority inversion. Some common examples (e.g. bounded buffers, periodic activities) will be used to illustrate the different approaches, which will be compared with respect to software engineering support (readability, reliability), predictability and performance. The Java approach will presented in terms of the two current proposed real-time extensions: the Real-Time Specification for Java (from the Sun-sponsored Real-Time for Java Expert Group) and the Real-Time Core Extensions (from the J-Consortium). The main emphasis will be on uniprocessor systems.
David A. Cook is the Principal Engineering Consultant, Shim Enterprises, Inc. He is currently assigned as a software engineering consultant to the Software Technology Support Center, Hill AFB, Utah. David has over 27 years experience in software development and software management, and was formerly an associate professor of computer science at the U. S. Air Force Academy (where he was also the department research director), and also a former deputy department head of the Software Engineering Department at the Air Force Institute of Technology. He was a member of the Air Force Ada 9x Government Advisory Group, and has published numerous articles on software process improvement, software engineering, object-oriented software development, and requirements engineering. He has a B.S. in computer science (University of Central Florida), a M.S. in Teleprocessing from the University of Southern Mississippi, and a Ph.D. in computer science from Texas A&M University. He can be reached at
david.cook@hill.af.mil.
Leslie Dupaix is Lead Engineer, Systems Engineering and Development Team at the Software Technology Support Center, and has over 15 year of software development and systems engineering experience with both US Steel and the US Air Force. He has worked in both maintenance and acquisition activities. He has a degree in Electronics Engineering from Brigham Young University. He is an authorized Personal Software Process instructor and Team Software Process coach. He can be reached at les.dupaix@hill.af.mil
Eugene W.P. Bingue
Mr. Bingue is a software-engineering consultant. He has Developed and taught a variety of Ada software engineering courses since 1985. He developed an Ada software-engineering curriculum consisting of eight courses for the Strategic Air Command; curriculum was consider the best in the Department of Defense (DOD) and was adopted by other DOD agencies and numerous civilian contractors. Software Engineering consultant to Strategic Air Command HQ community on Ada Development. Was the lead consultant to Coulter Electronics on their Ada programming activities during the development of their Automated Multiparameter Analyzer for blood cells. He has presented papers and tutorials on Ada and Ada 95 at numerous conferences such as DOD Software Technology Conference 89,90,95,96,97, Salt Lake City, Washington Ada Symposium, 91,92,93 and ACM Computer Science Conference, 94,95.Mr. Bingue retired from the Air Force as a Captain after 20 years of service. Most recently, he was a Software Engineer in the Satellite Control and Simulation Division at the USAF Phillips Laboratory. He was instrumental in the architecture design of the MAGIC satellite health and status system for Space Command. He was also the lead software engineer for the development of the Reactor Control Unit (RCU) for the Russian Topaz II space base nuclear reactor.
Mr. Bingue has been a major contributor to the Ada Software Engineering Education Training (ASEET) Team since 1987. He chaired several working groups on educational issues and assisted in organization of ASEET annual symposium and workshops.
Terry Westley is Software Development Manager in Veridian Engineering's (http://www.veridian.com) Information Systems Group, Buffalo, NY. His team is responsible for improving and maintaining a real-time, distributed simulation of integrated air defense systems. This system comprises approximately 1M SLOC, most of which is Ada.He is also the author of TASH, an open source Ada binding to Tcl/Tk (http://www.adatcl.com).
S. Ron Oliver has been in the Software Industry since 1968, with a roughly equal mixture of industrial and academic experience. Since 1974 he has specialized primarily in Concurrent and Real Time Software Engineering, including Computer Communication (Network) Systems. During 9 years with the Computer Science and Computer Engineering programs at Cal Poly, he lead many research and student projects in Object Oriented Design and Implementation for Concurrent and Real Time Systems, and in the Distributed Computing Environment (DCE). Considerable work was also done with projects to simulate Computer Networks. Dr. Oliver took early retirement from Cal Poly to return to Colorado and work on methods to improve Software Quality. Most recently he has also been focusing on CORBA.
Currie Colket is the Vice Chair of ACM SIGAda for Meetings and Conferences, the Chair of the SIGAda Ada Semantic Working Group, and Chair of the ISO WG9 ASIS Rapporteur Group. He recently retired from the DoD where he served in the Air Force as an Airborne Surveillance Officer on AWACS and a computer scientist for the United States Navy. Mr. Colket is currently a software systems engineer for MITRE. His current tasks involve code analysis using ASIS-based tools. In this capacity, he has addressed the use of Ada exceptions for both code development and operational use. Prior to his affiliation with MITRE, he was a consultant for the Software Program Manager's Network (SPMN). He has a Bachelor of Science from Case Institute of Technology, a Master of Business Administration from the University of Southern Mississippi and a Master of Science in Computer Science from the Ohio State University. His email address is colket@mitre.com.
Salih Yurttas holds a PhD in Computer Science from Ege University, Turkey. He has been on the faculty of Texas A&M University, Department of Computer Science 1982-1991 as Visiting Assistant Professor and 1991 to present day as Senior Lecturer. He taught undergraduate and graduate courses at Texas A&M, Turkey, and People's Republic of China. His main interest is Programming Languages Design and Implementation for Large-Scale software development. He has developed reusable, modular language collections in Ada, C++, Java, and several imperative languages.
Peter Amey is an aeronautical engineer by original professional training. He served as an engineering officer in the Royal Air Force and spent several years at the Boscombe Down test establishment working on the certification of aircraft armament systems. Peter joined Program Validation Limited to develop SPARK and the SPARK Examiner and continues that work today with Praxis Critical Systems. As well developing SPARK he has used it on major programmes including Tornado, Eurofighter and the Lockheed C130J. Peter teaches SPARK and Ada on a regular basis and has lectured widely on the development of critical systems.
Roderick Chapman received MEng and DPhil degrees from the University of York, England in 1991 and 1995 respectively. He is currently a software engineer with Praxis Critical Systems, specializing in the design and implementation of high-integrity real-time and embedded systems. He has also been involved with the development of the SPARK language and its associated static analysis tools. Dr. Chapman is a member of the British Computer Society and is a Chartered Engineer.