Suchen und Finden
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
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.