Smart Requirements Engineering
In recent years, the terms “AI”, “digitalisation” or even “Industry 4.0” and “IoT” have not only been mentioned many times in the press, but have also triggered a rethink in numerous companies. The technical possibilities that have now become available offer enormous potential for optimisation and savings, as well as the opportunity to implement completely new business models.
A driver for these developments are not only the big technology groups such as Google and Amazon, but also a number of established companies that are gradually making their conventional products and machines more intelligent and autonomous.
However, if one looks at companies that are increasingly integrating “machine intelligence” into their own products, one gets the impression that hardly any value is placed on such “intelligent” support in their own development processes. Rather, in the course of the agile transformation, it seems to be less digital and more pen, paper and personal conversation. Where does this contradiction come from?
A problem from the past
Talking to practitioners, it became clear that in the past, own developments were often not really well supported by rigid tools and processes and that people were happy to be able to carry out projects better with a more flexible way of working. It is therefore not surprising that a fundamental scepticism towards innovative tools is widespread. In addition, many organisations have little knowledge of what modern development tools can actually do. It is often argued that, at best, the user interface would have changed from the tools of the decade before last, and that it would be “old wine in new bottles”.
Especially in the area of requirements engineering, many companies still associate a requirements management (RM) tool with heavyweight desktop applications like the classic DOORS and its competitors. No wonder that (non-RM) tools such as Jira, Confluence, TFS or, and even today, Word and Excel still enjoy great popularity in the industry.
Despite their high user experience and the advantages they undoubtedly offer for collaborative work, these tools are anything but “smart”. Quality and efficiency therefore still depend exclusively on the expertise, commitment and diligence of the people who work with them. How this scales with increasing system complexity is an open question.
In the following, we would like to show what artificial intelligence (AI) can already do in the field of requirements engineering today, what added value it opens up for companies and where the journey will probably take us. We do not intend to deny the current state of the art, but rather show which possibilities development organisations could take advantage of.
By AI, we also understand any intelligent support that a tool provides to its users. We do not limit this to Natural Language Processing (NLP) or Deep Learning (DL), for example. “Smart Requirements Engineering” is the term we use to describe requirements engineering that makes use of AI to enable improvements in the development process.
Added value through Smart Requriements Engineering
Basically and independently of the context of use, tools pursue the goal of enabling something that humans cannot do otherwise due to physical, biological or cognitive limitations, or of being able to do something faster, better or easier or more convenient.
In terms of requirements engineering activities, tools are, for example, a way to document requirements in general, since humans by nature do not have the ability to persist information externally. However, whether the tool is pen and paper, a Word document, a database or a wiki is of secondary importance.
However, this consideration is important when it comes to what a tool should make faster, better or easier. Depending on the activity of requirements engineering – a distinction is usually made between elicitation, documentation, validation and administration – completely different added values can be the focus of attention and thus different tools may appear adequate. If, for example, it is only a question of being able to document requirements as easily and conveniently as possible, a Wiki or Word document is recommended rather than a sophisticated database application. If, on the other hand, improvements in work efficiency and/or requirements quality are desired, then it is better to fall back on “Smart Requirements Engineering” tools, which offer appropriate assistance functions for this purpose.
Below are four typical added values that can already be achieved today to a large extent by “Smart Requirements Engineering” and for which (commercial) tools are already available.
- Errors in requirements are found faster
Requirements are not an end in themselves, but should help to build the right system correctly. This is a constant challenge for companies. On the one hand, good requirements are essential for efficient and qualitative development, and on the other hand, companies want to spend as little effort as possible on requirements engineering due to its low value-added character.
However, this area of conflict can be resolved by a (partially) automated verification of requirements. This allows companies to reduce the risk of development breakdowns at an early stage without having to invest many resources in often time-consuming and strenuous validation rounds.
- Project participants always know what still needs to be done
In large projects, even experts and experienced persons quickly lose track of the status of requirements and outstanding issues or to-dos. Moreover, since changes are often the order of the day and requirements are often drawn up by project participants who are not proven experts in requirements analysis, it is extremely difficult and time-consuming to coordinate who still has to deliver what in what form and quality.
By means of a (semi-)automatic analysis of the requirements status and the algorithmic derivation of recommendations via open work steps, project participants can, however, work towards a specific goal at any time. This reduces the effort for coordination and reworking, leads to a higher completeness and quality of requirements, less uncertainty and generally facilitates the entire requirements analysis, which is especially helpful for less experienced participants.
- Requirements are based on reliable data
More and more products, especially those with large and (globally) distributed user bases, are in constant competition and can be exchanged for competing solutions more easily than ever. It is therefore extremely important for manufacturers to always listen to the current mood among users, as well as to listen to their wishes, suggestions and criticism. Traditional survey techniques, however, have their logistical limitations here, but at the same time users are often not interested in communicating their concerns directly to the manufacturer. Instead, users increasingly prefer to post evaluations and expectations on relevant platforms, which, however, can hardly be evaluated manually due to their large number.
By (partially) automatically analysing reviews (text mining) as well as sensor and log data from the use of products (usage mining), however, companies can use data that is already there to derive new or change requirements. This not only represents an enormous cost saving compared to conventional analysis methods, but also allows to react faster to market changes and current customer needs.
- Development artefacts are created at the push of a button
As mentioned above, requirements are not an end in themselves, but merely the starting point for a value-added development project. Consequently, other artefacts have to be created from requirements to meet this goal. These can be, for example, test specifications, quotations or even drafts in the form of graphical models. In practice, these artifacts are usually created manually and, in the best case, linked to each other using a tool. An automatic transfer of artefacts usually only takes place where model-driven work is carried out. In a large number of companies, however, requirements are mainly found in text form, which limits this possibility, but for which approaches exist that allow intelligent support.
By a (partially) automatic transfer of text-based requirements into other artefacts, the amount of work as well as the error rate for these tasks can be reduced. Thus, development projects can be accelerated and work steps can be simplified for all parties involved.
Tools for Smart Requirements Engineering
In the field of automatic quality inspection of requirements, various commercial tools already exist on the market that offer more or less the same features. Through NLP and formalised best practices, for example from the ICOSE standard, tools like
the possibility of having huge quantities of requirements checked for incompleteness, ambiguity and inconsistencies in the shortest possible time.
Even if these tools currently do not allow for quality assurance with regard to content and cannot correctly identify every error, they do enable the majority of requirements to be brought into a quality that reduces difficulties in understanding and thus quality deficiencies in development from the very beginning. According to the manufacturers, achieving the same quality through manual reviews would require more than 600 times the time and effort, which may also explain the often neglected handling of requirements validation in practice.
With regard to process assistance in requirements analysis, first commercial solutions also exist. ReqSuite RM, for example, is able to understand the semantics of requirements based on ontologies and NLP. This enables the tool to automatically recommend which analysis steps are the most appropriate for the respective user. Thus, project participants can find out at any time what still needs to be done in the course of the requirements analysis, what the content dependencies between different people but also topics look like and what progress and quality the requirements already have.
Even if these tools do not offer any support to ensure 100% correctness and completeness of content, they still guide the participants unerringly through the analysis process, even in the most complex contexts. In analogy to a navigation system in a car, which enables even people who are unfamiliar with the location to reach their destination safely, intelligent process assistants enable people (even those inexperienced in RE) to work adequately in the requirements analysis at any time. The effort for the collection and documentation of requirements can thus be reduced by about 40% compared to a conventional way of working (assuming the same quality standards for the resulting requirements).
Numerous scientists are currently working on collecting customer requirements from online user feedback. The term “Crowd-based Requirements Engineerings (CrowdRE)”¹ is used to investigate which methods from machine learning, deep learning and crowdsourcing are best suited to automatically derive requirements from online data. Although conventional social media analytics tools already provide various insights into customer satisfaction, only specialised CrowdRE tools such as Fraunhofer IESE’s User Echo Service or the research prototype OpenReq Analytics can produce currently robust results.
Although these tools do not currently achieve 100% accuracy either, they are still capable of automatically assigning the majority of statements made to individual functions and quality features, thus identifying where the need for action in product improvement is most urgent. In the future, such systems will interlock the results of text mining with usage mining in order to compare users’ comments with their actual usage experience. Even conservative measurements show that automated analyses can be carried out 22 times faster and the results are immediately available in a clear and concise form.
With regard to tools that generate development artefacts from requirements, practice is not yet quite as far advanced. Apart from approaches from the field of software product lines, which allow the generation of artefacts up to code with the help of domain-specific languages, hardly any tools exist so far that generate development artefacts fully automatically based on NLP and other AI methods. However, the first tools are currently being developed by the three manufacturers mentioned above to generate test cases or UML diagrams from requirements or to automatically select suitable solutions for requirements from a catalogue and to be able to create offers at the push of a button.
About 10 years ago the agilisation of requirements engineering began. Away from long preliminary analyses and comprehensive requirements documents, towards lean documents and flexible analysis rounds. The increasing complexity of modern systems and existing regulations in many industries have promoted the trend towards hybrid approaches in recent years.
In the next 10 years the complexity of systems will continue to increase. This will undoubtedly be accompanied by a digitalisation of requirements engineering. At present, promising commercial tools for this already exist on the market, but due to their widespread use, they have not yet been able to fully exploit their power in practice. However, companies that already rely on such solutions today will be able to achieve enormous competitive advantages in the short term, since typical project challenges resulting from inadequate requirements can be reduced from the outset.
In the medium to long term, the topic of Smart Requirements Engineering will open up even more possibilities. Learning algorithms will be able to build knowledge about products and application domains from requirements specifications and to transfer this knowledge to similar contexts. As a result, the above-mentioned quality checks and process assistants will no longer be able to make methodological and structural recommendations, but will also be able to suggest concrete requirements for their project to the parties involved. It remains to be seen how well this will ultimately work, and whether it will be retained for reuse or even lead to the automatic “invention” of new requirements. However, the future will definitely develop in this direction, even if previous approaches to requirements engineering will continue to exist in parallel.
 Crowd-based Requirements Engineering (in German)
If you like the post or want to discuss it, feel free to share it with your network.
Dr Sebastian Adam has published another article in the t2informatik Blog:
Dr. Sebastian Adam
Dr. Sebastian Adam is the managing director of OSSENO Software GmbH and operationally responsible for the areas of product innovation and marketing. Before joining OSSENO, he worked for more than 10 years as a consultant, scientist and team leader for requirements engineering at the Fraunhofer Institute for Experimental Software Engineering (IESE). Dr. Adam has already accompanied several dozen companies and has cross-industry best practices regarding the introduction and execution of requirements engineering.
Eduard C. Groen
Eduard C. Groen works at the Fraunhofer Institute for Experimental Software Engineering IESE in Kaiserslautern as an Senior Requirements Engineer and Project Manager in the User Experience and Requirements Engineering department. As the person responsible for “Crowd-Based Requirements Engineering” (CrowdRE), he has been working actively on the development of this novel approach to requirements elicitation since 2014, drawing extensively on his background in engineering psychology. He also advises companies on how to improve their requirements engineering processes and related practices and conducts training courses around the world. In addition to his work at Fraunhofer IESE, he is aiming for a PhD in Computer Science at the University of Utrecht on the topic of CrowdRE.