1. Reader’s Notes
2. Setting Up OSATE
2.1 Get the Components
2.2 Install Eclipse
2.3 Verify the Installation
3. A First Plug-in: Model Statistics
3.1 Creating a New Plug-in
3.1.1 Creating a Plug-in Project
3.1.2 Setting the Plug-in’s Dependencies
3.2 Gathering Model Statistics
3.2.1 Subclassing AadlProcessingSwitch
3.2.2 The ModelStatistics Code
3.2.3 An Alternative Use of Switches
3.3 Driving the Plug-in
3.3.1 Eclipse Actions
3.3.2 The Action Code
3.4 Creating an Icon for the Plug-in
3.5 Describing the Action in the plugin.xml File
3.5.1 The Complete plugin.xml File
3.6 Executing the Model Statistics Plug-in
3.6.1 Model Statistics in Action
3.7 Summary of Concepts
3.7.1 Eclipse
3.7.2 Meta Model
3.7.3 OSATE API
4. Processing of AADL Models
4.1 Meta Model Defined AADL Models
4.2 Notes on Accessing Models
4.2.1 An API for Accessing AADL Models
4.2.2 Eliding Model Structure
4.2.3 AADL Inheritance Semantics
4.2.4 Specialized Reference Associations
4.2.5 Unifying “Either-Or” Associations
4.2.6 Specific Instances of the Getter Method Patterns
Package edu.cmu.sei.aadl.model.core
Package edu.cmu.sei.aadl.model.feature
Package edu.cmu.sei.aadl.model.flow
Package edu.cmu.sei.aadl.model.instance
Package edu.cmu.sei.aadl.model.property
4.3 AADL Model Traversal Support
4.3.1 Basic Traversal Support for AADL Model Processing
Default Processing of Visited Model Objects
Filtered Processing of Visited Model Objects
User-Defined Processing Action for AADL Model Objects
Redefined Processing Method for AADL Model Objects
List-Based Processing Methods
QuickSort
processEList
4.3.2 Traversal Methods
Prefix and Postfix Order Traversal of Declarative and Instance Models
Declaration–Use Order Traversal in Declarative AADL Models
Instance Model Traversal
Traversal and Multi-File Support
4.3.3 An Example: Priority Inversion Checking
4.3.4 Meta-Model Class Based AADL Model Processing
Traversal-Driven Switch Processing
Redefinition of Case Methods
Invocation of the Processing Switch
Content-Driven Switch Processing
Controlling the Invocation of the Super Class Case Method
Controlling the Processing Order
Processing of Referenced Model Objects
4.4 AADL Model Manipulation Support
5. Processing AADL Properties
5.1 The Security Level Plug-in
5.2 An Overview of AADL Properties
5.2.1 AADL Property Types
5.2.2 AADL Property Declarations
5.2.3 Basic AADL Property Associations
5.2.4 The “SecurityLevel” Property
5.2.5 Property Lookup
5.3 AADL Properties in the Meta Model
5.3.1 Properties and the Instance Model
5.4 Implementing the Security Level Plug-in
5.4.1 Getting the Property Declaration and Driving the Analysis
5.4.2 Class ComponentSecuritySwitch
5.4.3 Class ConnectionSecuritySwitch
5.5 Getting Simple Property Values
5.6 Manipulating Property Values
5.6.1 Copying PropertyValues
5.6.2 Unparsing Property Values
5.6.3 Using Range Values
5.6.4 Getting Type Literals
5.6.5 Scaling Number Values
5.6.6 Setting Number Values
5.7 Advanced Property Associations
5.7.1 Modal Property Associations
5.7.2 Nonexistent Property Values
5.7.3 Modes and Property References
5.8 OSATE Properties API
5.8.1 Using Predeclared Properties
5.8.2 Getting PropertyDefinition Objects
5.8.3 Testing “Applies to”
5.8.4 Getting Property Values
Modal Property Lookup
5.8.5 Modifying Property Associations
Setting Property Associations
Removing Property Associations
6. Working with Flows
6.1 Flow Specifications and Flow Instances
6.1.1 Flow Specification Declarations
6.1.2 Flow Implementation Declarations
6.1.3 End-To-End Flow Declarations
6.1.4 End-To-End Flow Instances
6.1.5 Textual Flow Declaration Examples
6.2 Flows in the AADL Meta Model
6.2.1 Flow Specification Declarations
6.2.2 Flow Implementations and End-To-End-Flows
6.2.3 End-To-End Instance Flows
6.3 The Flow Analysis Plug-in
6.3.1 Meeting Flow Requirements
6.3.2 Handling of Missing Latency Properties
6.3.3 Propagation of Flow Latency Information
6.3.4 Reusing the Analysis for Instance Models
6.4 Specification-Based End-To-End Flow Analysis
6.4.1 The Display System Model Scenario
6.4.2 The Partition Latency Analysis
6.4.3 Partition Latency Analysis Refinement
6.5 Latency Analysis with Instance Models
7. Managing the Results of an OSATE Plug-in
7.1 Comparison of Result Management Mechanisms
7.1.1 Use of Eclipse Markers
7.1.2 Use of SWT Dialog box
7.1.3 Use of AADL Properties
7.1.4 Use of Adapters on AADL Models
7.1.5 Use of the File System
7.1.6 Use of Meta Model-Based XML Documents
8. Persistent Markers with AADL Models
8.1 OSATE Marker Types
8.2 ErrorReporter
8.3 Plug-in Actions and Reporting
8.4 User Defined Reporters
8.5 How to define new Marker types
9. Packages Provided by the OSATE Plug-ins