Core Idea
Structural characteristics define how software systems are built and maintained. They focus on the internal code quality attributes that enable teams to evolve systems over time—modularity, maintainability, testability, deployability, and configurability.
Structural characteristics represent architectural qualities concerned with how code is organized and maintained. Unlike Operational-Characteristics that focus on runtime behaviour, structural characteristics affect developer experience and the ability to change systems safely and efficiently.
The key structural characteristics:
- Modularity: How well a system decomposes into discrete, cohesive units with minimal coupling. High modularity enables teams to understand, modify, and test parts in isolation without cascading effects
- Maintainability: How easily developers make changes—through clear structure, consistent patterns, and well-factored code that makes defect fixes and enhancements straightforward rather than risky
- Testability: How readily the system supports automated verification. Testable systems allow components to be tested in isolation, support dependency injection for mocking, and provide clear boundaries for unit, integration, and end-to-end tests
- Deployability: How frequently and reliably the system can be released. Minimizes manual steps, reduces deployment risk through automation, and enables rapid rollback when issues occur
- Configurability: The ability to change system behaviour through configuration rather than code—allows the same codebase to operate differently across environments or adapt to varying business requirements without redeployment
The compounding dynamic: Poor structural characteristics create friction—changes take longer, bugs increase, developer productivity declines. Strong structural characteristics compound positively: future improvements become easier, creating a virtuous cycle. Systems with poor modularity require extensive regression testing for minor changes. Systems with low testability accumulate bugs that only surface in production. Systems with poor deployability create infrequent, high-risk release windows.
Structural characteristics enable business agility—the ability to respond quickly to market changes, experiment with new features, and deliver value frequently depends directly on these internal quality attributes. They are not “nice-to-haves” but business capabilities.
Related Concepts
- Architecture-Characteristics-Categories
- Operational-Characteristics
- Modularity
- Cohesion
- Fundamentals of Software Architecture - Richards & Ford - 2020
Sources
- Richards, Mark and Neal Ford (2020). Fundamentals of Software Architecture: An Engineering Approach. O’Reilly Media. ISBN: 978-1-492-04345-4.
- Chapter 4: Architecture Characteristics Defined
- Available: https://www.oreilly.com/library/view/fundamentals-of-software/9781492043447/
Note
This content was drafted with assistance from AI tools for research, organization, and initial content generation. All final content has been reviewed, fact-checked, and edited by the author to ensure accuracy and alignment with the author’s intentions and perspective.