ASD - The extra dimension in software engineering share

30
Design Automation for Software Engineers InCose evening lecture ASD – The extra dimension in Software Engineering Peter van de Velde Customer Solutions Architect October 20, 2011

description

About Analytical Software Design (ASD) and the ASD:Suite. Making software design verification a reality. The Verum ASD:Suite is a unique, general purpose, software design automation platform. Incorporating fully automated mathematical verification technology, it enables software engineers to build better, more complex software while delivering a net 30%-50% improvement in productivity and a corresponding decrease in time to market. ASD:Suite users include Ericsson, FEI Company, PANalytical, Philips, Nspyre, Sioux, and TASS.

Transcript of ASD - The extra dimension in software engineering share

Page 1: ASD - The extra dimension in software engineering share

Design Automation for Software Engineers

InCose evening lecture

ASD – The extra dimension in Software Engineering Peter van de Velde Customer Solutions Architect

October 20, 2011

Page 2: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 2

Agenda

-  System engineering vs. software engineering -  ASD -  What is it -  Let’s see it (the real thing - live)

Page 3: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 3

System Engineering Keywords on InCose site

-  Complex systems -  Decomposition into subsystems -  Composition: system = sum of subsystems -  Way of working and thinking -  System of Interest - Context Diagram -  Model Based System Engineering (MBSE) -  Internal subsystem dependencies and behaviour -  External subsystem dependencies and behaviour

Page 4: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 4

System Engineering versus Software Engineering

-  Decomposition into subsystems -  Engineering of subsystem in software =

Software Engineering -  Same keywords as system engineering

-  Model Based Software Engineering using Analytical Software Design (ASD)

Page 5: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 5

Nothing New…

Design Model

Design Verification

Design Implementation

Images from Lusas Engineering Analysis

Page 6: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 6

Software Design with Formal Verification

Design Model

Design Verification

Design Implementation

Page 7: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 7

Source Code

Model-Driven Development

Traditional model Is the model correct ?

Is the source code

correct ?

Page 8: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 8

Next Generation Model-Driven Development

Source Code

ASD model

§  ASD Models are: §  Precise §  Complete §  Traceable §  Correct

Page 9: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 9

Next Generation Model-Driven Development

Formal model and verification

Generate formal model

Design Errors

Source Code

ASD model

§  ASD Models are: §  Precise §  Complete §  Traceable §  Correct

Page 10: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 10

Next Generation Model-Driven Development

ASD:Suite guarantees equivalence

EU patent 1749264 Hong Kong patent HK 1104100

Formal model and verification

Generate formal model

Design Errors

Source Code

ASD model

Generate source code from verified

model

§  ASD Models are: §  Precise §  Complete §  Traceable §  Correct

§  MISRA C §  C++ §  C# §  Java

§  ASD Models are: §  Precise §  Complete §  Traceable

Page 11: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 11

Let’s see it

-  Live presentation -  or

-  Do it yourself demo with a free trial version and demonstration example Free 30-day trial: http://www.verum.com/product/30-day-trial.aspx

Page 12: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 12

The Domain for ASD

ASD can be used to model: -  Control (concurrent or reactive system) -  Model the state of a system and all discrete events

that can happen and reaction to it (behaviour) -  Work-flow (business interaction) -  Where are we in the process, which tasks have been

performed, and which still needed etc. -  Product life cycle management -  Status of a product (new, backorder, delivered, paid,

returned, etc.) -  Etc.

Page 13: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 13

The Domain for ASD Discrete Decisions and Actions (1)

Decision based on discrete events: -  A method call -  Init, Print, GetStatus, Delete, Terminate, etc.,

-  A notification (internal or external) -  Task completion, cancellation, status update, time out,

interrupt, etc. -  A result of data interpretation -  Discrete values: true <> false, red<>green<>blue -  Evaluation function: needCredibilityCheck(order.value)

Page 14: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 14

The Domain for ASD Discrete Decisions and Actions (2)

Discrete events resulting in executing actions: -  A method call to a used component -  A notification to the calling component -  An internal state change in any combination

Page 15: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 15

ASD In a Nutshell

Analytical Software Design is a -  Set of methods -  Way of working -  Platform

Page 16: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 16

ASD Set of Methods

-  Model driven development based on Sequence-Based Specifications (SBS)

-  Component-based -  Separation of interfaces and implementation -  Described in interface and design models

-  Formal verification -  Brute force calculation of all possible execution

scenarios based on CSP (Communicating Sequential Processes) and FDR (Finite Divergence Refinement)

Page 17: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 17

ASD Way of Working

-  Make a context diagram -  Define external interfaces (interface models) -  Make a decomposition -  Define internal interfaces (interface models) and

component (design models) -  Verify components -  Generate code -  Build -  Integrate and test

Page 18: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 18

ASD Way of Working Product Development Approach

-  Can be used in an incremental way of working -  Complete interfaces, extend implementation function

by function -  Extend interface and implementation function by

function -  Suitable for agile development

-  Can be used in waterfall way of working

-  On-line training is example of incremental approach

Page 19: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 19

ASD Way of Working Impact

-  ASD adds a structural way of working -  If you are used to that: hardly any changes -  If not: ASD is an evolution, no revolution

-  ASD may change the way of thinking -  Programming -> Engineering -  Object Oriented -> Component-Based

Page 20: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 20

ASD Way of Working Context Diagram (Software)

Alarm

System

Console HAL

Sensor HAL

Siren HAL

External Interface of AlarmSystem

External Interface of Siren

External Interface of Sensor

Page 21: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 21

ASD Way of Working Decomposition

-  Decomposition of AlarmSystem is rather simple: 1 component AlarmSystem

-  (example more complex decomposition is included)

Page 22: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 22

ASD Way of Working Component Diagram

Service of AlarmSystem described in Interface Model

Service of Siren described in Interface Model

Component AlarmSystem described in Design Model

Non ASD Component (handwritten code)

Non ASD Component (handwritten code)

Page 23: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 23

ASD decomposition Bigger example

Page 24: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 24

IAlarm

Alarm

ISiren ISensor

ASD Way of Working Verify components (1)

-  Confirmation that a component is correct and complete with respect to its surrounding interface specifications

-  Answers the questions: -  Are the interfaces well-formed? -  Is the design well-formed? -  Does the design maintain its

interface contracts?

Page 25: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 25

ASD Way of Working Verify components (2)

-  Checks modelling errors -  Checks invariants -  Checks guard completeness -  Checks state variable ranges -  Checks for illegal behaviour (typically caused by

race-conditions) -  Checks for potential queue problems

-  Checks for dead/livelocks -  Checks for deterministic design -  Checks for interface compliance

Page 26: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 26

ASD Platform

-  Integrated tool ASD:Suite -  Edit models (documentation, specification, design) -  Code generation (implementation: languages: C, C+

+ , C# and Java) -  Model verification* (interactive visual debugging)

-  ASD:Runtime -  A downloadable software package that enables the

generated code to run on various software platforms. -  Implements the ASD execution semantics.

-  *Boehm: verification := building the system right; validation := building the right system

Page 27: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 27

ASD Platform Generated Code and ASD:RunTime

Page 28: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 28

Questions

Page 29: ASD - The extra dimension in software engineering share

ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 29

-  Thank you for your attention

-  For more information

-  Visit www.verum.com or community.verum.com -  Mail to [email protected] -  Register for a free ASD workshop

Page 30: ASD - The extra dimension in software engineering share

Design Automation for Software Engineers

The Power to Create Software Solutions

SUCCEED! VERIFY DESIGN