ASD - The extra dimension in software engineering share
-
Upload
verum-software-technologies -
Category
Technology
-
view
836 -
download
2
description
Transcript of 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
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)
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
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)
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
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
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 ?
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
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
✔
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
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
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.
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)
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
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
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)
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
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
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
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
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)
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)
ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 23
ASD decomposition Bigger example
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?
⊑
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
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
ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 27
ASD Platform Generated Code and ASD:RunTime
ASD - The extra dimension in software engineering | InCose evening lecture | Copyright 2011 Verum Software Technologies 28
Questions
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
Design Automation for Software Engineers
The Power to Create Software Solutions
SUCCEED! VERIFY DESIGN