Ian Wilkie,, Kennedy Carter www.kc.com



Similar documents
F-16 Modular Mission Computer Application Software

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

The Fast Guide to Model Driven Architecture

To introduce software process models To describe three generic process models and when they may be used

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Software Engineering. System Modeling

Tools for MDA Software Development: Evaluation Criteria and Set of Desirable Features

Rules and Business Rules

OMG s Second Workshop on Web Services. Orchestrating Web Services from a UML Development Platform

SEARCH The National Consortium for Justice Information and Statistics. Model-driven Development of NIEM Information Exchange Package Documentation

Using UML to Construct a Model Driven Solution for Unified Access to Disparate Data

Introduction to Software Engineering. Adopted from Software Engineering, by Ian Sommerville

Accelerating Embedded Software Development with a Model Driven Architecture

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

Business Process Modeling and Standardization

Model-Driven Development of a Biosignal Analysis Framework: Benefits and Impacts on Processes. Nikolas Hofmann

Project VIDE Challenges of Executable Modelling of Business Applications

A Software Development Platform for SOA

Automatic Generation Between UML and Code. Fande Kong and Liang Zhang Computer Science department

Aerospace Software Engineering

From Business World to Software World: Deriving Class Diagrams from Business Process Models

Developing in the MDA Object Management Group Page 1

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

Enterprise Architecture at Work

An Introduction to Software Engineering

An Introduction to Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

MDA Overview OMG. Enterprise Architect UML 2 Case Tool by Sparx Systems by Sparx Systems

2. Analysis, Design and Implementation

Agile Modeling and Design of Service-Oriented Component Architecture

Designing a Semantic Repository

OMG SOA Workshop - Burlingame Oct 16-19, 2006 Integrating BPM and SOA Using MDA A Case Study

A UML Introduction Tutorial

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

System Modeling / Class Diagra Diagr m a Week 6

A process-driven methodological approach for the design of telecommunications management systems

Enhancement of Development Technologies for Agent- Based Software Engineering

Applying 4+1 View Architecture with UML 2. White Paper

SOA Enabled Workflow Modernization

MDA Support for Military Medical Crisis Information Systems (MMCIS)

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Foundations of Model-Driven Software Engineering

Topics covered. An Introduction to Software Engineering. FAQs about software engineering Professional and ethical responsibility

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

From Systems to Services

The value of modeling

A Service-Oriented approach dedicated to Internet based Business Process Networks: Building a MDA based collaborative platform with opensource

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Chap 1. Introduction to Software Architecture

Network virtualization in AutoI

An Introduction to Software Engineering

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Applying MDA in Developing Intermediary Service for Data Retrieval

Design by Contract beyond class modelling

UML for the C programming language.

Model Driven Development Future or Failure of Software Development?

Model Driven and Service Oriented Enterprise Integration---The Method, Framework and Platform

Reuse and Migration of Legacy Systems to Interoperable Cloud Services

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

Course 4 27 October Adrian Iftene adiftene@info.uaic.ro

Architecting enterprise BPM systems for optimal agility

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

OMG EDA Standards Review

Masters of Science in Software & Information Systems

Next-generation model-driven development

Frameworks of Process Improvement for Mobile Applications

Designing Real-Time and Embedded Systems with the COMET/UML method

Application Architectures

Software Specification and Testing

What is a metamodel: the OMG s metamodeling infrastructure

A pattern based approach to defining the dynamic infrastructure of UML 2.0

25.1 Translational Frameworks (MDA with transformations)

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Web Services - Consultant s View. From IT Stategy to IT Architecture. Agenda. Introduction

The ARTIST (*) approach to migrate legacy applications to Cloud

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development

Amit Sheth & Ajith Ranabahu, Presented by Mohammad Hossein Danesh

UML Profile for DDS. a tutorial for OMG Specification in Government Workshop (Real-Time & Embedded Systems) July 13, 2009

Test Driven Mobile Applications Development

Architectural Decisions as Service Realization Methodology in Model-Driven SOA Construction

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

UML FOR OBJECTIVE-C. Excel Software

Information systems modelling UML and service description languages

A UML 2 Profile for Business Process Modelling *

PATTERN-BASED BUSINESS-DRIVEN ANALYSIS AND DESIGN OF SERVICE ARCHITECTURES

15 th April 2010 FIA Valencia

Model-driven secure system development framework

Software Development Methodologies

A UML Tool for Urbanism and Control Architecture Design Applied to 3GPP Based Architectures

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

2. Analysis, Design and Implementation

Component-Oriented Engineering

Chapter 3. Technology review Introduction

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

JOURNAL OF OBJECT TECHNOLOGY

Documentation of DES Models for Manufacturing System Life Cycle Simulation

Development of a Feature Modeling Tool using Microsoft DSL Tools.

Transcription:

Applying MDA in an Avionics Systems Environment Ian Wilkie,, Kennedy Carter www.kc.com October 2005

Adopting MDA at BAE Systems Re-engineering engineering of existing component, and automatic Ada Code Generation into existing execution environment Component Re-engineering engineering Domain Reuse Reuse of Ada Code Generation Rules Automated translation of structured analysis models in Teamwork tool to UML models in xuml tool RTSA to UML Tool Migration 2

Tool Challenges for the Project - Obsolescence The Teamwork CASE tool is unsupported. Method Real-Time Structured Analysis is no longer mainstream. Platform Skills Need to ensure that the software remains maintainable and upgradeable during 25 years. Experienced Ada programmers are an endangered species. 4

Project Goals Assess feasibility of migrating of existing Teamwork Models into the new tool environment to allow ongoing maintenance of Real-Time Structured Analysis models as profiled UML models. The re-engineering of a significant component into executable UML (xuml) models. Demonstration of automatic code generation of Ada code from re-engineered xuml Models. Demonstration that software can be built with heterogeneous mixture of legacy and re-engineered components. 5

Adopting MDA Model Driven Architecture and xuml www.kc.com The information contained in this document is the property of Kennedy Carter Limited. No part of it may be reproduced or used except by written permission. The copyright and foregoing restrictions on reproduction and use extend to all the media in which the information may be embodied.

Model Driven Architecture The project decided to take te approach of Model Driven Architecture (MDA) which involves building Platform-Independent Models (PIMs( PIMs) from which we derive Platform-Specific Models (PSMs( PSMs) and/or Platform-Specific Implementations (PSIs( PSIs). The models are represented using the notation known as the Unified Modeling Language (UML). Both the MDA process and the UML notation are owned by the non-profit consortium known as the Object Management Group (OMG). 8

Executable UML (xuml) xuml is an implementation of the MDA process xuml is based around the idea of building PIMs that are precise, complete and executable (and therefore testable) xuml uses a subset of the UML formalism in order to achieve the required precision It s It s like like being being a cook. cook. You You have have to to know know how how to to use use virtually all all of of the the possible ingredients --just just not not all all at at the the same same time. time. Conversation with with Jim Jim Rumbaugh 1999 1999 xuml provides a specific view of the notion of Platform that is inherent in MDA. xuml also provides a coherent Process for the development of systems of both small and large scale and of various degrees of complexity. 9

Adopting MDA Component Re-Engineering www.kc.com The information contained in this document is the property of Kennedy Carter Limited. No part of it may be reproduced or used except by written permission. The copyright and foregoing restrictions on reproduction and use extend to all the media in which the information may be embodied.

Re-Engineering Objectives A demonstration that a significant software component can be re-engineered in xuml and that Ada code can be automatically generated from it. The automatically generated code is integrated back into the Radar System Function and performance matches the code that it replaces. 11

Component Re-engineering The Data Processor is a multi-processor, multi-tasking application. It uses a bespoke mailbox mechanism for inter-task communication. VM1 VM2 VM3 VM4... VMn Virtual Machines Passive Objects (POs) Ada Types Drivers & OS 12

Re-engineered Component An Ada avionics component was re-engineered with xuml. Ada code was generated from xuml, and integrated with existing code. VM1 VM2 VM3 VM4... VMn Virtual Machines Passive Objects (POs) Ada Types Re-engineered Component Drivers & OS 13

Domains Modelled in xuml VM 4 VM 1 VM 2 VM 3... VM n Legacy code Passive Objects (POs) Ada Types Drivers & OS 14

Platform Independent Model Structure (part of) Class Model (part of) State Model Domain Model 15

Interfaces with Legacy Code Interfaces to legacy code units are modelled using <<terminator>> classes (Part of) Class Collaboration Model Legacy Ada Task Legacy Ada Package Re-engineered component Existing component 16

Adopting MDA Process Migration www.kc.com The information contained in this document is the property of Kennedy Carter Limited. No part of it may be reproduced or used except by written permission. The copyright and foregoing restrictions on reproduction and use extend to all the media in which the information may be embodied.

Process Migration : Elaboration vs. Translation Before manually build a Platform Independent Model Requirement Change impact After manually build a Platform Independent Model PIM (UML) PIM (xuml) manually build a Platform Specific Model PSM (OOD) manually code a Platform Specific Implementation Process definition Design policies Coding rules manually specify mappings onto the platform PIM-PSI Mappings (xuml) automatically generate a Platform Specific Implementation using PIM-PSI mappings PSI PSI (Ada) (Ada) Technology Change impact 18

Formalised Application and Design Expertise manually build a Platform Independent Model manually build a Platform Independent Model PIM Rules and policies for organising (UML) aircraft PIM (xuml) Rules and policies for organising manually software build a Platform Specific Model PSM (UML) manually code a Platform Specific Implementation Process definition Design policies Coding rules manually specify mappings onto the platform PIM-PSI Mappings (xuml) automatically generate a Platform Specific Implementation using PIM-PSI mappings PSI PSI (Code) (Code) 19

Formalise the Formalisms (part of) xuml Metamodel Class Attribute SignalGeneration The Ada experts define mappings onto Ada (part of) Ada Metamodel Package BodyVariable SubprogramCall The radar experts instantiate the xuml Metamodel classes the Ada mappings are applied to the Radar PIM objects to generate the Radar Ada (part of) PIM for Radar Domain (part of) Generated Ada for Radar Domain 20

Generate the Generator xuml to Code Mappings in ASL xuml Metamodels (part of) xuml Metamodel Class Attribute SignalGeneration Project Domain Models Pre- Existing Code Generator Project Code Project Code Generator 21

Before manually build a Platform Independent Model Maintainability vs. Executability Built for maintainability After manually build a Platform Independent Model PIM (UML) manually build a Platform Specific Model PSM (OOD) manually code a Platform Specific Implementation In classic approaches, the PSI (code) must be built to be maintainable, typically by incorporating layering and encapsulation which have a detrimental effect on speed and size of the executing system In translation-based approaches, the maintained entity (the PIM) is built for maintainability with layering and encapsulation while the executable entity (the PSI) is optimised for execution efficiency PIM (xuml) automatically generate a Platform Specific Implementation using PIM-PSI mappings PSI (Ada) Built for maintainability and executability Built for executability PSI (Ada) 27

Re-Engineering : Findings Working with graphical representations meant that software structure was easily understood and maintained. Problems discovered during test were rectified in the PIM and the code regenerated. No problems were detected attributable to code generator. Code worked first time after Platform Independent Model modifications. 28

Adopting MDA Tool Migration www.kc.com The information contained in this document is the property of Kennedy Carter Limited. No part of it may be reproduced or used except by written permission. The copyright and foregoing restrictions on reproduction and use extend to all the media in which the information may be embodied.

Migrating from RTSA Tool to UML Tool Dataflow diagrams to UML class diagrams RTSA model held in Teamwork UML model held in xuml Tool Mealy state machines to Moore state machines 30

(in Teamwork) Model RTSA map to MM CDIF xuml Database Tool build, RTSA and Developer maintain check Model <<RTSA>>xUML from populate Metamodel mapmm Metamodel CDIF map to MM RTSA CDIF Metamodel RTSA xuml RTSA MMto Automated Migration of Avionics Teamwork models to UML Tool 31

EngineEngine Speed DFD 0 v1 Engine Calculate Damage 1. Run Engine Damage Reset 2. Run Pilot Engine Run Total Damage Update 3. Engine Engine Damage Display Engine 4. Engine Damage Example Teamwork RTSA Model 32

The RTSA Metamodel This model describes RTSA independently of the tool in which it is held 34

The RTSA to xuml Mapping The inter model mapping is expressed as ASL operating on the metamodels This sample of such ASL shows an operation provided by the "Data Flow Diagram" class in the RTSA meta-model # Map the data flow diagram. [] = DFD_TME2:mapDataFlowDiagramToXuml[sa_model, this.diagramnumber] on this # Map the data dictionary entries. {data_dictionary_entries} = sa_model -> R26 for data_dictionary_entry in {data_dictionary_entries} do [] = DDE6:mapDdeOnDfdToXuml[this] on data_dictionary_entry endfor # Map the data dictionary entry references. {dde_references} = {data_dictionary_entries} -> R18.Data_Dictionary_Entry_Reference for dde_reference in {dde_references} do [] = DDER2:mapDdeReferenceOnDfdToXuml[this] on dde_reference endfor # Map the nodes. {nodes} = this -> R5.Node for node in {nodes} do [] = N3:mapNodeToXuml[sa_model, this] on node endfor # Map the flows. {process_inputs} = this -> R5.Node_on_DFD -> R1.Process_Input for process_input in {process_inputs} do [] = PI3:mapProcessInputToXuml[] on process_input endfor {process_outputs} = this -> R5.Node_on_DFD -> R8.Process_Output for process_output in {process_outputs} do [] = PO3:mapProcessOutputToXuml[] on process_output endfor 35

metamodel objects the model SA for Example RTSA Metamodel Objects EngineEngine SpeedEngine Calculate Damage 1. RunEngine Damage Reset 2. RunTotal Damage Update 3. Engine Engine DFD 0 v1 metamodel Damage Display Engine Pilot 4. Engine Damage classes 36

EngineEngine Speed DFD 0 v1 Example RTSA Metamodel Objects Engine Calculate Damage 1. Run metamodel objects the model SA for Engine Damage Engine Reset Run 2. Run Pilot Total Damage Update 3. Engine Engine Damage Display Engine 4. Engine Damage 37

Example RTSA to UML Mapping The metamodel mappings are applied to generate an xuml model EngineEngineEngine Calculate Damage 1. Run Engine Damage Engine Reset Run 2. Run Total Damage Update 3. Engine Engine Display Pilot Speed Damage Engine 4. Engine Damage DFD 0 v1 38

Metamodel xuml Mapping RTSA Models to UML Models Use RTSA UML map MM Metamodel to RTSA populate RTSA model to Model RTSA UML Model metamodel Mappings metamodel Apply RTSA-UML to objects RTSA Metamodel RTSA to UML Metamodel Mappings 39

Spot the Difference: Mapping xuml Models to Ada Code Application experts build application PIMs xuml Model Use PIM xuml model metamodel to populate Apply xumlmetamodelobjects xuml-ada Mappings objects to Ada Code The platformspecific implementation (code) is automatically generated by applying the xuml-ada mapping rules xuml Metamodel Design experts specify mapping rules from UML metamodel onto platformspecific technologies xuml to Ada Metamodel Mappings 40

MDA Formalises Intellectual Property Formalised Intellectual Property Radar Processing Domain This approach ensures that all the business intellectual property is formalised, and made reusable, in xuml. Build & Test xuml models Generate Ada Radar Processing Component Platform-Specific Radar Processing Implementation Ada Code Generation Domain 41

Benefits of Adopting MDA Overcome the Method and Tool Obsolescence Issue. Simplify the Software Development Process by treating Application Analysis and Software Design as totally independent, decoupled operations. Protect intellectual investments in xuml Models against Platform Obsolescence. Capture the expertise of the best Computer Scientists and Ada Software Engineers in an automated tool. Adapt to a modern technology which fully supports maintenance and enhancements over the next 25 years or more. By addressing architectural issues separately from specification of behaviour, address issues of performance on any platform. 42

Further Information For more information contact: Ian.Wilkie@kc.com Wolfgang.George@kc.com www.kc.com 45

Applying MDA in an Avionics Systems Environment Ian Wilkie,, Kennedy Carter www.kc.com October 2005