Integrated Approach To Model-Based Systems Engineering and Object-Oriented Software Engineering
Integrated Approach To Model-Based Systems Engineering and Object-Oriented Software Engineering
INTEGRATED APPROACH
ABSTRACT
In this paper, we propose a framework for integrating model-based systems engineering and
object-oriented software engineering based on their interfaces. We show that the context,
behavior, and structure models captured by the systems engineering process are precisely
those inputs necessary to begin the object-oriented software engineering process. Conversely,
the object-oriented architecture generated by the software engineering process is needed by
systems engineering to perform object-based rather than function-based architecture synthesis.
INTRODUCTION
Most of the complexity in the modern-day systems is concentrated in the software. Significant
systems engineering effort must therefore be spent on the specification and integration of the
software subsystem. Research and proposals on how best to combine systems and software
engineering have long history. A recent example is the Object-Oriented Systems Engineering
Method proposed by the eponymous working group of the International Council on Systems
Engineering (INCOSE)[1a][1b]. The method has the stated goals to:
… facilitate integration of systems engineering with object-oriented (OO) software
engineering, and to apply OO modeling in a way that benefits the systems
engineering process.
However, these previous works tend to be systems engineering-centric or software
engineering-centric. The systems engineering-centric viewpoint tends to minimize the
contribution of software engineering to systems architecture where objects, not functions, are
allocated to components. The software engineering-centric viewpoint tends to ignore the
structured requirements artifacts generated by model-based systems engineering. In this
paper, we present an integrated model of systems and object-oriented software and explicitly
identify the types of information passed and when the transfer occurs. As a case study, we use
a simplified model of a TV-network satellite distribution system, derived from a real system
with which the author was involved.
Our proposed integrated MBSE/OOSE approach addresses these issues. The integrated process
is shown in Figure 1. In this process, the systems engineer, executing the MBSE process,
generates the context, structure, and behavior models. These models are then given to the
software engineer executing the OOSE process (we selected the Rational Unified Process [5]).
The software engineer generates the object-oriented allocating objects to components.
Traceability results from the mapping of object-oriented collaboration/sequence diagrams back
to the originating behavior models and/or a table mapping functions to objects. In the
following sections, we demonstrate the process by developing the MES_To_Affiliate Control
System for a simplified TV satellite distribution system.
Figure 1. The integrated MBSE/OOSE Process
At this point, the traditional systems engineering process would be to partition the functions
between the two computers, including further subdividing the functionality, creating more
behavior diagrams as needed. However, in the integrated process, we move to object-oriented
analysis and design.
Figure 5. Behavior diagram for updating a site table
In this example, the OOSE process led to the “pipes and filters” architecture [11]. The pipes and
filters pattern:
“…provides a structure for systems that process a stream of data. Each processing
step is encapsulated in a filter component. Data is passed through pipes between
adjacent filters.”
Figure 6 shows the class diagrams. Figure 7 shows how the filters A-G perform the nominal
sequence involved in updating a site table. Normal OOSE practice suggests the development of
deployment diagrams that allocate the objects to the computers. In integrated MBSE/OOSE,
both systems engineering and software engineering perform this function by working together
on Step 4: Architecture Synthesis.
Figure 6. Pipe and Filter class diagrams
In this example, the process yielded the result in figure 8b. In the actual project the allocation
of objects to hardware was based on the following factors:
1. the real-time operating system on Computer #2 did not support SQL database access,
which some of filters needed, and
2. the development environment on Computer #1 was superior to that of #2, so
minimizing the number of filters on #2 decreased the code-test-debug cycle
The object architecture must be mapped back to the functional requirements. The simplest
approach is creating a function-to-object mapping table as in Table 1, by comparing the
behavior diagrams (figure 5) with their object-based sequence/collaboration diagrams (figure
6). The simplest mapping is 1:1, one function is implemented by one object. The more general
(and usual) case is that several objects may be needed to implement a function or vice-versa.
[2] Oliver, David, Tim Kelliher, and Jim Kerrigan, Engineering Complex Systems with Objects and
Models, McGraw-Hill, 1997.
[8] Booch, Grady, Object-Oriented Analysis and Design, 3rd Edition, Addison-Wesley, Boston,
2007.
[10] Martin, Robert C., Designing Object-Oriented C++ Applications Using the Booch Method,
Prentice-Hall, New Jersey, 1995.
[11] Bushmann, Frank, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal, A
System of Patterns, Wiley and Sons, 1996.
APPENDIX: Use Case Example