An Integrated Development Environment for Satellite Operations Definition Language
- Rachana M C
- Sajiv Kumar
Abstract— The satellite system has to be maintained in proper operations conditions for optimal throughput and satisfying the mission requirements. This is achievable by monitoring the satellite health parameters, analyse the behavioural characteristics and control the parameters accordingly based on the behavioural patterns. The subsystem experts define the behavioural pattern in a domain specific language for this purpose. An integrated environment is required to aid the experts from various engineering and science disciplines to properly define the monitoring, analysis and control rules. This paper proposes a method to develop an Integrated Development Environment (IDE) which facilitates the definition of monitoring, analysis, control and reporting logics using the Satellite Operations Definition Language, required for the satellite operations.
Keywords— DSL (Domain Specific Language), MAC (Monitoring Analysis and Control), IDE (Integrated Development Environment).
The health of the satellite has to be maintained to utilize the spacecraft for its intended purposes effectively. This involves monitoring, analysis, control and reporting of health parameters. Health parameters are analogue and status values of different subsystem parameters telemetered from satellite to ground stations at regular intervals. The task of monitoring and analysis this parameters is quite complex with the increasing number of space-crafts to be maintained. The satellite control system is basically designed to monitor the various health parameters and initiate corrective actions whenever and wherever required. Satellite health monitoring analysis and control operations involves receiving health data, process it, analyse and perform appropriate controlling operations as required as well as to present them in appropriate format. Since these MAC (Monitoring Analysis and Control) operations rely on various domains specific tools and incongruence may lead to error.
If you need assistance with writing your essay, our professional essay writing service is here to help!Find out more
Space Operations Definition Language is a domain specific language developed in ISRO for defining the logics for satellite health monitoring, analysis and reporting. A common language brings about congruence in definition of monitoring and analysis logics for the multiple satellite systems. The data received from the spacecraft’s will have parameters to be given to various sub-systems and this data is called Telemetry data. The MAC operations is done using the Space Operations Definition Language that is implemented and developed in ISRO and to automate these MAC operations we use the language specified by the experts. We use the language defined by the experts because the experts define the various logics used for monitoring the satellites.
For example, in thermal systems there exists various properties like states property or dynamic trend behaviour but the experts maybe interested in the slope variations that occur and these variations depends on if the temperature is increasing or decreasing with the slope. The state behaviour can be enabled means on or disabled means off and these properties can be dynamic or continuous. The nature of the system can be of many types like discrete, analogue and hybrid.
The lexical analyser takes the tuning parameters and passes them to the parser where the syntax analysis and semantic analysis is done i.e. the language specification is done in syntax analysis.
This approach helps in refining the addressing of the requirements of spacecraft subsystem operations, by properly converging the expert’s views in a single language platform. An Integrated Development Environment is required to facilitate the health of the system that can be represented in a customized IDE.
II. THE PROBLEM DOMAIN
The health of a series of satellites is monitored and controlled by the experts with help of software. They receive telemetry data from each spacecraft. The telemetry data is processed, analysed and presented .For every day-to-day operation, nominal operations of the satellites are pre-planned and a schedule is defined well in advance by specialists. It may occasionally happen that during the operation of the pre-planned schedule, the spacecraft may exhibit some unexpected behaviour. Subsystem and Mission experts has to define logics in a domain specific language to address these scenarios. An IDE for this domain specific satellite operations language, in which the logics for automating the satellite health monitoring and control can be defined, is attempted here.
We use the concept of recursive descent parser (top-down approach) in order to create a context aware environment that allows usage of more general grammars and also has advantages like easy debugging, ability of parsing to any non-terminal in the grammar specified. We require to implement a LL(1) parser which gives the ability of syntactic and semantic look ahead that helps to resolve the shift-shift conflict.
We need not have to worry about conflicts like shift-reduce and reduce-reduce as they are not issues for the top-down parsers. The parser should offer the ability of creating lexical states and lexical actions so as to enable the IDE context aware while defining domain specific monitoring logics for the satellite operations.
III. AREAS ADDRESSED IN THIS WORK
This work envisages developing a solid infrastructure which provides an integrated environment for defining the health monitoring and controlling logics for satellites. This integrated development environment (IDE) assembles multiple disparate tools into a single coherent system. The following sub-modules have to be developed in this process.
A) Basic IDE Infrastructure: This involves development of the base IDE infrastructure with sufficient features for supporting the domain specific language, essentially a fully fledge editor to extract the language features to possible extent. The Net Beans Platform which is a solid infrastructure for creating custom software development tools is utilized for this purpose. However, more than as an individual software development tool, the infrastructure is enhanced as a tailored integrated development environment (IDE) for our domain specific language by assembling multiple disparate tools into a single coherent system.
B) Lexical Analyser (Tokenizer module) for the DSL: The concept of Lexical analysis or “tokenization” is the process of breaking a character stream into individual units called “tokens.”
Lexical analyser helps in converting a stream of input characters into a stream of tokens. Once the token is received the lexical analyser will look up for the tokens specified to check the existence of the respective token. If the token does not exist then it proceeds to fetch the next token. If not then that particular token along with the token value is written into the Lexer and passes it on to the parser. The concept of recursive descent parser is used to create a better context aware environment.
We use the concept of recursive descent parser (top-down approach) in order to create a context aware environment that allows usage more of general grammars and also has advantages like easy debugging, ability of parsing to any non-terminal in the grammar specified. Constructing the tokenizer using JavaCC compiler constructor and integrate the resultant module with base IDE infrastructure.
Fig. 1 IDE Infrastructure
C) Syntax Analyser with associated Syntax highlighter. It helps in determining whether a string or a sequence of tokens can be generated by a grammar. The lexical analyser can identify tokens with the help of grammar rules but it cannot check the syntax of a given parameters. The components are Non-terminals and terminals where Non-terminals help in processing the grammar further and terminals helps in terminating the process. This particular analysis produces a parse tree as an output.
The main task of the parser is to accept an input and check and confirm the input given with the specified grammar. The issue of matching the input with the grammar results in backtracking and making a new search each and every time which consumes lot of time. Therefore, most of the parsers do not use the concept of backtracking.
Parsers that are generated by Java Compiler Compiler use the concepts of terminals and non-terminals so no backtracking is required. The task of finding the tokens further in the input stream is called as looking ahead into the input stream. We can assign values to the look ahead which helps to look ahead the number of tokens in the input given. Suppose the look ahead is 1that means it looks ahead 1 token in the input stream.
Implementation of the syntax analyser from the DSL language specification and generate modules to integrate with base IDE infrastructure.
D) Semantic analysis: The Syntax analyser receives input in form of tokens from lexical analyser where the lexical analysers are responsible for the checking of a token given by the syntax analyser but Syntax analyser cannot determine if a token is valid, it cannot determine if an operation performed on a token type is valid or not. The semantic analysis uses the help of token manager generated by the compiler. In JavaCC we need to specify certain lexical specification that needs to be organized into a set of states.
Each state is given a name to be identified and the standard state is called default. Whenever the token manager is initialized, it always starts from the Default state.
Every state contains a list of different regular expressions. The four kinds of them are SKIP, TOKEN, MORE and SPECIAL_TOKEN.
The accepted token is matched as follows- all the specified regular expressions in the present lexical state is considered and the token manager accepts the total number of specified characters from the input and match them with the specified regular expressions. After the regular expressions is been matched to the one that is specified, the particular lexical action is executed .Suppose the kind of regular expression specified is TOKEN then the matched token is returned, but if the regular expression is of SPECIAL_TOKEN then it first should be saved and then returned along with the next token that is to be matched.
This helps in constructing an integrating to the base IDE the context sensitive semantics analyser encapsulating the domain knowledge.
E) Dynamic Analysis Facility. Controlled environment for executing the logics defined in the domain specific language is required for facilitation the experts to understand better the flow of execution and verify that the logic defined perform the intended flow sequence. In order to facilitate this feature the step and continuous execution features with facility to monitor internal states of the program is provided exploiting the Netbeans API modules.
Our academic experts are ready and waiting to assist with any writing project you may have. From simple essay plans, through to full dissertations, you can guarantee we have a service perfectly matched to your needs.View our services
F) Hint modules: Netbeans API allows us to create a module that provides various hints. So whenever we need to use these kind of modules we need to provide the required expression that helps in matching the existing one. When the initial expression is given automatically the whole expression is provided by the hint module.
G) Code completion: Netbeans allows us to implement the Editor Code Completion API. This tutorial shows you how to implement the Editor Code Completion API. When we invoke this feature, a code completion box appears, displaying words that can complete the text typed in the editor.
IV. IMPLEMENTATION AND RESULTS
The implementation is done using Netbeans API 7.2.1 and a JavaCC compiler to create an IDE infrastructure on Linux platform using Linux RedHat 6.1.
To implement this we have used associated Netbeans Libraries such as Lexer, Parsing API, and Editor API.
JavaCC which is a ‘Lexer and parser generator’ reads a set of grammar rules and helps to convert it into a java program that matches to the specified grammar.
The Java codes generated by JavaCC are augmented with the domain specific language specifications to develop modules which perform the following major tasks:
1. Lexical analysis
2. Syntactic analysis, Semantic analysis
3. Code generation or execution
Lexical and Syntactic analysis involve in understanding the source code and ensuring its syntactical correctness. This is called parsing, which is the parsers responsibility. Lexical analysis on receiving the code and divides it into proper tokens. A token is a significant piece of a program’s source code. Token examples include keywords, punctuation, literals such as numbers, and strings. Nontokens include white space, which is often ignored or skipped but used to separate tokens, and comments.
Fig2. Designing IDE
During syntactic analysis, the parser takes the token from the program by ensuring the program’s syntactical correctness and by building an internal representation of the program. During syntactic analysis, a compiler examines the program source code with respect to the rules defined in the language’s grammar. If any grammar rule is violated, the compiler displays error messages.
Context aware token recognition is achieved by passing the tokens scanned by the editor to a mapping module and trace appropriate action on the fly, such as highlighting the various keywords in appropriate colour, providing necessary hints appropriate based on the current context etc.
The Syntax analyser and Semantic analyser on receiving the tokens from the token manager aggregate and checks it with the grammar specified which also helps in highlighting the language constructs. The code completion API gives context based suggestions when an expression is being coded. We also have the feature of hint modules when a logic is been given provided with the Netbeans.
Fig3. IDE with domain specific language and its environment.
In this paper we mainly focused on developing an integrated environment that helps in monitoring the spacecraft’s along with the specified control logics. We also have implemented the concept of modules required for and integrated development environment along with the base infrastructure suited for the domain specific language.This works presents a properly tailored integrated development environment to facilitate experts from inter-disciplinary fields to defined monitoring and control logics of concerned subsystems and to merge them in unison to provide overall the satellite health monitoring and control logics.
The future enhancements that can be implemented are the Visual source representation that provides possible visual representation of logics being specified which helps in knowing the various changes happening in the spacecraft’s. Static and Dynamics Analysis Features helps to associate modules to carry out static and dynamic analysis based on the domain as well as the language specification.
Thanks is such a little word but not bigger than a moment, but there is a world of great meaning in it. It is my immense pleasure that I take this opportunity to express my gratitude to all of them who helped me during this project work. I specially thank the organization (ISRO) for giving me this opportunity.
- Next-Generation Monitoring, Analysis, and Control for the Future Smart Control Center Pei Zhang, Senior Member, IEEE, Fangxing Li, Senior Member, IEEE, and Navin Bhatt, Fellow, IEEE
- Simulink Tools for Design and Verification.
- Netbean Platform Tutorial for IDE( Oracle).
- JavaWorld (http://www.javaworld.com/article/2076269/learn-java/build-your-own…)
- Netbeans File Type (https://platform.netbeans.org/tutorials/nbm-filetype.html)
- Netbeans JavaCC Lexer(https://platform.netbeans.org/tutorials/nbm-javacc-lexer.html)
- Netbeans JavaCCParser(https://platform.netbeans.org/tutorials/nbm-javacc-parser.html)
Cite This Work
To export a reference to this article please select a referencing stye below:
Related ServicesView all
DMCA / Removal Request
If you are the original writer of this essay and no longer wish to have your work published on UKEssays.com then please: