Skip to main content
Software Architectures

Architectural Views, Layered Architectures, and Architecture Evaluation

Published: 2026-08-21
Level: postgraduate
Audience: Postgraduate students studying software architecture

This session covers the four classic architectural views and the scenario around them, the decision areas behind each structure, typical layered architectures, responsive design, and the ATAM method used to evaluate an architecture. It begins with the vocabulary an architect needs, continues with the views and how they interconnect, and closes with the trade-off analysis that judges whether a proposed architecture meets its quality goals.

The session builds directly on the previous discussion of quality attributes and architecturally significant requirements. There, we saw what qualities a system must have. Here, we see where those qualities live in a design: each of the four views — logical, process, development, and physical — carries part of every quality goal, and the layered pattern shows how the views look in the most common industrial shape. The session then closes the loop with ATAM, the Architecture Trade-off Analysis Method, which checks whether the finished design can actually deliver the promised qualities before anyone writes production code.

Three threads run through everything that follows:

  1. Views — one system, several projections, each serving a different stakeholder.
  2. Layers — the everyday layered shape (presentation, business, data) that most enterprise products follow, plus the web techniques (responsive design) that shape the top layer.
  3. Evaluation — scenarios, sensitivity points, trade-off points, risks and non-risks: the evidence chain that turns an opinion about an architecture into a justified decision.

7.1 Architectural Views: Purpose and Vocabulary

7.1.1 Stakeholders and the Need for Views

Why can't one drawing serve everyone? An architecture is documented for the people who care about the system — the stakeholders (anyone who affects or is affected by the system: users, customers, developers, testers, maintainers, managers). Each stakeholder looks at the system from a different angle, so a single drawing cannot serve all of them.

Think of a city. A commuter wants the metro map. A town planner wants the zoning map. An electrician wants the cable layout. The city is one reality, but each profession needs its own projection of it. Software is the same: the analyst asks "what should the system do?", the programmer asks "which file do I edit?", the integrator asks "which process talks to which?", and the hardware engineer asks "which machine runs what?". One diagram that tried to answer all four questions at once would answer none of them well.

So the architect records the system as a set of views. A view is a representation of a set of system elements and the relations among them — not all elements, but those of one particular type. Each view is a projection of the architecture that shows only what one group of stakeholders needs to see, and deliberately hides the rest. Hiding is not a loss; it is the point. A view earns its keep by leaving things out.

This idea is the most fundamental principle of architecture documentation: documenting an architecture means documenting the relevant views, plus a little extra information that applies across views.

7.1.2 The Vocabulary of an Architect

An architect needs a precise vocabulary to describe the parts of a system and how they relate. Vague words produce vague designs and endless arguments; precise words let two people discuss a design and know they mean the same thing. The course material builds this vocabulary from three words: structure, element, and relation.

  • A structure is a set of elements together with the relations among them. It is the underlying organisation itself.
  • An element is one part appearing in that structure — a module, a runtime component, a processor.
  • A relation is a defined link between two elements — "is part of", "depends on", "communicates with", "runs on".

The same system can be described by many structures, and each structure, when documented, gives one view. So the deep pairing to remember is:

  • Structure = the underlying reality (the actual set of elements and relations in the system).
  • View = a documented projection of a structure (what you draw and hand to stakeholders).

A view is a photograph of the building; the structure is the building. Several photographs can show the same building from different sides, and one wide photograph can capture more than one wing.

Analogy (from the lecture): the architect and the stakeholders need the same vocabulary. Just as a building architect, the contractor, and the city inspector must all say "load-bearing wall" and mean exactly the same thing, a software architect, the developers, and the testers must share words like module, component, and connector. The classic books by Garlan and Shaw and by Len Bass describe these structures with precisely this shared vocabulary — which is why the course adopts it.

7.1.3 Three Kinds of Structures

Every view rests on one of three kinds of structures. Memorise these three names — they organise everything else in this session.

  1. Module structures describe the code units and how they are organised. Elements are modules — implementation units such as classes, packages, or layers that each carry a coherent set of responsibilities. Relations are "is part of", "depends on", and "is a". Module structures answer: how is the source code divided up? They are the basis for change-impact analysis: if module X changes, which other modules feel it?
  2. Component-and-connector structures describe runtime elements and the connectors between them. Elements are components (principal processing units and data stores — services, servers, databases) and connectors (pathways of interaction — calls, messages, protocols). Relations are attachments: a component's port attaches to a connector's role. These structures answer: what exists while the system runs, and how do the pieces talk?
  3. Allocation structures describe how software is assigned to the environment — usually hardware. Elements are software units on one side and hardware units (processors, servers, devices) on the other. Relations are "is allocated to" and "migrates to". These structures answer: which piece of software runs on which machine?

A quick way to hold them: module = code-time, component-and-connector = run-time, allocation = deploy-time.

Worked mini-example — an online bookstore seen through all three structures.

  • Module structure: the code splits into modules Catalog, Cart, Payment, Inventory; Cart depends on Catalog (to look up prices) and Payment depends on Cart. Drawing this tells a new developer where a price-change fix must go.
  • Component-and-connector structure: at runtime there is a web server component, a payment service component, and a database component; the web server talks to the payment service over an HTTPS connector, and the payment service reaches the database through a JDBC connector. Drawing this lets you reason about response time and failure points.
  • Allocation structure: the web server runs on machine A, the payment service on machine B behind a firewall, and the database on machine C with nightly backups. Drawing this answers the operations team's questions about capacity and failover.

Same bookstore, three structures, three different questions answered — and no single one of the three drawings could replace the others.

7.1.4 Trade-offs Shape the Solution

Every stakeholder wants something different: the user wants speed, the security officer wants isolation, the manager wants low cost, the maintainer wants clean code. The architect cannot satisfy everyone at once. Every architectural choice involves trade-offs — gaining one quality usually costs some amount of another. Making the presentation layer talk directly to the database is fast to build but couples the interface to the data schema; separating them through a business layer protects the design but adds a hop that costs response time.

So the architect weighs the competing needs against the goals that matter most for the system at hand, and then proposes a solution that balances them. There is rarely a "perfect" architecture — only a defensible balance, argued from the priorities. This is also why evaluation methods like ATAM (covered at the end of this session) exist: they make the trade-offs explicit instead of leaving them hidden inside the design.

The next sections show the four classic views and how each view is built from one of the three kinds of structures.

7.1.5 The Four Views at a Glance

The four views are the logical view, the process view, the development view, and the physical view. They describe the system from four sides:

View Side of the system Rests on Primary stakeholder
Logical the design (functionality) module structure analyst
Process the runtime (processes, threads) component-and-connector structure integrator
Development the code (packages, organisation) module structure (software-management angle) programmer
Physical the hardware (machines, networks) allocation structure system engineer

This grouping was popularised by the model set down in the classic paper by Philippe Kruchten — often called the "4+1" model, because the four views are tied together by a fifth element: the scenario. The scenario ties the views together so that each quality goal can be traced through the system; it is the "+1" that makes the four views add up to one coherent description.

Scope: the four views are projections of one architecture, not four architectures. If you ever find the logical view contradicting the physical view, the problem is not the views — it is that the documentation has drifted out of date. Also note the boundary of the vocabulary: "view" always means a documented projection for some stakeholder group; do not use it for an ad-hoc whiteboard sketch nobody maintains.

Pitfalls

  1. Confusing structure with view. The structure is the underlying set of elements and relations; the view is its documented projection. Saying "this class diagram is the structure" mixes the two levels — the class diagram is a view of a module structure.
  2. Assuming one view can do everything. Squeezing processes, code layout, and hardware into a single diagram produces noise. Choose the view that answers the stakeholder's question.
  3. Treating the four views as independent. They are coupled: a change in the logical view (a new responsibility) usually ripples into the development view (new package), the process view (new interactions), and possibly the physical view (new capacity needs).
  4. Forgetting the scenario. Views without scenarios answer "what is it?" but never "is it good enough?" The scenario is what turns pictures into evidence.

One architecture, many views: module structures feed the logical and development views, component-and-connector structures feed the process view, and allocation structures feed the physical view — and the scenario threads a quality goal through all of them.

Real-world connection. Large industrial systems are documented exactly this way. Air-traffic-control vendors, banking platforms, and ERP suites all maintain separate design documents for analysts, developer teams, integrators, and deployment engineers, because each group consumes a different projection. Kruchten's paper came out of his work on large telecom systems at Rational, where the cost of miscommunication between those groups was measured in millions — the views exist because unshared understanding is expensive.

Exam note: the mapping "four views ↔ three kinds of structures ↔ primary stakeholder" is core exam material; be ready to name which structure underlies which view.

7.2 Exam Strategy and Study Advice

7.2.1 The Structure of the Examination

The examiner divides the paper into three questions, and each question has three or four subparts. The subparts carry marks individually, so a partial answer on one subpart still earns some credit. This structure rewards a simple tactic: read each subpart, answer exactly what it asks, and collect the small credits question by question.

Pitfall (flagged by the professor): a memorized answer that does not address the subpart earns nothing. Students who vomit a prepared answer onto the page — however polished the prepared answer was — score zero on that subpart. The examiner is testing whether you can apply the ideas to the asked subpart, not whether you can recite a paragraph. Read the question, identify which concept it targets, and answer that.

Exam note: the paper has three questions with three to four subparts each; partial credit is given per subpart, so never leave a subpart blank — even a partial, correct-on-topic answer earns marks.

7.2.2 A Common Misunderstanding

A frequent misunderstanding among students is that the architecturally significant requirements can be read straight from the problem statement. That is rarely the case. A problem statement tells you what the customer said; it seldom tells you which of those statements will shape the architecture. Many requirements are hidden — implied by the domain, the users, the scale, or the regulations — and must be uncovered before the architecture can take shape.

Think of a doctor diagnosing a patient: the symptoms are stated openly, but the disease behind them must be inferred from knowledge of how bodies work. Requirements work the same way: the statement gives symptoms ("the site feels slow", "we have many branch offices"), and the architect infers the architecturally significant requirements (response-time targets, replication needs) from experience with the domain.

7.2.3 Building on the Previous Session

The earlier session on non-functional requirements is the basis for this one. There we said that quality attributes such as security cannot be decided at the end; they must be considered while the architecture is chosen, because qualities are properties of the whole structure, not features bolted on afterwards. This session uses that previous discussion and turns it into a practical method: the views show where each quality lives in the design, the scenario records how it will be judged, and ATAM (later in this session) checks whether the design delivers it.

Recap in one line: last session defined the goals; this session builds the machinery that traces and tests those goals through an architecture.

7.2.4 Three Kinds of State

Q: As an ASP.NET developer, what three kinds of state must you track, and what is the session state?

A: The session state is not the budget session, the monsoon session, or the summer session of the national parliament. That answer earns a zero in a software examination. The session state is the state that identifies your session between the web page and the server.

The words sound alike, but the software meaning is different. In web applications there are three kinds of state to keep straight:

  • View state — the state of the controls on one page (what the user typed, which box is checked), kept so the page can redraw itself after a round trip.
  • Session state — the server-side memory that identifies your session between the web page and the server across multiple requests: who you are, what is in your cart, where you were in a workflow.
  • Application state — data shared by all users of the application, such as a cached product list.

The professor's parliament joke makes a serious point about vocabulary: an exam answer must use the term in its technical sense. When a student answered "budget session, monsoon session, summer session", the answer failed not because the words were wrong English but because they were the wrong domain. In software architecture, session state means the per-user conversation state between browser and server — typically held in a store keyed by a session token sent back and forth in a cookie.

Worked example — spotting session state in a shopping flow.

You log in to a shopping site, add an item to the cart, browse two more pages, then check out. What made that possible?

  1. Request 1 (login): the server creates a record — user alice, logged in — and hands the browser a small token (a session ID). The record lives in session state on the server.
  2. Request 2 (add to cart): the browser sends the token with the request. The server looks up the session record by token and stores "cart = [item #42]" inside it.
  3. Requests 3–4 (browsing): every page load carries the same token, so the server keeps recognising you without asking you to log in again.
  4. Request 5 (checkout): the server reads the cart from session state and completes the order.

The final answer: session state is the server-side store that ties all five requests to one identified conversation between your web page and the server. Sense-check: if the server had kept no session state, step 3 would have forced a fresh login on every click — which is exactly what happens when session handling breaks.

7.2.5 Discovering the Significant Requirements

Q: How do we determine the architecturally significant requirements from a problem statement?

A: Very often this is not even possible directly. Most architecturally significant requirements have to be smelled out from the domain; they must be interpreted, extracted, and derived from the needs and constraints of the problem statement, and then transformed into the architecture.

"Smelled out" is the honest verb here. Unlike functional requirements ("the system shall print a receipt"), architecturally significant requirements rarely appear as sentences in the problem statement. They hide inside phrases like "our branches are spread across the country" (→ availability and replication needs), "auditors inspect every transaction" (→ security and auditability), or "we run month-end sales" (→ performance spikes). The architect's job is interpretation: read the statement, ask what operational realities it implies, write those implications down as explicit quality-attribute scenarios, and only then choose structures that satisfy them.

This connects straight back to 7.1.4: because trade-offs shape every solution, knowing which requirements are truly significant decides which side of each trade-off the architect protects.

Exam note: answer the subpart actually asked — memorized dumps earn zero. And remember: architecturally significant requirements are derived from the domain, not copied from the problem statement.

7.3 The Four Views and the Scenario in Detail

7.3.1 The Logical View

The logical view describes the design from the inside: the classes, the objects, and the responsibilities that live in the system. It answers the question what does the system do, and which parts carry which duties? — without saying anything yet about processes or machines. It is the view an analyst uses to understand what the system must do, and it is usually captured with class diagrams (responsibilities and relations) and sequence diagrams (how responsibilities collaborate over time).

UML tools support this view directly: IBM's tool Rational Rose and the open-source StarUML both let you draw class diagrams and sequence diagrams that are the logical view. When an analyst hands you such diagrams, you are looking at functionality decomposed into elements — nothing more, and deliberately nothing less.

Logical view in one line: elements = classes/objects with responsibilities; relations = "knows about", "calls", "is part of"; reader = the analyst who must understand the functionality.

7.3.2 The Process View

The process view shows the system in action. It describes the processes, the threads, and the timing behaviour at runtime: which programs run concurrently, how they communicate, where the queues form, and what must finish within what deadline. If the logical view is the anatomy of the system, the process view is its physiology — the same body, seen working.

The process view is built by the integrator, who must ensure that the pieces communicate correctly and finish their work in time. The integrator takes components written by different programmers and makes them cooperate as live processes; timing and concurrency problems (deadlock, missed deadlines, race conditions) surface exactly here, which is why this view belongs to the integrator rather than to any single programmer.

7.3.3 The Development View

The development view looks at the source code. It organises the code into packages and components, and it shows how the work is divided among teams: which team owns which package, in what order the modules can be built, and which versions must stay compatible. The programmer works mostly in this view, because it describes the code units that the programmer writes and maintains day to day.

A useful contrast to remember:

Question Logical view Development view
What is an element? A class/object with responsibilities A package/module in the code base
What matters? Functionality and duties Organisation, ownership, build order
Who reads it? Analyst Programmer

The two views can look similar for small systems but diverge quickly in real projects: one runtime class may be spread over several code modules, and one module may contain many classes.

7.3.4 The Physical View and the ATC Example

The physical view maps the software onto the hardware. It treats the hardware as a black box that we do not open: the view only shows which machines run which parts of the system, and how those machines are connected — it says nothing about what happens inside each machine's electronics.

Scope (flagged by the professor): the physical view treats the hardware as a black box. Do not draw circuit details or internal disk layouts here; the physical view's job is the software-to-machine mapping, networks, and capacity — nothing deeper.

Worked example — air traffic control (ATC).

The air traffic control system is the classic layered example. The system is structured in layers: display logic on top, tracking and conflict-detection logic in the middle, and signal handling at the bottom. Now look at it through the physical view:

  • What you draw: the display screens across the airport control room, the server machines running the tracking software, the radar heads, and the communication links that carry the radio signals between radar, servers, and displays.
  • What each element is: every box is a machine or device (black boxes); every line is a network link.
  • Why it matters: controllers' screens must never go dark, so the physical view is where redundancy is planned — two servers, dual networks, backup power for the displays.
  • Sense-check: nothing in this drawing says anything about classes or threads — that information lives in the other views. The physical view answered only "what runs where".

This is why ATC is the standard illustration: safety-critical systems live or die by their deployment mapping, and the physical view is exactly that mapping.

7.3.5 The Scenario and the PABX Example

The scenario is the written description that specifies how the application functions under a particular set of conditions. A good scenario names the conditions ("a call arrives while all operators are busy"), the actors, and the expected response — so it can be used as a test: run the design through the scenario and see whether the design still stands.

The scenario is tied to each of the four views so a quality goal can be traced through the design: the same "call waiting" scenario appears as objects in the logical view, as processes and message flows in the process view, as packages in the development view, and as boards and lines in the physical view.

Worked example — the PABX through four views.

A PABX (private branch exchange) is the telephone switch that handles office phone calls — routing internal extensions, connecting outside lines, holding conferences. The classic exercise draws the same PABX four times:

  1. Logical view: classes such as Call, Extension, Route, ConferenceBridge with their responsibilities — Call knows its origin and destination; Route decides the path.
  2. Process view: processes for call setup, tone generation, and billing, running concurrently and exchanging messages when a handset goes off-hook.
  3. Development view: packages per team — signalling stack, switching core, billing module — with build order and interfaces between them.
  4. Physical view: line cards, the switching fabric, and the controller chassis, showing which software runs on which card.

The PABX controller routes the calls between the layers: a request enters at the top, the controller decides the route using the rules in the middle layer, and the bottom layer drives the hardware that connects the line. Sense-check: one phone call can be traced through all four drawings without contradiction — if tracing fails in any view, the views are inconsistent.

7.3.6 Communication Diagrams and the Scenario

Each view can be captured with a diagram type that matches the structure it describes: class diagrams for the logical side, deployment-style diagrams for the physical side, and so on. Communication diagrams show the interactions between objects at runtime — objects as boxes, messages as numbered arrows between them — which makes them a natural fit for walking a scenario through the process/logical side: follow the numbered arrows and you have traced the scenario.

Because the scenario names the exact conditions, each quality goal can be traced from the logical view to the physical view and back. That traceability is the practical payoff of the whole scheme: quality stops being a vague promise ("it will be fast") and becomes a chain of checkable statements ("this responsibility → this thread → this interface → this machine with this capacity").

Pitfalls

  1. Mixing views in one drawing. Putting classes, threads, and machines in the same box-and-arrow picture destroys all three. One view per drawing.
  2. Forgetting who reads the view. A logical view full of deployment detail is useless to the analyst it was drawn for.
  3. Scenarios without conditions. "The system works well" is not a scenario; "200 concurrent calls during morning peak complete routing within 2 seconds" is.
  4. Drawing the inside of the black box. In the physical view, hardware internals are out of scope by definition.

Exam note: the four views and the scenario are the core of the examination. Practise drawing all four views for one system (PABX or ATC style) and tracing one scenario through them.

Real-world connection. Telecom equipment makers document switches and exchanges exactly this way — Kruchten's original paper drew on large telecom projects — and modern equivalents do the same: a video-conferencing product has its logical service responsibilities, its media-processing processes, its code repositories per team, and its data-centre deployment map, each maintained as a separate artefact for a separate audience.

7.4 Views Are Interconnected

7.4.1 The Views Work Together

The four views are not separate pictures; they work together like the circulatory system of the human body. The heart, arteries, and capillaries are different structures, but they carry one blood supply — if one vessel narrows, the whole circulation feels it. In the same way, the four views are projections of one architecture, and a change in any one of them propagates to the others:

  • the logical view decides what the elements are (the responsibilities),
  • the process view decides how they run (processes, threads, timing),
  • the development view decides how they are coded (packages, teams, build order),
  • the physical view decides where they live (machines, networks).

Where the analogy breaks: blood flows in one connected loop, while views are linked by mappings you must actively maintain. The mapping from one view to another must be consistent — every element in the process view must trace back to elements in the logical view, and forward to machines in the physical view. A change in one view affects the others through exactly these mappings.

Worked mini-example — adding "print receipt" to a billing system.

  1. Logical view: a new responsibility ReceiptPrinter appears on the Billing class.
  2. Process view: printing must not block payment processing, so receipt generation becomes a separate thread with a print queue.
  3. Development view: a new package printing is created; team B owns it; billing now depends on printing.
  4. Physical view: the branch office's local printer server must be added to the deployment diagram, with network capacity for print jobs.

One small feature, four views updated. Miss any one of them and the documentation no longer describes the system that will actually be built.

7.4.2 Tracing a Quality Goal Through the Views

To prove a quality goal, the architect traces it through all the views. A quality goal is never "in" one view only — each view carries one facet of it:

View How a response-time goal appears there
Logical as a responsibility ("the search responsibility must complete within 2 s")
Process as a scheduling rule ("search runs at higher thread priority than reporting")
Development as an interface contract ("the search interface must not make blocking calls")
Physical as a hardware capacity ("the search server is sized for 500 queries/second")

This table is worth memorising because it turns "the system should be fast" into four checkable statements. If any link in the chain is missing — say, nobody sized the machine — the goal is unproven, no matter how good the other three views look. The same tracing works for security (responsibility → authentication process → credential-handling package → firewall placement) or availability (recovery responsibility → heartbeat process → redundant module → standby server).

7.4.3 Keeping the Views Consistent

The views must be kept in step. When a decision changes one view, the architect must update the others; otherwise the documentation lies and the teams build the wrong thing. A stale physical view that still shows one server, after the team has split onto three, will mislead every capacity discussion that reads it.

Reviews are the practical tool that catches inconsistencies between the views: a group walks one scenario through all four views and checks that the story matches at every step. Where the trace breaks — an element with no owner, a process with no machine, an interface nobody implemented — there lies the inconsistency.

Pitfalls

  1. Updating one view and calling it done. Every change needs its ripple checked through the mappings.
  2. Letting reviews check views separately. Reviewing each view in isolation finds internal errors but misses cross-view contradictions; always review by walking scenarios across views.
  3. Assuming tooling keeps views synced automatically. Tools help, but consistency is ultimately a discipline of the architect.

One architecture, four coordinated projections: trace every quality goal through logical → process → development → physical, and use scenario-based reviews to keep the views from drifting apart.

Real-world connection. This is why mature organisations run architecture review boards: when a bank's payment platform adds a new fraud-check service, the board requires the change to appear coherently in all maintained views before approval, because inconsistent documentation between teams is a leading cause of integration failures in large systems.

7.5 Structures, Views, and Decision Areas

7.5.1 The Architect's Key Decisions

An architect makes decisions that are hard to reverse, so they must be made carefully. Changing a class name is cheap; changing the way the whole system is split into subsystems — after ten teams have built against it — is close to rewriting the system. That is why these decisions belong to architecture at all: architecture is the set of decisions that are expensive to undo.

The two central decision areas are decomposition and assignment:

  • Decomposition decides how the system is split into parts — which responsibilities group together into one module or component, and which stay separate.
  • Assignment decides where those parts live — on which processor, behind which connector, owned by which team.

Scope (flagged by the professor): architectural decisions also become commitments. An architecture that is announced and shared carries legal and commercial obligations for the team that made it — once you publish interfaces and delivery plans based on a decomposition, customers and partner teams build on them, and changing course can mean penalties, renegotiated contracts, or lost trust.

A helpful analogy: decomposition is how you divide a kitchen into stations (grill, pastry, plating), and assignment is who works each station and where each station stands in the room. Decide the stations badly and every order jams; decide them well and the restaurant scales to a full house.

7.5.2 Decomposition and Assignment in Practice

Decomposition produces modules and components that can be built separately — separate enough that different people can work on them without stepping on each other, related enough that they fit together into one system. Assignment then places the modules on processors and the components on connectors: this service runs here, talks through that message queue, and is maintained by that team.

The two decisions appear in every kind of structure, so the architect always chooses a decomposition and an assignment even when the words are not used. Drawing a layered diagram? You have decomposed. Deciding the database runs on its own server? You have assigned.

7.5.3 How the Decision Areas Map to the Structures

Each of the three kinds of structures answers a different question:

Structure Decision area Question answered
Module structures decomposition What are the units of code?
Component-and-connector structures assignment at runtime Which elements interact and through which connectors?
Allocation structures assignment across hardware Which software runs on which machine?

Notice the pattern: decomposition comes first conceptually (you cannot assign what you have not defined), but in practice the architect iterates — a hardware constraint discovered during assignment often forces the decomposition to be re-cut.

7.5.4 Why the Views Are Not the Structures

A view is a projection; a structure is the underlying reality. The same structure can give several views (one module structure yields both a "decomposition" diagram for managers and a "uses" diagram for developers), and the same view can combine several structures (a single drawing may overlay module groupings with deployment notes). Confusing the two is a common trap, so keep the vocabulary precise.

Concretely: if two teams draw different diagrams of the same system, they may still be describing the same structure — the disagreement is about presentation, not substance. Conversely, two identical-looking drawings can hide different structures. The structure is what the system is; the view is what we say about it.

7.5.5 From the Scenario to Measurements

The scenario drives the evaluation. Each scenario names five things:

  • the source — who or what triggers the event,
  • the stimulus — the event itself,
  • the environment — the conditions under which it happens,
  • the artefact — which part of the system receives it,
  • the response — what the system must do, and how well.

Example: "source: 500 concurrent shoppers; stimulus: search request; environment: normal operation, peak hour; artefact: search subsystem; response: results within 2 seconds." A scenario written this way can be judged true or false — which is exactly what evaluation needs.

Once the scenarios are written, the architect records measurable qualities such as performance in terms of response times and throughput, and these numbers become the evidence for the trade-off analysis. Vague goals cannot be traded off; measured ones can.

7.5.6 The Tester View and Functional Checks

Q: Who examines the system through the tester view, and what does that view check?

A: The tester view is the view of the person who tests the system. It checks the functional requirements — whether the required functions are actually present and working — and it checks the measurable qualities such as response times.

Functional checks verify what the system does; measurable checks verify how well it does it. The distinction matters because passing every functional test says nothing about whether the system survives load: a checkout flow can be perfectly correct and still collapse when a thousand users arrive at once. The tester needs both kinds of evidence — scenario-based functional passes and instrumented measurements (response time distributions, throughput under load).

Pitfalls

  1. Treating all decisions as equally reversible. Only some decisions are architectural; spend care where reversal is expensive.
  2. Announcing an architecture before stress-testing it internally. Publication turns design choices into commitments with legal and commercial weight.
  3. Writing scenarios without measurable responses. "Fast" cannot be evaluated; "under 2 seconds for 500 concurrent users" can.
  4. Testing function only. Measurable qualities need their own checks, not just feature checklists.

Architecture = decomposition + assignment; structures answer the questions, views document the answers, scenarios turn the answers into measurable claims, and the tester verifies both function and measure.

Real-world connection. Procurement contracts for large government and enterprise systems routinely reference the architecture document: milestones, penalties, and acceptance tests are tied to the published decomposition and assignment, which is precisely why the professor warns that shared architectures carry legal and commercial obligations.

7.6 Typical Layered Architectures

7.6.1 Layers, Business Logic, and Presentation

A layered architecture arranges the system into horizontal layers, and each layer has a single job. A layer is a logical grouping of components that share one kind of responsibility; interactions mostly happen between neighbouring layers, and upper layers send commands downward while data flows back up.

The two layers that appear in nearly every system are:

  • the presentation layer — talks to the user: screens, forms, buttons, validation of what the user types;
  • the business logic layer — holds the rules of the application: how an order is priced, when an account may be overdrawn, what counts as a duplicate booking.

Below them usually sits the data layer (7.6.5). The separation matters because each kind of change lands in exactly one layer: a new screen design touches presentation only; a new tax rule touches business logic only. That single-job-per-layer discipline is what makes layered systems maintainable — Microsoft's architecture guide calls the style an effective separation of concerns built on high cohesion within a layer and loose coupling between layers.

Layers vs tiers: a layer is a logical division (presentation/business/data); a tier is a physical one (which machine). Several layers can live on one tier. Only tiers imply physical separation.

7.6.2 Enterprise Software and the Vertical Cut

Enterprise products such as the accounting package, the enterprise resource planning (ERP) suite, and the customer relationship manager (CRM) all follow the same layered shape. Packages like Tally, Oracle, SAP, and Dynamics ship as layered products, and the same vertical cut runs through them: pick any feature — payroll, invoicing, lead tracking — and it cuts vertically through a screen on top, rules in the middle, and data at the bottom.

This is why enterprise products feel so similar to use and integrate so predictably: whatever the business domain, the stack shape is the same, so connecting a CRM to an ERP means connecting presentation-to-presentation flows and data-to-data flows along well-known seams.

7.6.3 Pluggable Components

Good layers are built so a component can be swapped without touching the rest of the system. The architect designs the interfaces first — the named set of operations a component offers — and then plugs a concrete component into the interface. Callers depend only on the interface (the socket), never on the concrete part (the plug).

This is why large products can grow over time: the new component plugs into the same socket as the old one. Replace a tax-calculation engine behind its interface and no caller changes a line. The habit also enables parallel teams: once the interface is agreed, both sides build against it independently.

7.6.4 Exchangeable Components and Caching

When the interface is stable, the components are exchangeable. A caching layer is the common example: the application can exchange a slow data source for a fast one that keeps the popular entries in memory. Distributed memory stores such as Memcache sit between the layers without changing the caller — the business layer asks for "product 42" exactly as before; whether the answer comes from RAM or from the database is invisible above the interface.

The exchange has a cost worth naming: cached data can go stale, so the architect must choose a refresh policy (time-to-live, write-through invalidation). Exchangeability gives you the option to optimise; the policy decides whether the option pays off.

7.6.5 The Database Layer and Shared Data

The bottom of the stack is the data layer. Many applications share a single database, so the data layer must be designed for concurrent access: hundreds of requests arrive together, read overlapping rows, and write competing updates. The database keeps the data consistent while several layers read and write at the same time — through transactions that make multi-step updates all-or-nothing, and locking or snapshot isolation that stops two writers from corrupting each other.

Because every layer above funnels down to this one, the shared database is usually the first bottleneck a growing product meets — which is exactly why the caching layer of 7.6.4 sits in front of it.

7.6.6 The Search Box and Parameterized Queries

The search box in an e-commerce site is a classic source of mistakes. The typical vulnerable page asks for a keyword and builds a query by joining the user's text directly into the command:

SELECT * FROM Products WHERE Name = '" + userInput + "'

An attacker can type something crafted instead of an honest keyword — the lecture's memorable version: something like a toothpaste brand followed by extra SQL characters — and the joined text changes the meaning of the query rather than just the value being searched. Such an attack is called SQL injection: untrusted input smuggles structure (new SQL commands) into a statement that the database then obeys.

Worked example — the toothpaste search box.

Suppose the page builds its query by string joining, and the user searches for Colgate:

  1. Honest input: the executed command becomes SELECT * FROM Products WHERE Name = 'Colgate' — fine.
  2. Malicious input: the attacker types ' OR '1'='1 into the box. The joined command becomes SELECT * FROM Products WHERE Name = '' OR '1'='1'.
  3. The added clause '1'='1' is always true, so the condition matches every row: the attack dumps the whole product table — and with sharper payloads can delete tables or bypass logins.
  4. The fix — a parameterized query: the command is fixed in advance and the user's text is passed as a value only: SELECT * FROM Products WHERE Name = @keyword with @keyword bound to whatever was typed. The driver sends the command and the value separately, so input can never alter the statement's structure — typing ' OR '1'='1 now searches for products literally named that.
  5. Sense-check: after the fix, the attacker's string appears in the results column as a failed search for a weird product name — harmless, because structure and data travel separately.

Pitfall (flagged by the professor): an unvalidated search box is vulnerable to SQL injection, so always use parameterized queries. String-joining user input into SQL is the defect; parameters are the cure.

Scope: the layered pattern is not free. Each boundary adds a hop, so a layered system can be slightly slower than a monolith, and deep stacks take more upfront design. Add layers where separation of concerns pays (most enterprise systems), not as ritual for tiny tools.

Exam note: the layered pattern is part of the midterm syllabus. Practise drawing the presentation, business, and data layers and explaining the flow of a request through them — and remember the security rule: parameterized queries, never concatenated ones.

Real-world connection. Every ERP deployment in industry runs this pattern: SAP's screens, business rules, and database are separate maintainable units, and e-commerce platforms defend their search endpoints with parameterized statements as standard practice — SQL injection remains one of the most exploited web vulnerabilities precisely because the unsafe pattern is so easy to write by accident.

7.7 Responsive Design and the Architect's Vocabulary

7.7.1 Responsive Design and the Web Stack

Responsive design is the practice of making one web application fit every screen size. Instead of building a desktop site and a separate mobile site, you build one application whose layout reorganises itself to whatever window it lands in.

The web stack that enables it has four parts:

  1. the structure language of the browser — HTML — which holds the page's content and structure;
  2. the styling language — CSS — which decides how that content is laid out at each size;
  3. the scripting language — JavaScript — which changes the page in response to events;
  4. a JavaScript framework technique that updates the page without a reload — Ajax, which fetches data in the background so parts of the page refresh without redrawing everything.

Responsive design is part of the architect's vocabulary because the layout must be planned, not patched later. Retrofitting responsiveness onto a fixed-width design usually means rebuilding the front end; deciding up front that every component must flow into any width costs little extra and saves that rebuild.

7.7.2 The Factor That Changed Web Design

The spread of the smart phone is the factor that changed web design. Until phones carried browsers, pages could assume a generous desktop monitor; desktop pages were simply too large for the small screen, so sites had to respond to the width of the device. From that point on, the layout had to be planned for many sizes from the start.

The shift is architectural in the exact sense of this course: it added a constraint (every width must work) that shapes decisions from the first sketch, like a site built on a flood plain shapes where the building may stand.

7.7.3 The Same Application on Every Device

Q: What does responsive design mean, and how does the site change on a tablet or a phone?

A: Responsive design means the layout and the content adjust themselves to the size of the screen, so the same application looks correct on a phone, a tablet, a laptop, and a large monitor. We do not build a separate mobile site; the same pages respond to the viewport.

The viewport is the browser window's visible area on the device. "Responding to the viewport" means the CSS checks how wide the window is and picks a matching arrangement: three columns collapse to one, a side menu folds behind a button, images shrink. One URL, one codebase, many arrangements — contrast this with the older two-site approach (m.example.com), which duplicated everything and doubled maintenance.

7.7.4 The Layout Grid and Styling

The styling language provides the grid that keeps the layout consistent across sizes: the page is divided into columns, and components span a chosen number of them. On a wide screen a product card spans 4 of 12 columns; on a phone the same card spans all 12. The modern style sheet standard is CSS3, whose media queries let styles change at chosen widths, and the page structure standard is HTML5. Frameworks such as Bootstrap provide ready-made grids, so teams inherit tested breakpoints instead of inventing their own.

Together they let the same content flow into narrow and wide columns without duplicating the page — the content stays one set of elements; only its arrangement rules vary by size.

7.7.5 Mobile-First Design

Q: What is mobile-first design, and why does it help?

A: Mobile-first means we design for the small screen first and then enlarge the layout for larger screens. The hardest part of responsive design is the small screen, and it hits mobile users first, so when the mobile version works well, the larger screens become easier to handle.

So the same page starts from the phone and grows up, which is the opposite of the old desktop-first habit. Desktop-first meant designing richly and then cutting things out for mobile — painful subtraction under pressure. Mobile-first means designing under the strict constraint first (small screen, slow network, touch fingers) and then adding comfort for larger screens — easy addition with room to spare.

Worked mini-example — one news site, three widths.

  • Phone (360 px): single column; headline, image, story text stacked; menu collapsed behind a hamburger icon; ads below the fold.
  • Tablet (768 px): two columns; menu now a slim sidebar; related stories appear beside the main one.
  • Monitor (1440 px): three columns; full navigation bar across the top; a third column carries trending links.

Same HTML content throughout — only the grid spans and visibility rules differ per breakpoint. Sense-check: resize the browser window on such a site and watch the columns fold; nothing reloads, because only the styling changed.

Pitfalls

  1. Patching a fixed-width site for phones afterwards. Responsiveness must be planned from the first layout decision.
  2. Confusing responsive design with a separate mobile site. Responsive = one application responding to the viewport; a separate m. site is duplication, not responsiveness.
  3. Forgetting Ajax behaviour across sizes. Background updates must also suit small screens (partial refreshes, not full-page reloads).
  4. Designing desktop-first and subtracting. Subtraction loses content; mobile-first addition preserves it.

Exam note: be aware of responsive design — the examination may ask how the same application is served to phones, tablets, and monitors. Answer: one application, viewport-aware layout (HTML5 + CSS3 grids + Ajax), designed mobile-first.

Real-world connection. Social networking sites such as LinkedIn and Facebook serve the same application to phones, tablets, and monitors using exactly these techniques, and industry surveys consistently show mobile devices carrying the majority of web traffic — which is why mobile-first became the default posture for consumer web architecture.

7.8 Presentation, Business, and Data Layers in Depth

7.8.1 The Presentation Layer and the Facade

The presentation layer is the face of the system — everything the user sees and touches. Its danger is accretion: logic creeps into screens until the interface layer secretly runs the business. To keep the client simple, the layer often uses the facade pattern, which presents a single, clean interface to the client while the complexity of the rest of the system stays hidden behind it.

The facade works like a hotel concierge: a guest makes one request at one desk ("book me a taxi and a late checkout"), and the concierge coordinates housekeeping, the garage, and reception behind the scenes. The guest never learns the internal phone directory — and never needs to. In software terms, the client calls one tidy operation like PlaceOrder(order); behind the facade, that operation may touch inventory, pricing, and notification services.

Technologies such as WCF (Windows Communication Foundation, Microsoft's service-communication framework) and the server-side page framework fit into this layer: they are the machinery through which clients reach the system.

Facade in one line: one simple front door; all internal complexity stays behind it, so clients depend on a small surface instead of the whole system.

7.8.2 The Presentation Stack

The presentation stack runs inside the browser and on the server — it is split across both machines:

  • Browser side: the structure language (HTML), the styling language (CSS), and the scripting language (JavaScript) render pages and react to user actions.
  • Server side: page templates such as JSP pages (JavaServer Pages — HTML templates with server-side code) and the request handler that receives each HTTP request, fills the template with data, and ships the result.

This split lets the same page be served to many clients: the template is defined once on the server, and every browser gets its own filled copy. The browser-side half of this stack is exactly what responsive design (7.7) styles and scripts.

7.8.3 The Business Layer and Its Patterns

The business layer holds the rules and the workflow of the application: how an insurance claim is assessed, which discounts stack, when an order may be cancelled. It uses patterns such as:

  • the facade again — here called an application facade — to hide the underlying services behind coarse operations so callers make one call instead of five;
  • the transaction to keep several steps as one unit — either all steps commit or none do, so money never leaves one account without arriving in another;
  • business workflows for long-running multi-step processes whose steps must happen in order.

The business layer must be independent of the presentation layer so the rules stay correct when the interface changes. Replacing web pages with a mobile app should change nothing about how refunds are calculated — if it would, the rules have leaked into the wrong layer.

7.8.4 Sessions and Transactions

The business layer also manages the session. The session keeps the identity of the user across several requests, so the server remembers who is asking — recall from 7.2.4 that this per-user conversation state is what turns a series of separate HTTP requests into one continuous interaction.

Credentials are handled with deliberate asymmetry: when the user sends credentials, they stay on the server, and the client only carries a token. The password itself is verified once at login; afterwards the browser presents just the session token, so a stolen cookie reveals a key, not the vault. Communication with the server is secured end to end over the secure channel provided by SSL (Secure Sockets Layer — the encryption protocol behind https://), so tokens, credentials, and business data cannot be read on the wire.

Worked mini-example — one login, three mechanisms.

  1. User posts username/password over SSL → the server checks them against its store.
  2. The server creates a session record ("user 1042, cart empty") and returns a random session token; the password never travels again.
  3. Each later request carries only the token over SSL; the business layer resolves it back to "user 1042".
  4. At checkout, the multi-step payment runs inside one transaction: stock reservation, charge, and receipt either all succeed together or all roll back.

Sense-check: sniffing the network after login shows only encrypted traffic and tokens — no reusable password anywhere.

7.8.5 The Data Layer and Database Access

The data layer is the bottom of the stack. It talks to the database through standard interfaces such as ODBC (Open Database Connectivity — a cross-language database API) and JDBC (Java Database Connectivity — the Java equivalent), and it can use the embedded-SQL variant SQLJ, which lets SQL statements sit directly inside Java source code with static checking.

A common refinement is the object mapping approach (object-relational mapping): the code works with objects instead of rows, so a Customer object in memory maps transparently to a CUSTOMERS table row, and developers manipulate objects while the mapping handles the SQL.

Because these interfaces are standard, the web server — such as Apache — talks to the data layer through the same calls whether the data lives on the same machine or on a separate database server. That is layers vs tiers from 7.6.1 in action: moving the database to its own tier changes deployment, not code.

Pitfalls

  1. Letting business rules leak into screens. Then every new client re-implements the rules — and eventually disagrees with itself.
  2. Sending credentials on every request. Credentials belong at login; afterwards only the token travels.
  3. Running multi-step operations without transactions. A crash mid-sequence leaves half-completed business operations.
  4. Hard-wiring database specifics above the data layer. Standard interfaces (ODBC/JDBC) exist precisely so the data tier can move or change.

Presentation = facade + browser/server split; business = rules, workflows, sessions, transactions kept independent of the UI; data = standard interfaces (ODBC/JDBC/SQLJ) and object mapping — three layers, each swappable behind its interface.

Real-world connection. This is the exact shape of Microsoft's application architecture guidance and of countless enterprise stacks: WCF facades exposing business services, JSP/ASP.NET page frameworks serving browsers, and JDBC/ODBC bridges into shared databases — the same vertical cut seen in 7.6, now with its component types named.

7.9 ATAM: Architecture Trade-off Analysis Method

7.9.1 Why Evaluate the Architecture

The architecture is chosen early, and a bad choice is expensive to undo — recall from 7.5.1 that architectural decisions are precisely the hard-to-reverse ones. So the evaluation must happen before the system is built, so the trade-offs are visible while changes are still cheap: changing a diagram costs an afternoon; changing a deployed system costs months.

ATAM — the Architecture Trade-off Analysis Method — is the method that makes this evaluation structured and repeatable. It was developed at the Software Engineering Institute and has been used for over a decade in domains from automotive to financial to defence systems. Its key design property: evaluators need not be familiar with the architecture or its business goals, the system need not yet be constructed, and there may be a large number of stakeholders.

7.9.2 The Inputs and the Proof

ATAM starts from the quality goals and the scenarios that express them — the same scenario form met in 7.5.5 (source, stimulus, environment, artefact, response). The method produces evidence that the architecture can meet those goals: for each important scenario, the architect walks through the design and shows which decisions carry it.

This evidence is the proof that the design will work, so the stakeholders can see the reasoning instead of trusting a promise. "The system will be available" is a promise; "the heartbeat detects a failed server within two seconds because of this watchdog decision" is proof — checkable, debatable, recordable.

7.9.3 The Review Panel and Peers

The evaluation is done by a team of reviewers, and the review includes the peers of the architect. Three groups participate:

  • the evaluation team — three to five outsiders with defined roles (team leader, evaluation leader, scribes, questioner), recognised as competent and unbiased;
  • the project decision makers — the people empowered to speak for the project and mandate changes; the architect always participates;
  • the architecture stakeholders — developers, testers, integrators, maintainers, users whose work depends on the architecture.

Because the reviewers are independent, the analysis is honest: outsiders are not afraid to raise sensitive problems that insiders have learned to live with. The peer review also spreads the knowledge, because the same method can then be applied to the next project — participants leave having internalised scenario thinking and trade-off analysis.

7.9.4 Trade-offs Between Quality Attributes

The heart of ATAM is the trade-off between quality attributes. Improving one quality often weakens another: more redundancy raises availability but costs money and sync time; tighter security adds authentication steps that hurt usability; caching speeds reads but risks stale data. The method's job is to name the points where the architecture is sensitive:

A sensitivity point is a property that changes when a design choice changes — turn that one dial and one quality moves. A trade-off point is where two qualities pull in opposite directions — the same dial improves one quality while degrading another.

Classic example from the method's own case material: the frequency of heartbeat messages between servers determines how fast a failure is detected (availability), but higher frequency consumes processing time and network bandwidth (performance). The heartbeat frequency is a sensitivity point for fault-detection time and a trade-off point between availability and performance.

7.9.5 Risks and Non-risks

The output of the analysis is a list of risks and non-risks. A risk is an architectural decision that might violate a quality goal under the stated requirements; a non-risk is a decision that, upon analysis, is deemed safe. Related risks are grouped into risk themes — systemic weaknesses such as "backup capability gets not enough attention" — and each theme is tied back to the business goal it threatens.

The stakeholders can then respond in exactly three ways to each risk: accept it knowingly, change the choices, or lower the goals. ATAM does not decide for them; it makes the decision an informed one.

7.9.6 The Role of the Scenario in ATAM

ATAM closes with the scenarios that drive the decision. The team does the scripting of the scenarios, the utility tree ranks them, and the analysis shows which ones put the architecture at risk.

The utility tree works top-down: quality attribute → attribute refinement → prioritised scenario leaf, e.g. Performance → latency → "search returns results in under 2 seconds for 500 concurrent users (High importance / High difficulty)". Scenarios ranked most important get analysed first, because analytical time is limited.

ATAM as a procedure

  • Purpose: prove or disprove, before construction, that the architecture meets its prioritised quality goals.
  • Inputs: business drivers, the architecture presentation (views!), prioritised quality scenarios (utility tree).
  • Steps: present the method → present business drivers → present architecture → identify architectural approaches → generate the utility tree → analyse approaches against high-ranked scenarios (finding sensitivity points, trade-off points, risks, non-risks) → brainstorm and prioritise further scenarios with stakeholders → analyse again → present results grouped into risk themes.
  • Outputs: prioritised scenarios, risks and non-risks, sensitivity and trade-off points, mapping of decisions to quality requirements, risk themes tied to business drivers.

Trace — analysing one scenario.

Scenario: "One CPU of the main switch fails during normal operations; the switch must reach 99.999% availability."

  1. The architect explains the relevant decisions: backup CPUs on different hardware, watchdog timers, heartbeat messages every second, failover routing.
  2. The evaluation team probes each decision: the watchdog guarantees detection within 2 seconds (safe → non-risk); the lack of a backup data channel could break recovery (→ risk); heartbeat frequency sets detection time but costs bandwidth (→ sensitivity + trade-off point).
  3. Recorded outcome: one risk ("availability requirement might be at risk due to lack of backup data channel"), one trade-off documented, one reasoning line per decision.
  4. Sense-check: the stakeholders now know exactly which choice threatens which goal — the full picture behind the final accept/change/lower decision.

When to use / alternatives: a full ATAM costs roughly 20–30 person-days plus stakeholder time, so it suits large, costly, risky projects. For smaller projects, a lightweight variant compresses the same steps into a day or half-day run by internal staff. Skipping evaluation entirely is the alternative only where being wrong is cheap.

Pitfalls

  1. Evaluating after construction. Then the findings arrive when changes are already expensive — the exact mistake ATAM exists to prevent.
  2. Analysing all scenarios equally. The utility tree exists so scarce analysis time goes to the highest-ranked scenarios.
  3. Confusing sensitivity points with trade-off points. Sensitivity = one dial moves one quality; trade-off = one dial moves two qualities in opposite directions.
  4. Treating risks as failures. A listed risk is a success of the method — an unknown risk is the dangerous one.

Exam note: ATAM continues in the next session; expect to apply the trade-off analysis to a small case and to name the risks and the non-risks. Remember the vocabulary chain: scenarios → utility tree → sensitivity/trade-off points → risks/non-risks → risk themes.

Real-world connection. ATAM evaluations are used in industry to review architectures before large investments — avionics programmes (such as the Rockwell Collins case studies in the course readings) and battlefield control systems have used it to surface availability and modifiability risks while they were still cheap to fix, and banks apply the same discipline before committing hundreds of developer-years to a platform.

Exam Guidance Summary

  • The paper is divided into three questions, each with three or four subparts; answer every subpart because partial credit is given per subpart. A memorized answer that ignores the asked subpart earns nothing — read first, then answer what was asked.
  • The four views and the scenario are the core of the examination; know the logical, process, development, and physical views, which stakeholder uses each (analyst, integrator, programmer, system engineer), and the structure each one rests on (module, component-and-connector, allocation).
  • The layered pattern is part of the midterm syllabus; practise drawing the presentation, business, and data layers and explaining the flow of a request through them — including where the facade, session, and transaction sit.
  • Be aware of responsive design; the examination may ask how the same application is served to phones, tablets, and monitors. Answer with one application responding to the viewport (HTML5 + CSS3 grids + Ajax), designed mobile-first.
  • ATAM continues in the next session; expect to apply the trade-off analysis to a small case and to name the risks and the non-risks. Revise the chain: scenarios → utility tree → sensitivity/trade-off points → risks/non-risks.
  • Keep the vocabulary precise: structure versus view, decomposition versus assignment, sensitivity point versus trade-off point. Examiners award marks for using these terms in their exact technical senses.

Exam note: highest-weight material this session: the four views + scenario traceability, the layered pattern with a request flow, and ATAM's outputs (risks, non-risks, sensitivity and trade-off points).

Key Industry Applications

  • Enterprise resource planning suites such as Tally, Oracle, SAP, and Dynamics follow the layered architecture, with a presentation layer, a business logic layer, and a data layer — the same vertical cut through every feature, which is what makes these products modular and integrable.
  • E-commerce sites protect their search boxes with parameterized queries so that a crafted keyword cannot change the meaning of the query — the standard defence against SQL injection, one of the most commonly exploited web vulnerabilities.
  • Social networking sites such as LinkedIn and Facebook use responsive design so the same application serves the phone, the tablet, and the monitor — one codebase responding to the viewport instead of parallel mobile and desktop sites.
  • Mobile applications are often written once in a cross-platform framework such as React Native, and the server side can be built on a runtime such as Node.js — an example of exchangeable components behind stable interfaces: swapping the client technology leaves the layered server untouched.
  • The ATAM evaluation is used in industry to review architectures before large investments — in avionics (Rockwell Collins), defence systems, and banking platforms — so risks are found while changes are still cheap.

Where this fits in the field: every application above is an instance of this session's three threads at work — views to communicate the design to different stakeholders, layers to organise it, and scenario-based evaluation to justify it. An architect who can draw the four views of a system, place its features along the layered vertical cut, and defend the design with ATAM-style evidence is practising exactly what these industry systems demand.

SA Lecture 7 notes · Architectural Views, Layered Architectures, and Architecture Evaluation

Software Architectures· postgraduate· 2026-08-21

Sections Breakdown

1Architectural Views: Purpose and Vocabulary

Stakeholders need different projections of one architecture; structures (module, component-and-connector, allocation) underlie the four classic views tied together by the scenario.

2Exam Strategy and Study Advice

Exam structure (three questions, subparts with partial credit), the hidden nature of architecturally significant requirements, the three kinds of web state, and the link to the previous quality-attributes session.

3The Four Views and the Scenario in Detail

The logical, process, development, and physical views in detail with their stakeholders (analyst, integrator, programmer, system engineer), illustrated by the ATC and PABX examples and tied together by scenarios.

4Views Are Interconnected

The four views are coupled projections of one architecture; quality goals are proven by tracing them through all views, and reviews keep the views consistent.

5Structures, Views, and Decision Areas

Decomposition and assignment are the architect's two hard-to-reverse decision areas; they map onto the three structure kinds, scenarios turn goals into measurements, and the tester view checks function and measurable qualities.

6Typical Layered Architectures

The layered pattern: presentation, business logic, and data layers; the vertical cut through enterprise products (Tally, Oracle, SAP, Dynamics); pluggable/exchangeable components and caching (Memcache); shared databases; and SQL injection prevented by parameterized queries.

7Responsive Design and the Architect's Vocabulary

Responsive design makes one web application fit every screen via the HTML/CSS/JavaScript stack plus Ajax; the smartphone forced viewport-aware planning, CSS3/HTML5 grids (Bootstrap) implement it, and mobile-first design starts from the hardest screen.

8Presentation, Business, and Data Layers in Depth

Layer-by-layer component view: facade pattern and WCF/page frameworks in presentation, browser+server stack with JSP templates, business rules/workflows/sessions/transactions kept UI-independent (SSL-secured tokens), and data access via ODBC/JDBC/SQLJ with object mapping.

9ATAM: Architecture Trade-off Analysis Method

ATAM evaluates an architecture before construction using prioritised scenarios (utility tree), producing sensitivity points, trade-off points, risks and non-risks, and risk themes tied to business drivers.

10Exam Guidance Summary

Consolidated exam advice: paper structure with per-subpart partial credit, four views + scenario as core material, layered pattern in the midterm, responsive design awareness, ATAM continuation, and precise vocabulary.

11Key Industry Applications

Industry instances: ERP suites (Tally, Oracle, SAP, Dynamics) as layered products, parameterized queries against SQL injection, responsive design at LinkedIn/Facebook, React Native/Node.js cross-platform stacks, and industrial ATAM evaluations.

Postgraduate students studying software architecture

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.

Architectural Views: Purpose and Vocabulary

Must-know: Four views (logical, process, development, physical) rest on three kinds of structures (module, component-and-connector, allocation); a view is a documented projection of a structure.

⚠️ Top pitfall: Confusing structure (underlying reality) with view (documented projection).

Self-check: Which kind of structure underlies the physical view? (Allocation structure.)

Connects to: 7.3 The Four Views and the Scenario in Detail; 7.4 Views Are Interconnected; 7.5 Structures, Views, and Decision Areas

Exam Strategy and Study Advice

Must-know: Paper = three questions x three-four subparts with per-subpart partial credit; answer what is asked. Session state identifies the session between web page and server.

⚠️ Top pitfall: Vomiting a memorized answer that ignores the subpart earns zero; confusing session state with non-software meanings of 'session'.

Self-check: Which state identifies your conversation between the web page and the server across requests? (Session state.)

Connects to: 7.1 Architectural Views: Purpose and Vocabulary; 7.5 Structures, Views, and Decision Areas

The Four Views and the Scenario in Detail

Must-know: Logical view = analyst/classes; process view = integrator/threads-timing; development view = programmer/packages; physical view = hardware mapping (black box). Scenario ties views for traceability.

⚠️ Top pitfall: Mixing views in one drawing; drawing hardware internals inside the physical view (hardware is a black box).

Self-check: Who builds the process view and what must they ensure? (The integrator; pieces communicate correctly and finish work in time.)

Connects to: 7.1 Architectural Views: Purpose and Vocabulary; 7.4 Views Are Interconnected

Views Are Interconnected

Must-know: A response-time goal appears as a responsibility (logical), scheduling rule (process), interface contract (development), and hardware capacity (physical).

⚠️ Top pitfall: Updating one view without propagating the change to the others, so documentation lies.

Self-check: In which view does a response-time goal appear as a scheduling rule? (Process view.)

Connects to: 7.3 The Four Views and the Scenario in Detail; 7.5 Structures, Views, and Decision Areas; 7.9 ATAM: Architecture Trade-off Analysis Method

Structures, Views, and Decision Areas

Must-know: Module structures = decomposition; C&C structures = runtime assignment; allocation structures = hardware assignment. Scenario = source, stimulus, environment, artefact, response.

⚠️ Top pitfall: Confusing view (projection) with structure (underlying reality); writing scenarios without measurable responses.

Self-check: What does the tester view check? (Functional requirements and measurable qualities such as response times.)

Connects to: 7.1 Architectural Views: Purpose and Vocabulary; 7.4 Views Are Interconnected; 7.9 ATAM: Architecture Trade-off Analysis Method

Typical Layered Architectures

Must-know: Layered = presentation + business logic + data layers; enterprise products follow the same vertical cut; parameterized queries prevent SQL injection.

⚠️ Top pitfall: Building queries by joining user text into the command — enables SQL injection; always use parameters so input stays a value.

Self-check: Why does a parameterized query stop SQL injection? (The command is fixed and user text is only a value, so the query's structure cannot be altered.)

Connects to: 7.8 Presentation, Business, and Data Layers in Depth; 7.9 ATAM: Architecture Trade-off Analysis Method

Responsive Design and the Architect's Vocabulary

Must-know: Responsive design = layout and content adjust to screen size so one application serves phone/tablet/laptop/monitor; enabled by HTML5 + CSS3 grids + Ajax; mobile-first starts from the small screen.

⚠️ Top pitfall: Confusing responsive design with building a separate mobile site.

Self-check: Why does mobile-first help? (The small screen is the hardest case and hits mobile users first; solving it first makes larger screens easy.)

Connects to: 7.6 Typical Layered Architectures; 7.8 Presentation, Business, and Data Layers in Depth

Presentation, Business, and Data Layers in Depth

Must-know: Facade presents one clean interface hiding system complexity; sessions keep user identity across requests with server-held credentials and client-held tokens over SSL; data layer uses ODBC/JDBC/SQLJ.

⚠️ Top pitfall: Letting business rules leak into the presentation layer so they break when the interface changes.

Self-check: What does the client carry after login? (Only a token; credentials stay on the server; traffic runs over SSL.)

Connects to: 7.6 Typical Layered Architectures; 7.7 Responsive Design and the Architect's Vocabulary; 7.2 Exam Strategy and Study Advice

ATAM: Architecture Trade-off Analysis Method

Must-know: ATAM = scenario-driven pre-construction evaluation; sensitivity point = property that changes when a design choice changes; trade-off point = two qualities pull in opposite directions; outputs include risks and non-risks.

⚠️ Top pitfall: Confusing sensitivity points with trade-off points; evaluating only after the system is built.

Self-check: What are the three stakeholder responses to a listed risk? (Accept it, change the choices, or lower the goals.)

Connects to: 7.5 Structures, Views, and Decision Areas; 7.4 Views Are Interconnected; 7.1 Architectural Views: Purpose and Vocabulary

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.