{"title":"A reusable architectural pattern for auto-generated payload management flight software","authors":"A. Murray, M. Schoppers, Steve F. Scandore","doi":"10.1109/AERO.2009.4839645","DOIUrl":null,"url":null,"abstract":"Mars Science Laboratory (MSL), NASA's next mission to Mars, will deploy a large Rover carrying a battery of eleven science instruments, representing a wide variety of payload types. The Rover's flight software (FSW) has the task of monitoring, commanding, collecting, managing and in some cases calibrating data from these instruments. Though the instruments represent a large variety of requirements, complexity, data volumes, fault protection, and commanding logic, the FSW is designed to exploit the commonality among the instruments' requirements in order to maximize reuse of software and to minimize design, implementation and testing effort. To achieve this, we developed an architectural pattern in which all of the common features and patterns of behavior required to manage an instrument are supported, and clear adaptation points are identified and provided to allow expression of the unique behaviors needed for each instrument. For each instrument there is a FSW module called an Instrument Manager (IM), and each of these is an instance of the common pattern. The common IM architecture is expressed in the design as a FSW module called the Instrument Manager Framework (IMF), along with a supporting library for handling instrument communications, the Instrument Manager Library (IML). The IMF module includes a code generator that reads specifications of the ground command set for an instrument, their associated behaviors, and other internal behaviors (e.g. fault response behaviors), expressed in spreadsheets, and produces a set of source code files containing implementations of these commands and behaviors, and their supporting types and variables. The IML module also includes a code generator which transforms a spreadsheet specifying the set of commands that the instrument accepts into C code that parameterizes communications with the instruments. We first describe the instrument management requirements on the Rover FSW, and then continue with an exposition of the IM architectural pattern. We conclude with some statistics on the efficiencies gained in the application of this pattern.","PeriodicalId":117250,"journal":{"name":"2009 IEEE Aerospace conference","volume":"23 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2009-03-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2009 IEEE Aerospace conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/AERO.2009.4839645","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3
Abstract
Mars Science Laboratory (MSL), NASA's next mission to Mars, will deploy a large Rover carrying a battery of eleven science instruments, representing a wide variety of payload types. The Rover's flight software (FSW) has the task of monitoring, commanding, collecting, managing and in some cases calibrating data from these instruments. Though the instruments represent a large variety of requirements, complexity, data volumes, fault protection, and commanding logic, the FSW is designed to exploit the commonality among the instruments' requirements in order to maximize reuse of software and to minimize design, implementation and testing effort. To achieve this, we developed an architectural pattern in which all of the common features and patterns of behavior required to manage an instrument are supported, and clear adaptation points are identified and provided to allow expression of the unique behaviors needed for each instrument. For each instrument there is a FSW module called an Instrument Manager (IM), and each of these is an instance of the common pattern. The common IM architecture is expressed in the design as a FSW module called the Instrument Manager Framework (IMF), along with a supporting library for handling instrument communications, the Instrument Manager Library (IML). The IMF module includes a code generator that reads specifications of the ground command set for an instrument, their associated behaviors, and other internal behaviors (e.g. fault response behaviors), expressed in spreadsheets, and produces a set of source code files containing implementations of these commands and behaviors, and their supporting types and variables. The IML module also includes a code generator which transforms a spreadsheet specifying the set of commands that the instrument accepts into C code that parameterizes communications with the instruments. We first describe the instrument management requirements on the Rover FSW, and then continue with an exposition of the IM architectural pattern. We conclude with some statistics on the efficiencies gained in the application of this pattern.