# Fundamentals > What software architecture is, the architect's role, architecture levels, structures and views (basics), Conway's law, why architecture matters, architectural erosion (Big Ball of Mud). ## Concepts - [Accidental Architecture](https://arc.fuet.ch/concepts/fundamentals/unsystematic-accidental-architecture.md): Accidental architecture is a structure nobody deliberately chose. It is merely implied, and it tends to erode through quick fixes and piecemeal growth until it ends as a Big Ball of Mud. - [Agile Architecture](https://arc.fuet.ch/concepts/fundamentals/agile-architecture.md): Agile architecture means doing just enough architecture, guided by the biggest risks, and revisiting it as the product changes. It avoids both big upfront design and no design at all. - [Architect's Four Key Work Products](https://arc.fuet.ch/concepts/fundamentals/architect-s-four-key-work-products.md): The architect's four key work products are a vision, a context view, an architecture overview and an operational model. Together they cover goals, environment, main parts and how the system runs. - [Architectural Thinking](https://arc.fuet.ch/concepts/fundamentals/architectural-thinking.md): Architectural thinking is a repeated cycle of designing, checking and refining. It starts from requirements, quality goals and constraints, and ends in a documented architecture whose risks and trade-offs are understood. - [Architecturally Evident Coding Style](https://arc.fuet.ch/concepts/fundamentals/architecturally-evident-coding-style.md): An architecturally evident coding style shows architecture rules in the code itself, through package layout and naming conventions. Automated tests, such as ArchUnit for Java, can then check that the code follows those rules. - [Architecture Decay](https://arc.fuet.ch/concepts/fundamentals/architecture-decay.md): Architecture decay is the slow divergence of a built system from its intended design. Small, unplanned changes pile up and erode the structure. Refactoring and conformance checks counter it. - [Architecture Disciplines](https://arc.fuet.ch/concepts/fundamentals/architecture-disciplines.md): Architecture work happens at different scopes. A common picture compares enterprise architecture to city planning and solution architecture to a building design. Several specialist disciplines, such as network architecture, help shape one solution. - [Architecture Level](https://arc.fuet.ch/concepts/fundamentals/architecture-levels.md): Architecture can be described at several levels of detail. In arc42's building block view, each deeper level zooms into selected parts of the level above, and you only zoom where it matters. - [Architecture Means](https://arc.fuet.ch/concepts/fundamentals/architecture-means.md): Architecture means are the architect's toolbox: styles, patterns, tactics, reference architectures and modelling notations. More concrete means give more structure and reuse, but they also limit the architect's freedom. - [Big Ball of Mud](https://arc.fuet.ch/concepts/fundamentals/big-ball-of-mud.md): A Big Ball of Mud is a system whose structure comes from quick fixes rather than design. It grows without control and is repaired again and again with expedient patches. - [Common Architect Mistakes](https://arc.fuet.ch/concepts/fundamentals/common-architect-mistakes.md): Architects repeat the same mistakes: weak scoping, narrow stakeholder lists, a focus on functions, vague platform details, and self-built security. A published list of ten such mistakes works as a self-review checklist. - [Connector Cardinality](https://arc.fuet.ch/concepts/fundamentals/connector-cardinality.md): Connector cardinality is the number of components a connector links. A point-to-point connector links two. A multicast connector delivers to several components through one shared channel. - [Connectors and Distribution](https://arc.fuet.ch/concepts/fundamentals/connectors-and-distribution.md): A monolith can only be copied and run as several identical instances. Splitting a system into separate processes adds a new risk: a call to another process may be slow or fail while the rest keeps running. - [Implicit Architecture](https://arc.fuet.ch/concepts/fundamentals/architecture-facts-and-challenges.md): Every system has an architecture, even if nobody planned, documented or understood it. An unplanned architecture tends to pile up technical debt and makes the system harder to maintain. - [Iterative and Incremental Development](https://arc.fuet.ch/concepts/fundamentals/iterative-and-incremental-development.md): Iterative and incremental development builds a system in complete pieces and refines it over repeated cycles. Teams deliver value early, get feedback, and adapt. Continual refactoring keeps the growing system orderly. - [Keep It Working](https://arc.fuet.ch/concepts/fundamentals/keep-it-working.md): Keep It Working means changing software in small, safe steps so a working version always exists. It suits systems that need maintenance but would be risky to overhaul in one go. - [Refactoring](https://arc.fuet.ch/concepts/fundamentals/refactoring.md): Refactoring changes the inside of software in small steps without changing what it does. It keeps the design easy to change and slows the decay that sets in when teams skip it. - [Requirements and Means Influence Architecture](https://arc.fuet.ch/concepts/fundamentals/requirements-and-means-influence-architecture.md): Requirements shape architecture, and constraints limit the architect's choices. Architects need to know which decisions are free and which are bound, and they need to learn key stakeholders' quality goals early. - [Role of the Software Architect](https://arc.fuet.ch/concepts/fundamentals/architect-knowledge-and-tasks.md): A software architect makes the big design decisions for a system and leads the teams that build it. The role needs technical skill, communication skill, and hands-on involvement in delivery. - [Software Architect](https://arc.fuet.ch/concepts/fundamentals/software-architect-role.md): A software architect links business goals and technical work. They decide what matters, weigh trade-offs, talk with people at every level of the organization, and stay close to the building of the system. - [Software Architecture](https://arc.fuet.ch/concepts/fundamentals/software-architecture.md): Software architecture is the set of fundamental choices about a system: its parts, how they relate, and the reasoning behind them. Definitions differ, but most stress structure, important decisions, and the cost of changing them later. - [Software Architecture Basic Concepts](https://arc.fuet.ch/concepts/fundamentals/software-architecture-basic-concepts.md): Software architecture is the set of design decisions about a system's overall structure and behavior. Business needs and quality goals drive it. A system has a boundary, and its building blocks are organized in levels. - [Software Architecture Definition](https://arc.fuet.ch/concepts/fundamentals/implications-of-the-architecture-definition.md): Definitions of software architecture differ. One says it is the design decisions about a system's overall structure and behavior. Another calls it the important stuff, or the expert developers' shared understanding of the design. - [Software Architecture in Its Context](https://arc.fuet.ch/concepts/fundamentals/software-architecture-in-its-context.md): Software architecture is shaped by its surroundings. The organization, its constraints and its stakeholders all influence which designs are possible. Architects need to know where they are free and where they are bound. - [Software Connector](https://arc.fuet.ch/concepts/fundamentals/software-connector.md): A connector is the element of an architecture description that stands for an interaction between components. It plugs into component ports, and its interface is a set of roles, one per participant. - [Sweeping It Under the Rug](https://arc.fuet.ch/concepts/fundamentals/sweeping-it-under-the-rug.md): Sweeping It Under the Rug is a pattern for tangled code you cannot remove. You fence the mess off from the rest of the system and put a clean interface in front of it.