Querying OPM Models – A Graph-Theoretic Approach
Systems engineering must account for systems’ complexities, as many subsystems with multiple dependencies and connections between the system components characterize modern systems. Each newly introduced feature or capability adds to this complexity. In many cases, there comes a point in time when refactoring the software governing such systems to improve their performance and maintainability becomes so difficult that organizations avoid it. Model-Based System Engineering (MBSE), a solution that generates a graphical model for such complex systems, is one of the ways for dealing with this new challenge. However, a multi-layer system with many components also generates a multi-layer and complex model, and the visual representation will require time to estimate the risk of modifying a component or to identify similar subsystems that can be reused or optimize the system. In this research, we demonstrate how to generate a graph representation of an OPM model and use it to execute complex queries to answer questions that cannot be answered by simply inspecting the model. Examples include finding the shortest path between two model things, understanding cause-and-effect, and “what if” queries. Answering such queries is made possible by the new approach of converting a complex OPM model to a graph representation and identifying relationships between different components in the graph using an off-the-shelf graph database and associated algorithms implemented on it. We discuss the challenges of converting a multi-layer OPM model to a flat graph representation and the ways by which answers to the queries can be used to gain specific insights into the modeled system.