What makes up your software stack? How to you model it?

I like to think of a software stack, also referred to as a technology stack, as the different layers of technology that build on top of eachother in order to make a functioning system.

What goes into that software stack depends on a great many things, there are some frequently seen, common layers and some more exotic ones depending on the architecture of your system and how it has evolved over time.

There are some common parts to most software stacks, and while beyond web development there are some differences, key components are shared across almost all software.

  • Presentation and user interface
  • Business logic, backend and third party services
  • Persistence
  • Operating Environment

There are other models, and ways to describe the layers of technology that make up your system, what ways to do you use? How do you explore and describe your systems, and how does this support your testing?

Iā€™m writing a series of blog posts, exploring the concept of Full Stack Testing, join me on my journey.

Read more about how I describe software stacks on my blog post: