As architects, we need various tools to help us in our job. These tools include diagramming tools, documentation tools, tools to evaluate architecture, and collaboration and communication tools. In this post, I will explore some tools you should consider in your toolbox.
ChatGPT can help you to create first drafts of some parts of your architecture documents. You can provide the ChatGPT model with some initial inputs, such as a high-level description of the system’s requirements, user stories, and quality attributes. Then, let the model generate a first draft of the architecture document.
Here is an example:
And here is the ChatGPT response:
As you can see, the generated document is a decent first draft that you can use as a starting point. This can save you time and effort in the document creation process.
However, it’s important to note that you should always carefully review and edit GPT-generated text to ensure accuracy and quality.
You can take it one step further and ask ChatGPT to transform the generated document to one of the plain text markup languages like Markdown or Asciidoc (For more information about why you should consider your documentation as code, read this article).
QuillBot is another AI tool you can use as a Grammar Checker and rewrite sentences or paragraphs while maintaining the original meaning.
QuillBot offers browser extensions for Chrome, Firefox, and Microsoft Edge, allowing you to access the paraphrasing tool while browsing the web quickly. It can also be integrated with popular writing tools like Microsoft Word and Google Docs.
In addition, QuillBot supports multiple languages and can help you translate content.
QuillBot offers both free and premium plans. The free plan provides basic paraphrasing capabilities with a limited number of characters per use, while the premium plan offers advanced features, such as more writing modes, faster processing, and no character limits.
Grasp is a new tool I recently discovered that I am using to highlight and organize quotes and thoughts from the web. You can also add your notes to the highlights and share them with colleagues, friends, or social networks in different formats. You can, for example, share them as images or copy them and save them in another tool.
This can be very interesting if you are reading articles and online books and want to highlight important sections and add your notes without switching between your browser and another document where you are adding your notes.
You can find more information by watching this video.
- Diagramming Tools (Draw.io & PlantUML)
There are several popular diagramming tools that architects use. The best tool for you depends on your company, specific needs, preferences, and budget. Consider the following tools that I am using I am using in my professional and personal projects.
Draw.io is a web-based diagramming tool that offers a wide range of features. It has a user-friendly interface and a large selection of templates and shapes for various diagrams. You can save your Draw.io diagrams in the XML format that can be stored in Git and versioned like any other source code file.
PlantUML, on the other hand, is a text-based diagramming tool that uses a simple syntax to create various types of diagrams. It is particularly well-suited for creating UML diagrams such as component, sequence, and class diagrams. One of the significant advantages of PlantUML is that it can be integrated easily with IDE, such as Visual Studio and IntelliJ.
- Code Editors
As an architect, staying hands-on in writing and reading code is essential to facilitate more effective communication with developers. Utilizing an IDE, such as Visual Studio Code or IntelliJ that IDEs I am using, can enhance this process.
These tools aid in reverse engineering and generate diagrams directly from the codebase, providing a clear visual representation of the system’s structure. IDEs offer valuable features for creating and managing documentation, aligning with Architecture as Code. By leveraging the capabilities of IDEs like Visual Studio Code and IntelliJ, architects can strengthen their collaboration with developers and ensure a more coherent and well-documented system.
GitHub Copilot provides code snippets and suggestions based on the context. This can help you quickly generate boilerplate code, explore different designs, and understand best practices for specific programming languages or frameworks. Copilot can also help you generate code prototypes or proof-of-concept implementations.
The following is an example where I entered a method name on the left side of my editor, and Copilot provided several options to complete my method on the right side.
You can find here a quick start guide for GitHub Copilot.
- Architecture validation tools:
Sonagraph-Architect provides a visual representation of the software architecture, including its components, dependencies, and relationships. It helps to understand the structure and dependencies of your applications and identify potential issues. Currently, it supports C#, C/C++, Java/Kotlin, and Python 3.
You can learn more about this tool here.