The components are grouped in horizontal tiers in layered architecture patterns, which are n-tiered designs. This is the most common way of creating software, and it is intended to be self-contained. This means that while all of the components are connected, they are not dependent on one another.