Engineering requirements for a CAD API system
Vertex Systems have always offered Master´s Thesis opportunities to university students to support their academic and professional qualifications. There are more than 40 Master´s Theses completed for Vertex during the years. The research results are implemented in our product development to provide cutting-edge software solutions for our customers.
In the “My Master´s Thesis Journey” blog series, our young professionals tell about their Master´s theses and what they have learned and accomplished during the journey.”

Background
In the summer of 2021, I began my journey at Vertex Systems with just one year of Computer Science studies under my belt. I worked on the Vertex BD product, more specifically on integration between BD and the Vertex Sync cloud platform. I, and other Vertex trainees, were immediately given tasks similar to those of more senior developers, which was challenging but also highly motivating. Since then, I worked at Vertex every summer, until starting my master’s thesis in the beginning of 2024. After discussing my interests and future technological opportunities identified at Vertex, we decided to focus the thesis on a potential CAD API product.
The leading CAD solutions on the market have APIs that allow users to automate manual tasks, customize how the CAD program functions, and integrate other software with the CAD system. A CAD API makes it possible for other parties than in-house CAD developers to write extensions and modifications that generate real value to end-users. It took some time to find the right focus and research questions for the thesis, but in the end, we decided to start where every software system begins, by identifying the stakeholders and requirements of the system.
Engineering requirements for a CAD API system
The research began by identifying the stakeholders of a CAD API system. Knowledge of the existing CAD environment and guiding questions suggested in research literature were used to identify nine stakeholder groups. The stakeholders were evaluated and placed on a power interest matrix to help prioritize them in requirement elicitation efforts.
After stakeholder analysis was complete, conversational methods and an analytic market study were chosen as complementary requirement elicitation methods. The market study targeted existing CAD API solutions, attempting to identify and reuse requirements from them. Ten interview and brainstorming sessions were conducted to hear out key stakeholders and form requirements based on their wants and needs. The elicitation efforts produced a substantial amount of data, that was interpreted to form an initial list of requirements.
The raw requirement list was refined into a consistent natural language representation with classification and prioritization. A survey was designed and sent out to stakeholders to gather feedback and to validate the requirements. The final list of refined and validated requirements is the main output of the thesis.
Summarizing the resulting list of more than a hundred requirements was challenging, however some key themes were identified and further discussed in the thesis. There were topics that showed up repeatedly during requirement elicitation and validation, either due to their importance or due to their divisiveness. Key themes include comprehensive documentation, logging and debugging tools for developers, proper level of abstraction and error handling, as well as carefully planned governing processes.
Perhaps the most important theme of all, hovering over the entire research, was maintainability and the inherent conflict between maintainability and comprehensiveness. To be comprehensive, an API should grant users access to any functionality that they may ever ask for, but to be maintainable, an API should be as small and restricted as possible and avoid giving access to functionality that may lead to data corruption or program crashing.
The described research process is illustrated visually below.

Conclusions
Organizing and facilitating interviews and brainstorming sessions with Vertex customers and other stakeholders took me out of my comfort zone and challenged me in the best way possible. It gave me an overall picture of the environment where Vertex and other CAD providers operate, which is something that I was struggling to grasp before. Talking with such diverse groups of people, studying relevant scientific literature, and looking into the API solutions of other CAD systems gave me perspective and taught me a lot about the world of CAD and API products.
The results of the thesis shed light on what kind of things should be considered in development and maintenance of a CAD API product. The results are used at Vertex to help evaluate both the potential value and the potential cost of such a system, and to hopefully aid in making informed decisions regarding a potential Vertex CAD API product. After finalizing my thesis and graduating from my computer science degree back in October, I’m pleased to continue my journey at Vertex into the future.