Software Architecture: A Comprehensive Framework and Guide for Practitioners

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

As a software architect you work in a wide-ranging and dynamic environment. You have to understand the needs of your customer, design architectures that satisfy both functional and non-functional requirements, and lead development teams in implementing the architecture. And it is an environment that is constantly changing: trends such as cloud computing, service orientation, and model-driven procedures open up new architectural possibilities.

 

This book will help you to develop a holistic architectural awareness and knowledge base that extends beyond concrete methods, techniques, and technologies. It will also help you to acquire or expand the technical, methodological, and social competences that you need. The authors place the spotlight on you, the architect, and offer you long-term architectural orientation. They give you numerous guidelines, checklists, and best practices to support you in your practical work.

 

"Software Architecture" offers IT students, software developers, and software architects a holistic and consistent orientation across relevant topics. The book also provides valuable information and suggestions for system architects and enterprise architects, since many of the topics presented are also relevant for their work. Furthermore, IT project leads and other IT managers can use the book to acquire an enhanced understanding of architecture.

 

Further information is available at www.software-architecture-book.org.

Author(s): Oliver Vogel, Ingo Arnold, Arif Chughtai, Timo Kehrer
Edition: 2011
Publisher: Springer
Year: 2011

Language: English
Pages: 550
Tags: Библиотека;Компьютерная литература;Проектирование ПО и рефакторинг;

Cover......Page 1
Software Architecture......Page 4
ISBN 9783642197352......Page 5
Foreword......Page 8
Preface......Page 10
Contents......Page 14
About the Authors......Page 18
1 Introduction......Page 20
1.1
Starting Position and Aims of the Book......Page 21
1.2
What is Software Architecture?......Page 26
1.3.1
Book Structure......Page 29
1.3.2
Target Audience......Page 31
1.3.3
Chapter Overview......Page 32
1.3.4 Chapters in Detail
......Page 36
1.4
Summary......Page 38
Further Reading......Page 39
2 Architecture Orientation Framework......Page 42
2.1
Motivation......Page 43
2.2
Overview of the Framework......Page 45
2.3
Architectures and Architecture Disciplines (WHAT)......Page 48
2.4
Architecture Perspectives (WHERE)......Page 49
2.5
Architecture Requirements (WHY)......Page 50
2.6
Architecture Means (WITH WHAT)......Page 51
2.7
Organizations and Individuals (WHO)......Page 53
2.8
Architecture Method (HOW)......Page 54
Further Reading......Page 55
3 Architectures and Architecture Disciplines (WHAT)......Page 58
3.1
Classic Architecture as Starting Point......Page 59
3.2
From Classic Architecture to Software Architecture......Page 62
3.3
Architecture and the System Concept......Page 72
3.4
Architecture and the Building Blocks of a System......Page 76
3.5
Summary......Page 81
Further Reading......Page 82
4 Architecture Perspectives (WHERE)......Page 84
4.1
Architecture Levels......Page 85
4.1.1
Organizational Level......Page 91
4.1.2
System Level......Page 92
4.1.3
Building Block Level......Page 93
4.2
Architecture Views......Page 95
4.2.1
Zachman Framework......Page 105
4.2.2
Reference Model for Open Distributed Processing (RM-ODP)......Page 107
4.2.3
4+1 View Model......Page 109
4.2.4
The Open Group Architecture Framework (TOGAF)......Page 110
4.3
Summary......Page 111
Further Reading......Page 112
5 Architecture Requirements (WHY)......Page 116
5.1
Requirements Characteristics and Types......Page 117
5.2
Organizational Requirements......Page 123
5.3
System Requirements......Page 124
5.4
Building Block Requirements......Page 125
5.5
Qualities and Constraints......Page 126
5.6
Requirements in the Context of Architecture......Page 129
5.7
Summary......Page 132
6 Architecture Means (WITH WHAT)......Page 134
6.1
Architecture Principles......Page 137
6.1.1
Principle of Loose Coupling......Page 139
6.1.2
Principle of High Cohesion......Page 142
6.1.3
Principle of Design for Change......Page 144
6.1.4
Separation of Concerns Principle......Page 146
6.1.5
Information Hiding Principle......Page 148
6.1.6
Abstraction Principles......Page 150
6.1.7
Modularity Principle......Page 152
6.1.8
Principle of Traceability......Page 155
6.1.10 
Incrementality Principle......Page 156
6.1.11
Further Architecture Principles......Page 157

Summary......Page 158
6.2
Basic Architecture Concepts......Page 159
6.2.1
Procedural Approaches......Page 160
6.2.2
Object Orientation......Page 162
6.2.3
Component Orientation......Page 167
6.2.4
Metaprogramming......Page 169
6.2.5
Generative Creation of System Building Blocks......Page 171
6.2.6
Model-Driven Software Development......Page 175
6.2.7
Aspect Orientation......Page 182
6.2.8
Scripting Languages and Dynamic Languages......Page 186
6.2.8
Summary......Page 189
6.3
Architecture Tactics, Styles, and Patterns......Page 190
6.3.1
Requirement Patterns......Page 191
6.3.2
Architecture Tactics......Page 193
6.3.3
Architecture Styles......Page 195
6.3.4
Architecture Patterns......Page 197
6.3.5
Pattern Languages......Page 205
6.4
Basic Architectures......Page 209
6.4.1
Layered Architectures......Page 212
6.4.3
Repositories......Page 213
6.4.4
Client/Server Architecture......Page 214
6.4.5
n-Tier Architecture......Page 215
6.4.6
Rich Client versus Thin Client......Page 217
6.4.7
Peer-To-Peer Architecture......Page 218
6.4.9
Middleware......Page 219
6.4.10
Component Platforms......Page 223
6.4.11
Service-Oriented Architectures......Page 225
6.4.12
Security Architectures......Page 231
6.4.13
Cloud Computing Architectures......Page 239
6.4.14
Summary......Page 249
6.5
Reference Architectures......Page 250
6.5.1
Definition and Elements......Page 251
6.5.2
Use and Advantages of Reference Architectures......Page 252
6.5.4
Types of Reference Architectures......Page 253
6.5.5
Example of a Reference Architecture......Page 254
6.5.6
Summary......Page 258
6.6.1
Basic Concepts of Modeling......Page 259
6.6.2
Unified Modeling Language (UML)......Page 262
6.6.3
Domain-Specific Languages (DSL)......Page 270
6.6.4
Architecture Description Languages (ADL)......Page 273
6.6.5
Unified Method Architecture (UMA)......Page 276
6.6.6
Summary......Page 282
6.7
Architecturally Relevant Technologies......Page 283
6.7.1
Middleware Systems......Page 284
6.7.2
Databases and Persistence of Business Objects......Page 288
6.7.3
XML and Other X Standards......Page 291
6.7.4
Dynamic Web Pages and Web Application Servers......Page 293
6.7.5
Component Platforms......Page 294
6.7.6
Web Services......Page 297
6.7.7
Summary......Page 298
Further Reading: 6.1 Architecture Principles......Page 299
Further Reading: 6.3 Architecture Tactics, Styles, and Patterns......Page 301
Further Reading: 6.4 Basic Architectures......Page 302
Further Reading: 6.6 Architecture Modeling Means......Page 304
Further Reading: 6.7 Architecturally Relevant Technologies......Page 305
7 Organizations and Individuals (WHO)......Page 306
7.1
General......Page 307
7.2
Organizations......Page 310
7.3
Individuals......Page 314
7.4
Individuals and Groups......Page 316
7.5
Architect as Central Role......Page 320
Further Reading......Page 327
8 Architecture Method (HOW)......Page 330
8.1
Architecture and Development Processes......Page 331
8.2
Overview of the Architecture Method......Page 338
8.3
Creating the System Vision......Page 345
8.4
Understanding the Requirements......Page 355
8.5
Designing the Architecture......Page 365
8.6
Implementing the Architecture......Page 391
8.7
Communicating the Architecture......Page 397
8.8
Maintaining the Architecture......Page 411
8.9
Summary......Page 414
Further Reading......Page 419
Summarizing Figures......Page 424
Glossary......Page 428
List of Abbreviations......Page 452
Index......Page 482