Thales Smalltalk Usage: PicUnit


Published on

Thales Smalltalk Usage: PicUnit case by V. Verbeque, J.-P. Mével, E. Le Pors, L. Bellier, ESUG09, Brest, France

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Thales Smalltalk Usage: PicUnit

  1. 1. ESUG 2009 Brest Reference - date Thales RWS Brest Aéronautique
  2. 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. 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. 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. 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. 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
  7. 7. TCS Product MPA UE Cockpit Display Laptop Computer (training) MSA LE Ocean Master FLIR AIS Anti-pollution Self COMINT Sonobuoy & Radar Sensors protection (option) marker launchers Mission Navigation IFF Comms ESM Acoustic Torpedoes MAD Data System Data Links (TMS 2000) & Depth charges Recorder Satcom Reference - date 6 Aéronautique
  8. 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. 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. 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. 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. 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. 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. 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
  15. 15. Example Interface definition MyNameSpace defineInterface: #MyServices super: nil with: #(serviceOne: serviceTwo ) Component definition defineComponent self providedServices: #(#{MyNameSpace.MyServices}) requiredServices: #() consumedEvents: #() Reference - date producedEvents: #(#{MyNameSpace.MyEvents}) 14 Aéronautique
  16. 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. 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. 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. 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. 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. 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
  22. 22. Reference - date PicUnit Screenshot 21 Aéronautique
  23. 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. 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. 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. 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. 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. 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. 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. 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. 31. Agenda Questions? Reference - date 30 Aéronautique
  32. 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. 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. 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. 35. PIC structure PIC PIC OMI OMI Datamodel DSS Server POM SOM DSS Client Agent Agent Reference - date 34 Aéronautique
  36. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.