Reconciling the needs of architectural description with object-modeling notations
Science of Computer Programming - Special issue on unified modeling language (UML 2000)
Architectural views of aspects
Proceedings of the 2nd international conference on Aspect-oriented software development
Documenting software architectures: views and beyond
Proceedings of the 25th International Conference on Software Engineering
Thirteen Knights and the Seven-headed Dragon: an Interdisciplinary Software Engineering Framework
STEP '02 Proceedings of the 10th International Workshop on Software Technology and Engineering Practice
Viewpoints of DSP software and service architectures
Journal of Systems and Software
Using Event-Based Translation to Support Dynamic Protocol Evolution
Proceedings of the 26th International Conference on Software Engineering
Architecting in the Face of Uncertainty: An Experience Report
Proceedings of the 26th International Conference on Software Engineering
Evaluation of Tool Support for Architectural Evolution
Proceedings of the 19th IEEE international conference on Automated software engineering
Architecture Decisions: Demystifying Architecture
IEEE Software
Architecture Reviews: Practice and Experience
IEEE Software
Tool support for just-in-time architecture reconstruction and evaluation: an experience report
Proceedings of the 27th international conference on Software engineering
Performance analysis framework for large software-intensive systems with a message passing paradigm
Proceedings of the 2005 ACM symposium on Applied computing
Proceedings of the 23rd annual international conference on Design of communication: documenting & designing for pervasive information
A Tool for Reliability and Availability Prediction
EUROMICRO '05 Proceedings of the 31st EUROMICRO Conference on Software Engineering and Advanced Applications
Modeling architectural patterns using architectural primitives
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Capturing and Using Software Architecture Knowledge for Architecture-Based Software Development
QSIC '05 Proceedings of the Fifth International Conference on Quality Software
IEEE Software
Automated Software Engineering
Model-centric software architecture reconstruction
Software—Practice & Experience
Information technology architects: approaching the longer view
Proceedings of the 2006 ACM SIGMIS CPR conference on computer personnel research: Forty four years of computer personnel research: achievements, challenges & the future
The Past, Present, and Future for Software Architecture
IEEE Software
The Golden Age of Software Architecture
IEEE Software
Software architectures for dependable systems: a software engineering perspective
Proceedings of the 28th international conference on Software engineering
Relating architectural views with architectural concerns
Proceedings of the 2006 international workshop on Early aspects at ICSE
Architecture-based self-adaptation in the presence of multiple objectives
Proceedings of the 2006 international workshop on Self-adaptation and self-managing systems
Architectural reconfiguration using coordinated atomic actions
Proceedings of the 2006 international workshop on Self-adaptation and self-managing systems
Documenting software systems using types
Science of Computer Programming - Software analysis, evolution and re-engineering
Analyzing architectural styles with alloy
Proceedings of the ISSTA 2006 workshop on Role of software architecture for testing and analysis
Formalizing and validating UML architecture description of web systems
ICWE '06 Workshop proceedings of the sixth international conference on Web engineering
Project Visualization for Software
IEEE Software
AVDL: a highly adaptable architecture view description language
Journal of Systems and Software
The essential components of software architecture design and analysis
Journal of Systems and Software
Software architecture at a large financial firm
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
A web-based tool for managing architectural design decisions
ACM SIGSOFT Software Engineering Notes
Modeling traceability of concerns in architectural views
Proceedings of the 10th international workshop on Aspect-oriented modeling
Software systems in-house integration: Architecture, process practices, and strategy selection
Information and Software Technology
The implications of network-centric software systems on software architecture: a critical evaluation
ACM-SE 45 Proceedings of the 45th annual southeast regional conference
Extending reusable asset specification to improve software reuse
Proceedings of the 2007 ACM symposium on Applied computing
API-Based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization
IEEE Transactions on Software Engineering
Discovering Architectures from Running Systems
IEEE Transactions on Software Engineering
ArchVoc--Towards an Ontology for Software Architecture
SHARK-ADI '07 Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent
UML Profiles for Design Decisions and Non-Functional Requirements
SHARK-ADI '07 Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent
Modeling and Documenting the Evolution of Architectural Design Decisions
SHARK-ADI '07 Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent
Exploring Extensibility of Architectural Design Decisions
SHARK-ADI '07 Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent
A Tool for Managing Software Architecture Knowledge
SHARK-ADI '07 Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent
An Architectural Strategy for Self-Adapting Systems
SEAMS '07 Proceedings of the 2007 International Workshop on Software Engineering for Adaptive and Self-Managing Systems
Architecture-driven modelling and analysis
SCS '06 Proceedings of the eleventh Australian workshop on Safety critical systems and software - Volume 69
Aspects in Architectural Description: report on a first workshop at AOSD 2007
ACM SIGSOFT Software Engineering Notes
Program comprehension as fact finding
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Making frameworks work: a project retrospective
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
Checking threat modeling data flow diagrams for implementation conformance and security
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
View composition in multiagent architectures
International Journal of Agent-Oriented Software Engineering
Architectural design of a situated multiagent system for controlling automatic guided vehicles
International Journal of Agent-Oriented Software Engineering
Architectural patterns for collaborative applications
International Journal of Computer Applications in Technology
An integrated view on business- and IT-architecture
Proceedings of the 2008 ACM symposium on Applied computing
Architecting as decision making with patterns and primitives
Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge
Reference architecture knowledge representation: an experience
Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge
An aspect-oriented approach for improving architecture design efficiency
Companion of the 30th international conference on Software engineering
Mobility in the virtual office: a document-centric workflow approach
Proceedings of the 1st international workshop on Software architectures and mobility
A catalog of architectural primitives for modeling architectural patterns
Information and Software Technology
A streamlined interface documentation methodology for mobile user interfaces
Proceedings of the 10th international conference on Human computer interaction with mobile devices and services
A use case model extension for architectural patterns
Journal of Computational Methods in Sciences and Engineering - Selected papers from the International Conference on Computer Science,Software Engineering, Information Technology, e-Business, and Applications, 2003
Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement
Taxonomy of architectural style usage
Proceedings of the 2006 conference on Pattern languages of programs
Introducing Architecture-Centric Reuse into a Small Development Organization
ICSR '08 Proceedings of the 10th international conference on Software Reuse: High Confidence Software Reuse in Large Systems
Graph-Based Design and Analysis of Dynamic Software Architectures
Concurrency, Graphs and Models
On the Impact of Evolving Requirements-Architecture Dependencies: An Exploratory Study
CAiSE '08 Proceedings of the 20th international conference on Advanced Information Systems Engineering
Extending Software Architecting Processes with Decision-Making Activities
Balancing Agility and Formalism in Software Engineering
Characterizing Relations between Architectural Views
ECSA '08 Proceedings of the 2nd European conference on Software Architecture
On the Role of Architectural Design Decisions in Software Product Line Engineering
ECSA '08 Proceedings of the 2nd European conference on Software Architecture
Towards Independent Software Architecture Review
ECSA '08 Proceedings of the 2nd European conference on Software Architecture
Agile architecture methodology: long term strategy interleaved with short term tactics
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
A component- and push-based architectural style for ajax applications
Journal of Systems and Software
Using customer input to drive change in user assistance
Proceedings of the 26th annual ACM international conference on Design of communication
Structural modelling and analysis of Object Oriented Systems: a graph theoretic system approach
International Journal of Systems, Control and Communications
A scoped approach to traceability management
Journal of Systems and Software
An industrial case study in reconstructing requirements views
Empirical Software Engineering
Design Reasoning Improves Software Design Quality
QoSA '08 Proceedings of the 4th International Conference on Quality of Software-Architectures: Models and Architectures
Sharing the Architectural Knowledge of Quantitative Analysis
QoSA '08 Proceedings of the 4th International Conference on Quality of Software-Architectures: Models and Architectures
Software Engineering
Composing architectural aspects based on style semantics
Proceedings of the 8th ACM international conference on Aspect-oriented software development
A field study in static extraction of runtime architectures
Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Question framework for architectural description quality evaluation
Software Quality Control
Coordination Patterns to Support Mobile Collaboration
Groupware: Design, Implementation, and Use
An architectural style for spatial data infrastructures
International Journal of Geographical Information Science
How to get multi-agent systems accepted in industry?
International Journal of Agent-Oriented Software Engineering
Hierarchical Design Rewriting with Maude
Electronic Notes in Theoretical Computer Science (ENTCS)
Model-Driven approach to Software Architecture design
SHARK '09 Proceedings of the 2009 ICSE Workshop on Sharing and Reusing Architectural Knowledge
A software architecture modeling tool
TELE-INFO'09 Proceedings of the 8th Wseas international conference on Telecommunications and informatics
Ambiance: A Mobile Agent Platform for End-User Programmable Ambient Systems
Proceedings of the 2007 conference on Advances in Ambient Intelligence
Self-Architecting Software SYstems (SASSY) from QoS-annotated activity models
PESOS '09 Proceedings of the 2009 ICSE Workshop on Principles of Engineering Service Oriented Systems
Improving Architecture-Based Self-Adaptation through Resource Prediction
Software Engineering for Self-Adaptive Systems
Architecting fault tolerance with exception handling: verification and validation
Journal of Computer Science and Technology
SAFECOMP '09 Proceedings of the 28th International Conference on Computer Safety, Reliability, and Security
Extending the reflexion method for consolidating software variants into product lines
Software Quality Control
Towards an architecture for semiautonomous robot telecontrol systems
Information Sciences: an International Journal
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Effort Estimation in Capturing Architectural Knowledge
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Characterizing software architecture changes: A systematic review
Information and Software Technology
Atomic requirements for software architecting
SEA '07 Proceedings of the 11th IASTED International Conference on Software Engineering and Applications
Concepts of modeling architectural module views for compliance checks based on architectural styles
SEA '07 Proceedings of the 11th IASTED International Conference on Software Engineering and Applications
A style-based architecture modelling approach for UML 2 component diagrams
SEA '07 Proceedings of the 11th IASTED International Conference on Software Engineering and Applications
Concern Visibility in Base Station Development --- An Empirical Investigation
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
Software System Understanding via Architectural Views Extraction According to Multiple Viewpoints
OTM '09 Proceedings of the Confederated International Workshops and Posters on On the Move to Meaningful Internet Systems: ADI, CAMS, EI2N, ISDE, IWSSA, MONET, OnToContent, ODIS, ORM, OTM Academy, SWWS, SEMELS, Beyond SAWSDL, and COMBEK 2009
Implementing and Applying the Stocks-Carrington Framework for Model-Based Testing
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Design of a collaborative filtering system for classifying harmful contents
ICACT'09 Proceedings of the 11th international conference on Advanced Communication Technology - Volume 2
An architectural design decision-centric approach to architectural evolution
ICACT'09 Proceedings of the 11th international conference on Advanced Communication Technology - Volume 1
An environment for describing software systems
WSEAS Transactions on Computers
Automatic generation of abstract views for legacy software comprehension
Proceedings of the 3rd India software engineering conference
Stability assessment of aspect-oriented software architectures: A quantitative study
Journal of Systems and Software
A family of languages for architecture constraint specification
Journal of Systems and Software
Enterprise architecture management patterns
Proceedings of the 15th Conference on Pattern Languages of Programs
Verifying architectural design rules of the flight software product line
Proceedings of the 13th International Software Product Line Conference
Towards self-describing web services
ICWE'03 Proceedings of the 2003 international conference on Web engineering
A reference architecture for situated multiagent systems
E4MAS'06 Proceedings of the 3rd international conference on Environments for multi-agent systems III
Architecting dependable systems with the SAE architecture analysis and description language (AADL)
Architecting dependable systems IV
Architectural fault tolerance using exception handling
Architecting dependable systems IV
Towards evidence-based architectural design for safety-critical software applications
Architecting dependable systems IV
Architecting dependable systems IV
Applying empirical software engineering to software architecture: challenges and lessons learned
Empirical Software Engineering
Viability for codifying and documenting architectural design decisions with tool support
Journal of Software Maintenance and Evolution: Research and Practice
Architecture-centric software development of situated multiagent systems
ESAW'06 Proceedings of the 7th international conference on Engineering societies in the agents world VII
Building the presentation-tier of rich web applications with hierarchical components
WISE'07 Proceedings of the 8th international conference on Web information systems engineering
Composing Structural Views in xADL
Proceedings of the 10th international conference on Early aspects: current challenges and future directions
Architecture-centric evolution: new issues and trends
ECOOP'06 Proceedings of the 2006 conference on Object-oriented technology: ECOOP 2006 workshop reader
Relating software architecture views by using MDA
ICCSA'07 Proceedings of the 2007 international conference on Computational science and its applications - Volume Part III
Service oriented architectural design
TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
COMPASS: composition-centric mapping of aspectual requirements to architecture
Transactions on aspect-oriented software development IV
Transactions on aspect-oriented software development IV
Engineering parallel applications with tunable architectures
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Traceability-centric model-driven object-oriented engineering
Information and Software Technology
The method for verifying software architecture with FSP model
ICACT'10 Proceedings of the 12th international conference on Advanced communication technology
ETAK: tailoring architectural evolution by (re-)using architectural knowledge
Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Towards an architectural viewpoint for systems of software intensive systems
Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Developer refinement of runtime architectural structure
Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Capturing exploration to improve software architecture documentation
Proceedings of the Fourth European Conference on Software Architecture: Companion Volume
Tool demonstration: a toolkit for architecture-centric software development
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Analyzing security architectures
Proceedings of the IEEE/ACM international conference on Automated software engineering
Realizing architecture frameworks through megamodelling techniques
Proceedings of the IEEE/ACM international conference on Automated software engineering
Software process model blueprints
ICSP'10 Proceedings of the 2010 international conference on New modeling concepts for today's software processes: software process
Where did all this good architectural knowledge go?
ECSA'10 Proceedings of the 4th European conference on Software architecture
Naive architecting - understanding the reasoning process of students: a descriptive survey
ECSA'10 Proceedings of the 4th European conference on Software architecture
Experiences from scenario-based architecture evaluations with ATAM
ECSA'10 Proceedings of the 4th European conference on Software architecture
BeeEye: a framework for constructing architectural views
ECSA'10 Proceedings of the 4th European conference on Software architecture
How to make your enterprise architecture management endeavor fail!
Proceedings of the 16th Conference on Pattern Languages of Programs
Towards managing software architectures with ontologies
Graph transformations and model-driven engineering
Capturing tacit architectural knowledge using the repertory grid technique (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Towards a process for architectural modelling in agile software development
Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS
Variability quality evaluation on component-based software product lines
Proceedings of the 15th International Software Product Line Conference, Volume 2
Towards multi-modeling for domain description
Proceedings of the 15th International Software Product Line Conference, Volume 2
Proceedings of the 5th European Conference on Software Architecture: Companion Volume
Rationale, decisions and alternatives traceability for architecture design
Proceedings of the 5th European Conference on Software Architecture: Companion Volume
Characteristics of multiple-component defects and architectural hotspots: a large system case study
Empirical Software Engineering
An empirical investigation on the reusability of design patterns and software packages
Journal of Systems and Software
Supervising the evolution of web service orchestrations using quality requirements
ECSA'11 Proceedings of the 5th European conference on Software architecture
Defining architectural viewpoints for quality concerns
ECSA'11 Proceedings of the 5th European conference on Software architecture
Architecture and Patterns for IT Service Management, Resource Planning, and Governance: Making Shoes for the Cobbler's Children: Making Shoes for the Cobbler's Children
Towards more flexible architecture description languages for industrial applications
EWSA'06 Proceedings of the Third European conference on Software Architecture
Architecture-Centric development of an AGV transportation system
CEEMAS'05 Proceedings of the 4th international Central and Eastern European conference on Multi-Agent Systems and Applications
A technique to represent product line core assets in MDA/PIM for automation
RISE'05 Proceedings of the Second international conference on Rapid Integration of Software Engineering Techniques
A variability-centric approach to instantiating core assets in product line engineering
PROFES'06 Proceedings of the 7th international conference on Product-Focused Software Process Improvement
A systematic process to design product line architecture
ICCSA'05 Proceedings of the 2005 international conference on Computational Science and its Applications - Volume Part I
Building up and reasoning about architectural knowledge
QoSA'06 Proceedings of the Second international conference on Quality of Software Architectures
Embedded systems architecture: evaluation and analysis
QoSA'06 Proceedings of the Second international conference on Quality of Software Architectures
Applying the ATAM to an architecture for decentralized control of a transportation system
QoSA'06 Proceedings of the Second international conference on Quality of Software Architectures
Improve component-based programs with connectors
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
A gradually proceeded software architecture design process
SPW'05 Proceedings of the 2005 international conference on Unifying the Software Process Spectrum
EWSA'05 Proceedings of the 2nd European conference on Software Architecture
On the systematic conformance check of software artefacts
EWSA'05 Proceedings of the 2nd European conference on Software Architecture
The decision view of software architecture
EWSA'05 Proceedings of the 2nd European conference on Software Architecture
Assisting conformance checks between architectural scenarios and implementation
Information and Software Technology
Improving the build architecture of legacy c/c++ software systems
FASE'05 Proceedings of the 8th international conference, held as part of the joint European Conference on Theory and Practice of Software conference on Fundamental Approaches to Software Engineering
Adaptive modeling: an approach and a method for implementing adaptive agents
MMAS'04 Proceedings of the First international conference on Massively Multi-Agent Systems
Resolving architectural mismatches of COTS through architectural reconciliation
ICCBSS'05 Proceedings of the 4th international conference on COTS-Based Software Systems
A documentation framework for architecture decisions
Journal of Systems and Software
Understanding the importance of roles in architecture-related process improvement: a case study
PROFES'05 Proceedings of the 6th international conference on Product Focused Software Process Improvement
Delegation modeling with paradigm
COORDINATION'05 Proceedings of the 7th international conference on Coordination Models and Languages
RISE'04 Proceedings of the First international conference on Rapid Integration of Software Engineering Techniques
The supportive effect of patterns in architecture decision recovery - A controlled experiment
Science of Computer Programming
Software architectures for dependable systems
LADC'05 Proceedings of the Second Latin-American conference on Dependable Computing
Software architecture description and UML
UML'04 Proceedings of the 2004 international conference on UML Modeling Languages and Applications
Software architecture description and UML
UML Modeling Languages and Applications
Evolution of composition filters to event composition
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Extraction of ownership object graphs from object-oriented code: an experience report
Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
Proceedings of the 34th International Conference on Software Engineering
Architectural task allocation in distributed environment: a traceability perspective
Proceedings of the 34th International Conference on Software Engineering
Concern coverage in base station development: an empirical investigation
Software and Systems Modeling (SoSyM)
Towards decision centric repository of architectural knowledge
CEE-SET'09 Proceedings of the 4th IFIP TC 2 Central and East European conference on Advances in Software Engineering Techniques
A layer-based method for rapid software development
Computers & Mathematics with Applications
"Just-in-time" architectural knowledge for developers
Proceedings of the WICSA/ECSA 2012 Companion Volume
Variability viewpoint for introducing variability in software architecture viewpoints
Proceedings of the WICSA/ECSA 2012 Companion Volume
Model transformations in non-functional analysis
SFM'12 Proceedings of the 12th international conference on Formal Methods for the Design of Computer, Communication, and Software Systems: formal methods for model-driven engineering
User assistance for complex systems
Proceedings of the 30th ACM international conference on Design of communication
An expressive aspect composition language for UML state diagrams
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
Effective tool support for architectural knowledge sharing
ECSA'07 Proceedings of the First European conference on Software Architecture
Processes for creating and exploiting architectural design decisions with tool support
ECSA'07 Proceedings of the First European conference on Software Architecture
Architecture-centric fault tolerance with exception handling
LADC'07 Proceedings of the Third Latin-American conference on Dependable Computing
Understanding design patterns — what is the problem?
Software—Practice & Experience
Objective evaluation of software architectures in driver assistance systems
Computer Science - Research and Development
Optimizing decomposition of software architecture for local recovery
Software Quality Control
Evaluation framework for software architecture viewpoint languages
Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures
Proceedings of the 28th Annual ACM Symposium on Applied Computing
An approach to documenting and evolving architectural design decisions
Proceedings of the 2013 International Conference on Software Engineering
ECSA'13 Proceedings of the 7th European conference on Software Architecture
Software architecture documentation for developers: a survey
ECSA'13 Proceedings of the 7th European conference on Software Architecture
Making the right decision: supporting architects with design decision data
ECSA'13 Proceedings of the 7th European conference on Software Architecture
ECSA'13 Proceedings of the 7th European conference on Software Architecture
Information and Software Technology
Reusing design experiences to materialize software architectures into object-oriented designs
Information Sciences: an International Journal
Empirical evaluation of the understandability of architectural component diagrams
Proceedings of the WICSA 2014 Companion Volume
A classification and rationalization of model-based software development
Software and Systems Modeling (SoSyM)
Hi-index | 0.00 |
From the Book:For all but the most trivial software systems, you cannot hope to succeed without paying careful attention to its architecture: the way the system is decomposed into constituent parts and the ways those parts interact with each other. Without an architecture that is appropriate for the problem being solved the project will fail. Even with a superb architecture, if it is not well understood and well communicated—in other words, well documented—the project will fail. Not may fail. Will fail.Accordingly, software architecture is at the center of a frenzy of attention these days. A new book about it seems to pop out monthly. In response to industrial need, universities are adding software architecture to their software engineering curricula. It's now common for "software architect" to be a defined position in organizations, and professional practice groups for software architects are emerging. It has been the subject of major international conferences and workshops. The purveyors of the Unified Modeling Language promote their product by calling it "the standard notation for software architecture" (a claim that may say at least as much about the pervasiveness of architecture as about UML). The Software Engineering Institute maintains a bibliography of journal and conference papers about software architecture and its population is approaching 1000.Rather surprisingly, there is a dearth of practical guidance available that is independent of language or notation for how to capture an architecture. To be sure, piles of books exist about how to use a particular language—again, UML comes to mind—but what an architect really needs is guidancein which architecture is a first-class citizen and language is relegated more appropriately to a supporting role.First, let's agree on some basic context. The field has not anointed a single definition of software architecture, and so there are many, but we'll use this one: A software architecture for a system is the structure or structures of the system, which comprise elements, their externally-visible behavior, and the relationships among them. (Adapted from Bass 98.)Much of this book is about the meaning of elements and relationships, but for now we use this definition to emphasize the plurality of structures that exist in architectures. Each structure is characterized by different kinds of elements and relationships, and each structure provides a view of the architecture that imparts a particular kind of understanding.The architecture serves as the blueprint for both the system and the project developing it. It defines the work assignments that must be carried out by design and implementation teams. The architecture is the primary carrier of system qualities such as performance, modifiability, and security, none of which can be achieved without a unifying architectural vision. Architecture is an artifact for early analysis to make sure that the design approach will yield an acceptable system. And architecture holds the key to post-deployment system understand-ing, maintenance, and mining efforts. In short, architecture is the conceptual glue that holds every phase of the project together for all of its many stakeholders.And documenting the architecture is the crowning step to crafting it. The perfect architecture is useless if it has not been expressed understandably. If you go to the trouble of creating a strong architecture, you must go to the trouble of describing it in enough detail, without ambiguity, and organized so that others can quickly find needed information. Otherwise your effort will have been wasted, because the architecture will be unusable.The goal of this book is to help you decide what information about an architecture is important to capture and to provide guidelines and notations (and examples) for capturing it. We intend this book to be a practitioner- oriented guide to the different kinds of information that constitute an architecture. We wanted to give practical guidance for choosing what information should be documented, and show (with examples in various notations, including but not limited to UML) how to describe that information in writing so that others can use it to carry out their architecture-based work: implementation, analysis, recovery, etc. Therefore, we cover: Uses of software architecture documentation. How one documents depends on how one wishes to use the documentation. We lay out possible end goals for architecture documentation, and provide documentation strategies for each. Architectural views. We hold that documenting software architecture is primarily about documenting the relevant views, and then augmenting this information with relevant information that applies across views. The heart of the book is an introduction to the most relevant architectural views, grouped into three major families (which we call viewtypes) along with practical guidance about how to write them down. Examples are included for each. Packaging th information. Once the views have been understood, there is still the problem of choosing the relevant views, including information not contained in a view, and packaging all of the information as a coherent whole. has been created, We give practical advice for all of these facets.The audience for this book includes the people involved in the production and consumption of architectural documentation, which is to say the community of software developers. We believe strongly in the importance of architecture in building successful systems. But no architecture can achieve this if it is not effectively communicated, and documentation is the key to successful communication. We hope we have provided a useful handbook for practitioners in the field.PC—Austin, TexasFB, LB, DG, JI, RL, RN, JS—Pittsburgh, Pennsylvania