Fundamentals 10 min read

Understanding Software Architecture: Types, Design Principles, and the Role of Architects

This article explains the five architectural views—logical, development, runtime, physical, and data—clarifies the distinction between software and system architecture, discusses tier versus layer concepts, outlines the benefits of logical and physical layering, and describes the various kinds of architects and their responsibilities.

IT Architects Alliance
IT Architects Alliance
IT Architects Alliance
Understanding Software Architecture: Types, Design Principles, and the Role of Architects

In practice, terms like “architecture” and “architect” are common but often feel mysterious to newcomers; this article aims to demystify them and correct common misconceptions.

01 Architecture Classification

The five architectural views are logical architecture, development architecture, runtime architecture, physical architecture, and data architecture. Logical architecture focuses on functionality and classic three‑layer design; development architecture concerns packages, SDKs, third‑party libraries, and runtime environments; runtime architecture deals with issues that arise during execution such as concurrency, thread synchronization, and lifecycle management; physical architecture addresses infrastructure, networking, and scalability; data architecture handles persistence, storage, distribution, replication, and performance of data.

In most Chinese companies these five views are not strictly separated; they are broadly grouped into software architecture (the first three views) and system architecture (the last two).

02 What Architecture Design Really Is

Architecture is not merely a layered diagram; a good software architecture is practical, elegant, meets user needs, is acceptable to developers, and follows principles like high cohesion and low coupling (e.g., SOLID). It may incorporate various patterns—design, enterprise, SOA, integration—beyond the classic GOF catalog.

03 About Tier and Layer

A tier refers to a physical deployment unit (one or more servers) that hosts one or more layers; a layer is a logical separation of code such as presentation, business logic, and data access. Multiple layers can reside on the same tier, and layers can be distributed across different tiers via RPC or similar mechanisms.

04 Benefits of Logical and Physical Separation

Logical layering improves code organization, maintainability, reusability, team collaboration, and clarity. Physical layering enhances performance, scalability, fault tolerance, and security.

05 Types of Architects

Architects are coveted roles; historically many companies did not have a dedicated architect title, with senior developers wearing multiple hats. Modern distinctions include software architects, system architects, solution architects, enterprise architects, and specialized roles such as data or security architects. In most Chinese internet firms, architects are divided into software architects and system (or operations) architects, with some companies also recognizing data architects.

The article concludes that developers should focus first on writing high‑quality code and gradually develop design thinking, while understanding the various architectural concepts and career paths.

software architecturesystem designdesign principleslayerArchitect Rolestier
IT Architects Alliance
Written by

IT Architects Alliance

Discussion and exchange on system, internet, large‑scale distributed, high‑availability, and high‑performance architectures, as well as big data, machine learning, AI, and architecture adjustments with internet technologies. Includes real‑world large‑scale architecture case studies. Open to architects who have ideas and enjoy sharing.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.