Software Architecture Knowledge Management (eBook)
XX, 279 Seiten
Springer Berlin (Verlag)
978-3-642-02374-3 (ISBN)
A software architecture manifests the major early design decisions, which determine the system's development, deployment and evolution. Thus, making better architectural decisions is one of the large challenges in software engineering. Software architecture knowledge management is about capturing practical experience and translating it into generalized architectural knowledge, and using this knowledge in the communication with stakeholders during all phases of the software lifecycle.
This book presents a concise description of knowledge management in the software architecture discipline. It explains the importance of sound knowledge management practices for improving software architecture processes and products, and makes clear the role of knowledge management in software architecture and software development processes. It presents many approaches that are in use in software companies today, approaches that have been used in other domains, and approaches under development in academia. After an initial introduction by the editors, the contributions are grouped in three parts on 'Architecture Knowledge Management', 'Strategies and Approaches for Managing Architectural Knowledge', and 'Tools and Techniques for Managing Architectural Knowledge'.
The presentation aims at information technology and software engineering professionals, in particular software architects and software architecture researchers. For the industrial audience, the book gives a broad and concise understanding of the importance of knowledge management for improving software architecture process and building capabilities in designing and evaluating better architectures for their mission- and business-critical systems. For researchers, the book will help to understand the applications of various knowledge management approaches in an industrial setting and to identify research challenges and opportunities.
Muhammad Ali Babar is a Senior Researcher with Lero, the Irish Software Engineering Research Centre, where he leads projects on Software Architecture Development and Conformance Analysis (SADCA) and Evidential Assessment of Software Technologies (EAST) in software product lines. Previously, he was working as a researcher with National ICT Australia (NICTA), where he carried out research in software architecture design and evaluation, architectural knowledge management, and process improvement. Muhammad also presented tutorials in the area of software architecture knowledge management at various international conferences including ICSE 2009, ICSE 2007, SATURN 2007 and WICSA 2007. His current research interests include software product lines, architecture design and evaluation, architecture knowledge management, and tooling support.
Torgeir Dingsøyr is working in software process improvement and knowledge management projects as a senior scientist at SINTEF Information and Communication Technology. He has published more than 50 refereed papers in this field, including articles in IEEE Software, Communications of the ACM, Information and Software Technology and Empirical Software Engineering. His current research interests include software process improvement, agile software development, knowledge management in software engineering, and in particular management of architectural knowledge.
Patricia Lago is Assistant Professor in Software Engineering at the VU University in Amsterdam. Her research interests focus on software and service architectures, architectural knowledge management and software systems modeling. She co-authored over 80 publications in international journals, books and conferences and is co-organizer of the International Workshop on SHAring and Reusing architectural Knowledge (SHARK).
Hans van Vliet is Professor in Software Engineering at the Vrije Universiteit, Amsterdam, The Netherlands, since 1986. His research interests include software architecture and empirical software engineering. Before joining the Vrije Universiteit, he worked as a researcher at the Centrum voor Wiskunde en Informatica (Amsterdam). He spent a year as a visiting researcher at the IBM Almaden Research Center in San Jose, California. He co-authored over 100 refereed articles, and is, together with Paul Clements, the editor of the Software Architecture Session of the Journal of Systems and Software. Hans is also a member of IFIP Working Group 2.10 on software architecture.
Muhammad Ali Babar is a Senior Researcher with Lero, the Irish Software Engineering Research Centre, where he leads projects on Software Architecture Development and Conformance Analysis (SADCA) and Evidential Assessment of Software Technologies (EAST) in software product lines. Previously, he was working as a researcher with National ICT Australia (NICTA), where he carried out research in software architecture design and evaluation, architectural knowledge management, and process improvement. Muhammad also presented tutorials in the area of software architecture knowledge management at various international conferences including ICSE 2009, ICSE 2007, SATURN 2007 and WICSA 2007. His current research interests include software product lines, architecture design and evaluation, architecture knowledge management, and tooling support. Torgeir Dingsøyr is working in software process improvement and knowledge management projects as a senior scientist at SINTEF Information and Communication Technology. He has published more than 50 refereed papers in this field, including articles in IEEE Software, Communications of the ACM, Information and Software Technology and Empirical Software Engineering. His current research interests include software process improvement, agile software development, knowledge management in software engineering, and in particular management of architectural knowledge. Patricia Lago is Assistant Professor in Software Engineering at the VU University in Amsterdam. Her research interests focus on software and service architectures, architectural knowledge management and software systems modeling. She co-authored over 80 publications in international journals, books and conferences and is co-organizer of the International Workshop on SHAring and Reusing architectural Knowledge (SHARK). Hans van Vliet is Professor in Software Engineering at the Vrije Universiteit, Amsterdam, The Netherlands, since 1986. His research interests include software architecture and empirical software engineering. Before joining the Vrije Universiteit, he worked as a researcher at the Centrum voor Wiskunde en Informatica (Amsterdam). He spent a year as a visiting researcher at the IBM Almaden Research Center in San Jose, California. He co-authored over 100 refereed articles, and is, together with Paul Clements, the editor of the Software Architecture Session of the Journal of Systems and Software. Hans is also a member of IFIP Working Group 2.10 on software architecture.
Foreword 5
Preface 8
Contents 11
Contributors 17
1 Introduction to Software Architecture and KnowledgeManagement 19
1.1 Introduction 19
1.2 Software Architecture 20
1.2.1 Software Architecture and the Software Life Cycle 22
1.2.2 Architecture Design 22
1.2.2.1 Architecture as a Set of Design Decisions 24
1.2.3 Architectural Views 25
1.2.4 Architectural Knowledge 28
1.3 Knowledge Management 28
1.3.1 Knowledge and Knowledge Management 28
1.3.2 Knowledge and Learning 31
1.3.3 Knowledge Management in Software Engineering 32
1.4 Summary 33
Part I Architecture Knowledge Management 36
2 Knowledge Management in Software Architecture:State of the Art 38
2.1 Introduction 38
2.2 What Is `Architectural Knowledge'? 39
2.2.1 Different Views on Architectural Knowledge 39
2.2.1.1 Pattern-Centric View 39
2.2.1.2 Dynamism-Centric View 40
2.2.1.3 Requirements-Centric View 40
2.2.1.4 Decision-Centric View 41
2.2.2 So, What Is Architectural Knowledge? 41
2.3 Philosophies of Architecture Knowledge Management 44
2.4 State-of-the-Art in Architecture Knowledge Management 49
2.4.1 Sharing Architectural Knowledge 50
2.4.2 Aligning Architecting with Requirements Engineering 51
2.4.3 Intelligent Support for Architecting 51
2.4.4 Towards a Body of Architectural Knowledge 52
2.5 Justification 52
2.6 Summary 54
3 Documentation of Software Architecture from a Knowledge Management Perspective – Design Representation 56
3.1 Introduction 56
3.2 Evolution of Architectural Representation 57
3.2.1 Boxes and Arrows 57
3.2.2 Views 57
3.2.3 The Architecting Process 58
3.2.4 Architectural Design Decisions 59
3.2.5 Architectural Knowledge=Architectural Design + Architectural Design Decisions 59
3.3 Architectural Design 60
3.3.1 Viewpoints and Views 60
3.3.2 Architecture Description Languages 61
3.3.3 Application-Generic Knowledge: Patterns, Standards, Frameworks 62
3.4 Architectural Design Decisions 63
3.4.1 What Is an Architectural Design Decision? 63
3.4.2 A Taxonomy of Architectural Design Decisions 66
3.4.2.1 Existence Decisions (``ontocrises'') 66
3.4.2.2 Bans or Nonexistence Decisions (``Anticrises'') 67
3.4.2.3 Property Decisions (``Diacrises'') 67
3.4.2.4 Executive Decisions (``Pericrises'') 67
3.4.3 Visualization of Set of Design Decisions 68
3.4.4 A ``Decisions View'' of Architecture 70
3.5 Rationale, or, the Missing Glue 72
3.6 Metaphors 72
3.7 Summary 73
4 Strategies and Approaches for Managing ArchitecturalKnowledge 75
4.1 Introduction 75
4.2 Technocratic Approaches to Knowledge Management 76
4.2.1 Systems 77
4.2.2 The Cartographic School 79
4.2.3 The Engineering School 80
4.3 Behavioural Approaches to Knowledge Management 82
4.3.1 The Organisational School 82
4.3.2 The Spatial School 83
4.4 Summary 84
5 Supporting the Software Architecture Process with Knowledge Management 85
5.1 Introduction 85
5.2 Software Architecture Process 87
5.3 Knowledge Management Problems 89
5.4 Knowledge Needed 90
5.5 Architectural Knowledge Organization 93
5.6 A Model of Architecture Knowledge Management 97
5.7 Summary 102
Part II Tools and Techniques for Managing Architectural Knowledge 103
6 Tools and Technologies for Architecture KnowledgeManagement 106
6.1 Introduction 106
6.2 Use Cases of AK Management 108
6.2.1 Actors 108
6.2.2 Use Cases 108
6.3 Tool Support for Codification 111
6.3.1 SEI-ADWiki 111
6.3.2 ADkwik 112
6.3.3 ADDSS 113
6.3.4 Archium 114
6.3.5 AREL 116
6.3.6 Knowledge Architect 117
6.3.7 SEURAT 118
6.4 Tool Support for the Hybrid Strategy 119
6.4.1 EAGLE 119
6.4.2 PAKME 121
6.5 Technologies 121
6.5.1 Web Portal 122
6.5.2 Blog and Wiki 122
6.5.3 Voting and Ranking 123
6.5.4 Natural Language Processing 123
6.5.5 Ontologies 123
6.5.6 Plug-in 125
6.5.7 Version Management 125
6.5.8 Web 2.0 125
6.6 Summary 126
7 Establishing and Managing Knowledge Sharing Networks 127
7.1 Introduction 127
7.2 From Networking Platforms to Knowledge Communities 128
7.2.1 Networking Platforms 128
7.2.1.1 AKM Characteristics 130
7.2.1.2 Peer-to-Peer Networks 130
7.2.1.3 Grids 135
7.2.1.4 Semantic Web 137
7.2.2 Supported Knowledge Communities 139
7.3 From Knowledge Communities to Social Networks 140
7.3.1 Social Communities 141
7.3.2 Support for Social Communities 142
7.3.2.1 Web 2.0 142
7.3.2.2 Wiki's 143
7.4 Summary 144
Part III Experience with Architecture Knowledge Management 146
8 The GRIFFIN Project: Lessons Learned 150
8.1 Introduction 150
8.2 The Beginning 151
8.2.1 Core Model of Architectural Knowledge 151
8.2.2 The Architect's Mindset 154
8.3 Sharing Architectural Knowledge 157
8.4 Discovering Architectural Knowledge 160
8.5 Compliance with Architectural Knowledge in DistributedSettings 162
8.6 Tracing Architectural Knowledge 164
8.7 The GRIFFIN Grid 166
8.8 Summary 167
9 Software Architecture Design Reasoning 168
9.1 Introduction 168
9.2 Software Architecture Design Reasoning 169
9.3 Modeling Architecture Design Reasoning 170
9.3.1 Design Concern 173
9.3.2 Design Decision 173
9.3.3 Design Outcome 175
9.4 An Architectural Design Reasoning Process 175
9.5 Applying AREL to an Industrial Case Study 179
9.5.1 Analyze the Design by Reasoning 180
9.5.2 Applying Design Reasoning in the Case Study 182
9.5.3 Other Findings 184
9.5.4 Benefits of Design Reasoning 185
9.5.5 Limitations in the Case Study 186
9.6 Summary 187
10 Modeling and Improving Information Flows in the Developmentof Large Business Applications 188
10.1 Introduction 188
10.2 Information Flow Modeling 190
10.2.1 Information Flow: Concept, Focus and Purpose 190
10.2.2 Key Concepts and Modeling Notation in FLOW 193
10.3 Designing Feedback and Information Flows 194
10.3.1 Designing Information Flows for Large BusinessProjects 195
10.3.2 Conclusion: Desired FLOW and ArchitecturalElements 199
10.4 Designing an Experience Forum 200
10.4.1 Learning Cycles in General and in SoftwareArchitecture 202
10.4.2 Mechanisms for Feedback and Experience 204
10.5 Supporting Feedback and Experience in SOA Projects 205
10.5.1 SOA: Aligning Software Services with Business Processes 205
10.5.2 SOA as an Example for Large Business Application Projects 206
10.5.3 Integrating Feedback into SOA Applications 207
10.6 Summary 208
11 AKM in Open Source Communities 211
11.1 Introduction 211
11.2 FLOSS Projects in General 212
11.3 Architecture Knowledge Management in FLOSS 214
11.4 How does Architectural Knowledge Appear in FLOSS? 214
11.4.1 ``Pure'' FLOSS Projects: Apache HTTP Server 216
11.4.2 Hybrid OSS Projects: Apache Axis and Jini 217
11.4.2.1 Apache Axis 218
11.4.2.2 Jini Starter Kit 219
11.4.3 Research Originated FLOSS Projects: The GlobusToolkit 221
11.4.4 Architectural Knowledge Resources in FLOSS 223
11.5 Future Trends and Expectations 224
11.6 Summary 225
12 Architectural Knowledge in an SOA Infrastructure Reference Architecture 228
12.1 Introduction: Middleware Services and SOA Infrastructure Design in IBM Global Technology Services 228
12.1.1 Company Overview: IBM Global Technology Services 229
12.1.2 From Labor-Based to Asset-Based Services: Service Products and Service Product Lines 229
12.1.3 Middleware Service Product Line: SOA Infrastructure Services 230
12.1.4 Supporting Assets: Methods and Reference Architectures 232
12.1.5 Architecture Knowledge Management Strategy and Approach 234
12.2 An SOA Infrastructure Reference Architecture 235
12.2.1 Objectives and Artifact Overview 235
12.2.2 Decision Viewpoint: SOA Decision Modeling 237
12.2.3 Physical Viewpoint: Operational Model 242
12.2.4 Summary of Approach and Benefits 244
12.3 Harvesting SOA Decision Knowledge from Projects 245
12.3.1 Sources of Architectural Decision Knowledge 245
12.3.2 Architectural Knowledge Harvesting Process 245
12.3.3 Guidance for the Four RIHA Process Steps 246
12.4 Consuming SOA Decision Knowledge 248
12.4.1 SOAD Usage during Creation of SOAI RA 249
12.4.2 User Experience with SOAD and SOAI RA 249
12.5 Summary 251
13 Successful Architectural Knowledge Sharing: Beware of Emotions 253
13.1 Introduction 253
13.2 Survey Description 254
13.3 Analysis 254
13.3.1 State of AK Sharing Practice 255
13.3.2 AK Practices in Context 259
13.3.3 Refined Model of Causality 264
13.4 Discussion and Related Work 266
13.4.1 Threats to Validity 266
13.4.2 Project Success in Literature 266
13.4.3 Motivation and Emotion in Architectural Knowledge Sharing 267
13.5 Summary 268
References 270
Index 285
Erscheint lt. Verlag | 12.8.2009 |
---|---|
Zusatzinfo | XX, 279 p. |
Verlagsort | Berlin |
Sprache | englisch |
Themenwelt | Mathematik / Informatik ► Informatik ► Software Entwicklung |
Wirtschaft ► Betriebswirtschaft / Management ► Wirtschaftsinformatik | |
Schlagworte | Design • Design rationale • documentation • knowledge management • Modeling • Open Source • software architecture • Software Design • Software engineering • software process management |
ISBN-10 | 3-642-02374-6 / 3642023746 |
ISBN-13 | 978-3-642-02374-3 / 9783642023743 |
Haben Sie eine Frage zum Produkt? |
Größe: 4,9 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich