4 min read
Application development and testing has been revolutionised in the past several years with artifact and package repositories, enabling delivery of...
In the dynamic, interconnected world of software development, clarity is key. Yet, requirements engineering - the process of defining, documenting, and maintaining software requirements - is often fraught with complexities that can hinder project progress.
Incomplete, ambiguous, and conflicting requirements often cause a misalignment between stakeholders, and throughout product development. Too often, this equates to the wrong software being built, defects identified far too late in the development lifecycle, and ultimately projects being delayed.
This challenge is especially acute when requirements are communicated solely through text. Visual models instead offer a proven approach for articulating requirements with precision and comprehensibility.
Using visual models in requirements engineering provides significant advantages over traditional text-based methods. This blog will demonstrate their value through practical examples.
The human brain excels at interpreting and understanding visual data, allowing us to make sense of the world around us. Visual models are no different. They serve as potent instruments within the realm of requirements engineering.
Visual models offer more than just a pleasing visual display of information. They tap into our cognitive ability to interpret visual data, providing a powerful tool for comprehension and communication, minimising misalignment.
Using diagrams and graphical representations, visual models simplify the relationships and dynamics in requirements. They clearly display nuances that are lost within textual representations.
Visual models eradicate ambiguity, foster shared comprehension among stakeholders, and introduce an element of simplicity within the complexities of a requirement. Consequently, they illuminate the path towards understandable, clear requirements, which ultimately aide with the speed of delivery and project success.
To appreciate the difference that visual models bring to requirements engineering, let's consider a textual requirement:
"A user should be able to register on the platform using their email address. After successful registration, a verification email should be sent to the registered email address. The user will only gain full access to the platform after verifying their email."
While the textual requirement provides necessary information, it fails to efficiently portray the flow of actions and conditions involved. Now, let's compare this to a visual model representation using a flowchart:
Visualizing the requirement through a flowchart provides a clear understanding of the process flow and the interdependencies involved. From this one example, it's immediately apparent that it's much quicker to grasp an image than sift through a dense block of text.
The visual model also highlights gaps in the textual requirement, such as potential 'negative' user journeys. What happens if a user enters an invalid email or doesn't proceed with verifying their email address? The visualization makes these user journeys and their impacts on the system instantly evident, something the textual requirement may fail to capture.
Overall, the visual model underscores the complexity and nuances of the requirement in a more user-friendly and comprehensive way.
Let’s consider another requirement, this one a bit more complicated, with embedded sets of rules.
“As a prospective customer, I want to apply for a credit card, so that I can make purchases on credit. User is able to input their personal details and financial information (Income, employment status). System checks the user's credit score from a credit bureau. Based on credit score and financial information, system decides the credit limit. System verifies the user's age to be 18 years or above. User receives a confirmation if the application is successful, along with their initial credit limit.”
While the requirement seems exhaustive at first, let's convert it into a visual model for a more holistic understanding:
A review of the visual model uncovers a few overlooked areas in the original requirement. For instance, what are the specific ranges for the credit score and financial status that influence the credit limit? These are areas that text-based requirements often miss and are much more evident once visualized in a model. Here is the finalised and complete model:
Let’s consider another requirement, this is for a drink’s promotion. This has several connected rules which chain together to formulate when a customer is eligible for a free drink:
“The promotion requires customers to run a minimum of 10 miles per week in order to qualify for a free drink. Customers must track their miles and present the results to the cashier in order to receive the promotion. The promotion is valid for a limited time period and is only applicable for select drinks as determined by the establishment. Customers must be 18 years or older to participate in the promotion.”
By examining the visual model, we can discern and understand the conditions and process flow much more swiftly than when it's in textual form:
Modelling also prompts us to think about some possible ambiguities or gaps. For instance, how do customers track and validate their miles? What is the exact timeframe of the promotion? Which drinks are included in the offer? These potential questions become more apparent and easier to address when using visual modelling, reinforcing the power of visual interpretation.
Having seen the value of modelling in practice, let’s summarise the manifest benefits offered by visual modelling during requirements engineering:
Enhanced Comprehension: Visual models illustrate connections, hierarchies, and flows in ways that words cannot. They allow stakeholders with varying expertise to understand the system's requirements more intuitively.
Improved Collaboration: Visual models create a shared language among stakeholders, fostering improved collaboration. They facilitate more effective discussions around requirements, changes, and issue resolution.
Efficient Verification and Validation: Visual models make it easier to identify inconsistencies, redundancies, or omissions, ensuring the quality of requirements. They also support model-based testing, where test cases are derived from models to verify the system behaviour against requirements.
Reduced Ambiguity: Visual models provide a clear, unambiguous representation of complex processes, reducing the potential for misunderstandings or misinterpretations.
Better Documentation: Visual models serve as a valuable part of project documentation, providing a quick reference for understanding the requirements even long after they were defined.
Visual models aren't just useful for representing requirements; once a model has been built, it can be plugged into a model-based pipeline.
A model-based approach promotes the generation of test cases automatically from the visual model. The tests produced are the optimal set of tests, maximising coverage of the requirement.
The tests can furthermore be overlaid with rich sets of test data, plugged into your tooling landscape, and transformed seamlessly into automation scripts:
The significant aspect of this approach is that it enables all these steps to be taken before a single line of code is written. This proactive stance paves the way for enhanced efficiency, error detection in the early stages, and ultimately a higher quality product.
The incorporation of visual models into a model-based testing approach brings about a paradigm shift in how software requirements are tested and validated.
Transitioning from textual requirements to visual models requires business analysts and product owners to evolve into strategic thinkers. This transformation can be daunting, yet the rewards significantly supersede the challenges.
Overall, we have found the process alone of building a model and thinking critically around a requirement leads to enhanced quality and more rigorous requirements.
To ease the transition from textual to visual based models, Curiosity have built ModelGPT. This leverages generative artificial intelligence to convert textual requirements into precise visual models.
ModelGPT not only facilitates the adaptation of existing requirements, but also establishes a robust foundation for you to step into the realm of modelling. By providing an initial springboard into visual modelling, ModelGPT accelerates the learning curve and allows you to swiftly start reaping the numerous benefits of modelling.
The use of visual models in requirements engineering is a transformative approach that brings much-needed clarity to complexity. By transitioning from text-based requirements to visual models, teams can enhance comprehension, collaboration, and verification – all while reducing ambiguity.
While visual models require an initial investment in learning and adopting the approach of modelling, the long-term benefits they provide are significant for software development projects.
A picture is worth a thousand words, and nowhere is this truer than in requirements engineering. Generative AI has the ability to speed up this approach and compliment the use of existing requirement management solutions.
To see how Generative AI can accelerate your visual requirements engineering and software testing, check out Curiosity’s recent “AI in Testing” panel discussion:
5 min read
Curiosity often discuss barriers to “in-sprint testing”, focusing on techniques for reliably releasing fast-changing systems. These solutions...
9 min read
In the digital age, large enterprises are plagued by a lack of understanding of their legacy systems and processes. Knowledge becomes isolated in...
3 min read
APIs provide business with the flexibility to innovate rapidly and extend their core offerings to new users. However, this flexibility brings massive...