One of the biggest challenges for a Systems Engineering organization today is to know how to manage its engineering knowledge. Models have become very popular, but when the level of understanding of its content (for explainability purposes) has been tested you can see that people tend to understand a text better than a plain model without any text.
Requirements, as well as models, can be used to capture stakeholders’ needs, system capabilities, and non-functional knowledge (which sometimes may include design constraints), and after that, the information is passed downstream to the persons in need of that information. The goal for many organizations today is to exclusively use models to capture this kind of knowledge, and at The REUSE Company, our opinion is that this will not work. We state that models work very well for properly formalizing knowledge but NOT for communicating it between humans, as communication needs a similar level of language skills on all sides.
Nevertheless, models have obvious benefits if you use them correctly. The trend today is basically “all or nothing” and that is wrong. Models are very useful for automatic processing, simulation, analysis, code development, test case development, etc. However, the MBSE community says that models are great for stakeholder communication, and we don’t agree with this. Many people assume that you understand modeling notation just as well as natural language, but we have learned to interpret models later in life than we learned to talk. Theoretically, it works to communicate through models, but in real life, it does not.
Engineering today seems to have a fight against complexity and to defeat that many people introduce modeling as the universal way to solve every issue. You add views and diagrams to manage every need. However, due to the complexity of the systems, we are creating monster models. Today’s technology and systems are so complex that we more than ever need communication between different groups of stakeholders, and communication is becoming more difficult by only using models.
Engineering means to communicate and agree on different things. We often work in different teams and need a way of working that maintains the information and knowledge over time. This means that we still need requirements written in natural language, fully connected to models. And we need to be able to trace between different knowledge assets as well. At The REUSE Company, we notice that engineering teams need help in analyzing the correctness, completeness, and consistency of different knowledge assets like requirements and specifications, and we also offer the possibility of analyzing models. Imagine comparing a System Specification with a System Model to find errors like inconsistency or incompleteness!
When we help people write high-quality requirements using structured techniques like patterns, they notice that we can start to build powerful reasoning around the requirements themselves. If we add the possibility to compare the requirements against other assets like models, it will be a breakthrough!
In our opinion, requirements written in plain and natural text will co-exist with models in the future and they will not be replaced by them. We will need to capture the different stakeholder needs with natural language requirements, transform the requirements into models and connect them all, assure consistency (in an automatic way) between both when changes occur, and assure consistency when the documentation is managed. Let the computers manage your documents when models are operated! Requirements are here to stay.