39 SVA951 350 TRA 43 SAB917 190 BSN 80 Of programming GUIs, robots and aircraft pilots 39 AIH913 250 BSN Yannick 39 Jestin BAW3345 390 RLP CENTRE D'ETUDES DE LA NAVIGATION AERIENNE Stéphane Chatty 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 page 1 Who are our End Users ? 43 SAB917 190 BSN 80 39 SVA951 350 TRA • En Route Air traffic controllers • GUI development team - 39 AIH913 250 BSN 39 BAW3345 390 RLP programmers interaction designers graphic designers Human Factors specialists 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 page 2 39 SVA951 350 TRA 43 SAB917 190 BSN 80 39 AIH913 250 BSN 39 BAW3345 390 RLP 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 page 3 From programmers’ activity 43 SAB917 190 BSN 80 39 SVA951 350 TRA • Software Engineering • Existing tools to support GUI design and programming - CVS Debug Iterative design Documentation etc • Lessons learnt building 39 AIH913 250 BSN tools ( Whizz’ed, Zinc, Ivy, IntuiKit ) 39 BAW3345 390 RLP 39 43 BAG3481 AFR1481 230 programmeurs ?330 LUXIE BSN 80 Et si nous analysions enfin la tâche des (What about analyzing programmers’activity?) Accot, Chatty, Jestin, Sire, IHM’98 page 4 … to ‘programming’ per se 43 SAB917 190 BSN 80 39 SVA951 350 TRA • How to describe the • 39 AIH913 250 BSN behaviour of interactive objects ? How to share this description ? 39 BAW3345 390 RLP 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 page 5 Programming an aircraft 39 SVA951 350 TRA 43 SAB917 190 BSN 80 • Flight Management System = series of waypoints + speed modes + fuel consumption + can sometimes be overriden by user • Flying = programming the FMS • Worse than programming an Emacs mode! • Searching for a « natural FMS » 39 AIH913 250 BSN • Same holds for driving ATC training simulators 39 BAW3345 390 RLP - Less critical 39 BAG3481 - More demanding (1 pseudo-pilot = 230 15 aircraft) LUXIE 43 AFR1481 330 BSN 80 page 6 Clearances, phraseology, data-link 39 SVA951 350 TRA 43 SAB917 190 BSN 80 • Clearance = program that the pilot should follow « Air France 001, maintain level 350 then after PIXEL take direct to JSY » • Phraseology = predefined language constructions - Avoids lexical and syntactic ambiguity - And also avoids semantic ambiguity - Limited set of action patterns • Data-link : towards a computer-based phraseology 39 AIH913 250 BSN - Aspiration to richer language: ‘complex clearances’ 39 - What language? Sequential like voice, graphical? BAW3345 390 RLP 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 From phraseology toward programming page 7 Common understanding of a sequence 39 SVA951 350 TRA 43 SAB917 190 BSN 80 • • • « Can you pass the Air France behind the Alitalia? » « I will give a heading of 180° to the Air France » 39 « Er… OK...» AIH913 250 BSN • « Can I send the Lufthansa across level 290? » 39 • « OK, just wait that the Speedbird and the KLM are separated » 39 BAW3345 390 RLP BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 page 8 ‘Solution’-based communication 43 SAB917 190 BSN 80 39 SVA951 350 TRA • relies on recognition of action patterns • but sometimes recognition fails • and sometimes there is no known pattern! • need of shared information on solutions: 39 AIH913 250 BSN - Set of named procedures? - Formalised language (phraseology)? - Visual language? 39 BAW3345 390 RLP 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 page 9 Experiment: programming a robot 39 SVA951 350 TRA 43 SAB917 190 BSN 80 • French TV, robot contest among universities 39 AIH913 250 BSN 39 BAW3345 390 RLP • 1999 rule: pick more balls than the other 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 page 10 Goal: help the ENAC team to win 39 SVA951 350 TRA 43 SAB917 190 BSN 80 • Reprogram the robot between matches • The team: electronicians, aerospace students • Visual programming of robot behaviour 39 AIH913 250 BSN 39 BAW3345 390 RLP 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 page 11 The method: participatory design 39 SVA951 350 TRA 43 SAB917 190 BSN 80 • Scenarios, workshops, etc • First workshop: « give us a sample program » - Users in front of a white board - No constraint in expression • Result: unable to express a program! 39 AIH913 250 BSN - « it first turns, then goes this way towards the bridge - except that if there ’s an adversary pod, then… - Oh, and if it spots an angle for shooting, then… » 39 BAW3345 390 RLP No programming tool, no program ! 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 page 12 Programming is not so natural... 39 SVA951 350 TRA 43 SAB917 190 BSN 80 • Ability to cope with facets of a program: - Sequence Conditions Reactions Constraints • But no global vision when there are several facets • Current tools and languages support one facet • So what do we do? 39 AIH913 250 BSN - Research a theory of action? - Merge 39 existing models in a tool? BAW3345 390 RLP Do What I Mean! but 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 what do I mean? page 13 Conclusion 43 SAB917 190 BSN 80 • Programming ≠ task of programmers 39 SVA951 350 TRA • ‘Programming’ is pervasive in ATC for instance: - Programing FMS or simulated aircraft - Sending ‘clearances’ - Sharing ‘solutions’ • Cognitive limits - Sequence, conditions, reactions? • We need better ‘tools’ for thinking about action 39 AIH913 250 BSN 39 BAW3345 - Logic-like languages? 390 RLP - Visual representations? 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 page 14 Epilogue: the ENAC robot... 43 SAB917 190 BSN 80 39 SVA951 350 TRA • Was finally programmed with a hybrid ad-hoc tool - 2D trajectories - ‘mini-programs’ associated to points on the trajectory • Was 16th in 2000 39 AIH913 250 BSN - Wheels were skidding and positionning was imprecise 39 BAW3345 390 RLP • Was 2nd in 2001! 39 BAG3481 230 LUXIE 43 AFR1481 330 BSN 80 page 15