Architectural Styles, Archetypes, and Building Blocks for Robust Software Systems

UPI Study › Courses › Software Engineering › Free lessons › Lesson 8.5 Free with a free account

Architectural Styles, Archetypes, and Building Blocks for Robust Software Systems

Software Engineering · Chapter 8: Object-Oriented Design and ArchitectureSection 8.5 · lesson 59 of 1036 min · free with a free account

← Reading and Creating Conceptual Architecture DiagramsNext lesson: Transform Mapping: Turning Data Flow into Architecture →

Earn 3 college credits for Software EngineeringRecommended for credit by NCCRS · Computer Science 301 · self-paced · one payment, lifetime access

In this lesson

Proven overall shapes, and the recurring roles inside them.

  • Distinguish an architectural style from an archetype
  • Describe layered and client-server architectures
  • Describe pipe-and-filter and model-view-controller
  • Explain how styles and archetypes work together

Transcript

Everything said in the video, section by section (811 words). Read along, or search it.

Object-Oriented Design and Architecture

Architectural Styles, Archetypes, and Building Blocks

Architects do not design every building from nothing. They reach for proven overall shapes, and fill them with familiar rooms. Software architecture works the same way. This section covers four named architectural styles, and the recurring roles, called archetypes, that fill them in.

Proven Shapes

Nobody Designs from Nothing

A building might use a courtyard layout, or a tower. And inside, it has recurring, familiar rooms. Software architecture can be approached from the same two angles. An architectural style is a proven, reusable overall shape for organizing an entire system. It answers what the system's broad structure looks like. An archetype is something smaller. A recurring structural role that shows up inside many different systems, whatever style they use. Picking a style, and identifying a system's archetypes, are two different questions. Both are worth asking.

Figure 1

4 Recognizable Shapes

Here are four recognizable styles, side by side. A layered architecture stacks presentation, business logic, and data access. Client-server splits a system into clients that request, and a server that responds. Pipe-and-filter passes data through a chain of independent steps. And model-view-controller separates the data, how it looks, and what happens next.

Layered

Organized by Responsibility

A layered architecture organizes a system into horizontal layers, each with a distinct responsibility. A layer only communicates with the layer directly above or below it. Commonly, that is presentation, business logic, and data access. Its strength is a clear separation of concerns. A layer can often be changed or replaced on its own, as long as its interface stays stable. Its weakness is overhead. Even a simple request may have to pass through every layer. And when a lower layer must keep changing to serve a higher layer's needs, strict layering can become a bottleneck.

2 Different Shapes

Client-Server and Pipe-and-Filter

Two other styles have very different shapes. A client-server architecture splits a system into a server that provides services, and one or more clients that request them, over a defined interface. It is the shape behind most networked systems, including the web. A pipe-and-filter architecture organizes a system as a sequence of independent processing steps, called filters. Each filter transforms data, and passes it to the next step through a pipe. A filter only needs to know what connects directly to it. Data-processing pipelines built from small, chainable command-line tools are a classic example.

MVC

Model, View, Controller

Model-view-controller, or M V C, splits a system into three interacting parts. The model holds the data and business logic. What is actually true. The view presents that data to a user. What it looks like. The controller mediates between them. It takes user input, updates the model, and selects which view to show. Because the model does not depend on any particular view, the same data and logic can support several different presentations at once.

Table 1

4 Styles Compared

Here are the four styles compared. Layered architecture uses horizontal layers, each depending only on the one below. Its strength is clear separation, with layers that evolve independently. Client-server has a server providing services to requesting clients. It centralizes shared logic and data, and keeps clients simple. Pipe-and-filter moves data through independent transforming steps. Its filters are reusable, and easy to recombine. And M V C separates data and logic, presentation, and control. Several views can share one model.

Archetypes

Recurring Roles Inside Any Style

Now, archetypes. Where a style describes a system's overall shape, an archetype describes a smaller role that shows up inside many different systems. Something that manages communication with the outside world. Something that coordinates a business process from start to finish. Something responsible for persistent data access. And something that represents a core business entity. A style is the floor plan. Archetypes are the kinds of rooms, like a kitchen or a bathroom, arranged differently depending on the plan.

Worth Noticing

2 Questions, Not a Choice

It is worth noticing that a style and an archetype are not competing choices. A real system typically has one overall style, and several archetypal roles arranged within it. What style is this, and what recurring roles does it need? Those are two different, complementary questions. And these styles and archetypes are the foundation. Distributed patterns, and service-based architectures, add their own concerns on top, and are covered later.

Key Terms

The Vocabulary of This Section

Let's lock in the key terms. An architectural style is a proven, reusable overall shape for organizing an entire system. A layered architecture organizes a system into horizontal layers, each communicating only with its direct neighbors. Client-server splits a system into a service-providing server, and one or more requesting clients. And an archetype is a recurring structural role that appears across many systems, whatever style organizes them.

Key Takeaways

What to Carry Forward

To pull this together. A style is a system's overall shape. An archetype is a recurring role inside it. Layered architecture gives clear separation of concerns, at the cost of passing through every layer. Client-server splits providers from requesters, while pipe-and-filter chains independent steps. M V C lets several views share one model. And for any system, ask both questions. What style is it, and what roles does it need?

About Software Engineering at UPI Study

Software Engineering (Computer Science 301) is a self-paced online course of 103 video lessons in 15 chapters, from process models and agile to requirements, design, user interfaces, reliability, security and project management. It carries a NCCRS credit recommendation for 3 semester credits.

Every lesson transcript is free on pages like this one, and the videos are free with a free UPI Study account. Enrolling adds a practice quiz after each lesson, the graded work and final exam that earn the credit, lifetime access, and an official transcript on completion. UPI Study has helped over 130,000 students with college credits. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.

Compare: Software Engineering vs Systems Analysis

Why take it here

Why students take Software Engineering with UPI Study

How professional software gets builtSoftware Engineering covers how teams turn requirements into working, maintainable software: process models, agile, requirements, design, testing, reliability and project management. It is a core course in computer science and software degrees.
Credit at a fraction of the priceThe same 3 credits can cost $750 or more at a US college. Here it is one payment, self-paced, with lifetime access.
Finish your degree soonerTransfer credits reduce the courses you still owe, so you can graduate earlier or lighten a heavy semester.
Strengthen an applicationA completed college-level course on an official transcript shows admissions and scholarship committees you can do the work.
Study on your own scheduleNo start dates, no deadlines. Watch the lessons, practice, and take the final when you are ready.
130,000+students helped with college creditsACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.

Where the credit goes

Universities that work with NCCRS

Software Engineering carries a NCCRS credit recommendation. These universities work with NCCRS; some are UPI Study's signed partners. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.

Find my college → Not listed? Ask Athena in the corner of this page, or book a 15-minute call.

FAQ

Questions students ask us

About Architectural Styles, Archetypes, and Building Blocks for Robust Software Systems

What is the difference between an architectural style and an archetype?
An architectural style is a proven, reusable overall shape for organizing an entire system, such as layered or client-server. An archetype is a smaller, recurring structural role that appears inside many systems whatever their style, such as something that manages communication with the outside world or represents a core business entity. If a style is the floor plan, archetypes are the kinds of rooms, and a real system usually has one style and several archetypes.
What are the pros and cons of a layered architecture?
A layered architecture organizes a system into horizontal layers, commonly presentation, business logic, and data access, each communicating only with its direct neighbors. Its strength is a clear separation of concerns, so a layer can often be changed or replaced on its own if its interface stays stable. Its weakness is overhead, since even a simple request may pass through every layer, and strict layering can become a bottleneck.
How does the model-view-controller (MVC) architecture work?
MVC splits a system into three interacting parts. The model holds the data and business logic, the view presents that data to the user, and the controller takes user input, updates the model, and selects which view to show. Because the model does not depend on any particular view, the same data and logic can support several different presentations at the same time.
What is the difference between client-server and pipe-and-filter architecture?
Client-server splits a system into a server that provides services and one or more clients that request them over a defined interface; it is the shape behind most networked systems, including the web. Pipe-and-filter organizes a system as a chain of independent processing steps, called filters, each transforming data and passing it on through a pipe. Data pipelines built from small, chainable command-line tools are a classic pipe-and-filter example.

About the Software Engineering course

How many college credits is Software Engineering?
Software Engineering (Computer Science 301) carries a NCCRS credit recommendation for 3 semester credits. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.
How much does Software Engineering cost and what is included?
$250, paid once, with lifetime access: all 103 video lessons, a practice quiz after each, the graded work and final exam, and an official transcript when you finish. Students who want several courses choose UPI Study PRO instead.
Which universities accept UPI Study credits?
UPI Study has signed partner agreements with universities such as Thomas Edison State University, University of the People and Charter Oak State College, and works with universities such as Penn State, SNHU and SUNY. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities. Use "Find my college" on this page to check yours.
How long does Software Engineering take?
It is self-paced with no deadlines. The 103 lessons total about 11 hours of video; most students add reading and practice time and finish in a few weeks to a few months, on their own schedule.
How are the exams done?
Quizzes and assignments are online in the course. The final exam is taken online with proctoring; a person on the UPI Study team checks assignments, usually within two days.
How do my credits reach my college?
When the course shows 100% complete, request the official transcript from your dashboard. It is sent to the college you name, and you can send it to more than one. Check your college first with "Find my college" on this page, or ask Athena.

Ready for the full course? Earn 3 credits in Software Engineering.

103 video lessons, a quiz after each one, and the graded work that earns the credit. Recommended for credit by NCCRS.

Software Engineering
3 credits · NCCRS
Enroll →