Skip to main content
Software Architectures

Software Architecture: Roles, Context, and Structures

Published: 2026-08-20
Level: postgraduate
Audience: Postgraduate students in Software Architectures

Prerequisite Knowledge

This lecture builds on the following concepts from earlier lectures. If any feel unfamiliar, review the linked notes before proceeding.

Previously Covered in This Subject

  • What Software Architecture Is — and Is Not — covered in Lecture 1; builds toward 2.10 What Software Architecture Is
  • Quality Attributes and the Architect's Commitments — covered in Lecture 1; builds toward 2.7 Business Goals, the Utility Tree, and Scenarios and 2.12 Availability: A Worked Calculation
  • Functional and Non-Functional Requirements — covered in Lecture 1; builds toward 2.3 The Architectural Context
  • Constraints and Early Design Decisions — covered in Lecture 1; builds toward 2.2 The Role of the Architect in an Agile Environment
  • Architectural Patterns vs Design Patterns — covered in Lecture 1; builds toward 2.11 Architecture Structures and 2.14 Views
  • Development Models: Waterfall, Agile, Prototyping, and DevOps — covered in Lecture 1; builds toward 2.5 Life Cycle Processes
  • Budgeting, Costing, and Project Management Roles — covered in Lecture 1; builds toward 2.6 The Architect's Activities

2.1 Course Recap and Administrative Framing

Hook. You are about to spend a semester studying an engineering discipline that is not a coding course — so what exactly is it, and how do you pass an exam on it without writing a single line of code? This first section sets the rules of the game: how the course runs, what the quizzes and exam expect, and why "software architecture" is worth studying at all.

2.1.1 Course Format and Flip Mode

This is the second session of a 16-session course, and each session runs for about ninety minutes. The course runs in flip mode — a common arrangement in modern engineering courses. In flip mode the roles of class and homework are inverted:

  • Pre-recorded lectures carry the conceptual overview. Before each contact session you watch a recorded lecture that gives the full coverage of the theory — the definitions, the frameworks, the worked ideas.
  • The live contact session is for interaction and flow. Class time is spent on student questions, clarifications, and connecting the ideas into a coherent arc — not on first-pass teaching.

This matters for how you should study: the theory lives in the recordings, so arrive at the session already having done the reading and watching. The live session assumes that baseline and builds on it.

2.1.2 Quiz and Examination Expectations

Exam note: The course handout lists three quizzes. Each quiz has 25 multiple-choice questions in a 30-minute window with open internet — that works out to about a minute per question, so pacing matters as much as knowledge.

Open internet sounds generous, but it comes with a trap: some quiz banks on the internet carry wrong answers. The course material stays the reliable source — search engines can help, but they cannot replace understanding. Preparation means going through the material; a student who covers it properly should be able to handle the quiz well, and a student who searches rather than learns will find the time pressure and the misleading sources working against them.

The examination paper matches the course content exactly, but the questions are case-study oriented. They require application of mind rather than reproduction of content from a book — you will be handed a scenario and asked to reason about it with the concepts of the course, not asked to recite definitions. Last year's question paper is made available by the examination department, and it is worth reviewing it in advance so you can see the format and the level of reasoning expected. (The exact distribution channel and format of last year's paper are course-administrative details defined in the official course handout, so check that handout for the current arrangement.)

2.1.3 Q&A on Course Content Flow

A student asked whether the contact sessions would follow the flow of topics shown in the course handout. This is a fair question — the handout and the slides do not line up at first glance — so it is worth preserving both the question and the answer.

Q: The course handout lists the overall flow of topics and sessions, but the slides do not seem to match that sequence. Should the content follow the schedule?

A: The handout gives a coarse overview; the slide sequence looks mismatched only until each session is mapped onto it. The course is fast-paced and runs on a fixed schedule, and the aim is to keep the flow without diluting the content. Pre-recorded lectures are part of the course in flip mode, so the visible mismatch between slides and handout reflects the coarse mapping, not a gap in coverage.

The course is deliberately fast-paced. The intent is not to dilute the material to match an older offering; the aim is to preserve the flow and the coverage. If a topic seems out of order on the slide deck, trust the handout's mapping and the session plan rather than assuming something was dropped.

2.1.4 Level of Abstraction

This course sits at a high level of abstraction, and you are asked to study it at that level. Studying it at a low level of abstraction leads to being overwhelmed — the subject is not a list of low-level technical details to memorize, and trying to treat it that way buries the important structure under the trivia.

Intuition. Think of a city map. Studying software architecture at a low level of abstraction is like trying to learn a city by memorizing every bus stop and streetlight; studying it at the right level is like reading the map — the roads, the districts, the flow of traffic. A person who holds the map in their head navigates better than a person who has memorized isolated details. The same holds here: a person who holds an overview will handle the examination better than a person who has memorized selected details.

The 80/20 rule applies: twenty percent of the effort covers eighty percent of the requirement. In practice this means a relatively small investment in the right overview buys most of the course's value — but only if that twenty percent is spent on the architectural view rather than scattered low-level details.

Software architecture is not a coding course, so the course does not teach code. Coding is a low-level activity — the individual statement, the individual call — whereas architecture sits above that, concerned with the structure that holds the code together. If you come from a coding background, resist the urge to drop to the code level: the exam tests the architectural view, not the implementation details.

2.1.5 Why Software Architecture Matters

Software architecture focuses on quality attributes — the non-functional characteristics that determine how well a system serves its purpose over time. The discipline addresses functional and non-functional requirements and system constraints, but its central concern is the quality attributes:

  • Performance — how quickly the system responds.
  • Modifiability — how easily the system can be changed.
  • Security — how well the system resists misuse.
  • Scalability — how well the system handles growth in load or users.
  • Reusability — how much of the system can be reused elsewhere.
  • Testability — how easily the system can be verified.
  • Usability — how easily people can use the system.
  • Availability — how reliably the system stays operational.

These are the attributes that separate a system that merely works from a system that keeps working, keeps being improveable, and keeps being safe under load. They will recur in nearly every topic in this course — the utility tree, the scenarios, the architecture evaluation methods — so it is worth building a clear mental list of them now.

Common pitfall. Treating architecture as "just a box-and-arrow diagram of the code." The diagram is only a snapshot; the real content of architecture is the decisions that shape the quality attributes above. If you study the course thinking architecture = pictures of components, you will miss the reasoning the exam actually tests.

Why does this matter economically? About 80% of typical software cost lands in maintenance — the ongoing work of fixing, extending, and adapting a system after it is first delivered. (The professor stated this 80% figure in the session; published studies vary, with commonly cited estimates of maintenance's share of total lifecycle cost ranging from about 60% to 90%.) Because delivery has been phased out in most modern product teams, artifacts are delivered from day one, keeping operations in sync with development and enabling continuous deployment. The result is that maintenance, development, and enhancement have become a perpetual activity in most products — a system is rarely "finished," and the architecture that makes that ongoing change cheap or expensive is exactly what this course teaches you to think about.

Recap. The course runs in flip mode at a high level of abstraction; the quizzes are time-pressured open-internet MCQ sets; the exam is case-study oriented; and architecture matters because it is where the quality attributes — the things that make software worth keeping — get decided.

2.2 The Role of the Architect in an Agile Environment

Hook. "Agile means we don't need a plan — we just react." That is a common way to read agile, and this section exists to correct it. The architect does not disappear in an agile environment; the architect becomes more important, because someone still has to keep the structure coherent while the team responds to constant input.

2.2.1 Architecture in Agile Projects

A common question is whether architecture has a place in an agile environment. The answer is that the architect becomes more important. The reasoning is straightforward: agile methods accept change continuously, and every change that crosses the boundaries of the architecture is expensive. So the architect takes the major architectural decisions in advance so that changes of an architectural kind are minimized. Agile flexibility is about accepting inputs, not about abandoning structure — the team stays responsive to new requirements precisely because the load-bearing decisions were made early and do not keep moving.

Agile architecture (supporting background). Texts on agile architecture make the same point from the other direction: a successful architecture is agile — resilient and loosely coupled, with a core set of well-reasoned design decisions plus enough "wiggle room" that modifications and refactorings do not destroy the original structure. The architecture grows incrementally as the system matures; the parts stay near-independent (separation of concerns), and the architecture stays visible — the design decisions are obvious, communicated, and defended. The term for what happens when this is neglected is technical debt: quick-and-dirty implementation buys speed now and pays a penalty later in increased maintenance costs, and refactoring is how the debt gets paid down.

There is an apparent tension between agile (deliver working software fast, respond to change) and architecture (decide structure early). The underlying philosophies are not at odds: too much up-front planning stifles responsiveness, and too much agility produces chaos. The architect's job is the middle ground — an initial architecture that guides development, kept alive by refactoring as requirements emerge.

2.2.2 Three Kinds of Change

The value of architecture shows up in what happens when a requirement changes. There are three kinds of change, and they differ hugely in cost:

  1. A requirement change that touches no module. When the architecture keeps the major modules and subsystems intact, a requirement change may not require changing those modules at all. This is the cheapest kind — the change lands entirely in configuration, in a new component, or in the way existing components are wired.
  2. A change that forces coordinated change across modules. A change in one module forces changes in other modules; that brings coordination overhead — several teams must change, agree, and integrate together. This is the expensive middle case.
  3. A change inside a single subsystem. The change stays inside one subsystem and leaves the rest of the system alone. This is the easy kind of change — one team owns the work, no coordination across boundaries.

The architect divides the system into modules so that most changes are of the last kind. This is a design goal, not a hope: the module boundaries are chosen so that the changes you can foresee land inside single modules, and the changes you cannot foresee land in modules that happen to be self-contained.

Common pitfall. Treating "the system is modular" as a property you assert in a diagram rather than a property you engineer. Two modules are truly independent only if a realistic requirement change does not propagate across their boundary. If your module boundary follows the wrong seams, every change becomes kind 2 — coordinated and costly — no matter how pretty the diagram is.

2.2.3 Stakeholder Needs and the Cost of Quality

The architect must meet the quality requirements agreed with the stakeholders — the performance, availability, modifiability, security, and other attributes negotiated up front. But the job does not stop at the agreed requirements: the architect must also predict future stakeholder needs and educate the stakeholders accordingly.

Why predict and educate? Because educating stakeholders protects the architect. People who do not realize what they need will blame the architect for not providing it — the requirement that "nobody asked for" becomes, after delivery, "why didn't you build this properly?" The architect who has surfaced future needs in advance has turned an accusation into an agreed decision.

Every quality attribute carries a cost, and the cost is paid by certain stakeholders. Those stakeholders must understand two things:

  • The cost of providing a quality attribute — what the system, schedule, and budget give up so that, say, availability reaches 99.9%.
  • The impact of not providing it — what happens to the business when the system is down for hours, or when a security flaw is exploited.

This cost-of-quality conversation is a negotiation, not a lecture: the stakeholder decides what the business is willing to pay, and the architect must make sure the stakeholder is deciding with open eyes.

2.2.4 Early Decisions and the High-Level Picture

A major part of this course covers three linked things: engagement with stakeholders, design decisions that must be taken early, and constraints imposed by stakeholders or the environment. The environment includes the organization itself: the organization structure of the developing organization, the client organization, and the operations organization all influence the architecture. A system that must be maintained by a small on-call team is architected differently from one maintained by a large vendor team; a client organization with many internal departments shapes different module boundaries than a single-user client.

Intuition. A well-designed system keeps the working of the development organization inside individual components. When components do not change, the architect has done a good job. In other words, the architecture is doing its work when the organizational seams — which team owns which piece — line up with the technical seams — which module contains which change. When those seams disagree, every change becomes a negotiation between teams.

Once the architect holds the high-level picture and can present exactly how a solution will be implemented, a reasonable cost estimate and schedule estimate can be fixed. Without that picture, an agile project has no direction — estimates are guesses, scope drifts, and the "flexibility" of agile becomes chaos. The high-level picture is what converts an agile project from a sequence of improvisations into a disciplined response to change. (Studies of industrial projects support this intuition: there is a "sweet spot" where some up-front architecture effort pays off and is not wasteful — too little produces rework, too much produces rigidity.)

2.2.5 Reusable and Proven Technology

Architects favor transferable, over-the-counter technology with proven quality attributes. The reasoning is economic: a technology that is already used widely has known performance, known security behavior, known support, and known maintenance cost. Betting the architecture on an unproven technology means betting the project on unknown quality attributes.

In a large development organization, reusable modules give a cost advantage and bargaining power over competitors. A company that has built many telecom modules can fit those modules into any new telecom application, reducing the effort needed and strengthening its position in a bid — the reusable inventory lets it promise faster delivery and lower price than a competitor who starts from scratch. Reusable components also lead to independently developed components that may be outsourced or bought off the shelf. A database product can be bought from a vendor when it is productive to do so; a database simply becomes a component of the company's system — a component with a vendor behind it, but a component nonetheless.

Recap. In agile environments the architect stays central: early decisions minimize architectural change, module boundaries steer most changes into single subsystems, stakeholders must be educated about the cost and value of quality attributes, the high-level picture makes estimates possible, and proven reusable technology keeps the risk (and the cost) down.

2.3 The Architectural Context

Hook. An architecture is never designed in a vacuum. By the time an architect draws the first diagram, a dozen forces are already pushing on the project — technology, process, money, people, even the architect's own history. This section maps those forces, because an architect who cannot name the forces acting on the design cannot defend the design either.

The context of an architecture splits into four overlapping worlds: technical, project life cycle, business, and professional. Each contributes constraints and goals, and the architecture is their joint product.

2.3.1 Technical Context

When an architect approaches a problem, the first thing to understand is the technical context: the product itself, the technologies that would be used to build it, and the technological options available. What is the system supposed to do? What platforms, languages, databases, and frameworks are realistic choices? What quality attribute requirements must it satisfy? Nothing influences an architecture more than the quality attributes it must meet — a system that must serve a million simultaneous users is architected differently from one that serves fifty.

The technical context is also shaped by the current technical environment — what is available and proven at the time of design. An architect cannot choose a technology that does not exist yet or is not mature enough to bet a product on. The same architectural problem in 2005 and in 2025 has different answers because the environment changed.

2.3.2 Project Life Cycle Context

The project life cycle consists of analysis, design, development, deployment, and maintenance. The architect must understand where the project sits in this life cycle, because the same decision has different weight at different points:

  • In analysis, requirements and constraints are still being discovered — the architect's input shapes what is built at all.
  • In design, architectural decisions are made and the cost of change is still low.
  • In development, the architecture is being realized and the cost of changing it is rising.
  • In deployment, the system enters operation — decisions here concern infrastructure, rollout, and operations.
  • In maintenance, the architecture determines how cheaply the system can keep changing for the rest of its life — recall that most of a system's cost lands here.

The architect who misreads the life cycle position makes the wrong kind of decision — treating a design-phase decision as if it were maintenance-phase, or locking in structure when requirements are still moving.

2.3.3 Business Context

The business context answers why the project exists at all. The architect meets the key stakeholder and asks why the application is being built and what is expected of it. The answers are business goals, and they come in concrete numbers:

  • Grow market share from 40% to 60%.
  • Grow turnover from 200 million to 400 million.
  • Stop customers from leaving the website after the first two pages, by improving usability and performance.

These business goals exist to increase market share, profitability, or total sales. Notice what this means for the architect: the real requirement behind a performance requirement is often a revenue number. When a stakeholder says "the checkout page must respond in two seconds," the business goal behind it is "customers who wait longer abandon their carts." An architect who understands the business goal can negotiate the technical requirement intelligently; one who hears only the number cannot tell which part of the two seconds is negotiable.

2.3.4 Professional Context

The professional context is the background of the architect: the type of experience, past successes, and the biases the architect carries. The architect comes with a lifetime of background — every system the architect has built, every failure observed, every technique learned shapes how the next design is approached.

This is both an asset and a hazard. Experience lets the architect recognize problems quickly and reach for solutions that are known to work. But the same experience carries bias: a past success can become a reflex ("we always build this kind of system as a client–server pair") even when the current problem does not fit. The professional context is the lens the architect sees through — and a lens both focuses and distorts.

2.3.5 Stakeholders

Stakeholders are everyone with an interest in the system — and the list is longer than it first looks:

  • the end users, who interact with the system;
  • the people who pay for the application, whose budget it consumes;
  • the people in the operating organization whose work life will change;
  • the developers who build it;
  • the maintainers who will keep it alive;
  • the people who provide infrastructure;
  • the government, which may regulate it;
  • the environment, in the broadest sense — society, markets, competitors;
  • the customers, who buy whatever the system produces.

Every stakeholder has a different requirement, and those requirements conflict as often as they agree. The end user wants speed; the payer wants low cost; the maintainer wants simplicity; the government wants audit trails. The architect does not satisfy all of them equally — the architect balances them, and the balance is the architecture.

2.3.6 The Influence Cycle and the Center of the Universe

An architecture is determined by a combination of all these forces — the four contexts and the full stakeholder list push on the design from every side. The professor's picture of how these forces work is an influence cycle, and it closes on itself:

  1. The forces (contexts, stakeholders, environment) influence the architect.
  2. The architect determines the architecture.
  3. The architecture influences the system.
  4. The system feeds back into the environment — it changes the market, the organization, the options available for the next project — closing the cycle.

The center of the universe. The professor puts it vividly: the architect can be seen as the center of the universe, with everything revolving around the architecture. Every force — technology, life cycle, business, profession, stakeholders — orbits the architectural decision. And because the cycle feeds back, the architecture the architect produces today becomes one of the forces influencing the next architect tomorrow. The same holds in reverse: the architect is not a passive receiver. Because the architecture affects the contexts that influence future architectures, the architect is also shaping the forces that will shape the next design.

Recap. Four contexts — technical, project life cycle, business, and professional — plus a long list of stakeholders all push on the architecture, and the architecture pushes back on them through the influence cycle. The architect sits at the center, converting that pressure into structure.

2.4 Technical Environment and Industry Practices

Hook. Software is a young discipline, but it already has traditions — and those traditions matter more than most students expect. The tools, the vocabulary, and the "normal shape" of a system are part of the environment an architect must work with, whether or not the architect personally likes them.

2.4.1 Following Industry Practices

When a company develops software in a domain such as online sales for the FMCG sector (fast-moving consumer goods — the everyday products like food, drinks, and household items that sell quickly and in volume), following industry practices matters for several reasons:

  • Customers expect a certain shape of product. A consumer-facing sales site has a familiar shape: a catalogue, a search box, a cart, a checkout. A company must meet those customer expectations and then exceed them. Going far from what is expected means the best product may not be adopted by customers — the technology can be superior and still lose, because the customer cannot use it the way they have learned to use the category.
  • People move between companies. If processes follow familiar patterns, new staff adapt quickly. A developer or operator who joins a company from another firm in the same industry can start contributing immediately if the practices are standard; if the practices are idiosyncratic, every hire is a re-education project.

Industry conventions are, in other words, a form of shared infrastructure: they make both customers and staff interchangeable, which keeps the industry liquid.

2.4.2 Enterprise Systems Seen in Practice

The two major ERP systems (enterprise resource planning systems — the large integrated applications that run a company's core business processes like finance, inventory, and human resources) seen in many client organizations are Oracle Apps and SAP. These systems matter to an architect in an unexpected way: they shape the talent market.

Companies choose employers partly because knowledge of such an application advances their career. Knowing SAP or Oracle Apps deeply is a marketable skill, and that creates a retention problem. One early SAP implementer lost almost all of its trained people after a few years because the knowledge was valuable elsewhere — the firm had trained a workforce that the whole industry then hired away.

Q&A (industry lesson). A client once asked for non-standard work so that staff would not leave — the reasoning being that if the system's knowledge were company-specific, employees could not take it elsewhere. That approach was rejected: in today's world people move around, and the environment should let new people fit in when others leave. Locking the system to keep staff is a trap — it makes the company dependent on individuals, blocks new hires, and burdens the system with deliberate non-standardity. The lesson: build for the industry, not against it.

2.4.3 Technology Vocabulary Across Generations

The industry speaks a shared vocabulary — and an architect must speak it to communicate within the industry. The vocabulary includes:

  • web-based — applications delivered through a browser;
  • object-oriented — systems organized around objects that bundle data and behavior;
  • service-oriented — systems organized around services that other systems call over a network;
  • mobile-aware — applications designed for phones and tablets;
  • cloud-based — systems hosted on shared, elastic infrastructure;
  • social networking — applications built around user connections and sharing.

Over a professional lifetime the industry moved through architectural generations:

  1. Desktop applications — the program lives on each user's machine and uses that machine's resources.
  2. Client-server applications — a thin client on the user's machine talks to a central server that holds the data and logic.
  3. Peer-to-peer networks — machines talk directly to each other, with no central authority, each acting as both client and server.

That era debated thick client versus thin client:

  • Thin clients hold little logic and little data — web-oriented applications were thin clients. The browser displays; the server thinks.
  • Thick clients hold substantial logic and data locally — desktop-based applications were thick clients. The machine does the work; the server mostly stores.

The trade-off behind that old debate never went away — it reappears in every generation, from client-server to cloud. How much work belongs on the user's device and how much in the center? Where does the data live, and who controls it? Understanding this language lets the architect reason about new generations in terms of the old ones.

Recap. Industry practices shape customer expectations and staff mobility; ERP ecosystems like Oracle Apps and SAP shape the talent market; and the industry's shared vocabulary — web-based, object-oriented, service-oriented, mobile-aware, cloud-based, thick versus thin — is the language the architect must speak to be understood at all.

2.5 Life Cycle Processes

Hook. How do the people building a system organize their work — in what order, with what hand-offs, and who is still involved when? Life cycle processes are the answer, and they are the first place an architect's choices collide with a team's daily reality.

2.5.1 Life Cycle Models

Life cycle processes describe how people work together. A life cycle model is a plan of the phases of a software project — what work happens, in what order, and how one phase hands off to the next. The models discussed here are:

  • Waterfall — the oldest model; phases run one after another with little going back.
  • Iterative — the work is done in repeated cycles, each cycle producing a working slice of the system.
  • Agile — a family of iterative methods that emphasize responding to change, close team collaboration, and frequent delivery of working software.
  • Model-driven — the system is developed from formal models that generate the code or much of the code automatically.

In practice every organization shapes its own life cycle from its preferences — no two companies run exactly the same process, and the model on the slide is not the model on the floor. Today teams work with DevOps (development and operations integrated into one continuous pipeline) in an agile environment and follow scrum (an agile framework built around fixed-length sprints). In earlier days teams were proud of extreme programming (an agile method with practices like pair programming and continuous integration). The oldest model people discussed was the waterfall model.

2.5.2 The Waterfall Model

The waterfall model is the classic, and its structure is easiest to see as a fixed sequence of phases:

Purpose. Get the work of a project done in separated stages, each one complete before the next starts — an idealized, disciplined sequence with no iteration and no overlap.

The phases (trace). In the waterfall model the work starts with analysis, and the analysis ends with a document called the SRS, the software requirement specification — the client's requirements written down, agreed, and frozen. Design follows, producing a design document that tells the client the inputs, the outputs, and the processing logic — what the system will accept, what it will produce, and how it will compute one from the other — and the design is signed off by the client. Development follows (the design is implemented), then deployment with acceptance testing (the client verifies the delivered system against the SRS), and then the system is maintained — the phase that consumes most of the system's life and cost.

The weakness (professor's point). A mistake made in analysis or design is handed over as signed off rather than corrected. The sign-off makes the flaw official: the requirements error is frozen into the SRS, the flawed design is approved, and the error only surfaces — if it surfaces at all — at acceptance testing, when it is most costly to correct. The professor's framing matches the standard textbook treatment: the waterfall model is an idealized process in which each phase is completed before the next is started, and its documented limitations are that requirements errors are usually the last to be detected and the most costly to fix, and that a working system becomes available only late in the life cycle, so a major design or performance problem can go undetected until the system is almost operational.

That is the deep reason the industry moved beyond waterfall: in a waterfall, feedback arrives too late. The iterative and agile families exist to make the feedback loop shorter — verify the requirements early with a working slice, not late with the whole system.

2.5.3 Agile and the Architect's Continuing Role

In an agile environment the customer is kept on board — the customer is part of the team, not a distant sign-off authority. Where does the architect sit in this arrangement? The professor's answer has three parts:

  1. The overall design may be fixed. The architecture is established early, and the team develops within it.
  2. Architects are involved heavily in the initial stage — this is where the architecture takes shape and where the architect's influence is largest.
  3. The architect or members of the architect's team must stay involved throughout so the team does not stray from the architecture. The involvement is continuous, not front-loaded.

How does continuous involvement work in practice? When meetings propose changes that may affect the architecture, the change is escalated back to the architect, who decides what should be done — whether the change is absorbed locally, modifies the architecture, or is rejected. The escalation path is what keeps an agile team agile: the team can respond to change quickly because it knows which changes touch the architecture and who decides on those.

Recap. Life cycle models — waterfall, iterative, agile, model-driven — organize how people work together; waterfall's signature weakness is that errors get signed off instead of corrected; agile's answer is to keep the customer on board and keep the architect on the loop, with architecture-affecting changes escalated back to the architect.

2.6 The Architect's Activities

Hook. What does an architect actually do all day? Not draw diagrams — or rather, not only that. The architect's real work happens before the diagrams, around the diagrams, and long after them: understanding why the project exists, extracting the requirements that are never written down, and making sure the built system still matches the architecture.

2.6.1 Understanding the Business Case

The architect first understands why the project exists in the first place; this is the business case — the reason the organization is spending money on this system. Is this system meant to grow revenue, cut cost, satisfy a regulation, or fend off a competitor? The business case is the yardstick every later decision is measured against. An architecture that is elegant but does not serve the business case is a failed architecture, however pretty its diagrams.

The link to the previous section is direct: the business context (2.3) answers why the project exists; the business case is that answer written down and made actionable. The architect who cannot state the business case in one sentence cannot defend a single major decision.

2.6.2 Smelling Out the Requirements

The architect must smell out the architecturally significant requirements — the requirements that shape the structure of the system. These are not written down and are not stated across the table. They hide in conversation, in hesitation, in what stakeholders mention and then walk back. The architect figures out what is truly required and prompts the stakeholders — asks the questions that make the buried requirement surface.

The irony of instruction (professor's point). Knowing what is required is not enough: the architect must then get the stakeholder to instruct the architect to do it. The architect decides what should be done but makes it look as if the instruction came from the stakeholder — because an order is needed before a system can be delivered, and the order must specify exactly what is to be provided. Why this charade? Because the person giving the order is not in a position to decide — the stakeholder lacks the technical knowledge — but will be in a position to criticize once the project is complete. The architect who keeps the authority visible ("I decided the system must have five-nines availability") inherits every future complaint; the architect who converts the decision into an instruction ("the business requires five-nines availability, as instructed") has made the stakeholder own the decision. This is one of the trickiest parts of the architect's job.

This is a genuine skill, not a trick: eliciting the requirement, converting it into a decision, and getting the decision formally owned by the person who will later judge the result.

2.6.3 Documentation and Communication

Once the work is decided, it must be documented and communicated and put down on paper. Documentation is how a decision survives its maker: the architecture must be understandable to the developers who implement it, the client who owns it, the maintainers who will keep it, and the next architect who will inherit it. An undocumented decision is a decision that will be silently unmade by the first person who finds it inconvenient.

2.6.4 Running Tests and Proofs of Concept

The architect runs tests on the plan. A POC (proof of concept) can simulate a stated requirement — for example, a search for a product that must complete within two or five seconds under a given number of users. The environment is simulated, that slice is built, and the client is shown the result before the whole system is developed. The POC answers one question with evidence instead of opinion: will this approach meet this requirement at this scale?

Two points from the session are worth keeping verbatim:

  • If the method is not good enough, the architect changes the architecture, not the budget. The POC's purpose is to reveal that a chosen approach cannot meet the requirement — and the architect's response is to change the approach, not to accept a worse requirement or inflate the cost.
  • A POC may be needed before a quotation is frozen, especially when a new technique is being developed, because the cost of building the system is architecture dependent. You cannot quote a price for a house you have never designed; similarly, a fixed price for a system whose architecture is unproven is a guess, and the POC turns the guess into a measured number.

2.6.5 Ensuring Conformance

The architect must ensure that what is implemented conforms to the architecture. Design is an act; conformance is a discipline. Without it, the architecture slowly decays — a shortcut here, a deviation there — until the system is "agile" in the worst sense: an architecture that exists only on paper, while the code does something else. The architect stays involved (as section 2.5.3 described) precisely so that conformance is checked continuously rather than discovered at the end.

Recap. The architect's activities run from business case to conformance: understand why the project exists, smell out the architecturally significant requirements and get them formally instructed, document and communicate the decisions, prove the risky choices with POCs (changing the architecture, not the budget, when a method fails), and police conformance to keep the built system faithful to the design.

2.7 Business Goals, the Utility Tree, and Scenarios

Hook. A business goal like "grow market share" is not an engineering requirement — so how does it become one? This section shows the bridge: business goals percolate down into quality attributes, quality attributes are captured in a utility tree, and the tree's leaves are documented as scenarios. This is the machinery of the course's first assignment, and it reappears in architecture evaluation methods like ATAM later in the course.

2.7.1 Business Context Can Change

The business context is not rigid. It shifts — and if the context changes completely, the architect goes back to the drawing board. The session's example is a real one:

A team is implementing a major system under the conventional regime when the government announces GST (the Goods and Services Tax). The architect tells the customer the order can still be executed but the system will not be usable because GST provisions are not handled — the delivered system would compute taxes and process transactions under rules that no longer exist.

In that era a GST portal was not available, so the organization had to build its own infrastructure for computation and data pickup, and the flow of processes had to change. Two lessons sit inside this story:

  • The architect's job is to say the uncomfortable thing early. The system could be delivered on time and on budget — and be useless. Flagging that is exactly the "educate stakeholders" duty from section 2.2.3.
  • Because the client got early intimation, a revision in cost could be approved and the work could proceed. The bad news was delivered in time to change the order. Late intimation would have meant a delivered-but-useless system and a broken relationship; early intimation meant a revised, approved, and executable plan.

The GST example also shows why "scope" is not fixed by the contract: the environment writes requirements that no contract anticipated, and the architect is the early-warning system.

2.7.2 Business Goals and Quality Attributes

The business context ultimately answers what the system is for. The primary business goals concern profit, market share, and turnover — the same three that appeared in the business context of section 2.3. These goals percolate down into how the system is implemented through the quality attributes:

  • performance — the system must be fast enough to keep customers and users engaged;
  • availability — the system must be up when business runs;
  • testability — the system must be cheap to verify, so changes stay safe;
  • modifiability — the system must be cheap to change as the market changes;
  • security — the system must protect the business's assets and its customers.

Later lectures qualify these quality attributes in detail and document them precisely; this lecture's job is to show the chain: business goal → quality attribute → documented requirement.

2.7.3 The Utility Tree

The utility tree is the structure used to capture the quality attributes of a system — and the first assignment in this course discusses it. The picture is exactly a tree:

  • The trunk of the utility tree is the root goal — the overall "goodness" of the system, the utility the system is meant to deliver.
  • The main branches are the main quality attributes. The course focuses on a few of them: performance, availability, scalability, modifiability, testability, security, and usability. Other attributes can be understood by analogy — if you can place one quality attribute in the tree, you can place any of them.

A textual sketch of the tree looks like this:

Utility (root goal: overall goodness of the system)
├── Performance
├── Availability
├── Scalability
├── Modifiability
├── Testability
├── Security
└── Usability

Each branch can be refined further — performance might split into "transaction response time" and "throughput"; security might split into "confidentiality" and "integrity" — and the leaves of the tree are the concrete requirements, usually written as scenarios. So the tree reads top-down as: root goal → quality attribute → refinement → concrete scenario. Standard treatments of the utility tree put "utility" at the root, quality attributes on the first level of branches, refinements of each attribute on the next level, and the specific architecturally significant requirements as the leaves.

Intuition. Think of the utility tree as a family tree for requirements. The trunk is the family's founding ambition; each branch is a line of descent — a quality attribute; and the leaves are the individual members — the specific, testable requirements. The tree exists so that every requirement has a visible ancestry: ask "why is this leaf here?" and the answer is a path up the tree to the root goal.

A tree with a leaf that cannot be traced to the root goal is a requirement without a reason — and the utility tree is precisely the tool that exposes such orphans.

2.7.4 Architectural and Non-Architectural Goals

Not every business goal reaches the architecture. Some business goals can be achieved without architecture: a company may reorganize its setup, talk to its lawyers, or change policies — these have nothing to do with the architecture of the product. The architect must be able to tell the two apart:

  • Non-architectural goals — achievable by organizational or procedural change (restructure a team, change a policy, consult legal). No architecture involved.
  • Functional goals — some need architectural involvement and many do not. A functional change that stays inside one component is not an architectural issue; a functional change that cuts across the system's structure is.
  • Every quality attribute issue requires the architect. This is the sharp line: whatever the business wants that touches performance, availability, security, modifiability, scalability, testability, or usability lands on the architect's desk, because these are the properties that the structure of the system creates or destroys.

2.7.5 Scenarios

Quality attributes are depicted, explained, and documented through scenarios — short, concrete stories of a stimulus and the system's required response. The architect collects scenarios during interviews with stakeholders. Examples from the session:

  • A search must return within five seconds.
  • A person who breaks into the system must be identified.
  • Repeated login attempts from an unknown location must stop that channel.

Each of these is a stimulus ("search requested", "break-in attempted", "login attempts from unknown location") paired with a required response ("return results in five seconds", "identify the intruder", "block the channel"). A complete scenario has six parts — the source of the stimulus, the stimulus itself, the environment it occurs in, the artifact it hits, the required response, and a response measure — so that the requirement is testable. "Search must return within five seconds" carries the response measure ("within five seconds"); without a measure, "search must be fast" is not a requirement, only a wish.

Then the negotiation begins. Stakeholders discuss the scenarios and decide how much money they are willing to pay for each quality attribute, then vote and prioritize. This is the cost-of-quality conversation from section 2.2.3, now made concrete: every scenario is a price tag. Wanting every quality attribute is impossible and very expensive; the team works against time and cost, so scope is decided by what time and cost the stakeholders will spend.

Common pitfall. Treating the utility tree and scenarios as documentation exercises — "we wrote the tree, we filed the scenarios" — instead of as decision tools. The tree's job is to force priorities (which leaves get built?) and expose orphans (which leaf has no business reason?). A tree that has not forced a single trade-off decision has done none of its work.

Recap. Business context can change and force a redesign (GST story); business goals percolate down into quality attributes; the utility tree captures them — trunk = root goal, branches = quality attributes (performance, availability, scalability, modifiability, testability, security, usability), leaves = scenarios; and scenarios make each attribute concrete and negotiable, priced by the stakeholders' willingness to pay.

2.8 The Skills of the Architect

Hook. What makes a good architect: a deep technical background, or the ability to talk to people? The professor's answer is that the architect needs both — but the second one is the one most students underestimate, and the one whose failures are most public.

2.8.1 Technical Knowledge

Does an architect need to be a programmer, a designer, or hold an MBA degree? The professor's answer: the architect needs a worldview of information technology and an understanding of the components of IT systems — the pieces (hardware, software, networks, data, middleware) and how they fit together. Field knowledge of design and programming helps, but the architect must at least understand how software systems work — you cannot architect what you cannot reason about.

Above all the architect must be aware of the technologies available today. No one can know every technology — the field is far too large — and missing a technology may mean missing an opportunity. That is part of life, because a hand is only so big: every technology you know well is one you cannot know at all, and the architect's inventory of known technologies is always a sample, never the whole space. The practical consequence is that the architect's knowledge must be actively maintained — the technologies that were current when you started are not the technologies that are current now (section 2.4's vocabulary shifts with each generation).

2.8.2 Communication and Negotiation

The architect must be diplomatic and able to negotiate with stakeholders, talk to them without hurting them, and convey ideas through reading, writing, speaking, diagrams, and models. Notice how much of the list is not programming: the architect's output is only partly the architecture itself; the rest is making the architecture understood by everyone it touches.

The whisper could be a bomb (professor's warning). The architect cannot afford to ignore anyone and must stay alert in stakeholder meetings: a whisper somewhere could be a bomb tomorrow. The manifest's record of the session captures the remark in this form, and the idea is the point: the quiet aside — the two stakeholders talking at the side of the room, the passing remark about a constraint or a worry — is where the real requirements hide. The whisper is the requirement that never made it into the meeting minutes, and it becomes the bomb when the project is built without it and someone asks why it was ignored. Listening to the room, not just to the speakers, is part of the architect's job.

This connects directly to section 2.6.2 ("smelling out the requirements"): the skill of hearing what is not said at the table is the same skill as hearing what is whispered beside it.

2.8.3 Updated Knowledge and Practices

The architect should keep updated knowledge of architectural practices, business practices, and technical practices — and know what other businesses do. Three bodies of knowledge, kept current together:

  • Architectural practices — how systems are being designed and evaluated today (methods like ATAM, structures like the ones in this lecture);
  • Business practices — how the industry organizes and sells its work;
  • Technical practices — what the current technologies are and how they are used.

Knowing what other businesses do keeps the architect honest: the practices of the industry (section 2.4) are a moving target, and the architect who stops watching the market designs against a market that no longer exists.

2.8.4 The Influence of Past Work

The architect is influenced by the architectures and systems built in the past. The professor's image for this is the bullock cart on a track: first the cart makes the track, and then the track forces the cart to stay within it. The path the cart wears into the ground becomes a rut that constrains where it can go.

The bullock cart (professor's analogy). First the cart makes the track, then the track forces the cart to stay within it — past experience is a double-edged tool. It helps: experience gives the architect proven patterns and known traps. But it constrains: the architect who has always built a certain kind of system will reach for it again even when the problem changed. The professor's warning example is real: good consulting companies have faced decline by copying an old system for every new order, while firms that never had the business propose novel ideas and take the early bird advantage — the incumbent's experience became a rut, and the newcomer, unburdened by the track, ran past it.

The lesson: the architect should acknowledge past influence but keep eyes and ears open to new technologies and methods. The track is useful for the first half of the journey; if you never look up from it, you will miss the road that goes somewhere better.

Recap. The architect's skills are technical (a worldview of IT, knowledge of today's technologies), social (diplomacy, negotiation, multi-channel communication, listening to the whispers), current (updated architectural, business, and technical practices), and self-aware (acknowledge the bullock-cart track of past work without being trapped in it).

2.9 Q&A: Reusability versus Cost-Effectiveness

Hook. "Should we build for reuse, or build cheap?" The professor's answer reframes the question: this is not a technical question at all. It is an economic question wearing a technical disguise — and learning to see the disguise is part of becoming an architect.

2.9.1 The Question on Reusability and Cost

A student asked whether, if a reusability mechanism increases the cost from the start, the reusability architecture should be preferred, or priority should go to the cost-effective method. A related question asked whether reusing an old module that performs well and is cost effective is acceptable when adopting new technology brings its own challenges.

Both questions are really the same question: when does the architect choose a more expensive option now (reuse-ready design, new technology) instead of the cheaper one?

2.9.2 The Answer: A Trade-Off Decision

Software architecture is neither a purely technical course nor a purely arts course; it involves creativity, and best practices sometimes pull away from creativity. The third, non-technical aspect the architect must master is the commercial aspect, and every architecture decision weighs cost and benefit. The professor's answer:

Q: If a reusability mechanism increases the cost from the start, should the architect prefer a reusability architecture or give priority to a cost-effective method? A: The decision is not purely technical. Reusability versus cost is an architectural trade-off decision, and the answer comes from a cost benefit analysis with the stakeholders. A reusable module lowers cost when it is reused, so it can be cost-effective once the value is sold to the stakeholder. The decision is architectural, not technical: the stakeholders are involved and the economics are worked out.

The key move is the distinction architectural versus technical. A technical decision is made by an engineer against fixed criteria; an architectural decision is made with the stakeholders, against the business case (section 2.6.1). Whether reusability is worth its upfront price is exactly such a decision: the answer lives in the economics of the project, not in the elegance of the design.

2.9.3 Cost Benefit Methods in the Course

The course devotes at least two lectures to these economics:

  • ATAM — the Architecture Trade-off Analysis Method — decides what should be done and what should not. Its purpose is to assess the consequences of architectural decisions, and it is, at its core, a risk identification method: it detects areas of potential risk in the architecture. It works by comparing design decisions against quality attribute requirements — the same scenarios and utility tree from section 2.7, which is why the utility tree is so important to this lecture and its first assignment.
  • CBAM — the Cost Benefit Analysis Method — near the end of the course, evaluates the cost and benefit of choices. CBAM builds on ATAM and its output is a ranking of architectural strategies by value-for-cost, so that the choice with the best economics comes out on top.

Whether a choice involves reusability or the adoption of new technology, the decision is an architectural trade-off or a cost benefit decision — ATAM and CBAM are the tools the course will give you for exactly the questions asked in section 2.9.1.

2.9.4 The Economics of Reuse

For a development organization, reuse can be an internal strategy. An architect in a development organization may push certain technologies because part of the cost benefit can be passed to the customer and it gives a competitive advantage: reusing modules lowers cost, allowing a good profit for the organization and some saving for the operations organization.

The structure of this arrangement matters:

  • The development organization builds once and reuses many times — the fixed cost of the module is spread over every project that uses it.
  • The operations organization (the client who runs the system) gets a saving because the reused module is proven — cheaper to integrate, cheaper to maintain.
  • The architect is the one who proposes the technology stack that makes reuse possible, and part of the benefit is passed to the customer, which is the selling point that makes the decision acceptable.

Reuse, in other words, is not a virtue in the abstract: it is an economic strategy with a cost now and a return later, and its only honest justification is the arithmetic.

2.9.5 Selling the Value

In a commercial environment somebody pays the bill, and the architect must convince the people who pay that the choice is worth it. Cost effectiveness means value for cost — the cost and the value are measured together, not separately. If a choice carries value, the value must be sold to the stakeholders; when the analysis is done, the valuable choice comes out on top.

The restaurant (professor's analogy). A chef may believe a dish is healthy, but if the diner will not pay for it, the chef cannot force it down the diner's throat. Sometimes the steward recommends an exceptional dish, or the chef offers a complimentary item, and the next time the diner orders it on his or her own. The architect is the chef: expertise is not a mandate. A technically excellent choice that the stakeholders will not fund is not a choice at all. The architect's job is to sell the value — recommend it, demonstrate it (a complimentary taste, like the POC from section 2.6.4), and let the stakeholder come back to it on their own terms. That is the economics of architecture: an unpersuaded stakeholder is a veto, however good the design.

Recap. Reusability versus cost is an architectural trade-off decided by cost benefit analysis with stakeholders, not by the engineer alone: reuse spreads its fixed cost over future projects, ATAM decides what should and should not be done (risk identification against quality attribute scenarios), CBAM ranks choices by value for cost, and the architect's role is commercial as much as technical — sell the value, because the person who pays the bill decides.

2.10 What Software Architecture Is

Hook. The simplest question in the course — what is software architecture? — has a one-line answer with a long tail: architecture is the big blocks and how they connect. The long tail is that those connections must be seen from several points of view at once, and every view is true.

2.10.1 Elements and Relationships

Software architecture is about big blocks — the elements of a system — and the relationships between these elements. The course covers the proper definitions in the recorded material, but the key idea is the interaction of subsystems, the capability of individual subsystems, and how they interrelate. Three things to hold in mind:

  • the elements — the subsystems, components, modules that make up the system;
  • the capability of each individual subsystem — what each block can do on its own;
  • the relationships — how the blocks interact, depend on, and constrain each other.

An architecture, in this view, is not the sum of the blocks: it is the pattern of their interactions. Two systems with the same blocks but different relationships are two different architectures — and, usually, very different systems.

The human body (professor's analogy). The body has a physiological structure, a skeletal structure, a digestive system, a reproductive system, a circulatory system, and a nervous system — and every specialist sees the body from a particular point of view. The cardiologist reads the circulatory system; the orthopedist reads the skeleton; the neurologist reads the nervous system. All of them are looking at the same body, and all of their views are true. An architecture can similarly be viewed in terms of several structures — no single drawing contains the whole truth, and asking for "the" architecture diagram is like asking for "the" view of a person.

2.10.2 Ways Architecture Is Presented

There are various ways in which an architecture is presented — several structures, each one a legitimate view. The body's comparison gives the intuition: one system, many structures, each structure showing what matters to a particular concern. The practical consequence for the architect is that the architecture must be documented in all its relevant structures (section 2.6.3), because each stakeholder and each change request reads a different one.

Recap. Software architecture is the elements of a system, their capabilities, and the relationships between them — the pattern of interactions, not the pile of blocks — and it is presented through several structures, exactly as the human body is understood through the skeleton, the circulatory system, the nervous system, and the rest, each a true view of the same whole.

2.11 Architecture Structures: Module, Component-and-Connector, and Allocation

Hook. Section 2.10 said an architecture has several structures. Here are the three categories that matter: module, component-and-connector, and allocation. One is about how the code is divided up, one about how it runs, and one about where it runs. A good architect knows which one to reach for and why.

2.11.1 The Module Structure

Viewed as a module structure, the overall functionality is divided into blocks, or boxes. In each box the focus is on what is done, not how it is done — and that what includes quality attributes such as how efficiently and how available the work is.

The module structure is the static structure: it captures how the system's functionality is divided up and assigned to implementation units. Each module carries specific computational responsibilities, and these divisions are the basis of work assignments for programming teams — this team owns the database, that team owns the business rules, the third owns the user interface. When the course's first assignment asks for a block diagram showing which subsystem handles which activity, it is asking for the module structure.

2.11.2 The Component-and-Connector Structure

The component-and-connector (C&C) view treats the architecture as components that interact over connections, with a protocol for communicating between them. This structure is dynamic and concerns the behavior of the system: how components interact with each other at runtime, and the quality of that behavior, including how quickly, how efficiently, how often, and how securely.

Where the module structure answers "what is it divided into?", the C&C structure answers "what happens when it runs?". A component in this view is always a runtime entity — a running process, a service, a client and a server — and the connectors are the channels over which they communicate (procedure calls, message buses, network links, and the protocols that govern them).

2.11.3 The Allocation Structure

The allocation structure distributes workload among human beings, hardware elements, and software elements. It decides how the work is shared, which activities are done by which module, and whether work can be done in parallel. This placement — mapping the software elements onto things that are not software — is the allocation structure.

Three classic allocation questions: Which piece of software runs on which machine? (deployment). Which developer or team builds which module? (implementation/work assignment). Which part of the system must be built before which other part? (the ordering that determines what can proceed in parallel). Section 2.10's human-body analogy carries over: the allocation structure is like deciding which specialist operates on which organ and in which operating room.

2.11.4 Choosing Which Structure to Present

The course covers the three structures in the coming classes: module, component-and-connector, and allocation. When presenting an architecture, the architect decides which of the structures best suits the particular problem. Some structures explain the functionalities to be achieved, so the architect may give a block diagram showing which subsystem handles which activity.

Common pitfall. Confusing the three structures — showing a runtime view when the question was about team work assignment, or a module diagram when the question was about whether the system can meet its performance target. The structures answer different questions; presenting the wrong one to a stakeholder is presenting no answer at all.

Recap. Three categories of architectural structure: module (static — how functionality is divided into implementation units and assigned to teams), component-and-connector (dynamic — how components interact at runtime and how well they do so), and allocation (where and to whom — mapping software onto hardware, teams, and parallelism). The architect picks the structure that best suits the problem at hand.

2.12 Availability: A Worked Calculation

Hook. Availability is the quality attribute every SLA is built around: a server contract may promise five minutes of downtime a year, with a penalty beyond that. But the availability that matters is the whole system's availability — and that is not a number the vendor quotes. It is something you compute from the parts, and the arithmetic can surprise you.

2.12.1 The Quality Attribute of Availability

Availability is a key quality attribute. An SLA may specify the availability expected of a server — for example, five minutes of downtime a year, with a penalty beyond that. The overall system has an availability, and the availability of each subsystem contributes to it. Before the arithmetic, the definitions matter:

  • A failure is an event — the system (or a part of it) stops delivering its service.
  • Availability is the probability that the system is up when needed — equivalently, the fraction of time the system is operational.
  • The textbook measure ties availability to uptime and downtime: availability = mean time between failures divided by (mean time between failures + mean time to repair):

A subsystem with availability 0.99 is up, on average, 99% of the time — the famous "two nines." A whole system made of such subsystems is rarely 99% available, as the series calculation shows.

2.12.2 Availability in Series

Consider two subsystems in a series, each with availability 0.99. The system performs two independent functions one after the other — if either subsystem is down, the whole chain stops, so the availability falls. The overall availability is the product:

With each subsystem at 0.99:

Worked example. Three subsystems in series, each at 0.99: . Four: 0.9606. Each additional link in the chain drags the total down — the more components a transaction must pass through, the lower the overall availability, even when every component is individually excellent. This is the lesson of the series calculation: availability does not add, it multiplies, and multiplication of numbers below 1 shrinks.

Common pitfall. Assuming that a system built of 99%-available parts is 99% available. If the parts sit in series, the system is worse than any single part — and with enough parts in the chain, the SLA's five-minutes-a-year promise is quietly broken before the system is even deployed.

2.12.3 Availability with a Mirror Backup

Now consider a backup setup where one subsystem mirrors the other. Note the professor's precise wording: this is a backup process, not two parallel processes. Although parallel processes give better performance, the backup is implemented as a series process in operation — the mirror sits alongside and takes over when the primary fails. As a mirror, the system improves overall availability.

The logic: the system is down only when both subsystems are down. The chance that one subsystem is down is ; the chance that both are down is:

The overall availability is:

In general, for a mirrored pair:

Worked example. Two subsystems in series, each 0.99 → 0.9801 (two nines each, product drops below). The same two subsystems mirrored → 0.9999 (four nines). The mirror recovered almost everything the series lost — and this is why redundancy is the standard availability tactic.

Assumptions and scope. The mirrored-pair formula assumes the failures of the two subsystems are independent — the backup fails exactly when the primary fails is the mirror's nightmare (one power cut, one flood, one shared bug takes out both), and then the true availability collapses to a single point. Real-world availability design must ask what common causes can kill both members of the pair, not just multiply the individual failure probabilities. Also note that a mirror guarantees availability, not performance: the backup exists to be there, not to serve double load.

Responsiveness is the performance attribute, and availability is a separate quality attribute; both are covered in more detail later in the course.

Recap. Availability = . In series, availabilities multiply and every link drags the total down: . In a mirrored pair, availability rises because both must fail: — assuming failures are independent, and accepting that redundancy buys availability, not performance.

2.13 Every System Has an Architecture

Hook. "This system doesn't have an architecture." Any architect who has walked into a legacy project has heard it — or said it. The professor's reply is a correction: every system has an architecture. It may be bad, it may be undocumented, but it is there. The interesting questions start once you accept that.

2.13.1 No System Without an Architecture

Sometimes a person studies a system and reports that the system does not have an architecture. There is no system without an architecture. The architecture is always there, and it can be good or bad; a bad architecture is still an architecture.

This is the counterpart to the definition in section 2.1. Architecture is the set of structures the system actually has — the big blocks and their relationships (section 2.10) — and a system is always built with some structure, even when that structure was never designed. "No architecture" is not a description of a system; it is a verdict that the speaker does not like the structure they found. The profession's job is to evaluate that structure, not to deny it.

2.13.2 Documentation Is Not Required for Architecture

An architecture may be documented or not documented. A lack of documentation does not mean there is no architecture. Bad architecture is not an absence of architecture, and a lack of documentation is not an absence of architecture. Still, if an architecture exists it should be documented — otherwise use becomes difficult.

The two confusions the professor is clearing up:

  • Bad architecture ≠ no architecture — the structure exists and is poor; it must be analyzed and improved, not wished away.
  • Undocumented architecture ≠ no architecture — the structure exists in the code and in the heads of the people who built it; it simply has not been written down.

Documentation is a responsibility (section 2.6.3), not a precondition. The absence of the document does not excuse the reader from the system's actual structure — which is why the next subsection exists.

2.13.3 Recovering Architecture

Part of the course deals with recovering the architecture — finding the architecture when documentation does not exist. This is typical for legacy systems. Unless the architecture of a system is understood, it is very difficult to improve the system; the system may be the best that could be done with that approach, and a new design may just reproduce what already exists. Tools and approaches exist for recovering an architecture.

The recovery discipline rests on section 2.13.2: because the architecture is in the system regardless of documentation, it can be extracted — reverse engineered from the code, the deployment, the runtime behavior — rather than invented. Why bother? Three reasons:

  • Understanding precedes improvement. You cannot improve what you do not understand; every change risks breaking the invisible structure.
  • Appreciating the old design. The system may be the best that could be done with the approach it uses — condemning it without understanding it means a redesign that silently rebuilds the same mistakes, or worse, loses what was good.
  • Conformance discovery. Recovery often reveals that the system has drifted from any design that was ever documented — the same decay section 2.6.5's conformance discipline is meant to prevent.

Recap. Every system has an architecture — good or bad, documented or not — because the structure is in the system itself. Bad architecture is still architecture; lack of documentation is lack of documentation, not lack of architecture. And because the architecture exists whether or not anyone wrote it down, it can be recovered from legacy systems — and must be, before the system can be improved.

2.14 Views: Static and Dynamic Representations

Hook. Section 2.10 used the human body; section 2.11 named the structures; now the professor pulls the three together with the term that matters in documentation: a view. The distinction is precise and examinable — the structure is the system; the view is what you draw.

2.14.1 The Module Structure as a Static View

Architecture is not only the module structure. The three structures are module, component-and-connector, and allocation. The module structure is like a photograph: it is a static structure — the system frozen in a moment, showing how the functionality is divided, with no sense of time or motion.

2.14.2 The Component-and-Connector Structure as a Dynamic View

The component-and-connector structure is more dynamic. It tells the type of interaction, and interaction has to do with behavior. The behavior of a system is how components interact with each other. The architect must engage with the behavior of the system, including not only the functionality of the behavior but also the quality of the behavior: how quickly, how efficiently, how often, and how securely.

Where the photograph shows the shape of the system, the dynamic view shows the film of it: a request arrives at one component, travels across connectors, is answered, fails, retries, contends with other requests. The performance, efficiency, and security attributes of section 2.7 live in this film, not in the photograph — which is why the C&C view is the one that must be produced whenever the question is about how well the system behaves under load.

2.14.3 What a View Is

Like the human body, an architecture can be viewed in various ways. Photographs of the body, or cut-up components, show everything together. A diagram, however, draws only one of the systems — for example, the nervous system, the circulatory system, or the digestive system. That diagram is a view.

The database analogy (professor's illustration). In a database, the physical storage is different from the views provided to users or programmers. A view is what is provided to the stakeholders to look at. The same data sits underneath; each view shows the slice that one user needs, and hides the rest. Architecture documentation works the same way: the module structure, the component-and-connector structure, and the allocation structure each have corresponding views, and the views are representations of these structures so that stakeholders can examine them.

The important precision: the view is not the structure. The structure is a property of the system itself (section 2.13 — every system has one, documented or not). The view is the representation — the drawing, the diagram — that lets a particular stakeholder examine a particular structure. One system, three structures, many possible views; a good architecture document ships a set of views that cover the structures the stakeholders actually need to see.

The session closed at this point, and the next session continues from the remaining slides.

Recap. The module structure is a static view — a photograph of how the system is divided; the component-and-connector structure is a dynamic view — the film of how components interact, including the quality of that behavior (how quickly, how efficiently, how often, how securely). A view is the representation of a structure provided to stakeholders to examine — like a database view — and each of the three structures has corresponding views.

Exam Guidance Summary

The session's closing guidance for the examination, consolidated:

  • The examination uses case-study questions that require application of mind; reproduction of content from the book does not serve the purpose. The exam rewards the student who can reason about a new system, not the student who can recite the slides.
  • Study the course at a high level of abstraction rather than digging deep into details; a student with an overview handles the examination better. The conceptual skeleton — roles, contexts, structures, quality attributes — carries more marks than memorized minutiae.
  • Expect questions linking stakeholder and context ideas: technical context, business context, professional context, and the influence cycle (section 2.3).
  • Know the utility tree and scenarios: quality attributes such as performance, availability, testability, modifiability, security, and usability are documented through scenarios (section 2.7).
  • Be ready for trade-off and cost benefit reasoning; ATAM is the architecture trade-off analysis method and CBAM is the cost benefit analysis method (section 2.9).
  • Be able to compute combined availability for series and parallel or mirrored subsystems from given availability values (section 2.12: ; ).
  • Know that a lack of documentation does not mean a lack of architecture, and that recovering an architecture is part of the architect's job (section 2.13).

Key Industry Applications

Industry references from the session, with the JD Edwards point corrected:

  • Oracle Apps and SAP are the two ERP systems most often seen in client organizations in practice — the same pair named in section 2.4's vocabulary of the trade.
  • MS SQL Server and Oracle databases are commonly selected based on the comfort of the development organization or dictated by the operations organization as a constraint — the choice is organizational, not purely technical (an example of the allocation structure's work assignment in real life).
  • JD Edwards was reported in the session to have been acquired by SAP. The corporate history should be corrected: JD Edwards was acquired by PeopleSoft in 2003, and PeopleSoft itself was then acquired by Oracle in 2005 — so JD Edwards is today part of the Oracle family, not SAP. The session's direction (a large vendor acquiring JD Edwards) is right; the vendor named is not.
  • The SRS, the software requirement specification, is the output of the analysis phase in the waterfall model (section 2.5).
  • Waterfall, extreme programming, scrum, and DevOps name the life cycle and process models used across generations of teams (section 2.5).
  • A POC simulates a requirement such as a search completing within two or five seconds and is used before the full system is built (section 2.6.4).
  • The utility tree and the SLA connect quality attributes to business goals in real engagements (sections 2.7 and 2.12).
  • Reading the textbook is encouraged alongside the slides to support the course.

SA Lecture 2 notes · Software Architecture: Roles, Context, and Structures

Software Architectures· postgraduate· 2026-08-20

Sections Breakdown

12.1 Course Recap and Administrative Framing

The course runs in flip mode over 16 sessions: recorded lectures carry theory, live sessions carry interaction. Three quizzes of 25 MCQs in 30 minutes with open internet, a case-study-oriented exam, a high level of abstraction with the 80/20 rule, and architecture's central concern with quality attributes (performance, modifiability, security, scalability, reusability, testability, usability, availability).

22.2 The Role of the Architect in an Agile Environment

The architect becomes more important in agile: major decisions are taken early so architectural change is minimized; module boundaries aim to keep most requirement changes inside single subsystems; stakeholders must be educated on quality-attribute costs; the high-level picture enables cost and schedule estimates; proven reusable technology gives cost advantage.

32.3 The Architectural Context

An architecture is shaped by four contexts — technical (product and technology options), project life cycle (analysis, design, development, deployment, maintenance), business (why the project exists, expressed as concrete goals like market share or turnover), and professional (the architect's experience and biases) — plus a broad stakeholder list; these forces drive the architect, the architecture drives the system, and the system feeds back into the environment, closing the influence cycle with the architect as the center of the universe.

42.4 Technical Environment and Industry Practices

Following industry practices matters because customers expect a certain shape of product and because staff mobility makes standard practices valuable; ERP systems (Oracle Apps, SAP) shape the talent market (a client's request for non-standard work to retain staff was rejected); the industry speaks a shared vocabulary (web-based, object-oriented, service-oriented, mobile-aware, cloud-based, social networking) and moved from desktop to client-server to peer-to-peer, with the thick- versus thin-client debate along the way.

52.5 Life Cycle Processes

Life cycle processes describe how people work together: waterfall (phases complete in sequence, ending analysis with the SRS and design with a signed-off design document), iterative, agile, and model-driven; every organization shapes its own life cycle; today's teams use DevOps and scrum; the waterfall weakness is that analysis/design mistakes are handed over as signed off instead of corrected; in agile the customer stays on board and the architect or the architect's team stays involved so the team does not stray, with architecture-affecting changes escalated back to the architect.

62.6 The Architect's Activities

The architect's activities: understand the business case (why the project exists), smell out the architecturally significant requirements and prompt stakeholders, document and communicate the decisions, run proofs of concept (change the architecture, not the budget, when a method fails; a POC may be needed before a quotation is frozen), and ensure the implementation conforms to the architecture. The irony of instruction: the architect decides what should be done but must get the stakeholder to instruct it, because the person giving the order cannot decide but will criticize after completion.

72.7 Business Goals, the Utility Tree, and Scenarios

The business context can change completely (GST example) and force the architect back to the drawing board; business goals (profit, market share, turnover) percolate down through quality attributes (performance, availability, testability, modifiability, security); the utility tree captures quality attributes with the trunk as the root goal and the main branches as the quality attributes (performance, availability, scalability, modifiability, testability, security, usability); some goals need no architecture; quality attributes are documented through scenarios that stakeholders discuss, price, vote on, and prioritize.

82.8 The Skills of the Architect

The architect needs a worldview of information technology, an understanding of the components of IT systems, and awareness of today's technologies (no one can know every technology; missing one may mean missing an opportunity). The architect must be diplomatic, negotiate with stakeholders without hurting them, and convey ideas through reading, writing, speaking, diagrams, and models. The architect must stay alert in stakeholder meetings: a whisper somewhere could be a bomb tomorrow. The architect should keep updated knowledge of architectural, business, and technical practices and know what other businesses do. Past architectures influence the architect like a bullock cart on a track: first the cart makes the track, then the track forces the cart to stay within it; good consulting companies declined by copying an old system for every new order while new firms took the early bird advantage.

92.9 Q&A: Reusability versus Cost-Effectiveness

Reusability versus cost is an architectural trade-off decision, not a purely technical one: the answer comes from a cost benefit analysis with the stakeholders, and a reusable module lowers cost when it is reused once its value is sold to the stakeholder. The course covers ATAM (architecture trade-off analysis method, decides what should be done and what should not) and CBAM (cost benefit analysis method, evaluates cost and benefit of choices). Reuse is an internal economic strategy for development organizations (competitive advantage, profit for the organization, saving for the operations organization). In a commercial environment the architect must convince those who pay that a choice is worth it: cost effectiveness means value for cost, and the valuable choice comes out on top when the analysis is done (restaurant analogy: a chef cannot force a healthy dish down a diner's throat, but can recommend and offer a taste until the diner orders it on his or her own).

102.10 What Software Architecture Is

Software architecture is about big blocks — the elements of a system — and the relationships between these elements: the interaction of subsystems, the capability of individual subsystems, and how they interrelate. There are various ways in which an architecture is presented, like the human body, which has a physiological structure, a skeletal structure, a digestive system, a reproductive system, a circulatory system, and a nervous system, and every specialist sees the body from a particular point of view; an architecture can similarly be viewed in terms of several structures.

112.11 Architecture Structures: Module, Component-and-Connector, and Allocation

Three categories of architectural structure: module (overall functionality divided into blocks or boxes; focus on what is done, not how; includes quality attributes such as efficiency and availability), component-and-connector (components interacting over connections with a communication protocol; dynamic, concerns runtime behavior and its quality), and allocation (distributes workload among human beings, hardware elements, and software elements; decides how work is shared, which activities each module does, and whether work can be done in parallel). The architect decides which structure best suits the particular problem when presenting an architecture.

122.12 Availability: A Worked Calculation

Availability is a key quality attribute; an SLA may specify the availability expected of a server, e.g. five minutes of downtime a year with a penalty beyond that. For two subsystems in a series with availability 0.99 each, the overall availability is the product: A = A1 x A2 = 0.99 x 0.99 = 0.9801. With a mirror backup (a backup process, not two parallel processes; parallel gives better performance but the backup is a series process in operation), the chance both subsystems are down is 0.01 x 0.01 = 0.0001, so overall availability is A = 1 - 0.0001 = 0.9999; in general A_mirror = 1 - (1 - A1)(1 - A2). Responsiveness is the performance attribute; availability is a separate quality attribute.

132.13 Every System Has an Architecture

There is no system without an architecture: the architecture is always there and can be good or bad; a bad architecture is still an architecture. An architecture may be documented or not, but a lack of documentation does not mean there is no architecture. Part of the course deals with recovering the architecture (finding it when documentation does not exist), which is typical for legacy systems: unless the architecture is understood it is very difficult to improve the system, and a new design may just reproduce what already exists.

142.14 Views: Static and Dynamic Representations

The module structure is like a photograph — a static structure. The component-and-connector structure is more dynamic: it tells the type of interaction, and interaction has to do with behavior; the architect must engage with the behavior of the system, including not only the functionality but the quality of the behavior (how quickly, how efficiently, how often, how securely). Like the human body, an architecture can be viewed in various ways: photographs or cut-up components show everything together, while a diagram draws only one system — that diagram is a view. In a database, physical storage differs from the views provided to users or programmers; a view is what is provided to stakeholders to look at. The module, component-and-connector, and allocation structures each have corresponding views, which are representations of these structures so that stakeholders can examine them. The session closed at this point; the next session continues from the remaining slides.

15Exam Guidance Summary

The examination uses case-study questions requiring application of mind, not reproduction of book content; study at a high level of abstraction. Expect questions linking stakeholder and context ideas (technical, business, professional contexts and the influence cycle), the utility tree and scenarios, trade-off and cost benefit reasoning (ATAM, CBAM), combined availability computations for series and mirrored subsystems, and the principle that lack of documentation does not mean lack of architecture.

16Key Industry Applications

Oracle Apps and SAP are the two ERP systems most often seen in client organizations; MS SQL Server and Oracle databases are selected by development-organization comfort or operations-organization constraint. JD Edwards was reported in the session as acquired by SAP, but the correct history is PeopleSoft (2003) then Oracle (2005). The SRS is the output of the analysis phase in waterfall; waterfall, extreme programming, scrum, and DevOps name the process models; a POC simulates requirements like a 2-5 second search before full build; the utility tree and SLA connect quality attributes to business goals; textbook reading is encouraged.

Postgraduate students in Software Architectures

Exam Revision Notes

Below is the distilled, exam-ready core. Every entry comes from the full explanation above. Use this section for rapid review; return to the main notes when a point needs more context.

2.1 Course Recap and Administrative Framing

Must-know: Architecture concerns quality attributes (performance, modifiability, security, scalability, reusability, testability, usability, availability), not code; exam is case-study oriented; study at high abstraction; about 80% of software cost lands in maintenance.

⚠️ Top pitfall: Studying at a low level of abstraction or treating architecture as just box-and-arrow diagrams; trusting internet quiz banks over course material.

Self-check: What does flip mode change about where the theory is taught?

Connects to: 2.7

2.2 The Role of the Architect in an Agile Environment

Must-know: In agile the architect is more, not less, important; three kinds of change (none touching modules, cross-module with coordination overhead, inside one subsystem) and the architect designs so most changes are the last kind; educate stakeholders about the cost of quality; high-level picture enables estimates.

⚠️ Top pitfall: Believing agile means no up-front structure; claiming modularity without engineering change to stay inside module boundaries.

Self-check: Which of the three kinds of change carries coordination overhead?

Connects to: 2.3

2.3 The Architectural Context

Must-know: Name the four contexts (technical, project life cycle, business, professional) and the influence cycle: forces influence the architect, architect determines architecture, architecture influences system, system feeds back into environment; architect as center of the universe.

⚠️ Top pitfall: Hearing only the technical number (e.g., a 2-second response time) instead of the business goal behind it; forgetting that the architect's own professional background biases the design.

Self-check: Which context answers why the project exists at all?

Connects to: 2.1, 2.2

2.4 Technical Environment and Industry Practices

Must-know: Why industry practices matter (customer expectations, staff mobility); Oracle Apps and SAP as the major ERP systems; the shared technology vocabulary and the desktop → client-server → peer-to-peer generation move; thin client = web-oriented, thick client = desktop-based.

⚠️ Top pitfall: Deliberately making work non-standard to retain staff — rejected because people move and new people must be able to fit in.

Self-check: Which client type was a web-oriented application: thick or thin?

Connects to: 2.3, 2.16

2.5 Life Cycle Processes

Must-know: Waterfall: analysis → SRS, design → signed-off design document (inputs, outputs, processing logic), development, deployment with acceptance testing, maintenance; weakness is sign-off freezing errors; agile keeps the customer on board and the architect involved throughout with escalation of architecture-affecting changes.

⚠️ Top pitfall: Assuming the architect's involvement ends after the initial design stage; in agile the architect (or team members) must stay involved so the team does not stray from the architecture.

Self-check: What document ends the analysis phase in the waterfall model?

Connects to: 2.2, 2.6

2.6 The Architect's Activities

Must-know: The five activities (business case, smelling out requirements, documentation and communication, POCs, conformance) and the irony of instruction: get the stakeholder to instruct the work, because the order must specify exactly what is provided and the stakeholder will criticize later.

⚠️ Top pitfall: When a POC shows a method is not good enough, changing the budget or requirement instead of the architecture.

Self-check: Why must the architect make it look as if the instruction came from the stakeholder?

Connects to: 2.5, 2.7

2.7 Business Goals, the Utility Tree, and Scenarios

Must-know: Utility tree: trunk = root goal, main branches = quality attributes (performance, availability, scalability, modifiability, testability, security, usability), leaves = concrete scenarios; scenarios document quality attributes; every quality attribute issue requires the architect while many functional and some business goals do not.

⚠️ Top pitfall: Treating the utility tree and scenarios as documentation rather than as tools that force priorities and expose requirements without a business reason.

Self-check: What is the trunk of the utility tree, and what are the main branches?

Connects to: 2.1, 2.6, 2.9, 2.12

2.8 The Skills of the Architect

Must-know: The architect's skills: technical knowledge (worldview of IT, awareness of current technologies), communication and negotiation (diplomacy, conveying ideas via reading, writing, speaking, diagrams, models), staying alert in meetings (a whisper could be a bomb tomorrow), updated knowledge of architectural/business/technical practices, and acknowledging past influence without being trapped by it (bullock cart on a track).

⚠️ Top pitfall: Being trapped by past experience: copying an old system for every new order while newcomers propose novel ideas and take the early bird advantage.

Self-check: Why must the architect stay alert even to whispers in stakeholder meetings?

Connects to: 2.2, 2.6, 2.7

2.9 Q&A: Reusability versus Cost-Effectiveness

Must-know: Reusability versus cost is an architectural trade-off decided by cost benefit analysis with stakeholders; ATAM (architecture trade-off analysis method) decides what should and should not be done; CBAM (cost benefit analysis method) evaluates cost and benefit of choices; cost effectiveness means value for cost, and the architect must sell the value to the people who pay.

⚠️ Top pitfall: Treating a reuse or technology decision as purely technical instead of as an economic trade-off with the stakeholders.

Self-check: Why is the reusability-versus-cost decision architectural rather than technical?

Connects to: 2.2, 2.6, 2.7, 2.9

2.10 What Software Architecture Is

Must-know: Architecture = the big blocks (elements) of a system plus the relationships between them: the interaction of subsystems, the capability of individual subsystems, and how they interrelate; an architecture can be viewed in terms of several structures, like the human body viewed by different specialists.

⚠️ Top pitfall: Reducing architecture to a list of components, ignoring the relationships between them.

Self-check: What does the human body analogy teach about presenting an architecture?

Connects to: 2.1, 2.11

2.11 Architecture Structures: Module, Component-and-Connector, and Allocation

Must-know: Module structure: static, functionality divided into blocks, what is done not how; component-and-connector: dynamic, runtime interaction and its quality; allocation: workload distributed among humans, hardware, and software, including parallelism.

⚠️ Top pitfall: Presenting the wrong structure for the question — e.g., a runtime view when the question is about team work assignment.

Self-check: Which of the three structures is dynamic, and what does it focus on?

Connects to: 2.10, 2.12

2.12 Availability: A Worked Calculation

Must-know: Series: A = A1 x A2 (0.99 x 0.99 = 0.9801); mirror/parallel redundancy: A = 1 - (1 - A1)(1 - A2) (1 - 0.0001 = 0.9999); availability is the MTBF over MTBF plus MTTR; a mirror is a backup process, not two parallel processes.

⚠️ Top pitfall: Assuming a system built of 99%-available parts in series is 99% available, or confusing a mirror backup with parallel processing (parallel gives better performance; the backup is a series process in operation).

Self-check: Two subsystems each 0.99 available: what is the series availability and what is the mirrored availability?

Connects to: 2.7, 2.11

2.13 Every System Has an Architecture

Must-know: Every system has an architecture, good or bad; bad architecture is still architecture; lack of documentation is not lack of architecture; recovering the architecture is needed for legacy systems before improvement is possible.

⚠️ Top pitfall: Believing an undocumented legacy system has no architecture, then redesigning it without understanding what already exists and reproducing its mistakes.

Self-check: Does an undocumented system have an architecture? Why does it matter for improving legacy systems?

Connects to: 2.1, 2.6, 2.10

2.14 Views: Static and Dynamic Representations

Must-know: Module structure = static view (photograph); component-and-connector structure = dynamic view (behavior, quality of interaction); a view is a representation of a structure provided to stakeholders to examine, like a database view.

⚠️ Top pitfall: Confusing a structure (a property of the system) with a view (a representation drawn for stakeholders to examine).

Self-check: Why is the module structure described as a photograph and the component-and-connector structure as more dynamic?

Connects to: 2.10, 2.11, 2.12

Exam Guidance Summary

Must-know: Exam style: case-study questions requiring application of mind, study at a high level of abstraction; expect stakeholder and context links, utility tree and scenarios, ATAM/CBAM trade-off reasoning, availability computations, and the documentation-vs-architecture distinction.

⚠️ Top pitfall: Studying details deeply instead of at a high level of abstraction, or reproducing book content instead of applying concepts to case studies.

Self-check: What type of questions does the examination use, and how should the course be studied?

Connects to: 2.3, 2.7, 2.9, 2.12, 2.13

Key Industry Applications

Must-know: JD Edwards: acquired by PeopleSoft in 2003, then Oracle in 2005 (session said SAP — corrected); SRS is the output of the waterfall analysis phase; Oracle Apps and SAP are the common ERPs.

⚠️ Top pitfall: Repeating the session's claim that JD Edwards was acquired by SAP; the correct line of ownership is PeopleSoft (2003) then Oracle (2005).

Self-check: Who actually acquired JD Edwards, and when?

Connects to: 2.4, 2.5, 2.6, 2.7, 2.12

Was this lecture useful?

Loading comments…
🤖

BitsNotes AI Assistant

Subject Notes Assistant

Configure AI Chat

Choose how to access the chatbot
Have your own API key?

Switch to "Bring Your Own Key" tab above for unlimited access with any OpenAI-compatible provider.

🔑 Enter API key above to fetch live models from provider, or enter model name manually.
OpenAI-Compatible API Support

Choose any provider preset (Gemini, DeepSeek, Kimi, GLM, MiniMax, Qwen, OpenAI, Groq, Ollama, etc.) or enter a custom endpoint URL.

Security & Privacy First

Your API key is sent directly from your browser to your specified provider. BitsNotes servers never store or see your key.