Presentation on theme: "Practical development"— Presentation transcript:
1 Practical development Illustrated using the GAIUS windtunnel automation systemBy: Evert van de WaalImtech ICT Technical Systems
2 Background Imtech Imtech Imtech is a large (19.000) company Focus on technical servicesInfrastructureBuildings, ships, communications, trafficImtech ICT Technical Systems70 ProfessionalsFocus on ‘technical software’Customers include Shell, Vanderlande, Philips, GE Healthcare, Rijkswaterstaat, Assembleon, NXP, etc.
3 Background Evert MSc Electrical Engineering (1993) Research Fellow Strathclyde University (Control)Firmware developer small companyConsultant at Imtech TS (since 2001)Focus: Architecture, Control, FirmwareNational Champion SW Architecture Description 2007URL:In this presentation, the approach used to create the winning entry is described
4 Background GAIUS / DNWDNW (German-Dutch Windtunnels) manages tunnels in Amsterdam, Marknesse, Braunschweig, Göttingen and CologneDNW management wanted a new control system, thatIs able to unify to look-and-feel of all tunnelsAllows a high level of experiment automationWill give a competitive edge for 10 years
9 Characteristics of a wind tunnel Large and complex systemMost wind tunnels are uniqueConstant changes and improvementsMany types of experiments are performedWind tunnel tests are essential for wind tunnel usersMost tunnels operate at the edge of physical limitations
11 Wind tunnel Characteristics: Dutch Tunnels:Amsterdam HST: High Speed: 1.3M, 2.0x1.8m, 0.25 to 4 Bar, 16MWN-O Polder LLF: Large Low Speed: 80 m/s, 9.5x9.5m, 20 MWN-O Polder LST: Low Speed: 80 m/s, 3x2.25m, 700KWAuxilery systems:Pressurized air: 5 kg/s at 80 BarPositioningsystems: better than 0.01 graden at 70KNmMoving belt for ground effectsData Acquisitioning:1000+ presure sensorsMicrophone array for locating sound sourcesCamera for measuring color changes in pressure sensitive paintLaser / camera systems that track movement of oil droplets
12 A Request Please, make me an automation system How would you proceed???Interaction: ask the public what they would do when approached with this question.Write down the remarks
13 SW success factorsWhat is important for a wind tunnel automation system?AlgoritmsPerformance?Database structure?OO design?Architecture?Development process?GUI layout?Requirements engineering?Who decides what is important???Ask public who determines what is important, write down answers.These are all stakeholders!
14 Actual SW success factors The software must perform its main purpose wellThe user defines ‘main purpose’ and ‘well’Usually there are several user types: stakeholders‘well’ indicates that we are talking about non-functional behaviorThat is e.g. user friendliness, robustness, performance, stability, maintainability, extendibility, testability, etc.What determines non-functional behavior???Let the public think about what determines non-func behaviour
15 Factors in non-functional behavior Most non-functional behavior is determined by:Algorithms usedStructure of softwareObviously, suitable algorithms need to be usedThe design and architecture of SW determine non-func behaviorIn fact, a design is only needed to meet non-func requirementsAsk if they agree with the final observation
19 An ArchitecureAn architecture bridges the gap between customer and programmerCompare with civil engineeringArchitecture concretizes customer wishesThen it makes choices that will satisfy these wishesAn architecture logs all main choicesincluding alternatives and rationale
21 Steps in bridging the gap Start with customer wishesSeveral steps are necessary to bridge the gapFirst, a layers of principles for evaluating choicesSecond, a layer of fundamental choicesFinally, the decomposition a developer can useBe careful to rationalize choicesUse the principles as rationale for choices, etc
22 Customer wishes Focus on stakeholders and their views There are several types of stakeholders:Internal & externalDifferent stakeholders for phases in product lifecycleActual users of the systemThose who pay for the systemEtc, etc
24 Summary of GAIUS customer wishes GAIUS is an open system, with open interfaces to which new systems can be attached easily.The data available in parts of the system is easy to share with other parts of the system.It is easy to use ‘scripts’ to automate the control and measure systems.It is easy to test & improve scripts in a simulated environment, without using the actual wind tunnel.The GAIUS system is adaptable to accommodate the differences between various wind tunnels, and also changes in a wind tunnel system.The GAIUS system is cost-effective.The GAIUS system runs on readily available hardware (PC’s).The GAIUS system is supported for a long period, in the order of 10 years.It is possible to deploy the GAIUS system gradually, and with as little interference with tunnel operations as possible.The configuration of GAIUS is easy to read and edit.Main one: use scripts to automate the systemAdaptable to accommodate changes!
25 GAIUS ?GAIUS refers to Gaius Julius Ceasar, one of the most famous dictators in history.The ‘dictator’ (Latin for ‘someone who dictates orders’) was innovation in the Roman republic: a special magistrate with authority over regular magistrates. It was the most senior magistrate.The GAIUS software system was designed using this philosophy.
26 Some key characteristics of GAIUS Interconnect various sub systemsIntegrates these to one coherent systemSimplifies testing by automatic test proceduresFacilitates evolutionary ChangeAdding, modifying and removing sub systemsChanging proceduresFlexible enough for custom experimentsSafe and fault tolerantThese are the selling points of GAIUSA different view / summary of the systemNext slide: priciples
27 Architecture Principles These are the key decisions in a projectTake them with careVerify them with stakeholdersPrinciples originate from several sources:Customer wishes & other project contextBest practices (patterns)You own experience & preferencesBe Creative!
28 Principles for GAIUS Use Open Source Software (as much as possible) Open and cost effectiveUse Python (as much as possible)Proven high-productivity language, very open, portableUse Industry StandardsAgain, open & cost effectiveUse the GAIUS Bus (=blackboard pattern)Open, adaptable, best practiceUse a standard module interfaceAllows scripting
29 Additional principles GUI’s are separate componentsEasy to simulate, allows automated testingCommunicate with modules using GAIUS busScripting uses same interface as GUI!Communicate with HW through TCP/IPOpen, easy to simulate & test without tunnelNext slide: refinement -> choices
30 Refinement of principles Once formulated, the principles can be refinedRefinement is done by making choicesThese choices undergird the principles
31 Some Fundamental choices in GAIUS Use of RTPS as back-bone of GAIUS busUse three different semantics in the busTime-Triggered, real-time, no resendEvent-Triggered, no resendEvent-triggered with acknowledge for CommandsUse LabVIEW to create GUI’sInterface to the GAIUS busModules derive from base class, which:Retrieves module configurationEnforces compliance with the state modelProvides race-condition free event handlingNext slide: decomposition
32 Divide and conquerorNext, the architecture will partition the softwareDefine modules and their interfacesThus development can be done in parallelUp to a certain level! (‘The mythical Man-month’)
33 Main tunnel systems Wind generation (‘Facility’) Model positioning (Test Object Positioning And Control, ‘TOPAC’)Controls all movable objects in the measurement areaData AcquisitionData ProcessingDerives aeronautical data from measurementsSafety
34 Wind tunnel systems Complexity filters upwards Safety downwards Multiple independent tasks operating together on a common task
36 GAS GUI Backup GAIUS Bus RTPS TOPAC Data Processing Data Acquisition Facility ControlNFSMass Storage(NFS server)Backup
37 Architecture & Requirements??? Requirements focus on functional behaviourArchitecture focuses on non-functional characteristicsBoth are usually neededHowever, non-func determines customer satisfaction!
38 Architecture & Requirements Animated slide: without and with requirements
39 Architecture & Agile Development GAIUS was an Agile projectCost of full requirements analysis was prohibitiveEven in an Agile project, you need foundationsArchitecture is the foundation of your softwareAgile development is suicidal before architecture is clear!Use prototypes to quickly finalize architecture
40 Lessons learnt Don’t increase team size too soon Architecture needs to be mature first!When using Open Source, check for maturityOpen Source RTPS implementation not sufficiently matureMade our own implementation in 1.5 manmonthsLabVIEW is not as open as advertizedLots of quirks and missing documentation in C interfaceWould not use it again for this purposePython offers an excellent programming platformSaved the day!
41 Questions? Some questions: -> Role of the architect in the team -> Role during project sales->