Welcome to Software Architecture. This course treats architecture as a series of explicit, testable decisions rather than a collection of technologies or diagrams. In this first module, the focus is on turning ambiguous business intentions into evidence that can guide and later evaluate architectural choices.
This lesson begins with the first essential move: translating a business objective into a measurable quality-attribute scenario. By the end, you should be able to distinguish a business goal from a quality requirement, identify the quality attributes that may support that goal, and write a scenario with a clear trigger, operating condition, expected response, and measurable target.
From business language to architectural requirements
Business stakeholders rarely begin with architecture vocabulary. They say things such as:
- “We cannot lose orders during promotions.”
- “We need to release features faster than competitors.”
- “Customers must trust us with their data.”
- “The system needs 100% uptime.”
- “We need to integrate an acquired company quickly.”
These are legitimate concerns, but none is yet a usable architecture requirement. They identify an outcome that matters, not the system behavior and measurement that demonstrate the outcome has been achieved.
For example, “100% uptime” can conceal several very different needs:
- Prevent lost revenue when customers place orders.
- Avoid reputational damage after a recent outage.
- Reduce customer-support load.
- Meet a contractual or regulatory obligation.
- Keep a noncritical internal reporting function available.
An architect should not immediately respond with a solution such as multi-region deployment, replication, or a particular cloud service. First establish the motivation, the business impact, and the user flows that truly matter. The same technical target can be wasteful in one context and insufficient in another.
Lesson 37 - Translating Quality Attributes to Business Concerns
Watch “Lesson 37 - Translating Quality Attributes to Business Concerns” from Software Architecture Monday. It establishes why terms such as performance, availability, and deployability must be connected to business outcomes rather than presented as architecture jargon.
Watch the language gap for the distinction between architectural quality attributes and the concerns business stakeholders express. Then watch time to market as an example of one business concern supported by several qualities. Finish with the caveat: a business objective is usually not delivered by one isolated “ility.”
The important caution is that the mapping is many-to-many:
- A business concern such as time to market can depend on modifiability, testability, and deployability.
- A quality attribute such as availability can support revenue protection, user trust, compliance, or competitive positioning.
- The relationship is a hypothesis to validate with stakeholders, not a universal lookup table.
A quality attribute describes how well a system performs its responsibilities under stated conditions. Common examples include performance, availability, security, reliability, modifiability, usability, interoperability, and recoverability. Architectural structures strongly influence these qualities, which is why vague quality claims are dangerous: they cannot meaningfully constrain or evaluate a design.
Align technical strategy with business requirements
Read this Microsoft Learn guidance to see a disciplined conversation move from an initial business request to flow-level, measurable needs—without prematurely choosing an implementation.
In the section “Probe: Understand the motivation,” read the probing guidance. Notice that the objective is to expose pressures, incentives, and consequences, not to challenge the legitimacy of the request. Then continue to “Clarify: Translate requests to requirements” and read the flow-level breakdown. Focus on how a blanket uptime request is split according to which user flows create value and which can temporarily degrade.
Business objective, functional requirement, quality requirement, and constraint
These four ideas are often blended together. Keeping them separate prevents confused design discussions.
| Kind of statement | Example | What it tells the architect |
|---|---|---|
| Business objective | “Protect revenue during flash sales.” | Why the change matters |
| Functional requirement | “A customer can submit an order.” | What the system must do |
| Quality-attribute requirement | “At promotional peak load, an eligible order submission receives a durable acknowledgement within 2 seconds for at least 99.9% of requests.” | How well the system must do it, in a condition |
| Constraint | “Payment card data must remain in the approved payment provider’s environment.” | A boundary on the solution space |
A scenario can reveal that a functional behavior needs clarification. For instance, “accept the order as payment pending while the provider is unavailable” is a product and risk decision, not merely a technical fallback. The product owner, finance, fraud, and operations stakeholders may reasonably reject it for some payment methods. The scenario makes that disagreement visible early.
Quality-attribute scenarios: a compact test of architecture
A quality-attribute scenario converts a broad concern into an observable claim about system behavior. The Software Engineering Institute’s scenario format has six core parts:
- Stimulus source — who or what initiates the event?
- Stimulus — what event occurs?
- Environment — under what operating conditions?
- Artifact — what part of the system is affected?
- Response — what should the artifact do?
- Response measure — how will observers determine whether the response was good enough?
The ordering matters less than completeness, but do not confuse the source with the stimulus. An external payment provider is a source; its repeated timeout is the stimulus. A customer is a source; submitting an order is the stimulus.

The template’s top fields preserve the reasoning that led to the scenario:
- Business goals: the value or harm at stake.
- Relevant quality attributes: the qualities the scenario is intended to test.
- Questions: unresolved choices that need a decision.
- Issues: risks, dependencies, or organizational obstacles already exposed.
The last two fields are not administrative clutter. A well-written scenario often uncovers questions that architecture alone cannot settle: “Which orders may proceed without immediate authorization?” or “Who accepts the financial liability?” Recording them prevents hidden assumptions from becoming accidental design commitments.
[PDF] Eliciting and Specifying Quality Attribute Requirements
Read the selected slides from the Software Engineering Institute’s presentation for the formal rationale behind scenario-based quality requirements and the six-part refinement method.
First, on the slides “Stakeholders and Quality Attributes” and “Quality Attributes and Architecture,” read the framing of quality attributes. Next, scan “Problems With Quality Attribute Requirements” for examples of vague, non-operational wording such as claims of high performance or ease of use. On “Step 5: Scenario Brainstorming,” read the three scenario forms. They illustrate use-case, growth, and exploratory scenarios. Then study “Step 8: Scenario Refinement” and read the refinement checklist. Finally, follow the worked example beginning with the saturation scenario; observe how the initial concern becomes a stimulus, environment, response, measure, questions, and issues.
Three useful kinds of scenario
A business objective normally requires more than one scenario. The SEI material distinguishes three useful forms:
- Use-case scenario: a normal but significant operational condition. Example: a customer submits an order during peak traffic.
- Growth scenario: a change in scale, scope, or capability. Example: traffic doubles over a year, or a new regional channel is introduced.
- Exploratory scenario: a disruptive or uncertain condition. Example: half of a dependency’s instances become unreachable.
These are not three levels of severity. They probe different architectural properties. A system might meet today’s normal-load latency target but be impossible to scale without a disruptive redesign. Another might perform well until a dependency fails, at which point its fault-containment behavior is exposed.
A worked translation: protecting checkout revenue
Consider this initial business objective:
Protect completed-purchase revenue during flash-sale campaigns by preventing checkout disruption from causing avoidable abandoned orders.
This is a valuable starting point, but it does not yet state a quality requirement. We need to uncover its operational meaning.
1. Identify the value-bearing flow
The objective is not “make the whole website always available.” Its critical user journey is order submission at checkout. Catalog browsing and order-history lookup may matter, but they have different consequences and may justify different targets.
This narrowing protects against a common error: applying the most expensive reliability requirement to every feature because one flow is revenue-critical.
2. Identify plausible quality attributes
For this particular objective, the likely quality attributes are:
- Availability: can eligible customers continue submitting orders?
- Performance: does the checkout response remain timely under campaign load?
- Reliability: are accepted orders recorded once and recoverable for later payment handling?
- Fault tolerance: does an external payment-provider failure disable the entire checkout flow?
These labels are useful for framing architectural analysis, but they are still not requirements. “High availability” and “fault tolerant” remain vague until the situation and target are stated.
3. Select a representative event and condition
Suppose stakeholders confirm the following product policy:
- For a defined category of low-risk, eligible orders, the business may accept an order as payment pending if immediate payment authorization is temporarily unavailable.
- Orders that do not meet that policy must receive a clear failure response rather than a misleading confirmation.
Now an external payment-provider outage becomes a scenario worth analyzing. It is concrete, revenue-relevant, and likely to force meaningful design trade-offs.
4. Write the refined scenario
The following is an illustrative scenario. Its numbers are intentionally examples; real values must be negotiated using business impact, expected load, operational cost, and risk tolerance.
| Scenario element | Refined statement |
|---|---|
| Scenario name | Checkout continuity during payment-provider unavailability |
| Business goal | Protect flash-sale revenue while avoiding unrecorded or duplicate orders |
| Relevant quality attributes | Availability, performance, reliability, fault tolerance |
| Stimulus source | External payment provider |
| Stimulus | The provider returns timeouts or connection failures for authorization requests for 15 minutes |
| Environment | A flash-sale period with 200 order-submission requests per second; checkout and the order-recording capability are otherwise operating normally |
| Artifact | The customer checkout and order-submission flow |
| Response | For eligible orders, the system records one durable order in a payment-pending state, returns a truthful acknowledgement to the customer, and arranges later payment reconciliation. For ineligible orders, it returns an explicit failure without creating a confirmed order. |
| Response measure | During the 15-minute simulated outage, at least 99.9% of eligible order submissions receive a durable acknowledgement within 2 seconds; no business order is created more than once; and every payment-pending order is reconciled or explicitly resolved within 15 minutes after provider recovery. |
Notice what this scenario does not specify:
- a message broker,
- a particular database,
- an active-active deployment,
- a circuit breaker library,
- a retry algorithm,
- a cloud provider.
Those are candidate architectural responses to investigate later. A scenario should constrain the design by stating the required behavior and evidence of success, not dictate the technology before alternatives have been compared.
It does, however, expose decisions that stakeholders must make:
- Which orders are eligible for delayed authorization?
- Is “payment pending” acceptable to customers, accounting, fraud controls, and fulfillment?
- What customer-facing wording avoids claiming that payment succeeded?
- What is the authoritative record if a late authorization response arrives?
- Is the 15-minute reconciliation target financially and operationally acceptable?
These questions are productive. They convert an apparently technical availability discussion into a joint conversation about revenue, customer experience, risk, and operating cost.
Making the response measure genuinely measurable
A response measure is not merely a number attached to a requirement. It must define what is counted, when it is counted, and what threshold applies.
Compare these statements:
| Weak measure | Why it fails |
|---|---|
| “Checkout should be fast.” | No population, statistic, threshold, or observation point |
| “Checkout latency must be under 2 seconds.” | Does this mean average, median, or worst case? From the browser or service boundary? Under what load? |
| “99.9% of eligible submissions should be accepted.” | Useful direction, but it omits time window, traffic condition, and how duplicates or incorrect acknowledgements are handled |
| “During a 15-minute provider outage at 200 requests per second, 99.9% of eligible submissions receive durable acknowledgement within 2 seconds.” | A testable claim with a condition, population, threshold, and timing boundary |
For each measure, establish five details:
- Population: which requests, users, regions, tenants, or transaction types count?
- Observation boundary: where does timing start and end? For example, from receipt at the public API to durable acknowledgement being emitted.
- Statistic: is success judged by a percentage, percentile, maximum, count, or recovery duration?
- Target: what threshold distinguishes acceptable from unacceptable behavior?
- Window and condition: over what interval and operating environment is the target evaluated?
The checkout example includes multiple measures because a fast acknowledgement alone is not enough. If the system accepts the same order twice, it can create costly fulfillment or accounting errors. If pending orders never reconcile, it has merely postponed the failure. Quality attributes often interact, so the measurements should guard against optimizing one dimension while damaging another.
A target should also be proportionate. “No downtime under any conceivable failure” is not a serious requirement unless the business accepts the extraordinary cost and complexity required to pursue it. Conversely, a very modest target for a revenue-critical flow may simply transfer losses to customers and support staff. Scenario refinement is where those trade-offs become explicit.
A practical method you can reuse
When presented with a broad objective, use this sequence before discussing architecture options.
-
State the business objective in outcome language.
Identify the revenue, risk, customer, compliance, or strategic consequence. If possible, record the business measure, such as reduced lost orders or a required regulatory deadline. -
Probe for motivation and scope.
Determine who is affected, which user flow matters, what prompted the request, and what harm occurs if that flow fails or slows down. -
Identify candidate quality attributes.
Treat them as lenses for analysis, not as an answer. Several qualities may jointly support the same objective. -
Choose a representative scenario type.
Use a normal operation, growth, or failure condition that would expose the quality concern meaningfully. -
Fill all six scenario fields.
Be especially precise about environment and response measure; these are commonly omitted. -
Separate desired behavior from design choices.
State what the system must make observable. Defer the “how” until candidate architectures can be evaluated. -
Record questions, issues, and assumptions.
A missing policy or unclear owner is a real architectural risk, not a gap to silently fill with technical preference.
A concise quality-attribute scenario can therefore serve several purposes at once: it aligns stakeholders, guides design trade-offs, provides a basis for testing, and reveals where the business has not yet made a necessary decision.
Key takeaways
A business objective explains why something matters; a quality-attribute scenario specifies how well the system must behave in a defined condition to support that objective.
A strong scenario includes:
- stimulus source and stimulus,
- environment,
- artifact,
- response,
- response measure,
- plus the business goal, relevant qualities, open questions, and issues.
Avoid vague requirements such as “high performance” or “100% uptime.” Replace them with observable claims that name the affected flow, conditions, measurement boundaries, thresholds, and time windows. Do not mistake a quality attribute for a solution: the scenario should create a fair basis for evaluating alternative designs.
Next, you will build a workload model. That extends the environment portion of a scenario into a more rigorous description of traffic shape, data volume, latency targets, and growth assumptions—the evidence needed to judge whether an architecture can meet the scenarios you define.
Can't find a good explanation? Sign up and we'll make it for you
Sign up