The Importance of Object Oriented Software for DoDAF Architecture
This paper is concerned with how object-oriented software can be used with the Department of Defense Architecture Framework (DoDAF). It begins by discussing the general ideas behind object-oriented programming as well as an overview of the DoDAF. The general principles of object oriented programming, including encapsulation (Harrison et al., 2005), abstraction, modularity, inheritance, and polymorphism are discussed (Hofstedt, 2010). The advantage that each of these aspects has to the DoDAF is explored. Encapsulation means objects cannot be tampered with if they come into possession by enemy combatants. Polymorphism allows for successfully designed objects to be reused. For example, a successful targeting system could be used for different types of weapons. Inheritance is an advantage because a successful code can be reused. This saves time and expense in programming new computer systems. Modularity also saves time and expense. An example is given of a successful atmosphere control module which could be used for deep sea hard suits and spacesuits. Data's abstraction is an inherent component of object oriented programming. This means programs can be written in a manner such that the person designing them is not fully aware of their use. This is advantageous when computer systems are being used for covert operations.
Categories and Subject Descriptors
D.2.1 [Software]: Software Engineering-advantages object oriented programming
Object oriented programming, DoDAF architecture, advantages
Object oriented programming, DoDAF, encapsulation, polymorphism, inheritance, modularity, data abstraction
1.1 Object Oriented Programming
Object oriented programming uses data structures, which consist of methods, data fields, and interactions (Hofstedt, 2010). It is used to design computer programs and a variety of applications. There are several important techniques, which are used with object oriented programming, including polymorphism, inheritance, modularity, abstraction, and encapsulation. There are a number of new programming languages, which support object-oriented programming. (Hofstedt, 2010)
In this type of programming procedures and functions are bundled into a discreet package known as an object (Hofstedt, 2010). Each of these objects relates to concepts in the real world such as people, vehicles, or accounts. The object is designed in such a way that other software can access it by calling on procedures and functions, which have previously been designated as permissible. This allows for the isolation of these bundled functions and procedures so that they can be more easily managed and tracked (Hofstedt, 2010).
A program using object oriented methodology will consist of a collection of objects, which interact with one another (Hofstedt, 2010). This is different from the conventional software model where a program is comprised of a number of tasks or subroutines which it must complete. Each of the objects in this type of program can receive messages and process data.
1.2 Department of Defense Architecture Framework (DoDAF)
The Department of Defense Architecture Framework is a model which is used to organize systems and enterprise architecture so that they are complementary. This framework consists of a set of products, which are clearly defined and act as a way to assimilate, understand, and visualize the complex architecture necessary to complete the programming demands of the United States Department of Defense. The framework uses tabular, graphic, and technical means in order to help individuals understand the operation of the system.
The DoDAF is capable of integrating complex systems so that they operate well together. It has a number of operational views, which are used in a unique fashion in order to provide a clear picture of the operating domain used by an external user. All the information and weapons technology systems used by the United States government of defense must be designed using this framework as an outline.
The DoDAF has the goal of increasing the effectiveness and utility of computer architecture according to a specific data model. This model allows the architectures to be integrated with mathematical precision. The framework also serves as guidance for the content required regarding a functional purpose.
2. Advantages of Object Oriented Software
An important concept related to object oriented programming is encapsulation (Harrison, Sallabi & Eldridge, 2005). This can be present as a language mechanism which restricts access to an object by certain programs or users. It can also be a method for bundling data and helping objects optimize cooperative processes. Encapsulation is one of the unique features of object-oriented programming, which provides it with a number of advantages in certain situations.
The DoDAF is used to direct a number of military and intelligence operations, which require various levels of secrecy (Harrison et al., 2005). Encapsulation can be used as a method to allow operations to occur while hiding the mechanism by which they operate. In other words, the object simply performs a function but an outside user is unaware of the information or programming on which this function is based. This provides safety in military operations. For example, a weapon system which was taken by an enemy combatant could not easily be reprogrammed to attack United States forces or allies. Furthermore, troops can have devices, which help them make decisions on routes to travel without being aware of the intelligence this decision is based on. This could be especially important if soldiers are captured.
Polymorphism is the ability of an object to be used in a variety of circumstances without being altered. One of the purposes of polymorphism in object oriented programming is that it allows for message passing. In other words, a number of different objects can be used to provide a common interface for users. In practice this is usually accomplished by allowing a variety of objects to respond to similar property calls, fields, or methods. This allows the programmer to complete their task without knowing the specifics of an object. In other words, since all the objects will respond to the same type of property call is not necessary for the programmer to know the specifics. This can be especially important when computer programmers may not have the necessary security level to know everything, which is being accomplished by a certain computer system developed for the Department of Defense.
In addition to providing added security when necessary, polymorphism allows objects to be reused (Harrison et al., 2005). For example, the object may be a targeting system which works especially well. This same system can be used as the targeting object for new weapon systems.
Inheritance is another important concept in object oriented programming. This refers to the ability to reuse and compartmentalize code by forming a collection of behaviors and attributes for the object. The objects can be placed in classes or subclasses based upon their behavior or attributes. Hierarchies can be created by using a number of nested classes. This concept differs from polymorphism. Inheritance is concerned with the relation among implementations rather than types (Harrison et al., 2005).
An example of how inheritance could be important for DoDAF would be an autopilot guidance system. This software may have code written that helps the autopilot respond properly to changes in altitude or direction. This may be a specific code. The autopilot maybe presently set to operate a fighter jet. However, by using inheritance the same code could be used when designing an autopilot system for a completely different plane. Despite the new plane having different performance dynamics, some of the same principles such as correcting for a direction could be used.
An important part of the object oriented approach to programming is modularity. This technique is used for software design and increases the interchangeability of components. Each component is called a module. The modules are generally used to separate the concerns of the computer system which improves the distinction between components. A module will frequently interface with the program. This type of interface will provide the required elements to the module. Frequently, these elements can be used by other modules. There is an implementation which contains the programming code that matches the elements interface.
The DoDAF is used for an extensive number of different types of systems. Being able to use successful modules for these different systems can save programming time and money. For example, consider a computer module which is designed to provide the optimal amounts of pressure, oxygen, and air for deep sea naval divers in hard suits. The module analyzes the oxygen level and pressure and makes adjustments in real time. Assuming the module has proven effective and reliable, the National Aeronautics and Space Administration may choose to use this same module for a newly designed space suit. This would save NASA engineers from having to design a new environmental suit module.
2.5 Data Abstraction
Another advantage of object oriented programming is that it frequently uses a high level of data abstraction. This means any information outside the specific focus is viewed as extraneous and ignored. With regard to programming, they can often be done independently of the outside world (Bierhoff, 2008). A model of computation is implemented that can be interchanged with others. This allows for the creation of large computer systems with each programmer only understanding a specific section. This has obvious advantages with regard to computers, which are used for high security operations.
Data abstraction has obvious advantages for DoDAF programming. For example, imagine the National Security Agency of the United States is designing a computer program which will decrypt information from enemy intelligence agencies. There may be a concern that a programmer could sell this information to foreign governments in order to use the system against the United States. By having the programming done at a high level of data abstraction, the programmer may have no idea what the small piece of the system they are working on will be used for. This saves time and money by not requiring extensive security clearances and surveillance of programmers.
Object-oriented programming consists of using a variety of techniques to bundle computer applications into distinct units called objects (Hofstedt, 2010). This is used in a number of new programming languages and involves encapsulation, polymorphism, modularity, inheritance, and abstraction. These are important concepts when considering the usefulness of this type of programming for the DoDAF.
The DoDAF is used for a variety of different purposes by the Department of Defense. Object-oriented programming offers a number of advantages in this type of situation (Harrison et al., 2005). Encapsulation means that a particular object programming has been bundled in a method which does not allow outside access. This is particularly useful for objects, which could fall into enemy hands such as weapons targeting systems. Polymorphism allows for successful programs to be used in a variety of circumstances. For example, a successful targeting system could be used for a number of different weapons. Inheritance allows successful code to be reused. This saves programming time and expense. Modularity means that successfully designed pieces of software can be used in a variety of different systems. This also saves money. Data's abstraction provides the opportunity for programs dealing with classified operations to be designed by individuals without extensive security clearances and surveillance.
Object-oriented programming has the potential to save the United States government billions of dollars when used in the DoDAF.
Bierhoff, K. (2008). Pluralism: API protocol compliance and object-oriented software. ACM Conference on Object-Oriented Programming, Systems, Languages & Applications, 227-244.
Gourdeau, R. Object-oriented programming for robotic manipulator simulation. Robotics & Automation Magazine, IEEE, 4(3), 21-29.
Harrison, C. J., Sallabi, O. M., & Eldridge, S. E. (2005). An initial object-oriented programming language (IOPL) and its implementation.Education, IEEE, 48(1), 3-10.
Hofstedt, P. (2010). Constraint-based object-oriented programming. Software, IEEE, 27(5), 53-56.
Nguyen, T. A., & Kuonen, P. ParoC++: A requirement-driven parallel object-oriented programming language. International Parallel and Distributed Processing Symposium.