This blog is part of a series on how LLMs can help architects in their daily work.
This is the last blog in my series on how LLMs can help software architects in their daily work. In my previous blog, we explored how to use LLMs to help you choose the right architecture patterns
Many architects struggle with non-functional requirements, often identifying them too late, documenting them poorly, or failing to prioritize them effectively. The result? Systems that work functionally but fail to meet performance, security, or scalability needs when it matters most.
Non-functional requirements (NFRs), such as performance, scalability, security, and maintainability, have a significant impact on your architecture. Fortunately, LLMs can support architects throughout the entire NFR process: from identification to documentation to prioritization.
1. Identify NFRs
LLMs are great at generating candidate NFRs based on your system’s context. Feed in user stories or functional requirements with this prompt:
As a seasoned software architect, help me identify a list of non-functional requirements (NFRs) for the following requirements.
Please adhere to the following rules when creating NFRs:
– Suggest at least five distinct non-functional requirements
– Ensure that each NFR has clear acceptance criteria and can guide architecture decisions
”’ [Insert your functional requirements here]
2. Document NFRs
Use LLMs to document and structure NFRs in a consistent format that includes title, description, acceptance criteria, and architectural impact:
Help me format my NFRs in a structured way similar to this example:
Title: Data Security
Description: Secure sensitive user data per industry standards.
Acceptance Criteria:
– Encrypt sensitive data using AES-256
– Monitor and log access
– Retain logs for 90 days
Impact: Requires encryption modules and centralized logging
3. Detect Trade-offs
LLMs can analyze trade-offs between competing requirements. Strong encryption improves security but may reduce performance. Scalability increases costs. Use this prompt to surface conflicts:
Here are my system’s NFRs. Identify potential conflicts and dependencies and suggest trade-offs:
”’ <list of NFRs>
4. Prioritize NFRs
Not all NFRs carry equal weight. Use LLMs to help prioritize based on business goals, technical feasibility, and constraints:
Based on the following NFRs, suggest a prioritization framework and explain why each NFR should be ranked higher or lower and provide actionable steps for addressing the top priorities.
”’ <list of NFRs> ”’
LLMs won’t replace your architectural judgment, but they’ll significantly accelerate your NFR process. Start early in your project, validate results with stakeholders, and adapt recommendations to your specific context.
To explore more practical ways to use LLMs in architecture, check out my book Generative AI for Software Architects: How to Use LLMs to Boost Your Productivity.