Reducing Maintenance Costs Through the Application of Modern Software Architecture Principles

Reducing Maintenance Costs Through the Application of Modern Software Architecture Principles

Reducing Maintenance Costs Through the Application of Modern Software Architecture Principles Christine Hulse and Michael Ubnoske Louis Vazquez Scott Edgerton Architecture Technology Department of the Army United Defense, LP Minneapolis, Minnesota Picatinny Arsenal, Minneapolis, Minnesota 1.612.829.5864 New Jersey 1.612.572.6109/6156 [email protected] 1.973.724.5259 [email protected] [email protected] [email protected] 1. ABSTRACT 1.1 Keywords Large software programs are usually long lived Architecture, design patterns, software maintenance, modeling, real-time software and continually evolve. Substantial maintenance effort is often extended by 2. INTRODUCTION engineers trying to understand the software The Crusader Field Artillery System is the U.S. Army's next prior to making changes. To successfully generation 155-mm self-propelled howitzer (SPH) and its companion resupply vehicle (RSV). The Crusader is a evolve the software, a thorough understanding software-intensive system that is being designed to last well of the architect's intentions about software into the next century. Ada95 is the implementation language organization is required. Software for all software development on the Crusader program. maintenance costs can be reduced significantly Modern software architecture methods are being applied to if the software architecture is well defined, capture the general principles used throughout the design and to provide a guide for further development of the clearly documented, and creates an software. The architecture is being modeled using the environment that promotes design consistency Unified Modeling Language (UML) to bring together the through the use of guidelines and design design vision of all of the key stakeholders. Our software patterns. Building a maintainable system architecture is a high level model of the software contained depends upon the consistent application of inside a Crusader self-propelled howitzer vehicle or a resupply vehicle. these architectural practices. This paper The Crusader software has been designed with the following describes the application of modern software architectural objectives: architecture methods to achieve a maintainable • Support for an object-oriented design implementation of a large, distributed, real- • time, embedded software system. Support for distributed objects • Support for implicit invocation • Support for the Joint Technical Architecture (Army) • Resilience to change • Support for meeting hard real-time requirements • Support for domain reuse. Past experience has shown that software maintenance accounts for about seventy percent of a weapon system's overall life cycle cost. Using modern software architecture methods can lead to substantial reduction in maintenance SIGAda'99 10/99 Redondo Beach, CA, USA costs, improvements in software reuse, and an increase in the © 1999 ACM 1-58113-127-5/99/0010...$5.00 quality of the software. These techniques can increase the 101 asset value of software by making it easier to evolve to 4. ARCHITECTURE STYLE comply with new requirements and implement new Our architecture style is embodied in the design patterns we capabilities. Software that is developed with a well- have chosen to implement. The goal of the Crusader conceived architecture permits coarse grained software architecture patterns is to help software developers resolve components to interact across interfaces without regard for common difficult problems encountered throughout the internal implementation details. This level of abstraction software. The architecture patterns express fundamental and encapsulation permits the software to be upgraded and structural organization schemes for the Crusader software. enhanced at a structural level. They provide a set of software components, specify their This paper describes our experiences in developing an responsibilities, and include rules and guidelines for object-oriented software architecture for the Crusader organizing the relationships between them. system using modern software architecture methods and with Our architectural patterns are high-level strategic patterns system maintainability in mind. that concern large-scale components and the global 3. ARCHITECTURE PROCESS properties and mechanisms of the Crusader software. They have wide-sweeping implications that affect the overall The overall approach that was used to define the Crusader skeletal structure and organization of the software. software architecture was based on the software architecture Although many useful patterns have been defined in the methodology described in [4]. The software architecture literature, we found that only a small subset are applicable in was reflected by the different views of the Unified Modeling the design of real-time, embedded systems. Selecting the Language (UML) and was developed through several right patterns was a difficult task. We began by iterations. Our object-oriented (O-O) modeling approach is characterizing the problem we were attempting to solve. depicted in Figure 1. Requirements, 4.1 Problem Characterization “Integrated” Use Cases, The system consists of hardware devices (e.g., turret, gun) Model Modeling Standards that operate at widely differing speeds and are controlled by software. This facet of the system is driven by sophisticated command and control software to support the crew as they Architecture Modeling perform a defined mission. Due to its inherent complexity, mapping the Crusader functionality onto computing platforms is not straightforward and performance is an Preliminary Preliminary Preliminary Preliminary Preliminary Preliminary Design Design Design Design Design Design important consideration as this mapping is performed. Modeling Modeling Modeling Modeling Modeling Modeling The problem domain logically defines both a vertical and C3 & Crew Armament Resupply Mobility Survivability Electronics horizontal structuring of the software. There is a vertical Domain Domain Domain Domain Domain Domain structure in that our software system has high level command and control operations that rely on low level operations. Figure 1. Iterative Development Method—Repeated High level operations include things like: perform a fire Refinement of the Model Via Reorganization and Addition mission, move vehicle from location ‘x’ to location ‘y,’ and resupply the vehicle. Examples of low level operations are: An important role of our software architecture team was to process sensor input, send output to an actuator, and control provide guidelines, rules, and recommendations for Crusader a motor. Within the software, communication flows from software architecture design and O-O modeling of that high level to low level and vice versa. In general, crew architectural design. The guidelines we developed were requests move from high level to low level and answers to short, heuristic, “rules of thumb” that embodied previous requests move from low level to high level. There is a experience and cultural/organizational conventions about horizontal structuring of the software as well—several how to do high quality work. The overall goal of the operations are at the same level of abstraction but are largely guidelines was to develop a consistent, easily maintainable independent. For example, planning for vehicle movement architectural model that supported requirements analysis, is independent of the functionality to perform a fire mission. software design, and software development. This goal was The system is long lived and the software will continually achieved with our architecture through strict adherence to a evolve. As a consequence, there is a desire to make parts of minimal number of guidelines. It was very important to us the system interchangeable so that it is easy to replace that our O-O model be understandable and clear, not only to selected components with alternate implementations. authors, but also to other users and future maintainers. Finally, the software development work needs to be subdivided among several contractors, some of which had not been identified when the architecture effort commenced. 102 4.2 Software Layers • Interactions between layers are restricted. A component One of our fundamental design patterns was to arrange the can only access other components in its own or lower software into logically related packages that are organized in layers. a hierarchical, client-server fashion. The hierarchy is Layers should be viewed primarily as pre-runtime entities. divided into a small number of layers, with the higher layers That is, assignment of a component to a layer primarily containing application-domain packages and the lower layers describes the knowledge, or lack of knowledge, that is containing interfaces to the operating system and the allowed to be reflected in the coding of that component. hardware. Strict adherence to the layers is paramount since The layers are defined as follows (high to low): it helps us with the complex task of managing the inter- object dependencies of a large, object-oriented system; in Layer 5 – This layer contains the classes needed to support a our case estimated to require the development of over a dialog with the crew. million source lines of Ada95 code. Figure 2 depicts the Layer 4 – This layer contains the capabilities that perform five layers identified in the architecture. the core Crusader applications and the capabilities required More concretely, when we describe the architecture as to support embedded training and vehicle management.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us