Software Architecture Knowledge Management - Theory and Practice

von: Muhammad Ali Babar, Torgeir Dingsøyr, Patricia Lago, Hans van der Vliet

Springer-Verlag, 2009

ISBN: 9783642023743 , 279 Seiten

Format: PDF, OL

Kopierschutz: Wasserzeichen

Windows PC,Mac OSX für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Online-Lesen für: Windows PC,Mac OSX,Linux

Preis: 117,69 EUR

Mehr zum Inhalt

Software Architecture Knowledge Management - Theory and Practice


 

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