Since a few years ago researchers have already started to dig into how AI impacts RE, as multiple papers at the intersection of AI and RE show. One interesting instance is the Artificial Intelligence in RE (AIRE) Workshop[i], organized in association with the IEEE International Requirements Conference. Researchers meet at this workshop to explore both the use of AI in RE methods, techniques and tools, as well as specific approaches in RE for building AI-based systems. I can only recommend the interested reader to parse through the AIRE proceedings.
This paper follows-up on 2 keynotes I made: the first one in 2017 “One day Information Systems will design themselves” at the INFORSID[ii] conference, and the second in 2019 “Wanderings with an AI” at the UNESCO COMTECDEV Conference.
My first talk was a reaction to the release of DeepCoder, an AI-based system that generates code. AI-based code generation systems are now widely used in EDIs. Known examples are tabnine[iii], GitHub Copilot[iii] or intellicode[iv] for code completion. These code generation systems raise many ethical and legal issues as they use others’ code to generate your code. The original authors of the code can of course legitimately wonder by what right their code is used in somebody else’s applications. Researchers are proposing the use of AI to identify code authorship too.
The goal of my second keynote was provoked by the book “Artificial Intelligence does not exist” by Luc Julia, one of the designers of Siri, Apple’s conversational robot. During this keynote, I made a live experiment showing the limits of Siri and showed how these limits could - and probably would - be rapidly overcome.
Today’s paper started after the release of ChatGPT[vi], a conversational robot created by OpenAI. It all started in December 2022 with an entertaining discussion with colleagues about how to teach AI and the need for curricula that address both technical and project management aspects (including RE, of course!). The discussion also turned around to how software engineering students are already using ChatGPT for producing code in the context of their homework and personal projects, including in advanced topics such as the development of BlockChain-based systems.
My first contact with ChatGPT started with a simple question: “how to solve the Hanoi tower problem in python?”
To this request, I got the following answer:
I was immediately convinced by the answer and the code - but for the purpose of double-checking, I immediately tested it in my preferred EDI . But then I wondered: “okay, students in my python lecture will be able to use ChatGPT to generate code; but how about my RE lecture? Is it safe to say RE is not impacted? What does a clever conversational robot know about RE? How would it change my way of teaching RE or testing my students?”
I have built the rest of this paper following the same strategy as my COMTECDEV[viii] keynote: as a conversation with ChatGPT. This time the topic is RE. The first part gathers my questions and ChatGPT’s answer about requirements specification. My goal was to test what ChatGPT knew on this topic and if it was able to generate requirements. In the second part we discussed RE. I wondered how standard was the body of knowledge behind ChatGPT and if general questions could lead to better answers than those of an “informed outsider” (I will not comment on that: it’s up to you to form your own opinion on this). The last series of questions are about the professional aspects of RE, including the certification of professional RE competencies.
My questions, written in bold and italic, were asked in French[ix] . The answers were produced in French by ChatGPT. I then used Office 365 to translate in English. Not a single word has been changed at any step of the process.
2 ChatGPT and requirements specification
How are requirements specified?
There are several ways to specify requirements. The most common way is to write detailed specifications, using words and phrases to describe the desired features and constraints to be met. These specifications may also include concrete examples to illustrate how the requirements are to be implemented.
It is important that the requirements are clear and precise so that all parties involved agree on what should be done and how it should be done. It can also be helpful to write them in such a way that they can be tested to ensure that they have been properly implemented.
In addition, it may be useful to organize them into different categories, such as functional and non-functional requirements, to facilitate their management and monitoring.
Can you give me examples of requirements specifications?
Of course. Examples of requirements specifications include:
- The new app must be compatible with the latest versions of iOS and Android operating systems.
- The app's home page should display a list of the most recent articles, with a cover image, title, and content preview for each article.
- The app must allow users to create an account using their email address or Facebook or Google accounts.
- Users should be able to add articles to their reading list for later reference.
- The app must include a search function that allows users to search for articles based on keywords and tags.
- Loading pages and images should be fast and smooth, with a response time of less than 2 seconds.
Please give the full requirements specification of a simple software system
A software requirements specification (SRS) is a document that describes the complete set of requirements for a software system. It serves as the basis for design and development and provides a common understanding of the system among all stakeholders.
The content and format of an SRS can vary depending on the nature of the project and the specific practices of the development team, but a typical SRS includes the following elements:
- Introduction: This section provides an overview of the SRS, including its purpose and scope, as well as any assumptions, constraints, or dependencies.
- Overall description: This section describes the high-level characteristics of the system, such as its functionality, performance, reliability, security, and compatibility.
- External interface requirements: This section describes the various ways in which the system will interact with other systems or users, including user interfaces, input/output formats, and communication protocols.
- System features: This section provides a detailed description of the specific functions and features of the system, organized into functional or logical modules.
- Non-functional requirements: This section lists the quality attributes that the system must satisfy, such as security, performance, usability, and maintainability.
- Constraints and assumptions: This section lists any assumptions that the development team has made about the environment, infrastructure, or other factors that may affect the design or implementation of the system. It also lists any constraints that the team must take into account, such as budget, schedule, or technical limitations.
- Appendices: This section provides additional information that supports the SRS, such as diagrams, references, or glossaries.
Overall, the purpose of an SRS is to define the requirements for a software system in a clear and concise manner, so that all stakeholders can understand and agree on the scope and objectives of the project.
What are the top ten requirements for an ATM?
An ATM, or automated teller machine, is a device that enables bank customers to perform financial transactions without the need for a human teller. The top ten requirements for an ATM system might include:
- Security: The ATM must protect the confidentiality and integrity of customer information and transactions. This may include features such as encryption, authentication, and access controls.
- Reliability: The ATM must be available for use at all times, with a high level of uptime and minimal downtime for maintenance or repairs.
- Ease of use: The ATM must be user-friendly and intuitive, with clear instructions and a simple interface that allows customers to easily perform the desired transactions.
- Accessibility: The ATM must be accessible to individuals with disabilities, such as those with visual or mobility impairments. This may include features such as audio output, tactile buttons, and Braille instructions.
- Compliance: The ATM must comply with relevant regulations and standards, such as those governing financial transactions, data privacy, and accessibility.
- Currency handling: The ATM must be able to dispense and accept a variety of currencies and denominations, as well as provide accurate change.
- Dispensing options: The ATM must provide customers with a range of options for receiving their cash, such as dispense to account, dispense to envelope, or dispense to a third party.
- Transaction types: The ATM must support a variety of transaction types, such as deposits, withdrawals, balance inquiries, and transfers.
- Network connectivity: The ATM must be able to communicate with the bank's network and systems in order to process transactions and provide real-time account information.
- Error handling: The ATM must be able to handle and recover from errors or exceptions, such as hardware failures, communication interruptions, or invalid transactions.
What is the problem if a system is designed to let system administrators access users' personal data and to protect personal data at the same time?
One potential problem with a system that is designed to let system administrators access users' personal data while also protecting that data is the potential for abuse of the administrator's access privileges. If the system does not have adequate safeguards in place to prevent unauthorized access or misuse of personal data, the administrator may be able to view, modify, or disclose sensitive information without the users' knowledge or consent. This could lead to a violation of the users' privacy and potential legal or reputational consequences for the organization. To address this problem, the system could implement strict access controls and auditing mechanisms to monitor and prevent unauthorized access to personal data by the administrator.
3 ChatGPT about RE
What is RE?
RE is the discipline that aims to establish and manage the requirements of a project, that is, the needs and constraints that must be taken into account when designing and delivering a product or service.
RE involves several activities, such as gathering requirements from stakeholders, modeling requirements to clarify and organize them, verifying and validating requirements to ensure they are correct and complete, and managing changes to requirements over time.
The purpose of RE is to ensure that the products and services developed meet the real needs of users and customers, and that they respect the time, cost and quality constraints imposed by the project.
What are the challenges of RE?
The challenges of RE are numerous and important. Key issues include:
- Ensure that the products and services developed really meet the needs of users and customers. If requirements are not properly established and managed, the final product may not meet user expectations, which can result in additional costs to correct errors and delays in implementation.
- Reduce the risk of changes in direction and revision of requirements under development. If requirements are not clearly defined and validated at the outset, it is more difficult to predict project costs and timelines, which can lead to costly changes in direction and revisions to requirements along the way.
- Improve communication and collaboration between different stakeholders. RE helps clarify the needs and constraints of each stakeholder, making it easier for teams and stakeholders to communicate and collaborate to achieve project objectives.
- Facilitate the management and tracking of requirements over time. RE enables methods and tools to organize, track, and manage requirements effectively throughout the project. This ensures that requirements are properly implemented and tested, and that changes are managed appropriately.
Is RE a scientific discipline?
RE is not considered a scientific discipline in the strict sense of the term, as it does not rely on rigorous experimental methods to establish laws or general theories. However, it draws on concepts and techniques from different disciplines, such as project management, cognitive psychology, sociology and systems analysis, to help professionals establish and manage project requirements effectively.
In this sense, RE can be considered as an interdisciplinary discipline that draws on the knowledge and methods of several fields to solve practical problems in the field of product and service development.
What are the typical challenges faced by project managers and prime contractors[x] in RE?
Project managers and prime contractors can face several challenges when it comes to RE. Here are some of the most common challenges:
- Collect the needs and constraints of all stakeholders. It can be difficult to collect the needs and constraints of all stakeholders, especially if they are numerous and come from different fields of activity. It may be necessary to conduct interviews, workshops or surveys to gather the necessary information.
- Clarify and organize requirements in a coherent and structured manner. Requirements can be complex and difficult to understand, especially if they are expressed imprecisely or ambiguously. It may be necessary to model or organize them into different categories to make them easier to understand and manage.
- Ensure that requirements are correct and complete. It is important that the requirements are accurate, consistent and comprehensive to ensure that the final product will truly meet the needs of users. This may require checks and validations by stakeholders to ensure that requirements are correct and complete.
- Manage changes to requirements under development. Requirements may change over time, depending on changes in user needs or project constraints. It is important to put in place methods and tools to manage changes effectively so as not to disrupt the flow of the project.
What are the links between design and RE?
Requirements design and engineering are closely linked, as both aim to define and manage the needs and constraints of a product or service development project.
Design is the process of defining the characteristics and functionalities of a product or service, taking into account the needs of users and the constraints of the project. It builds on requirements established by RE to create concrete and viable solutions to meet user needs.
RE, on the other hand, aims to establish and manage project requirements, collecting the needs and constraints of different stakeholders, modeling and organizing them consistently, and validating them to ensure they are correct and complete. The requirements established by RE serve as the basis for design to create viable solutions tailored to user needs.
In short, the design and engineering of requirements are complementary and work together to ensure that the products and services developed truly meet the needs of users and respect the constraints of the project.
What role does RE play in innovation processes?
RE plays an important role in innovation processes, as it helps define and manage the needs and constraints that underpin innovations.
When an innovation project is launched, RE can help gather ideas and suggestions from different stakeholders, organizing workshops, surveys or interviews to gather their feedback. This makes it possible to establish the requirements that will be taken into account in the design of innovative solutions.
RE can also help model and organize requirements consistently, grouping them into different categories and prioritizing them according to their importance and relevance to the innovation project. This clarifies the requirements and makes them easier for the development team to understand.
Finally, RE can help validate requirements to ensure they are correct and complete, testing them and confronting them with actual user needs. This ensures that innovative solutions will be adapted to the needs of users and that they will respect the constraints of the project.
In sum, RE plays a crucial role in innovation processes by helping to establish and manage the requirements that underpin innovative solutions.
4 ChatGPT about professional RE
What are the professions in which it is important to master RE?
There are several professions in which mastering RE is important. Here are some examples:
- Project Manager: The project manager is responsible for managing the entire project, from defining objectives and steps to the delivery of the final product or service. To do this, they must be able to collect, model and manage project requirements effectively to ensure objectives are met on time and on budget.
- Software Engineer: The Software Engineer is responsible for developing software and computer applications to meet the needs of users. To do this, he must be able to understand the requirements of the project and translate them into concrete solutions using the appropriate tools and technologies.
- Functional analyst: The functional analyst is responsible for defining the functionalities and technical specifications of products or services taking into account the needs of users and the constraints of the project. To do this, it must be able to collect, model and manage project requirements in an accurate and structured manner to ensure that proposed solutions will meet user needs.
- Quality Engineer: The Quality Engineer is responsible for ensuring that the products and services developed meet the required quality standards and criteria. To do this, he must be able to understand the project requirements and use them to establish tests and quality control procedures to verify that products and services meet the requirements.
In short, mastering RE is important in many professions related to project management, software and application development, and the quality of products and services.
Is it useful to master RE in the business of Business Analyst or Product Owner?
Yes, it is very useful to master RE in the professions of business analyst and product owner.
The business analyst is responsible for analyzing the needs of users and customers to define the functionalities and specifications of products or services. To do this, it must be able to collect, model and manage project requirements effectively to ensure that proposed solutions will meet user needs and meet project constraints.
Similarly, the product owner is responsible for defining and prioritizing product features based on user needs and project goals. To do this, he must be able to understand the requirements of the project and use them to establish a development plan and success criteria for the product.
In both cases, mastery of RE is therefore essential to ensure that the proposed solutions will meet the needs of users and respect the constraints of the project.
What is the typical curriculum for an RE course?
There is no standard curriculum for an RE training, as it depends on the duration and level of training, as well as the skills and knowledge expected of participants. However, here are some examples of topics that can be covered in an RE course:
- Introduction to RE: the basic concepts of RE, the roles and responsibilities of different stakeholders, the different types of requirements (functional, non-functional, quality, etc.).
- Needs collection: methods and tools for collecting the needs and constraints of different stakeholders, interview and workshop techniques, main sources of information and data for needs collection.
- Modeling and organization of requirements: requirements modeling techniques (diagrams, matrices, etc.), different approaches.
What is the leading certification body for RE?
The leading certification body in RE is the International Institute of Business Analysis (IIBA), which is an international trade association that aims to promote best practices in business needs analysis.
The IIBA offers several RE certifications, including the Certified Business Analysis Professional (CBAP) certification for experienced professionals, and the Entry Certificate in Business Analysis (ECBA) certification for entry-level professionals. These certifications are recognized worldwide and can be obtained by passing a written exam.
In addition to the IIBA, there are other RE certification bodies, such as the International RE Board (IREB) or the Association for the Advancement of Cost Engineering (AACE). These organizations also offer globally recognized certifications for RE professionals.
5 Conclusion: towards the “extended requirements engineer”
What does this simple experience prove? Certainly not that ChatGPT can be used to replace requirements engineers. Indeed, I do not think that “knowing” a little about RE, being able to provide examples of requirements or the structure of a requirements specification document is enough to pretend you are a professional requirements engineer. However, I am pretty sure that a clever student (and soon RE professional) will be able to use AI to design simple or standard systems, produce creative ideas, generate user interfaces, create mockups and prototypes, argue for design options, identify defects in the requirements specifications, etc. RE practice might be impacted in a way that the requirements engineer uses AI to extend their capabilities. As designers they will use chatbots to produce mockups on the fly while discussing with customers; as product owners, they will interact with developers and analysts in more frequent and shorter iterations, where the AI will serve to bridge the gap between their abstract definition and their concrete view. They will use chatbots to refine requirements, produce creative ideas, identify the legal requirements that apply to a particular kind of project, uncover forward and backward requirements traceability links, etc. Somehow, the transformation of the RE practice will be similar to that explored by artists to create pictures, films or music with already quite convincing results. The ethical, legal, ownership and intellectual property problems will probably be the same too.
As an RE educator, my first concern is that RE students acquire the knowledge and know-how expected from an RE professional. This does not mean keeping them far away from AI, but teaching them the fundamentals of RE, putting them in realistic situations, testing their competencies both without and with AI, and both for traditional systems and for AI-based systems. I have no doubt this will imply some adaptations for certification too. Of course, I could also use AI to produce lecture material including case studies, check responses by students, mark assignments, follow students’ progress, adapt lectures to students’ progress, etc. This is, however, out of the scope of an RE educator’s concerns. I believe the key question for the future of RE education and certification is rather the interplay between RE and AI, as already addressed in research.
As a researcher, I always find it interesting to change the angle of approach to problems. So why not ask ChatGPT what it knows about itself from an RE perspective. Here was my last question to ChatGPT and its answer, just for fun:
What are the 10 main requirements implemented by ChatGPT?
ChatGPT is a chatbot that uses natural language processing and machine learning to engage in conversation with users. It does not have specific requirements, but rather is designed to respond to user input in a way that is coherent and engaging. Here are some of the key features of ChatGPT:
- ChatGPT is trained on large amounts of data to learn how to understand and generate natural language. This allows it to engage in conversation with users in a way that is similar to how humans communicate.
- ChatGPT uses machine learning algorithms to generate responses that are relevant to the user's input, and that are appropriate in the context of the conversation.
- ChatGPT is designed to be flexible and adaptable, and can learn from its interactions with users to improve its performance over time.
- ChatGPT is able to handle a wide range of conversational topics, from casual conversation to more complex discussions.
- ChatGPT is designed to be user-friendly and easy to use, with a simple interface that allows users to type or speak their input and receive responses in real time.
- ChatGPT is able to handle multiple concurrent conversations with different users, and can switch between conversations seamlessly.
- ChatGPT is designed to be scalable, and can be used by individuals, businesses, or organizations to support a variety of different applications and use cases.
- ChatGPT is built using state-of-the-art natural language processing and machine learning technologies, and is constantly updated with new features and improvements.
- ChatGPT is available as a cloud-based service, and can be accessed from any device with an internet connection.
- ChatGPT is designed to be customizable, and can be tailored to meet the specific needs and requirements of different users and applications.
Curious readers are invited to test these features and experiment by themselves.
Footnotes and References
- [i] aire-ws.github.io/aire22
- [ii] INFORSID stands for INFormatique des ORganisations et Systèmes d’Information et de Décision
- [iii] tabnine.com
- [iv] github.com/features/copilot
- [v] visualstudio.microsoft.com/fr/services/intellicode
- [vi] chat.openai.com/chat
- [vii] thonny.org
- [viii] COMTECDEV stands for Communication, Technologies et Développement
- [ix] I wanted to test how well ChatGPT talks about RE in French (my students use French as a natural language). Given that the RE literature is mainly in English (or at least much nore so than in French), and given the numerous difficulties raised by the translation of documents on RE, it is not completely excluded that questions asked in English (or in a different language) would get a different answer. The interested reader can experiment this very easily.
- [x] The term in French was "maître d’oeuvre"
Fascinating article that lays the foundations of RE to explain the important objectives of this subject. Then this article details in detail how artificial intelligence can help the requirements engineer. It's a great opening for us trainers to know how to tell students what the future of our profession could be.