Wiley.com
Print this page Share
Textbook

Software Architecture: Foundations, Theory, and Practice

Software Architecture: Foundations, Theory, and Practice (EHEP000180) cover image

Description

Software architecture is foundational to the development of large, practical software-intensive applications. This brand-new text covers all facets of software architecture and how it serves as the intellectual centerpiece of software development and evolution. Critically, this text focuses on supporting creation of real implemented systems. Hence the text details not only modeling techniques, but design, implementation, deployment, and system adaptation -- as well as a host of other topics -- putting the elements in context and comparing and contrasting them with one another. Rather than focusing on one method, notation, tool, or process, this new text/reference widely surveys software architecture techniques, enabling the instructor and practitioner to choose the right tool for the job at hand. Software Architecture is intended for upper-division undergraduate and graduate courses in software architecture, software design, component-based software engineering, and distributed systems; the text may also be used in introductory as well as advanced software engineering courses.
See More

Table of Contents

1 The Big Idea 1

1.1 The Power of Analogy: The Architecture of Buildings 2

1.2 The Power and Necessity of Big Ideas: The Architecture of the Web 7

1.3 The Power of Architecture in the Small: Architecture on the Desktop 12

1.4 The Power of Architecture in Business: Productivity and Product Lines 15

1.5 End Matter 20

1.6 Review Questions 21

1.7 Exercises 21

1.8 Further Reading 21

2 Architectures in Context: The Reorientation of Software Engineering 23

2.1 Fundamental Understandings 24

2.2 Requirements 25

2.3 Design 29

2.4 Implementation 33

2.5 Analysis and Testing 38

2.6 Evolution and Maintenance 40

2.7 Processes 42

2.8 End Matter 52

2.9 Review Questions 53

2.10 Exercises 54

2.11 Further Reading 55

3 Basic Concepts 57

3.1 Terminology 58

3.2 Models 75

3.3 Processes 75

3.4 Stakeholders 79

3.5 End Matter 79

3.6 Review Questions 80

3.7 Exercises 80

3.8 Further Reading 81

4 Designing Architectures 83

4.1 The Design Process 85

4.2 Architectural Conception 87

4.3 Refined Experience in Action: Styles and Architectural Patterns 91

4.4 Architectural Conception in Absence of Experience: Unprecedented Design 144

4.5 Putting it All Together: Design Processes Revisited 149

4.6 End Matter 152

4.7 Review Questions 153

4.8 Exercises 154

4.9 Further Reading 154

5 Connectors 157

5.1 Connectors in Action: A Motivating Example 159

5.2 Connector Foundations 161

5.3 Connector Roles 163

5.4 Connector Types and Their Variation Dimensions 164

5.5 Example Connectors 172

5.6 Using the Connector Framework 176

5.7 End Matter 181

5.8 Review Questions 182

5.9 Exercises 183

5.10 Further Reading 183

6 Modeling 185

6.1 Modeling Concepts 186

6.2 Ambiguity Accuracy and Precision 191

6.3 Complex Modeling: Mixed Content and Multiple Views 194

6.4 Evaluating Modeling Techniques 198

6.5 Specific Modeling Techniques 199

6.6 When Systems Become Too Complex to Model 242

6.7 End Matter 243

6.8 Review Questions 246

6.9 Exercises 246

6.10 Further Reading 246

7 Visualization 249

7.1 Visualization Concepts 250

7.2 Evaluating Visualizations 259

7.3 Common Issues in Visualization 268

7.4 Evaluating Visualization Techniques 272

7.5 Techniques 272

7.6 End Matter 288

7.7 Review Questions 289

7.8 Exercises 290

7.9 Further Reading 290

8 Analysis 291

8.1 Analysis Goals 295

8.2 Scope of Analysis 303

8.3 Architectural Concern being Analyzed 310

8.4 Level of Formality of Architectural Models 312

8.5 Type of Analysis 313

8.6 Level of Automation 314

8.7 System Stakeholders 315

8.8 Analysis Techniques 317

8.9 End Matter 333

8.10 Review Questions 334

8.11 Exercises 335

8.12 Further Reading 336

9 Implementation 337

9.1 Concepts 338

9.2 Existing Frameworks 350

9.3 Examples 360

9.4 End Matter 377

9.5 Review Questions 378

9.6 Exercises 378

9.7 Further Reading 379

10 Deployment and Mobility 381

10.1 Overview of Deployment and Mobility Challenges 385

10.2 Software Architecture and Deployment 387

10.3 Software Architecture and Mobility 405

10.4 End Matter 408

10.5 Review Questions 409

10.6 Exercises 409

10.7 Further Reading 410

11 Applied Architectures and Styles 413

11.1 Distributed and Networked Architectures 414

11.2 Architectures for Network-Based Applications 416

11.3 Decentralized Architectures 424

11.4 Service-Oriented Architectures and Web Services 433

11.5 Architectures from Specific Domains 437

11.6 End Matter 443

11.7 Review Questions 445

11.8 Exercises 445

11.9 Further Reading 446

12 Designing for Non-Functional Properties 447

12.1 Efficiency 450

12.2 Complexity 459

12.3 Scalability and Heterogeneity 467

12.4 Adaptability 475

12.5 Dependability 478

12.6 End Matter 483

12.7 Review Questions 484

12.8 Exercises 484

12.9 Further Reading 485

13 Security and Trust 487

13.1 Security 489

13.2 Design Principles 492

13.3 Architectural Access Control 497

13.4 Trust Management 508

13.5 End Matter 522

13.6 Review Questions 523

13.7 Exercises 523

13.8 Further Reading 524

14 Architectural Adaptation 525

14.1 Concepts of Architecture-Centric Adaptation 526

14.2 A Conceptual Framework for Architectural Adaptation 539

14.3 Techniques for Supporting Architecture-Centric Change 542

14.4 End Matter 561

14.5 Review Questions 562

14.6 Exercises 563

14.7 Further Reading 563

15 Domain-Specific Software Engineering 565

15.1 Domain-Specific Software Engineering in a Nutshell 570

15.2 Domain-Specific Software Architecture 574

15.3 DSSAs Product Lines and Architectural Styles 606

15.4 DSSE Examples 608

15.5 End Matter 616

15.6 Review Questions 618

15.7 Exercises 618

15.8 Further Reading 619

16 Standards 621

16.1 What Are Standards? 622


16.2 Specific Standards 627

16.3 Process Standards 648

16.4 End Matter 651

16.5 Review Questions 653

16.6 Exercises 653

16.7 Further Reading 654

17 People Roles and Teams 655

17.1 Who Are Software Architects? 657

17.2 What Do Software Architects Do? 663

17.3 How Do Software Architects Work? 665

17.4 How Do Software Architects Relate to Other Stakeholders? 669

17.5 Remaining Challenges 673

17.6 End Matter 673

17.7 Review Questions 674

17.8 Further Reading 674

Bibliography 675

Index 691

See More

The Wiley Advantage

  • Central focus on design: emphasizes that design permeates the entire software lifecycle--from requirements through maintenance and evolution
  • Focused on practical principles and insights: rather than just a survey or overview of various languages, techniques, and tools, the text provides concise, practical strategies for designing, implementing, and evolving successful systems using software architecture.
  • Long-term relevance and comprehensive scope: synthesis of more than 15 years of work on software architecture from both academic research and industrial practice; covers influential approaches from the past and present, placed in context with guidance as to their relative strengths and weaknesses
  • Practical organization and progression of topics makes it useful to a variety of readers: first third of the book provides a high-level overview on software architecture and design; middle third addresses technically weighty topics such as fundamental design principles and strategies for modeling, visualization, analysis, and implementation; and final third is dedicated to advanced topics such as product-line architectures, domain-specific development, non-traditional software systems, and the role of software architecture in organizations.
  • Targeted for both students and practitioners: a true textbook, the book is replete with elaborated examples, review questions, exercises for the reader, and pointers to other references, but it is also contains advanced topics, offering insights about topics that will be both useful to students and new to many practitioners
  • Incorporates recent research results and contains previously unpublished results: written by primary researchers and authors in the field, the text contains the very latest research results and includes some material which is completely new
See More
Instructors Resources
Wiley Instructor Companion Site
Digital evaluation copy available for this title
Request Copy
Contact your Wiley Representative
Find Your Rep
See More
See Less
Students Resources
Wiley Student Companion Site
See More
See Less
Purchase Options
Hardcover   
Software Architecture: Foundations, Theory, and Practice
ISBN : 978-0-470-16774-8
736 pages
January 2009, ©2009
$146.95   BUY

Back to Top