DOORS Extension Language

Last updated

DOORS Extension Language (DXL) is a scripting language used to extend the functionality of IBM's Rational DOORS. [1] [2] [3] This programming language is somewhat similar to C and C++. [4] This language is specific to DOORS, and it has its own syntax, declaration, a forum to discuss the development, [5] in addition to the specific reference manuals. [6] DXL scripts were utilized to help the users of DOORS. Much of the native DOORS GUI is written in DXL. [7]

Contents

DXL is used in the client-server based "DOORS Classic"; it is not used in the newer web-based "DOORS Next Generation".

Usage of DXL

There are several of ways to use the DXL in the Rational DOORS.

  1. "Editor DXL" is DXL typed into the DXL Editor window and run from there. It may or may not also be saved in some file. This DXL typically has some user interface, if only print statements.
  2. "Menu DXL" is stored in Files and appear in DOORS windows, either the Explorer or open Module. The files must be of type .dxl, the files and the housing folders must be set up to display DOORS menus. It is otherwise like DXL Editor DXL.
  3. "Attribute DXL" [8] is stored in an Attribute Definition and saved in a Module. It has the context of a single object. When the object-attr-value is retrieved (including being displayed) the code runs and calculates the value for that object. Calculated values are not saved in the module. Attr-DXL should be written to run without user interface and complete without any pauses. [8]
  4. "Layout DXL" is defined in a Column and saved in a module's View. It runs for an object when that object's layout column is displayed in the GUI. It is otherwise similar to Attr-DXL. Layout DXL can be generated by the traceability Wizard, and can be converted to Attr-DXL. . [9]
  5. "Batch DXL" is stored in files. It runs when DOORS is run in (background) batch mode as either "Batch", "DXL", or "CLE" code defined in the batch process's command line. Since Batch mode as no GUI loaded, so DXL running in batch has some restrictions on what can run or how it is run, certainly it can have no GUI.
  6. "Trigger DXL" is defined in a "Trigger" and stored either in a Module, a Project, or in the Database root. There is no native interface for Triggers; a file-based DXL is needed to create or delete the Trigger. When the Trigger's specified Event occurs (such as Opening a Module) any Triggers associated with that event run in order of priority. There are some restrictions on what can run inside a Trigger, but it can and often does have some Interface (typically asking the user to proceed or not). "Post" event trigger run after the event; "Pre" event triggers run before the event and can prevent the event from happening. The most common types of events are opening/closing a module, selecting a new object, or saving an object-attr value. Dynamic triggers are not stored and exist only while DOORS is running on the client computer. A typical dynamic trigger would be a post-module-close trigger that will close a GUI (such as a "print" dialog) associated with that module. A common mistake made while learning Triggers is to define a pre-module-close trigger that always prevents the module from closing.
  7. "Eval DXL" is invoked from other DXL and runs in its own context. It is generally reserved for nuanced advanced DXL. "Top Eval" code gets deployed in the "top context" and applies to all future DXL until DOORS closes.

DXL script extensions

DXL scripts are usually stored with extension of ".dxl", however they do use the library files with extension ".inc".

"Hello, World" example

To print the "Hello, World", the following code [6] will be used,

print"Hello, World"

DXL editors

Sodius DXL Editor, [10] built on top of Eclipse, is one tool which provides option to edit, browse, compile, execute, and debug DXL scripts. There are many open source and free editors like Notepad++ and jEdit that support DXL by custom properties. [11]

Related Research Articles

The graphical user interface, or GUI, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, instead of text-based UIs, typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard.

<span class="mw-page-title-main">Linker (computing)</span> Computer program which combines multiple object files into a single file

In computing, a linker or link editor is a computer system program that takes one or more object files and combines them into a single executable file, library file, or another "object" file.

VBScript is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers without error handling and with subroutines and other advanced programming constructs. It can give the user complete control over many aspects of their computing environment.

HCL Notes and HCL Domino are the client and server, respectively, of a collaborative client-server software platform formerly sold by IBM, now by HCL Technologies.

AppleScript is a scripting language created by Apple Inc. that facilitates automated control over scriptable Mac applications. First introduced in System 7, it is currently included in all versions of macOS as part of a package of system automation tools. The term "AppleScript" may refer to the language itself, to an individual script written in the language, or, informally, to the macOS Open Scripting Architecture that underlies the language.

In computing, Interactive System Productivity Facility (ISPF) is a software product for many historic IBM mainframe operating systems and currently the z/OS and z/VM operating systems that run on IBM mainframes. It includes a screen editor, the user interface of which was emulated by some microcomputer editors sold commercially starting in the late 1980s, including SPF/PC.

<span class="mw-page-title-main">IBM OpenDX</span>

OpenDX stands for Open Data Explorer and is IBM's scientific data visualization software. It can handle complex domains along with measured or computed data. The data may be scalar, vector or tensor fields at different points of the object. The points at which data is measured don't have to be equally spaced and not need to be homogeneously spaced. The project started in 1991 as Visualization Data Explorer.

Rational ClearCase is a family of computer software tools that supports software configuration management (SCM) of source code and other software development assets. It also supports design-data management of electronic design artifacts, thus enabling hardware and software co-development. ClearCase includes revision control and forms the basis for configuration management at large and medium-sized businesses, accommodating projects with hundreds or thousands of developers. It is developed by IBM.

On many computing platforms everything is a file, but in contrast in IBM i everything is an object.

Oracle Forms is a software product for creating screens that interact with an Oracle database. It has an IDE that includes an object navigator, property sheet, and code editor that uses PL/SQL. It was originally developed to run server-side in character-mode terminal sessions. It was ported to other platforms, including Windows, to function in a client–server environment. Later versions were ported to Java where it runs in a Java EE container and can integrate with Java, and web services that can be launched from a URL. Recent versions provide a means to run the forms from a desktop computer without requiring a browser.

A hex editor is a computer program that allows for manipulation of the fundamental binary data that constitutes a computer file. The name 'hex' comes from 'hexadecimal', a standard numerical format for representing binary data. A typical computer file occupies multiple areas on the storage medium, whose contents are combined to form the file. Hex editors that are designed to parse and edit sector data from the physical segments of floppy or hard disks are sometimes called sector editors or disk editors.

A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.

<span class="mw-page-title-main">Uniface (programming language)</span> Low-code development platform

Uniface is a low-code development and deployment platform for enterprise applications that can run in a large range of runtime environments, including mobile, mainframe, web, Service-oriented architecture (SOA), Windows, Java EE, and .NET. Uniface is used to create mission-critical applications.

<span class="mw-page-title-main">CEGUI</span>

Crazy Eddie's GUI (CEGUI) is a graphical user interface (GUI) library for the programming language C++. It was designed for the needs of video games, but is usable for non-game tasks, such as applications and tools. It is designed for user flexibility in look-and-feel, and to be adaptable to the user's choice in tools and operating systems.

A batch file is a script file in DOS, OS/2 and Microsoft Windows. It consists of a series of commands to be executed by the command-line interpreter, stored in a plain text file. A batch file may contain any command the interpreter accepts interactively and use constructs that enable conditional branching and looping within the batch file, such as IF, FOR, and GOTO labels. The term "batch" is from batch processing, meaning "non-interactive execution", though a batch file might not process a batch of multiple data.

<span class="mw-page-title-main">Scripting language</span> Programming language for run-time events

A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled.

Effi is C++ application development framework.

<span class="mw-page-title-main">Command-line interface</span> Computer interface that uses text

A command-line interface (CLI) is a means of interacting with a device or computer program with commands from a user or client, and responses from the device or program, in the form of lines of text. Such access was first provided by computer terminals starting in the mid-1960s. This provided an interactive environment not available with punched cards or other input methods.

Rational Dynamic Object Oriented Requirements System (DOORS) (formerly Telelogic DOORS) is a requirement management tool. It is a client–server application, with a Windows-only client and servers for Linux, Windows, and Solaris. There is also a web client, DOORS Web Access.

References

  1. Thurimella, Anil Kumar; Janzen, Dirk (2011). metadoc Feature Modeler A Plug-in for IBM Rational DOORS (PDF) (Thesis). 2011 15th International Software Product Line Conference.
  2. Rahman, Anisur; Amyot, Daniel (2014). "A DSL for importing models in a requirements management system". 2014 IEEE 4th International Model-Driven Requirements Engineering Workshop (MoDRE). pp. 37–46. doi:10.1109/MoDRE.2014.6890824. ISBN   978-1-4799-6343-0. S2CID   6414601.
  3. Dale, Chris; Anderson, Tom (2009). Safety-Critical Systems: Problems, Process and Practice: Proceedings of the Seventeenth Safety-Critical Systems Symposium Brighton, UK, 3 - 5 February 2009. Springer Science & Business Media. pp. 80–89. ISBN   9781848823495 . Retrieved 28 December 2018.
  4. "User Manual, FAA Requirements Quality Tool (FRQT) For The IBM Rational Dynamic Object Oriented Requirements System (DOORS), Version 1.0" (PDF). March 2017.
  5. "Forum: Rational DOORS DXL". IBM .
  6. 1 2 "The DXL Reference Manual" (PDF). IBM .
  7. "LESSONS LEARNED IMPLEMENTING DOORS IN A CITRIX ENVIRONMENT" (PDF).
  8. 1 2 "DXL attributes and layout DXL columns". IBM .
  9. "Layout DXL".
  10. Sodius DXL Editor
  11. DXL Editors