A Model-Driven Development of Tests for Avionics Embedded Systems

Total Page:16

File Type:pdf, Size:1020Kb

A Model-Driven Development of Tests for Avionics Embedded Systems . . . . . Reviewer: Fabrice BOUQUET Reviewer: Yves LE TRAON Day of the defence: the 18th of April, 2013 ii Abstract The development of tests for avionics systems involves a multiplicity of in- house test languages, with no standard emerging. Test solution providers have to accommodate the habits of different clients, while the exchange of tests between aircraft manufacturers and their equipment/system providers is hindered. We propose a model-driven approach to tackle these prob- lems: test models would be developed and maintained in place of code, with model-to-code transformations towards target test languages. This thesis presents three contributions in this direction. The first one consists in the analysis of four proprietary test languages currently deployed. It al- lowed us to identify the domain-specific concepts, best practices, as well as pitfalls to avoid. The second contribution is the definition of a meta-model in EMF Ecore that integrates all identified concepts and their relations. The meta-model is the basis for building test model editors and code generation templates. Our third contribution is a demonstrator of how these technolo- gies are used for test development. It includes customizable graphical and textual editors for test models, together with template-based transforma- tions towards a test language executable on top of a real test platform. iv I dedicate my dissertation work to my family, my friends and to Calopsitta. Dedic aceast˘atez˘afamiliei mele, prietenilor ¸siCalopsittei. Acknowledgements It is my pleasure to acknowledge here those people whose presence in my life contributed to this dissertation : my academic and industrial advisors, colleagues, friends and family. I am truly indebted to H´el`eneWaeselynck, my academic advisor, for her mentorship. You taught me not only the rigours and intricacies of scientific research, but also how to be a better person. Your humane openness, sup- port and encouragement during my times of doubt were invaluable. This thesis would not have been possible without your wisdom and guidance. Thank you! I also owe sincere thankfulness to Virginie Wiels, my academic co-advisor. Thank you for your implication in my doctorate, your important suggestions and remarks, as well as for the confidence you have shown in me and for your kindness. I would like to express my gratitude to Yann Fusero, my industrial advisor, for his sustained support, as well as for having taught me the rigours of the industrial approach. I would like to express my sincere appreciation to Michel Schieber, my industrial co-advisor, for his interest and participation in my doctorate, as well as for having introduced me to a wide range of fields and activities. Special thanks go to Guy Durrieu for our valuable discussions and his caring and concern regarding this project. I would like to thank Yves le Traon and Fabrice Bouquet for having accepted to review my thesis, as well as Beno^ıtCombemale for having accepted to be a member of my defence committee. I would like to express my gratitude to the management of Cassidian Test & Services: Philippe Lasman and Philippe Quichaud, as well as to the management of the LAAS-CNRS (Laboratory for the Analysis and Archi- tecture of Systems): Karama Kanoun, Mohamed Kaaniche, Raja Chatila, Jean-Louis Sanchez and Jean Arlat, for having welcomed me. It has been a pleasure to work with my colleagues at Cassidian Test & Services. Special thanks go to Florent Paitrault for our rich discussions and techni- cal support, as well as to Gilles Ballanger, Guilhem Bonnafous, Mathieu Garcia and Etienne Allogo, for our rich interactions and especially for their implication in the development of our prototype. I am thankful to Val´erie Aouba for her help, especially towards the end of my doctorate, as well as for having taken the time to come to my thesis defence. I am highly indebted to Caroline Plana-Robert for her kindness and support, as well as for giving me the right advice at the right time. I would also like to thank my colleagues at the LAAS-CNRS, particularly Pierre Andr´e,Maxime Lastera and Fernand Lone-Sang. I am also grateful to Emmanuelle Beatse and Fran¸coiseDucor at Cassidian Test & Services, and Sonia de Sousa at the LAAS-CNRS, for all their help. I would like to express my deep appreciation to the people I worked with within the context of the VISTAS (Virtually Integrated System Tests be- tween Airframers and Suppliers) project. I would like to express my grat- itude to G´erardMontariol for his tutorship. Special thanks go to Olivier Fourcade, No¨elle Marchal and Fran¸coisRuiz, Dominique Dubost and Jean- Michel Lecuna, Mossad Khimoun and Christophe Ginestet, for our fruitful collaboration. Special thanks go to Albert Lahana for having accepted me as his student and for having taught me so much about myself through music, as well as to C´elineRomero for having coached me with her kind and wise words. I am highly indebted and thoroughly grateful to all my friends. My dis- sertation would not have been possible without your constant motivation, support and love. I would like to thank Roxana Albu, Ioana-Mihaela Geantˇa and Miruna Stoicescu, whom while pursuing their own doctorate have been extremely close to me, emotionally and professionally. I would also like to thank Julien Eballard, Alexandra-Mihaela Niculae, Iuniana Oprescu, Alexandra Pencea and Diana Stoica for our enduring friendship. You are all like a second family to me! I would also like to express my gratitude to J´eromeHaquin. Special thanks go to Beno^ıtBaccot, David Brown, Vi- vian Madesclaire and Fran¸cois-HenryRouet, as well as to Mihaela-Elena B^aclea,Daniel Ionescu, George Ionescu and Silvia-Maria Mihalea, for their friendship and for the quality time spent together. I would like to thank Calopsitta for her companionship. I am grateful to Paula Begoun for having given me great skin for the day of the defence. Last, but not the least, I would like to thank my family. Without the love and support of my parents, Tant¸a and Qwo-Wadis Guduvan, and of my grandparents, Tinca and Marin Maxim, and Elisabeta Kedves and Alexandru Guduvan, I would not have come this far. I would also like to thank Areta-Liliana Guduvan for her constant support. Special thanks go to Emilia and Dumitru Gudovan for their kindness. Contents List of Figures ix List of Tables xi Glossary xv 1 Introduction 1 2 State of the Art - Testing 5 2.1 Test Selection . .6 2.1.1 Structural Testing . .7 2.1.2 Functional Testing . .8 2.2 Test Oracle . 11 2.3 Test Development Methodologies . 11 2.4 Test Development Formalisms and Associated Tools . 12 2.5 Conclusion . 16 3 Industrial Context 19 3.1 Avionics Embedded System . 19 3.1.1 Life-Cycle and Testing Activities . 19 3.1.2 Interface Control Document (ICD) . 21 3.1.3 Reactive Behaviour . 23 3.2 Test Platform . 24 3.3 Stakeholders and Evolving Needs . 26 3.4 Conclusion . 27 4 Test Languages Analysis 29 4.1 Test Languages Sample . 30 4.2 Generic Features . 32 4.3 Test Organization . 34 4.3.1 Semantic Organization of Instructions . 35 4.3.2 Thread of Control Organization . 36 v CONTENTS 4.4 Link with System under Test Interfaces . 41 4.4.1 Targeted ICD Hierarchical Levels and Interface Abstraction . 41 4.4.2 SUT Interface Element Identifiers and Access . 42 4.5 Test Language Instructions . 45 4.5.1 System under Test Interaction . 46 4.5.2 Test Verdict Management . 51 4.6 Time Management . 51 4.7 Meta-Modelling Guiding Principles . 54 4.8 Conclusion . 56 5 Test Meta-Model 59 5.1 Eclipse Modeling Framework (EMF) Ecore . 60 5.2 ProviderData and UserData . 61 5.3 TestContext . 65 5.4 High-Level Structural Concepts . 66 5.4.1 SystemUnderTest . 67 5.4.2 TestCase . 69 5.4.3 TestComponent . 69 5.4.4 Verdict Management . 73 5.4.5 TestArchitecture . 73 5.4.6 TestGroup and TestSuite . 74 5.5 Low-Level Structural Concepts . 75 5.6 Behavioural Concepts . 77 5.6.1 ExecutionFlowStatement . 81 5.6.2 BasicStatement . 81 5.6.3 SpecificStatement . 82 5.7 Test Model Development Environment . 85 5.7.1 Graphical Editor . 85 5.7.2 Textual Editor . 86 5.8 Conclusion . 91 6 Test Model Implementation 93 6.1 Acceleo Model-to-Text Tool . 94 6.2 Target Python-Based Test Language (PL5)................ 99 6.2.1 Test Case . 100 6.2.2 Access to SUT Interfaces and Associated Test Actions . 101 6.2.2.1 Simple Test Actions . 101 6.2.2.2 Time-Dependent Test Actions . 102 6.2.2.3 Fault Injection Test Actions . 102 6.2.3 Test Component . 103 vi CONTENTS 6.2.4 Verdict Management . 104 6.2.5 Test Suite . 104 6.3 Architecture of Acceleo Modules/Templates . 105 6.3.1 ProviderData Implementation . 106 6.3.2 SystemUnderTest Implementation . 109 6.3.3 TestCase Implementation . 112 6.3.4 TestComponent Implementation . 114 6.3.5 TestArchitecture Implementation . 117 6.4 Conclusion . 119 7 Case Studies 123 7.1 FWS - Engine Fire Alarm Synthesis . 123 7.2 ADIRS - Consolidated Aircraft Speed Value . 125 7.3 Conclusion . 130 8 Conclusion and Perspectives 135 References 141 vii CONTENTS viii List of Figures 3.1 System under Test Life-Cycle and Testing Activities . 20 3.2 Interface Control Document Sample . 22 3.3 Test Platform Architecture Overview . 25 4.1 Test Exchange Language . 31 4.2 Tests Organization . 35 4.3 Thread of Control Organization . 36 4.4 Link with the System under Test Interfaces . 41 4.5 Access to the System under Test Interfaces .
Recommended publications
  • Code Structure by Miklos Vajna Senior Software Engineer at Collabora Productivity 2017-10-11
    LibreOffice: Code Structure By Miklos Vajna Senior Software Engineer at Collabora Productivity 2017-10-11 @CollaboraOffice www.CollaboraOffice.com About Miklos ● From Hungary ● More blurb: http://vmiklos.hu/ ● Google Summer of Code 2010/2011 ● Rewrite of the Writer RTF import/export ● Writer developer since 2012 ● Contractor at Collabora since 2013 LibreOffice Conference 2017, Rome | Miklos Vajna 2 / 30 Thanks ● This is an updated version of Michael Meeks’ talk from last year LibreOffice Conference 2017, Rome | Miklos Vajna 3 / 30 Overview ● Code-base overview ● Internal core modules, internal leaf ● Ignoring externals ● Building / packaging: gnumake, scp2 ● Code organisation, git bits ● Keep in mind: this is a 20 years old code-base ● The quality is much better than you would expect after knowing its age ● Things continue to improve over time LibreOffice Conference 2017, Rome | Miklos Vajna 4 / 30 Module overview lowest level Internal non-leaf modules: UNO modules ● Module = toplevel dir ● make dumps-deps-png ● Each module has a README ● e.g. sal/README ● sal: at the bottom ● The system abstraction layer ● tools is an obsolete internal (more or less) duplication of this ● salhelper: wrapper code around sal, also part of the URE LibreOffice Conference 2017, Rome | Miklos Vajna 6 / 30 What is the Uno Runtime Environment (URE)? ● We’ll come to UNO in detail a bit later, but for now: ● Uno Runtime Environment ● See also JRE, Java Runtime Env. ● Belongs to the idea that UNO would be reused somewhere else ● Provides an API/ABI-stable abstraction layer for the suite URE ● Allows writing C++ extensions ● Modify carefully: ● Should not change the ABI ● ABI control via C .map files LibreOffice Conference 2017, Rome | Miklos Vajna 7 / 30 UNO modules ● store: legacy .rdb format ● registry: UNO type regisistry ● unoidl: a .idl file compiler ● cppu: C++ UNO ● Implements basic UNO types and infrastructure for C++, e.g.
    [Show full text]
  • Art-Workbook-V0 84
    Intensity Frontier Common Offline Documentation: art Workbook and Users Guide Alpha Release 0.84 August 18, 2014 This version of the documentation is written for version v0_00_27 of the art-workbook code. Scientific Computing Division Future Programs and Experiments Department Scientific Software Infrastructure Group Principal Author: Rob Kutschke Editor: Anne Heavey art Developers: L. Garren, C. Green, J. Kowalkowski, M. Paterno and P. Russo 1 2 List of Chapters Detailed Table of Contents iv List of Figures xx List of Tables xxii List of Code and Output Listings xxii art Glossary xxvii I Introduction 1 1 How to Read this Documentation 2 2 Conventions Used in this Documentation 4 3 Introduction to the art Event Processing Framework 7 4 Unix Prerequisites 34 5 Site-Specific Setup Procedure 45 i 6 Get your C++ up to Speed 47 7 Using External Products in UPS 107 II Workbook 119 8 Preparation for Running the Workbook Exercises 120 9 Exercise 1: Running Pre-built art Modules 124 10 Exercise 2: Building and Running Your First Module 163 11 General Setup for Login Sessions 220 12 Keeping Up to Date with Workbook Code and Documentation 222 13 Exercise 3: Some other Member Functions of Modules 228 14 Exercise 4: A First Look at Parameter Sets 240 15 Exercise 5: Making Multiple Instances of a Module 265 16 Exercise 6: Accessing Data Products 272 17 Exercise 7: Making a Histogram 291 18 Exercise 8: Looping Over Collections 317 19 3D Event Displays 341 20 Troubleshooting 377 ii III User’s Guide 379 21 Obtaining Credentials to Access Fermilab Computing Resources 380 22 git 382 23 art Run-time and Development Environments 391 24 art Framework Parameters 399 25 Job Configuration in art: FHiCL 405 IV Appendices 424 A art Completion Codes 425 B Viewing and Printing Figure Files 428 C CLHEP 430 D Include Guards 446 V Index 448 Index 449 iii Detailed Table of Contents Detailed Table of Contents iv List of Figures xx List of Tables xxii List of Code and Output Listings xxii art Glossary xxvii I Introduction 1 1 How to Read this Documentation 2 1.1 If you are new to HEP Software..
    [Show full text]
  • Release 0.11 Todd Gamblin
    Spack Documentation Release 0.11 Todd Gamblin Feb 07, 2018 Basics 1 Feature Overview 3 1.1 Simple package installation.......................................3 1.2 Custom versions & configurations....................................3 1.3 Customize dependencies.........................................4 1.4 Non-destructive installs.........................................4 1.5 Packages can peacefully coexist.....................................4 1.6 Creating packages is easy........................................4 2 Getting Started 7 2.1 Prerequisites...............................................7 2.2 Installation................................................7 2.3 Compiler configuration..........................................9 2.4 Vendor-Specific Compiler Configuration................................ 13 2.5 System Packages............................................. 16 2.6 Utilities Configuration.......................................... 18 2.7 GPG Signing............................................... 20 2.8 Spack on Cray.............................................. 21 3 Basic Usage 25 3.1 Listing available packages........................................ 25 3.2 Installing and uninstalling........................................ 42 3.3 Seeing installed packages........................................ 44 3.4 Specs & dependencies.......................................... 46 3.5 Virtual dependencies........................................... 50 3.6 Extensions & Python support...................................... 53 3.7 Filesystem requirements........................................
    [Show full text]
  • GNAT User's Guide
    GNAT User's Guide GNAT, The GNU Ada Compiler For gcc version 4.7.4 (GCC) AdaCore Copyright c 1995-2009 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts and with no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". About This Guide 1 About This Guide This guide describes the use of GNAT, a compiler and software development toolset for the full Ada programming language. It documents the features of the compiler and tools, and explains how to use them to build Ada applications. GNAT implements Ada 95 and Ada 2005, and it may also be invoked in Ada 83 compat- ibility mode. By default, GNAT assumes Ada 2005, but you can override with a compiler switch (see Section 3.2.9 [Compiling Different Versions of Ada], page 78) to explicitly specify the language version. Throughout this manual, references to \Ada" without a year suffix apply to both the Ada 95 and Ada 2005 versions of the language. What This Guide Contains This guide contains the following chapters: • Chapter 1 [Getting Started with GNAT], page 5, describes how to get started compiling and running Ada programs with the GNAT Ada programming environment. • Chapter 2 [The GNAT Compilation Model], page 13, describes the compilation model used by GNAT. • Chapter 3 [Compiling Using gcc], page 41, describes how to compile Ada programs with gcc, the Ada compiler.
    [Show full text]
  • Mvbluefox3 Technical Manual (Pdf)
    mvBlueFOX3 Technical Manual English - Version 3.04 i 1.1 About this manual............................................ 1 1.1.1 Goal of the manual ....................................... 1 1.1.2 Contents of the manual..................................... 1 1.2 Imprint.................................................. 2 1.2.1 Introduction ........................................... 3 1.2.2 wxWidgets............................................ 3 1.2.3 Sarissa ............................................. 3 1.2.4 GenICam ............................................ 3 1.2.5 libusb .............................................. 3 1.2.6 libusbK.............................................. 3 1.2.6.1 libusbK license .................................... 3 1.2.7 Doxygen............................................. 4 1.2.7.1 Doxygen license ................................... 4 1.2.8 SHA1 algorithm......................................... 4 1.2.9 Expat .............................................. 5 1.2.9.1 Expat Copyright.................................... 5 1.2.10 CppUnit ............................................ 5 1.2.11 NUnit.............................................. 5 1.2.11.1 NUnit License.................................... 5 1.3 Legal notice............................................... 6 1.3.1 Introduction ........................................... 6 1.3.2 cJSON.............................................. 6 1.3.3 Unity............................................... 6 1.4 Revisions ...............................................
    [Show full text]
  • An Infrastructure to Support Interoperability in Reverse Engineering Nicholas Kraft Clemson University, [email protected]
    Clemson University TigerPrints All Dissertations Dissertations 5-2007 An Infrastructure to Support Interoperability in Reverse Engineering Nicholas Kraft Clemson University, [email protected] Follow this and additional works at: https://tigerprints.clemson.edu/all_dissertations Part of the Computer Sciences Commons Recommended Citation Kraft, Nicholas, "An Infrastructure to Support Interoperability in Reverse Engineering" (2007). All Dissertations. 51. https://tigerprints.clemson.edu/all_dissertations/51 This Dissertation is brought to you for free and open access by the Dissertations at TigerPrints. It has been accepted for inclusion in All Dissertations by an authorized administrator of TigerPrints. For more information, please contact [email protected]. AN INFRASTRUCTURE TO SUPPORT INTEROPERABILITY IN REVERSE ENGINEERING A Dissertation Presented to the Graduate School of Clemson University In Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy Computer Science by Nicholas A. Kraft May 2007 Accepted by: Dr. Brian A. Malloy, Committee Chair Dr. Harold C. Grossman Dr. James F. Power Dr. Roy P. Pargas ABSTRACT An infrastructure that supports interoperability among reverse engineering tools and other software tools is described. The three major components of the infrastruc- ture are: (1) a hierarchy of schemas for low- and middle-level program representation graphs, (2) g4re, a tool chain for reverse engineering C++ programs, and (3) a repos- itory of reverse engineering artifacts, including the previous two components, a test suite, and tools, GXL instances, and XSLT transformations for graphs at each level of the hierarchy. The results of two case studies that investigated the space and time costs incurred by the infrastructure are provided. The results of two empirical evaluations that were performed using the api module of g4re, and were focused on computation of object-oriented metrics and three-dimensional visualization of class template diagrams, respectively, are also provided.
    [Show full text]
  • Red Hat Enterprise Linux 7 7.8 Release Notes
    Red Hat Enterprise Linux 7 7.8 Release Notes Release Notes for Red Hat Enterprise Linux 7.8 Last Updated: 2021-03-02 Red Hat Enterprise Linux 7 7.8 Release Notes Release Notes for Red Hat Enterprise Linux 7.8 Legal Notice Copyright © 2021 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
    [Show full text]
  • Red Hat Enterprise Linux 7 7.9 Release Notes
    Red Hat Enterprise Linux 7 7.9 Release Notes Release Notes for Red Hat Enterprise Linux 7.9 Last Updated: 2021-08-17 Red Hat Enterprise Linux 7 7.9 Release Notes Release Notes for Red Hat Enterprise Linux 7.9 Legal Notice Copyright © 2021 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
    [Show full text]
  • Event-Driven Software-Architecture for Delay- and Disruption-Tolerant Networking
    Event-driven Software-Architecture for Delay- and Disruption-Tolerant Networking Der Carl-Friedrich-Gauß-Fakultät der Technischen Universität Carolo-Wilhelmina zu Braunschweig zur Erlangung des Grades eines Doktoringenieurs (Dr.-Ing.) genehmigte Disseration von Johannes Morgenroth geboren am 28.08.1981 in Braunschweig Eingereicht am: 19.12.2014 Disputation am: 17.07.2015 1. Referent: Prof. Dr.-Ing. Lars Wolf 2. Referent: Prof. Dr.-Ing. Klaus Wehrle 2015 Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über www.dnb.de abrufbar. Diss., Technische Universität Carolo Wilhelmina zu Braunschweig, 2015 © 2015 Johannes Morgenroth Herstellung: BoD – Books on Demand, Norderstedt BoD Ref. 0011632925 Abstract Continuous end-to-end connectivity is not available all the time, not even in wired networks. Thus, the »Off-line first« paradigm is applied to applications of mobile devices to deal with intermittent connectivity without annoying the users every time the network is going to be flaky. But since mobile devices, particularly smart- phones, are typically bound to the Internet, they become almost useless as soon as their connectivity is gone. Delay- and Disruption-Tolerant Networking (DTN) al- lows devices to communicate even if there is no continuous path to the destination by replacing the end-to-end semantics with a hop-by-hop store-carry-and-forward approach. Since existing implementations of DTN software suffer from various limita- tions, this thesis presents an event-driven software architecture for Delay- and Disruption-Tolerant Networking and a lean, lightweight, and extensible imple- mentation of a bundle node.
    [Show full text]
  • Art-Documentation-Alpha-V0 82
    Intensity Frontier Common Offline Documentation: art Workbook and Users Guide Alpha Release 0.82 August 7, 2014 This version of the documentation is written for version v0_00_26 of the art-workbook code. Scientific Computing Division Future Programs and Experiments Department Scientific Software Infrastructure Group Principal Author: Rob Kutschke Editor: Anne Heavey art Developers: L. Garren, C. Green, J. Kowalkowski, M. Paterno and P. Russo 1 2 List of Chapters Detailed Table of Contents iv List of Figures xx List of Tables xxii List of Code and Output Listings xxii art Glossary xxv I Introduction 1 1 How to Read this Documentation 2 2 Conventions Used in this Documentation 4 3 Introduction to the art Event Processing Framework 7 4 Unix Prerequisites 34 5 Site-Specific Setup Procedure 45 i 6 Get your C++ up to Speed 47 7 Using External Products in UPS 105 II Workbook 117 8 Preparation for Running the Workbook Exercises 118 9 Exercise 1: Running Pre-built art Modules 122 10 Exercise 2: Building and Running Your First Module 161 11 General Setup for Login Sessions 218 12 Keeping Up to Date with Workbook Code and Documentation 220 13 Exercise 3: Some other Member Functions of Modules 226 14 Exercise 4: A First Look at Parameter Sets 238 15 Exercise 5: Making Multiple Instances of a Module 263 16 Exercise 6: Accessing Data Products 270 17 Exercise 7: Making a Histogram 289 18 Exercise 8: Looping Over Collections 314 19 Troubleshooting 338 ii III User’s Guide 340 20 Obtaining Credentials to Access Fermilab Computing Resources 341 21 git 343 22 art Run-time and Development Environments 352 23 art Framework Parameters 360 24 Job Configuration in art: FHiCL 366 IV Appendices 385 A art Completion Codes 386 B Viewing and Printing Figure Files 389 C CLHEP 391 V Index 407 iii Detailed Table of Contents Detailed Table of Contents iv List of Figures xx List of Tables xxii List of Code and Output Listings xxii art Glossary xxv I Introduction 1 1 How to Read this Documentation 2 1.1 If you are new to HEP Software..
    [Show full text]
  • IBM Content Manager Ondemand Web Enablement Kit Java Apis the Basics and Beyond
    Front cover IBM Content Manager OnDemand Web Enablement Kit Java APIs The Basics and Beyond Develop Web applications by using ODWEK V8.4 Java APIs Gain insightful best practices, hints, and tips Tune and troubleshoot OnDemand Web applications Wei-Dong Zhu Mark Mikeal Hassan A. Shazly Elliott Wade Sebastian Welter ibm.com/redbooks International Technical Support Organization IBM Content Manager OnDemand Web Enablement Kit Java APIs: The Basics and Beyond December 2008 SG24-7646-00 Note: Before using this information and the product it supports, read the information in “Notices” on page ix. First Edition (December 2008) This edition applies to Version 8 Release 4 of IBM Content Manager OnDemand (program number 5724-J33). © Copyright International Business Machines Corporation 2008. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Notices . ix Trademarks . x Preface . xi The team that wrote this book . xii Become a published author . xiv Comments welcome. xiv Part 1. Programming with the ODWEK Java APIs . 1 Chapter 1. ODWEK Java API overview . 3 1.1 Origin of the ODWEK Java APIs . 4 1.2 Content Manager OnDemand system overview . 4 1.2.1 Content Manager OnDemand Library Server and Object Servers . 4 1.2.2 Content Manager OnDemand data . 6 1.2.3 Content Manager OnDemand data model . 7 1.2.4 Content Manager OnDemand data indexing and loading . 10 1.3 ODWEK Java APIs function overview. 11 1.3.1 Typical Web applications developed by using the ODWEK Java APIs .
    [Show full text]
  • An Automated Testing Suite for Computer Music Environments
    An Automated Testing Suite for Computer Music Environments Nils Peters Trond Lossius Timothy Place ICSI, CNMAT UC Berkeley BEK Electrotap [email protected] [email protected] [email protected] ABSTRACT temporary programming practice, making extensive use of solutions for running automated tests on a regular basis. Software development benefits from systematic testing In the sound and music computing community adop- with respect to implementation, optimization, and mainte- tion of systematic approaches to testing remain less wide- nance. Automated testing makes it easy to execute a large spread. Bugs often surface when making changes to the number of tests efficiently on a regular basis, leading to program, or the target environment or operating system, faster development and more reliable software. and for this reason many artists tend to be hesitant about Systematic testing is not widely adopted within the com- changing their performance computer system or software puter music community, where software patches tend to version because of the fear of unforeseen problems. They be continuously modified and optimized during a project. might also be reluctant to doing last-minute changes and Consequently, bugs are often discovered during rehearsal improvements to their patches. The programs or patches or performance, resulting in literal “show stoppers”. This developed are often custom developed for a particular paper presents a testing environment for computer music project, and with increasing complexity patches become systems, first developed for the Jamoma framework and increasingly vulnerable. Max. The testing environment works with Max 5 and 6, is independ from any 3rd-party objects, and can be used with 1.2 Importance of testing to Jamoma development non-Jamoma patches as well.
    [Show full text]