Architectural Design Resources
Architectural design represents the structure of data and program components that are required to build a computer-based system. It considers the architectural style that the system will take, the structure and properties of the components that comprise the system, and the interrelationships that occur among all architectural components of a system. The following topic categories are presented:
Tutorials, Articles, and Papers
A worthwhile discussion at Wikipedia
An Introduction to Software Architecture
A downloadable version of one of Garlan and Shaw's seminal papers.
On Systems Architecture
A worthwhile article by Tom DeMarco.
Software Architecture: a Roadmap
A roadmap by David Garlan.
Agile Architectural Modeling
Guidelines for the agile architectural designer by Scott Ambler.
Architecture-Centric Software DevelopmentA brief paper describing architecture-centric software engineering.
Software Architecture and Related Concerns
A brief discussion that addresses what software architecture is and is not
pdf: The Software Architecture Process
This paper explores not another architectural style, notation or analysis technique, but rather we present a generic view of the process of software "architecting", and the role software architecture plays within the software development organization.
Handbook of Software Architecture Blog
Worthwhile discussion of and commentary about resources, events and many other topics, some which are unrelated to SA.
Video: Architectural Design
Lecture series on software design. (59:27)
The SEI Software Architecture Home Page
Links to a wide array of software architecture resources.
Software Architecture Resources
Useful links to a variety of resources.
The Software Architecture Portal
Useful links to a variety of resources.
Software Architecture Links-I
Brad Appleton has assembled an extensive list of links on software architecture.
Software Architecture Links-II
A large collection of resources at Cetus links.
Software Architecture Links-III
Useful collect of SA links by Bredemeyer Consulting.
IBM developerWorks - Architecture
IBM has created a useful resource that explores a broad array of architectural design issues and tools. Recommended.
Software Architecture Resource Sites
A useful list of resource sites for software architecture.
Tutorials, Articles, and Papers
Articles on Software Architecture
Article on Software Architecture from IBM
Dr. Subrahmanyam describes his paper in the following manner: "The purpose of this article is to discuss "Architecture Paradox" and bring out the conflicting forces that influence the architecture over the life-time of software products and applications."
The Technical Architecture Framework for Information Management
TAFIM is a voluminous document that describes an architecture that "emphasizes integration, interoperability, flexibility, and efficiency through the development of a common, multi-purpose, standards-based technical infrastructure."
Software Architectural Trade-Off Analysis
A method developed by the SEI. To quote: "Most complex software systems are required to be modifiable and have good performance. They may also need to be secure, interoperable, portable, and reliable. But for any particular system, what precisely do these quality attributes - modifiability, security, performance, reliability - mean? Can a system be analyzed to determine these desired qualities? How soon can such an analysis occur? How do you know if a software architecture for a system is suitable without having to build the system first? "
Guidelines developed by Grady Booch of Rational Corporation.
pdf: Software Architecture Design Domain
This paper presents "a common set of key constructs [classes] that are present across widely varying domains, their placement in the architecture design domain and shows how they may be used to classify, select, and analyze proclaimed architectural design languages (ADLs).
The Aspect-Oriented Software Architecture Design Portal
Resources that are AOSD and SA specific.
pdf: Architectural Blueprints-The "4+1" View Model of Software Architecture
This article presents a model for describing the architecture of software-intensive systems, based on the use of multiple, concurrent views.
Architectural Risk Analysis - References
A paper bibliography (circa 2005) developed by DHS on risks associated with software architecture including heavy emphasis on security issues.
Software Architecture Design Quality
Pointers to a collection of downloadable papers by Jan Bosch.
Software Architecture Quality Attributes
Discussion and commentary (with useful pointers) at Brad Appleton's blog.
(See also our Pattern-Based Design page for a more complete list)
Design Patterns Bibliography
Bibliography (73 refs) of software design patterns.
"The Elements of Pattern Style"
A downloadable paper and related tutorial and resources.
Domain Specific Architectural Styles
Detailed discussion of domain specific architectural styles with a variety of useful examples.
The literature on software architecture has exploded over the past decade. Among the books that provide in-depth treatment of the subject are:
Essential Software Architecture
A Software Architecture Primer
Software Systems Architecture
Documenting Software Architecture: View and Beyond
Pattern-Oriented Software Architectures, 2 volumes
Design & Use of Software Architectures
Software Architecture: Organizational Principles and Patterns
Applied Software Architecture
Software Architecture in Practice
Software Product Lines: Practices and Patterns addresses the design of architectures that support software product lines.
Evaluating Software Architectures considers the issues associate with the assessment of architectural alternatives and the selection of the best architecture for a given problem domain.
Other books that consider architectural design issues from a patterns perspective are:
Pattern-Oriented Software Architecture (2 volumes)
Software Architecture Design Patterns in Java
Patterns of Enterprise Application Architecture
Implementation specific books on architecture address architectural design within a specific development environment or technology:
Service-Oriented Architecture discusses a design approach that links business and computational resources with requirements defined by customers.
Model-Driven Software Development
discusses architecture within the context of domain-specific modeling approaches.
Building Systems from Commercial Components presents methods for constructing component-based architectures.
Architecture of Reliable Web Applications Software
consider architectures that are appropriate for WebApps.
The following books provide detailed design guidelines for the CORBA distributed application support framework.
COM and CORBA Side-by-Side
CORBA Design Patterns
Object Management Architecture Guide
Protected Mode Software Architecture presents architectural design guidance for anyone designing PC-based real-time operating systems, multi-task operating systems, or device drivers.
Data modeling is a prerequisite to good data design. The following books contain detailed presentations of data modeling notation, heuristics, and database design approaches:
Database Modeling and Design
Data Modeling for Information Professionals
Data Modeling and Design for Today's Architectures
The Data Model Resource Book
An Introduction to Database Systems, 7/e
The Data Modeling Handbook
The design of data warehouses has become increasingly important in recent years and is discussed in the following books:
Data Warehousing: Architecture and Implementation
The Data Warehouse Lifecycle Toolkit
General treatment of software design with discussion of architectural and data design issues can be found in most books dedicated to software engineering. More rigorous treatments of the subject can be found in:
A Formalization of Design Methods
Software Architecture and Design: Principles, Models and Methods
Complete presentations of data flow-oriented design may be found in:
Composite Structured Design
The Practical Guide to Structured Systems Design,