Software Architecture Design: Archetypes & Components

Instructor: David Gloag

David has over 40 years of industry experience in software development and information technology and a bachelor of computer science

In this lesson, we'll take a look at software architecture design, what it is and how it fits within the context of systems. We'll so look at how archetypes are defined and how to break a system down into its components.

Making Sense of Diversity

We live in a diverse world, a world that presents us with many, many options. Add to that option complexity, and we can quickly be overwhelmed. Think about the automobile for a moment. How many different brands of automobiles are there on the road today? How many models are there within each brand? What about the vast number of options for each model? You get the idea. Software systems are much the same. Just look at the number of apps you have on your cell phone. It is remarkable that developers can keep up with demand. How do they do it? How do they design such incredible, high quality software? One way is through the use of software architecture design.

What is Software Architecture Design?

Software architecture is the representation of a system that describes its major components, the relationships between the components and the behaviors these components exhibit. Its purpose is to give an overview of the software system in question and provide a basic high-level understanding of its operation. Think of it like the Google map of your hometown. It doesn't provide every detail of the town, but you can certainly get a basic understanding of the town's layout.

Software System Fit into the Context of Other Systems

Software systems tend to have similarities. Apps on your cell phone, Mac, Linux and Windows operating systems and even ATMs at banks have similarities. The creators do this so that users won't have trouble moving from one platform to the other. Having said that, there certainly are differences. Why? Each creator is trying to differentiate himself or herself from the others. Designers can and do take advantage of these similarities such as look and feel, however, to produce systems more quickly. This practice can be easily adopted using things like archetypes.

Archetypes Defined

In software engineering, an archetype is a generic model of some important component in a system. For example, on a mountain bike, that might be a wheel, drive train or front fork. The concept is important because it immediately gives a designer or viewer instant knowledge of how the archetype would look and behave. It also makes it easier to assemble new systems because existing archetypes are known, understood and tested. Can you think of any commonly used archetypes? Consider your cell phone or tablet for a moment. The icons that represent the device's apps are an archetype.

Breaking a System Down into Components

There are a number of approaches you can use to break a system down into components. One such approach might look like the following follows:

To unlock this lesson you must be a Member.
Create your account

Register to view this lesson

Are you a student or a teacher?

Unlock Your Education

See for yourself why 30 million people use

Become a member and start learning now.
Become a Member  Back
What teachers are saying about
Try it risk-free for 30 days

Earning College Credit

Did you know… We have over 200 college courses that prepare you to earn credit by exam that is accepted by over 1,500 colleges and universities. You can test out of the first two years of college and save thousands off your degree. Anyone can earn credit-by-exam regardless of age or education level.

To learn more, visit our Earning Credit Page

Transferring credit to the school of your choice

Not sure what college you want to attend yet? has thousands of articles about every imaginable degree, area of study and career path that can help you find the school that's right for you.

Create an account to start this course today
Try it risk-free for 30 days!
Create an account