Introduction to Software Engineering with Ada 95
This course is for software engineers and programmers requiring a thorough grounding in Ada 95.
Delegates are not required to have any previous knowledge of the Ada language.
5 days. Hands on.
This intensive course is for software engineers needing a thorough knowledge of Ada 95. The features of Ada 95 are explained, and recommendations are made for ensuring consistently high quality code. An important part of the course involves familiarising delegates with the ARM (Ada 95 Reference Manual) as well as containing an overview of SPARK for high integrity systems.
On completing the course delegates will have covered the following topic areas:
- Introduction to the course - its scope and content.
- Brief history of the Ada language.
- An overview of the main Ada features - object orientation and its mapping into packages, tasks, strong typing, exceptions and re-use.
- The Ada Reference Manual and the Rationale.
- Overview of the Ada libraries.
- Predefined types.
- The Ada main program structure.
- Accessing features in library packages.
Access types - allocating and disposing of memory.General access types. Aliased types. Pointer to subprograms.
Generic subprograms and packages. Declaration and instantiation. Generic parameters. Application of generics.
Lower Level Programming
Representation clauses: length, enumeration, record and address specifications. Interrupts. Using the package System.Machine_Code. Interfacing with other languages.
I/O And Program Compilation
Standard packages. File handling. The Ada.Text_I0 package. The procedures and functions supplied. Pragmas.
The Object Of It All
A detailed overview of object oriented concepts and ideas, including: abstraction, encapsulation, public interfaces, classes, instances, instance v class data and operations, abstract data types (ADTs), message passing, operation classification (constructors, destructors, iterators, accessors and transformers), active v passive objects, aggregation (has-a), inheritance (is-a), static v dynamic polymorphism, abstract classes, genericity.
Child library units. The visibility rules. Private child units. Hierarchical Ada library root packages: Ada, Interfaces and System. Pragmas: Elaborate_All( ), Elaborate_Body( ), Preelaborate( ), Pure( ).
Tagged types - components and operations. Derived tagged types. Abstract tagged types. Class-wide types, dynamic polymorphism (dispatching) and ‘Class. Identifying types with ‘Tag and using the Ada.Tags package. Mix-in inheritance. Constructors & Destructors (Controlled types).
Discriminated task types. The ‘delay until’ and ‘then abort’ clauses. Protected types and objects - barriers and discriminants. The ‘requeue’ statement. Ada 95 relevant Packages:, Ada.Interrupts.Names, Ada.Task_Identification, Ada.Task_Attributes, Ada.Interrupts, Ada.Synchronous_Task_Control, Ada.Asynchronous_Task_Control., Ada.Real_Time. New attributes: ‘Identity, ‘Caller. New pragmas: Atomic, Atomic_Components, Volatile, Volatile_Components, Interrupt_Priority(expr), Task_Dispatching_Policy(), Locking_Policy(), Priority(expr), Queuing_Policy, Restrictions. Subtypes: Any_Priority, Priority, Interrupt_Priority.
Library Package Overview
An overview of many of the new features included in Ada 95 library packages including the Numeric, Character and String handling, File handling and Streams, Interfacing to C, Fortran and Cobol and Distributed systems libraries.
Spark For High Integrity Ada
What is SPARK? Ada features that are included and excluded from SPARK. Core annotations. SPARK tools. Path functions. Verification conditions. Proof annotations.
A case study that uses the major features of Ada in the construction of a small realtime system is included with notes on the main characteristics.
Verhoef Training reserves the right to interchange instructors should scheduling so require. If, due to circumstances beyond our control, a course has to be rescheduled or cancelled we will accommodate you as soon as possible.