De som köpt den här boken har ofta också köpt The Art of Doing Science and Engineering av Richard Hamming (inbunden).
Köp båda 2 för 1202 krLen Bass is a Senior Principal Researcher at National ICT Australia Ltd (NICTA). He joined NICTA in 2011 after twenty-five years at the Software Engineering Institute (SEI) at Carnegie Mellon University. He is the coauthor of two award-winning books in software architecture, including Documenting Software Architectures: Views and Beyond, Second Edition (Addison-Wesley, 2011), as well as several other books and numerous papers in computer science and software engineering on a wide range of topics. Len has almost fifty years' experience in software development and research in multiple domains, such as scientific analysis systems, embedded systems, and information systems. Paul Clements is the Vice President of Customer Success at BigLever Software, Inc., where he works to spread the adoption of systems and software product line engineering. Prior to this position, he was Senior Member of the Technical Staff at the SEI, where, for 17 years, he lead or co-lead projects in software product line engineering and software architecture documentation and analysis. Other books Paul has coauthored include Documenting Software Architectures: Views and Beyond, Second Edition (Addison-Wesley, 2011) and Evaluating Software Architectures: Methods and Case Studies, (Addison-Wesley, 2002), and Software Product Lines: Practices and Patterns (Addison-Wesley, 2002). In addition, he has also published dozens of papers in software engineering reflecting his long-standing interest in the design and specification of challenging software systems. Paul was a founding member of the IFIP WG2.10 Working Group on Software Architecture. Rick Kazman is a professor at the University of Hawaii and a Visiting Scientist (and former Senior Member of the Technical Staff) at the SEI. He is a coauthor of Evaluating Software Architectures: Methods and Case Studies, (Addison-Wesley, 2002). Rick's primary research interests are software architecture, design and analysis tools, software visualization, and software engineering economics. He is also interested in human-computer interaction and information retrieval. Rick was one of the creators of several highly influential methods and tools for architecture analysis, including the SAAM (Software Architecture Analysis Method), the ATAM (Architecture Tradeoff Analysis Method), the CBAM (Cost-Benefit Analysis Method), and the Dali architecture reverse engineering tool.
Preface xv
Readers Guide xvii
Acknowledgments xix
Part One: Introduction 1
Chapter 1: What Is Software Architecture? 3
1.1 What Software Architecture Is and What It Isnt 4
1.2 Architectural Structures and Views 9
1.3 Architectural Patterns 18
1.4 What Makes a Good Architecture? 19
1.5 Summary 21
1.6 For Further Reading 22
1.7 Discussion Questions 23
Chapter 2: Why Is Software Architecture Important? 25
2.1 Inhibiting or Enabling a Systems Quality Attributes 262.2 Reasoning About and Managing Change 27
2.3 Predicting System Qualities 28
2.4 Enhancing Communication among Stakeholders 29
2.5 Carrying Early Design Decisions 31
2.6 Defining Constraints on an Implementation 32
2.7 Influencing the Organizational Structure 33
2.8 Enabling Evolutionary Prototyping 33
2.9 Improving Cost and Schedule Estimates 34
2.10 Supplying a Transferable, Reusable Model 35
2.11 Allowing Incorporation of Independently Developed Components 35
2.12 Restricting the Vocabulary of Design Alternatives 36
2.13 Providing a Basis for Training 37
2.14 Summary 37
2.15 For Further Reading 38
2.16 Discussion Questions 38
Chapter 3: The Many Contexts of Software Architecture 39
3.1 Architecture in a Technical Context 40
3.2 Architecture in a Project Life-Cycle Context 44
3.3 Architecture in a Business Context 49
3.4 Architecture in a Professional Context 51
3.5 Stakeholders 52
3.6 How Is Architecture Influenced? 56
3.7 What Do Architectures Influence? 57
3.8 Summary 59
3.9 For Further Reading 59
3.10 Discussion Questions 60
Part Two: Quality Attributes 61
Chapter 4: Understanding Quality Attributes 63
4.1 Architecture and Requirements 64
4.2 Functionality 65
4.3 Quality Attribute Considerations 65
4.4 Specifying Quality Attribute Requirements 68
4.5 Achieving Quality Attributes through Tactics 70
4.6 Guiding Quality Design Decisions 72
4.7 Summary 76
4.8 For Further Reading 77
4.9 Discussion Questions 77
Chapter 5: Availability 79
5.1 Availability General Scenario 855.2 Tactics for Availability 87
5.3 A Design Checklist for Availability 96
5.4 Summary 98
5.5 For Further Reading 99
5.6 Discussion Questions 100
Chapter 6: Interoperability 103
6.1 Interoperability General Scenario 107
6.2 Tactics for Interoperability 110
6.3 A Design Checklist for Interoperability 114
6.4 Summary 115
6.5 For Further Reading 116
6.6 Discussion Questions...