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
Free preview
Create a free account to keep watching
It takes a minute and costs nothing. Your free account unlocks all of Chapter 1 and 3 more lessons of Software Engineering.
Lesson complete
Earn the 3 college credits for Software Engineering
Enrolling adds a quiz after each lesson, the graded work and the official transcript. Recommended for credit by NCCRS.
Next lesson: Transform Mapping: Turning Data Flow into Architecture →← Reading and Creating Conceptual Architecture DiagramsNext lesson: Transform Mapping: Turning Data Flow into Architecture →
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.
Enroll now → Course details Download the syllabus All Computer Science courses Every course with PRO →
Why take it here
Why students take Software Engineering with UPI Study
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.
Thomas Edison State UniversitySigned partner
University of the PeopleSigned partner
Charter Oak State CollegeSigned partner
Strayer UniversitySigned partner
Columbia Southern UniversitySigned partner
Indiana TechSigned partner
Penn StateWorks with NCCRS
Southern New Hampshire UniversityWorks with NCCRS
SUNYWorks with NCCRS
+many more cooperating universitiesFind my college →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?
What are the pros and cons of a layered architecture?
How does the model-view-controller (MVC) architecture work?
What is the difference between client-server and pipe-and-filter architecture?
About the Software Engineering course
How many college credits is Software Engineering?
How much does Software Engineering cost and what is included?
Which universities accept UPI Study credits?
How long does Software Engineering take?
How are the exams done?
How do my credits reach my college?
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.
3 credits · NCCRSEnroll →