Fundamentals 6 min read

What Is Software Architecture? Key Concepts, UML Views, and Best Practices

This article explains software architecture as the arrangement and interaction of components, outlines its standards, discusses UML diagrams for modeling, describes the role of architects, and shares practical rules for effective system design and development.

ITFLY8 Architecture Home
ITFLY8 Architecture Home
ITFLY8 Architecture Home
What Is Software Architecture? Key Concepts, UML Views, and Best Practices

Opening Statement

Since this is a personal learning summary, errors are inevitable; I share it in the spirit of technical exchange, hoping readers can point out mistakes, benefit from the content, and improve together.

What Is Software Architecture?

Software architecture can be simply described as the composition, interaction, and inheritance relationships among a series of components. While this abstract definition is widely understandable, it can be too vague.

According to the ANSI/IEEE standard, software architecture is the part of a software‑intensive system that determines its implementation and deployment.

The key point of software architecture is to meet the goals of project stakeholders, covering both functional and non‑functional requirements.

Architecture design must be decided early in development; it is a critical decision that should be fixed in the initial phases.

If an architecture cannot satisfy stakeholder goals, the solution is infeasible. The diagram below shows the relationship among system, architecture, and stakeholders as defined by the ANSI/IEEE standard.

UML and Rational Rose are tools for describing system architecture; UML has become an international standard.

UML class diagrams describe relationships between classes.

Use‑case diagrams illustrate usage scenarios.

Component diagrams depict reusable parts of a system and their mapping to binary files.

Using UML tools allows deeper, multi‑angle descriptions of system architecture.

Currently there is no automatic way to verify that an architecture meets stakeholder goals; verification relies on multiple testing levels.

For example, unit tests validate individual functions, integration tests assess system compatibility, and acceptance tests verify user satisfaction and required functionality.

Besides UML, IBM’s Rational Rose offers several view modes, illustrated below.

System Architecture

No system is indivisible; the more agile the development method, the more flexibility architects have to allocate space for future design.

The process of decomposing a system by a system architect ultimately produces a detailed design specification for developers, whose content and format depend on the development methodology.

What Is an Architecture?

Architecture often manifests in decisions that are hard or costly to change, yet ultimately someone must make those decisions.

System analysts define what the system does; architects design how to achieve it.

Architects serve as the bridge between requirements and detailed specifications.

Architect responsibilities include participating throughout development: analyzing requirements, designing architecture, implementing, testing, inheriting, and deploying.

According to ISO, an architect is the person, team, or organization responsible for system architecture.

Microsoft classifies system architects into four types:

1. Enterprise architect.

2. Infrastructure architect.

3. Specific‑technology architect.

4. Solution architect.

Final Summary of Some Rules in Software Development

1. Adding personnel to a lagging project only pushes the schedule further behind.

2. Program complexity will keep increasing until maintainers feel overwhelmed.

3. Architects differ from developers; if architects build like developers, the result becomes a historical failure.

Next Article Preview

UML Architecture Design

How to model with UML tools, analyze from different angles, and derive core designs.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Software ArchitectureSoftware EngineeringSystem DesignUMLarchitecture principles
ITFLY8 Architecture Home
Written by

ITFLY8 Architecture Home

ITFLY8 Architecture Home - focused on architecture knowledge sharing and exchange, covering project management and product design. Includes large-scale distributed website architecture (high performance, high availability, caching, message queues...), design patterns, architecture patterns, big data, project management (SCRUM, PMP, Prince2), product design, and more.

0 followers
Reader feedback

How this landed with the community

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.