Toolkits Enable Efficient Software Development
Significant focus today is placed on applying software reuse and software design patterns to improve software development efficiencies, reduce costs and increase overall product quality. While this concept is conceptually understood, successfully implementing it is highly dependent on the individual solution (target platform, language, application domain, etc.) and oftentimes requires a manual effort with subject matter expert (SME) input. To minimize solution dependencies while maximizing software reuse and SME effectiveness, Raytheon uses a toolkit approach.
A toolkit is a self-contained, documented solution to a particular common software function and incorporates well-defined interfaces for ease of integration. The use of toolkits drives down software implementation cost by capturing domain-specific patterns from SMEs in a tool, and then enabling non-SMEs to reuse that tool repeatedly. This approach enables reuse and multiplies the value of the SME’s expertise.
Toolkits utilize tightly integrated elements such as pattern construction process flow; contextualized guidance to describe the processes why, what and how; pattern models and user-focused variability points; domain-specific languages (DSL) to raise the abstraction level; automation to generate code, documentation and other artifacts; and code generation validation. These elements work together to produce a valid, high-quality result every time. Because toolkits incorporate high-level pattern knowledge and failure-resistant processes, they help developers to focus on what to change and then enable them to validate and quickly generate the change. This means that toolkits make reuse much easier and therefore more likely to be done.
Raytheon uses toolkits to increase efficiencies and reduce errors during the software development cycle. One toolkit application that has been widely used by programs is a message handler. In this context, a message handler is an application used to mediate messages between two different systems or subsystems (e.g., receiving messages from a Tactical Data Link [Figure 1] such as Link161 and converting them to an Internet Protocol [IP] based message protocol such as Data Distribution Service [DDS]2). Traditionally, message handlers are developed individually to provide a single, particular solution. As a toolkit, however, a generic message handler is developed containing user-configurable message sets, rules for mapping fields between messages, workflows that define message processing priorities, and transport layers (e.g., Tactical Auto Data Information Link [TADIL], Ethernet, satellite communications [SATCOM]) that support connection to the appropriate external data sources. Ultimately, subsequent implementations that were once significant development efforts for SMEs on multiple application platforms become much more efficient and reliable configuration/integration tasks.
Consider a C++-based radar system broadcasting bit packed track messages over Transmission Control Protocol/Internet Protocol (TCP/IP) and a Java-based intelligence application utilizing Web services for Extensible Markup Language (XML) encoded data exchange. These are very different domains with a need to exchange data using their own network protocol in a format each will understand. The toolkit integration provides a high-level interface for message definition to identify the fields to be changed and also furnishes the conversion process, the validation process and finally the cyber-hardened network transport functionality. This extreme reuse example demonstrates how the toolkit approach broadens opportunities for reuse across functions and domains. It promotes efficiencies in both software design and development while ensuring the highest possible reliability through reuse of proven software.
1Link 16 is a type of military tactical data exchange network used by the North Atlantic Treaty Organization (NATO). It is a time domain multiple access (TDMA) based secure, jam-resistant high-speed digital data link that operates in the ultra-high frequency (UHF) radio band.
2DDS is networking middleware that simplifi es complex network programming.
Terri Potts and John Slaby
Share This Story