2. Agenda
History : Smalltalk in Thales Brest
Domain Context
Modelling and mockup with Smock
Component Testing with PicUnit
Conclusions
Reference - date
1 Aéronautique
3. Smalltalk in Thales Brest
A story of twenty years:
1989-1997: Sensor software development
MMI development on real time operating system (VRTX), C (TNI) code generator
MMI development for embedded workstation, Static typing, C++ (Thales) code generator
Automatic test workbench (IEEE488, VxWorks)
1996-2000: Training centers
1996-2003: MMI workstation for Maritime patrol aircraft demonstrator
2002-2009:
System Modeling and Mockup
Component testing
F5 A1 A2
F2 A2
F4 Activities
F1
F3
F21
F22 C1
F1
C2
F6 F3
C3
Reference - date
C12
C11 F22 C2
F21
F1 C4
F6 C1’
F7 C3
MOCK OMI MOCK TP
Processors AGENT LSE
Buses
MOCK NAV MOCK RAD
2 Aéronautique
4. Why/ Which Smalltalk
Why Smalltalk
MMI RAD
Efficient solution proved by TNI feedbacks
Which Smalltalk
Parc Place version & Cincom versions
The only multiplatform version available in the early 80’s.
From Smalltalk 2.5 up to VisualWorks 7i
Packages:
Smalltalk Compiler / Refactoring browser Code generation
UI MMI building with dedicated look & feel
DLLCC External access
DST, Opentalk OMG Corba
Internal package:
SCM Component Model CCM Like
DOS Distributed Object System
Reference - date
DSS DST tools and addOn
3 Aéronautique
5. Agenda
History : Smalltalk in Thales Brest
Domain Context
Modelling and mockup with Smock
Component Testing with PicUnit
Conclusions
Reference - date
4 Aéronautique
6. Domain : Patmar, Surmar and EWC2
Civilian Missions (SURMAR)
Assistance and support to police & customs
Detection & control of pollution
Assistance to scientific observations
Surveillance of maritime traffic and offshore oil fields
Search & Rescue medical evacuation
Control & monitoring of fisheries
Antipollution
Military Missions (PATMAR)
Anti-Submarine Warfare (ASW)
Anti-Surface Unit Warfare (ASUW)
EEZ Surveillance(Exclusive Economic Zone)
Maritime Traffic Control
Surveillance of off shore oil fields
Search and Rescue
Fishing Surveillance
Electronic Warfare C2 Functions + RESM
EW Picture elaboration
EW engagement management
On-board Combat Management System interface
Reference - date
5 Aéronautique
8. Product line : a configurable system
OMI OMI OMI OMI OMI
Packaging Redhat Packaging Manager OMI
Data
Data Data Data Data Data
Deployment Redhat Packaging Manager
Configuration SCS XML files OMI
Product library Data
IVVQ
Deployement
Packaging
MAS MPA
SCS
SCS
MAS MSA LE
MAS MSA
IVVQ OMI
Deployement Data
IVVQ
SCS Deployement
Configuration OMI
Data
OMI
Reference - date
Data
All systems share the same core of MOSAIC
components (PIC)
Several implementation for the same contract
7 Aéronautique
9. MOSAIC Architecture
To provide mechanism to share
the Tactical Situation
To provide Command & Control
functions
To minimize integration Risks
OMI Application Mission Data Processing Application
To allow System Product
Evolution & Adaptation
I
M
Service invocation
O
t C
To give a Common Framework to
en PI
ag ion
Supervision PIC multi-company projects
is
rv
Agent
Scalability & performances
pe
Su
Shared
PIC xx OMI Data retrieval data Data (through data base caching, data
Agent publication
iri
es and agents distribution…)
ra
PIC xx Agent lib
ng
Reliability (when an agent
Core si crashes, others can survive)
model es Service
oc
pr
ta
invocation Interoperability through Corba
da
on I/O n standard compliant services
m L atio
m HA lic
Co p Extensibility (ability to add /
PIC Ap
GFL MAF modify agents, equipment, with
no / few modification)
DOS DSS DSS DOS GSM
High software and system
Sérial RS links
integration productivity
System Manager Application Discrete signals
Openness (to various languages,
1553B busses
Services (CORBA) SW bus on Ethernet Arinc hardware platforms, COTS
Reference - date
software products integration…)
Objects SW bus on Ethernet
Long term availability (through
standard based, COTS
independence and market driven
MOSAIC COTS / technologies choices)
« Data Centric » Architecture
8 Aéronautique
10. Modeling, Mockup and Simulation
New concepts System solutions
System solutions
New concepts
engineering engineering
engineering
engineering
•Technical system parameters
•Technical system parameters
• • Operational concept mining
Operational concept mining identification
identification
• Usage concept mining
• Usage concept mining • • System sizing
System sizing
• • Human factors
Human factors Capacities • Performance engineering
• Performance engineering
• Value analysis
• Value analysis System • • TRL assessment
TRL assessment
•Demonstrator for show room
•Demonstrator for show room Engineering • Design solution assessment
architecting • Design solution assessment
& • • Impact analysis (new function/
Impact analysis (new function/
new technology)
Model new technology)
promotion
Innovate Mockup
Innovate Simulation
Define the Define the right
Define the right
Define the
right offer Hybrid architecture
architecture
right offer
& promote it
& promote it prototyping
Secure the
Secure the
Technical solutions
Technical solutions
engineering
development
development
Reference - date
engineering
• Prototyping
• Prototyping
• Pilot development
• Pilot development
• • Development support:
Development support:
•Specifications validation
•Specifications validation
•Pre integration && verification (host)
•Pre integration verification (host)
9 Aéronautique
11. Software production process
Mockup with
Definition SMOCK
Mockup Component
approach
Modelisation
Model-Driven Architecture
Engineering Testing with
PICUNIT
Development
Technological Tests
Capitalisation
Integration
Reference - date
10 Aéronautique
12. Agenda
History : Smalltalk in Thales Brest
Domain Context
Modelling and mockup with Smock
Component Testing with PicUnit
Conclusions
Reference - date
11 Aéronautique
13. Component: Aim Architecture
Component approach structures the system and the
development
A C
Component
Architecture
B Packaged
Contract
Object
Architecture appear
Packaged
No contract
Reference - date
Object
No architecture
No contract
12 Aéronautique flat
14. Component approach : SCM
Smalltalk Component Model
CCM Like Component approach inherited from Jaguar (Thales/DCNS Java
Framework)
Introduction of interface in Smalltalk
Notion of component manager, deployment services home services,
locator services, …
Provided
services Required
services
Component
Consummed Produced
Events events
Reference - date
Parameters
13 Aéronautique
16. Mockup environment : SMOCK
Agile development environment:
Full operator
Full operator workstation mockup workstation
Component based architecture
modeling
Interaction behaviour simulation
Multi workstation on a simple laptop
Easy sharing between all actors
including customer:
easy packaging Multi
easy deployment on a simple laptop workstation
Early evaluation of relevant scenario
Integrated development cost model
Few days to one month for a
new mockup
Significant evolution in real
Reference - date
time
Collaborative work
15 Aéronautique
17. On the future
Architecture modeling
From system architecture to executable model in Smalltalk
Link from Mockup to System and Software tools
Models and Requirements definition
Product line management
Configuration management
Code generation
Reference - date
16 Aéronautique
18. A1 A2
Global View of Models & Links F2
F5
A2
F4 Activities
System Functional Need F1 Operational Analysis
Model
Model F3
Functions
F21
F22 C1
F1 C2
Logical Architecture F6 F3
C3
Model
‘Behavioural’
C12 Components
C11 F22 C2
F21
F1 C4
F6 C1’
F7 C3
Physical Architecture
Reference - date
Model
Processors ‘Platform’
Components
17 Aéronautique Buses
19. Agenda
History : Smalltalk in Thales Brest
Domain Context
Modelling and mockup with Smock
Component Testing with PicUnit
Conclusions
Reference - date
18 Aéronautique
20. PicUnit tool in which context?
Context :
Component architecture with few levels
Service interfaces : Corba
Datamodel interface : Database
Dev context : other components not yet
available when developping a component
Testing internal PIC and external PIC
DB
PIC LSE
PIC NAV PIC RAD
MMI
NAV EQPT
AGENT RAD EQPT
Reference - date
Validate component itself and also communication with other
components around
19 Aéronautique
21. PicUnit tool for which usages?
Usages : Problem investigation
Unit test for component Boom !
Simulate middleware interfaces PIC LSE
Simulate other components
Swiss knife for problem investigation MMI PicUnit
Prepare a defined state
Simulators
AGENT DB
Testing a standalone component
AGENT PicUnit Simulate other components
DB
Testing a Standalone PIC
PIC LSE PIC LSE
PicUnit PicUnit
PicUnit
MMI
Reference - date
MMI
AGENT AGENT
DB
20 Aéronautique
23. PicUnit Map
PicUnit
MOCK-X.pst MOCK X … MOCK Y MOCK-Y.pst
Datamodel.pst Datamodel Corba Ext I/C MOCK-InterPicCommon.pst
DOS.pst DOS DSS DSS.pst
DOSNotification.pst Mock Generic & Gen Doc TEST-STD.pst
Tools
MOCK-COMMON.pst
VisualWorks DST*.pst
PicUnit.cha
SUnit DLL CC OT/DST Opentalk*.pst
PIC NAV
Sunit*.pst Utils Kernel Tools Debugger*.pst
Reference - date
DLLCC.pst … Browser*.pst
Sunit*.pst …
Visual.sou
22 Aéronautique
24. DOSTool
DB Inspector
Browse the database objects
Generate Datamodel smalltalk classes
Create / Delete / Modify object
t it
Same features available in the Tests via an API
pec
Ins
Modify object
and Accept
Reference - date
23 Aéronautique
25. DSSTool
DSS Tool
Load an IDL file or an alreaded recorded module in Repository
Corba modules tree view : Module > Interfaces > services
Generate services (a Module = a Package + a namespace)
Simple usage : register I/C in NS, call service by DoIt, unregister I/C
Service argument editor
Reference - date
Browse modules / (un)register in NS /
Edit complex arguments / service call
services call
24 Aéronautique
26. SUnit
SUnit
Famous xUnit framework
Dev context : launch a test and debug it in the
browser
Qualification context: launch all tests in TestRunner
Generate Test Description document (STD)
Reference - date
25 Aéronautique
27. a PIC = a Mock
a Mock = a smalltalk bundle than represents a PIC
Same interfaces
Replace the PIC and/or control the PIC
DSS server (generated + implementation)
DSS client
PIC Datamodel (generated + customization)
Tests
The LSE PIC The LSE Mock
2
PIC LSE 1
PIC NAV PIC RAD
MMI 2
4 3 3
AGENT 1 4
Reference - date
26 Aéronautique
28. What next?
Link between PicUnit and Smock :
Define Model in Smock and Generate it in PicUnit
Generate source code for PIC Developement
Generate tests for PIC
Integration with Continuous Integration Platform :
Output TestResults in XMLUnit format
Automaticaly test launching for each PIC changes (each commit in SCM)
Instant Map of the project
Reference - date
27 Aéronautique
29. Agenda
History : Smalltalk in Thales Brest
Domain Context
Modelling and mockup with Smock
Component Testing with PicUnit
Conclusions
Reference - date
28 Aéronautique
30. Conclusion
Why we love it :
RAD with regular and high quality language
Efficient IDE
Model oriented
Easy code generation
Very improved Debugger
Swiss knife
but :
Image concept in training context
Important psychological first step
Not widespread language
Reference - date
Is it the first model centric workshop ?
29 Aéronautique
31. Agenda
Questions?
Reference - date
30 Aéronautique
32. Engineering phase : the TFC
Component 1 Component 2
Technical Foundation Classes
= Stub Stub Contract
Thales Thales
components interfaces
+
components stubs
+
components description
Impl Impl Implementation
Milsoft D3S
Reference - date
TFC provides a full contract (model, interface, stub, test)
31 Aéronautique
33. Component cartography (partial)
ACS ASA ESM FLR IFF RAD RMG TCN NAV RDO LOG L11 LSE
(6) (5) (6) (6) (8) (6) (4) (6) (5) (4) (4) (30) (30)
PLG PLG PLG PLG PLG PLG PLG PLG PLG PLG: Action On Selection Plugging
TACPLOT (23) DFL: Data Flow
DFL DFL DFL DFL DFL DFL DFL DFL DFL DFL
DOS: DOS Proxy
DOS Proxy Manager DOS: DSS Proxy
DOS DOS
DOS DOS
DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS DOS
PMG: Panels Manager
DSS Proxy Manager Facade: SUP Facade
DSS DSS DSS DSS DSS DSS DSS DSS DSS DSS DSS DSS DSS
PMG PMG PMG PMG PMG PMG PMG PMG PMG PMG PMG PMG
FACADE FACADE FACADE FACADE FACADE FACADE FACADE FACADE FACADE FACADE FACADE FACADE FACADE Thales
Havelsan
SUP SA (3)
Milsoft
Jaguar Domain (25) Silicomp
Coframi
Jaguar Core (35)
Reference - date
D3S
Total of more than 25 PICs and 300 Components
32 Aéronautique
34. Architecture Design: the Art of Compromise
Modélisation
The final Product Architecture must deal with potentially
contradictory Constraints, which impact Breakdown, e.g. :
Safety, Dependability / Fault Tolerance, Certification…
Time-critical functional Paths
Performances & required [hardware] Resources
Mapping on [existing] hardware, middleware, reference Architecture…
Functional grouping Consistency
Dynamic Behaviour
System Modes & States
Complexity of internal interfaces ViewPoints
Human Factors
Dependency in System Integration
Security
Ease of sub-contracting
Reuse, existing Legacy, Product Line Policy Solution
Modularity, Ability to evolve Architecture
Available technologies, COTS…
Reference - date
Building an appropriate Architecture means finding the
most acceptable Compromise between these Viewpoints
33 Aéronautique
35. PIC structure
PIC
PIC
OMI
OMI Datamodel
DSS Server
POM SOM
DSS
Client
Agent
Agent
Reference - date
34 Aéronautique
36. Environnement et interfaces
Schémas VERSANT
Modèle de des modèles Lecture/Ecriture
génération
données (XML) de données
chargement
Génération PIC à
des classes tester
Small Talk
API C++/Java
DOS
API C
BDD DSS
VERSANT
Outil HAL
PIC TIS (NDI)
TESTEUR
Reference - date
Acteurs et interfaces dans l’environnement du
PIC TESTEUR
35 Aéronautique