Collaborative Software Engineering (eBook)

eBook Download: PDF
2010 | 2010
XXIV, 409 Seiten
Springer Berlin (Verlag)
978-3-642-10294-3 (ISBN)

Lese- und Medienproben

Collaborative Software Engineering -
Systemvoraussetzungen
96,29 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Collaboration among individuals - from users to developers - is central to modern software engineering. It takes many forms: joint activity to solve common problems, negotiation to resolve conflicts, creation of shared definitions, and both social and technical perspectives impacting all software development activity. The difficulties of collaboration are also well documented. The grand challenge is not only to ensure that developers in a team deliver effectively as individuals, but that the whole team delivers more than just the sum of its parts.

The editors of this book have assembled an impressive selection of authors, who have contributed to an authoritative body of work tackling a wide range of issues in the field of collaborative software engineering. The resulting volume is divided into four parts, preceded by a general editorial chapter providing a more detailed review of the domain of collaborative software engineering. Part 1 is on 'Characterizing Collaborative Software Engineering', Part 2 examines various 'Tools and Techniques', Part 3 addresses organizational issues, and finally Part 4 contains four examples of 'Emerging Issues in Collaborative Software Engineering'.

As a result, this book delivers a comprehensive state-of-the-art overview and empirical results for researchers in academia and industry in areas like software process management, empirical software engineering, and global software development. Practitioners working in this area will also appreciate the detailed descriptions and reports which can often be used as guidelines to improve their daily work.



Ivan Mistrík is an independent consultant for software-intensive systems engineering. He has 40 years experience in both software and systems engineering as an information systems developer, R&D leader, research analyst, and ICT management consultant. He is the author or co-author of more than 80 articles and papers in international journals, conferences, books and workshops.

John Grundy has published widely in the area of software tools, including a range of novel contributions to collaboration supporting software tools. These include software process modelling and enactment tools, synchronous and asynchronous editing tools, component repositories, and various collaborative design tools. In particular he has focused on developing architectures and meta-tools to support rapid development and deployment of collaboration-supporting tools.

André van der Hoek has authored and co-authored over 70 journal and conference publications, and is a co-author of the Configuration Management impact report, a recent retrospective view of research and industry advances in the essential collaborative technology of configuration management. His research focuses on understanding and advancing the role of design, coordination, and education in software.

Jim Whitehead has created and led the Internet Engineering Task Force Working Group on Web Distributed Authoring and Versioning (WebDAV), and participated in the creation of the DeltaV follow-on standard for versioning and configuration management.

Ivan Mistrík is an independent consultant for software-intensive systems engineering. He has 40 years experience in both software and systems engineering as an information systems developer, R&D leader, research analyst, and ICT management consultant. He is the author or co-author of more than 80 articles and papers in international journals, conferences, books and workshops. John Grundy has published widely in the area of software tools, including a range of novel contributions to collaboration supporting software tools. These include software process modelling and enactment tools, synchronous and asynchronous editing tools, component repositories, and various collaborative design tools. In particular he has focused on developing architectures and meta-tools to support rapid development and deployment of collaboration-supporting tools. André van der Hoek has authored and co-authored over 70 journal and conference publications, and is a co-author of the Configuration Management impact report, a recent retrospective view of research and industry advances in the essential collaborative technology of configuration management. His research focuses on understanding and advancing the role of design, coordination, and education in software. Jim Whitehead has created and led the Internet Engineering Task Force Working Group on Web Distributed Authoring and Versioning (WebDAV), and participated in the creation of the DeltaV follow-on standard for versioning and configuration management.

Collaborative Software Engineering 2
Foreword 6
Preface 8
Introduction 8
Book Overview 9
What Is Collaborative Software Engineering? 10
Part I -- Characterizing Collaborative Software Engineering 11
Part II -- Tools and Techniques 12
Part III -- Organizational Experiences 13
Part IV -- Related Issues 13
Current Challenges and Future Directions 14
Acknowledgements 16
Contributors 22
1 Collaborative Software Engineering: Concepts and Techniques 26
1.1 Introduction 26
1.2 Defining Collaborative Software Engineering 28
1.3 Historical Trends in Collaborative Software Engineering 29
1.3.1 Model-Based Collaboration Tools 30
1.3.1.1 Requirement Centered Collaboration 31
1.3.1.2 Architecture Centered Collaboration 32
1.3.1.3 Design Centered Collaboration 32
1.3.1.4 Collaboration Around Testing and Inspections 33
1.3.1.5 Traceability and Consistency 33
1.3.2 Process Centered Collaboration 34
1.3.3 Collaboration Awareness 34
1.3.4 Collaboration Infrastructure 35
1.3.5 Project Management 36
1.4 Global and Multi-Site Collaboration 37
1.5 Social Considerations 38
1.5.1 Software Teams 38
1.5.2 Team Organization 38
1.5.3 Team Composition 39
1.5.4 Knowledge Sharing 40
1.6 Managerial Considerations 40
1.6.1 Software Project Management 41
1.6.2 SPM for Collaborative Software Engineering 41
1.6.2.1 Supporting Communications in the Project 41
1.6.2.2 To Reconcile Conflicting Success Criteria in the Project 41
1.6.2.3 Improving the Process in the Project 42
1.6.2.4 Rapidly Construct the Knowledge in the Project 42
1.7 Future Trends 43
1.7.1 IDEs Shift to the Web 43
1.7.2 Social Networking 44
1.7.3 Broader Participation in Design 45
1.7.4 Capturing Rationale Argumentation 45
1.7.5 Using 3D Virtual Worlds 47
1.8 Fundamental Tensions 48
1.9 Conclusions 49
References 50
Part I Characterizing Characterizing Collaborative Software Engineering 56
References 58
2 Global Software Engineering: A Software Process Approach 59
2.1 Introduction 59
2.2 Software Process 60
2.3 Research Project 8
2.3.1 Case Studies into GSE 61
2.3.2 Research Methodology 62
2.3.3 Development of the Global Teaming Software Process Area 62
2.4 Global Software Engineering 63
2.4.1 Virtual Teams 63
2.4.2 Project Management Challenges 64
2.4.3 Global Teaming -- A GSE Process Area 65
2.5 Global Teaming Process Area 66
2.5.1 Global Teaming Specific Goal 1: Define Global Project Management 67
2.5.1.1 SP 1.1 Global Task Management (1): Determine Team and Organisational Structure Between Locations 67
2.5.1.2 SP 1.1 Global Task Management (2): Determine the Approach to task Allocation Between Locations 67
2.5.1.3 SP 1.2 Knowledge and Skills (1): Identify Business Competencies Required by Global Team Members in Each Location 68
2.5.1.4 SP 1.2 Knowledge and Skills (2): Identify the Cultural Requirements of Each Local Sub-team 68
2.5.1.5 SP 1.2 Knowledge and Skills (3): Identify Communication Skills for GSE 68
2.5.1.6 SP 1.2 Knowledge and Skills (4): Establish Relevant Criteria for Training Teams 69
2.5.1.7 SP 1.3 Global Project Management (1): Identify GSE Project Management Tasks 69
2.5.1.8 SP 1.3 Global Project Management (2): Assign Tasks to Appropriate Team Members 70
2.5.1.9 SP 1.3 Global Project Management (3): Ensure Awareness of Cultural Profiles by Project Managers 70
2.5.1.10 SP 1.3 Global Project Management (4): Establish Cooperation and Coordination Procedures Between Locations 71
2.5.1.11 SP 1.3 Global Project Management (5): Establish Reporting Procedures Between Locations 72
2.5.1.12 SP 1.3 Global Project Management (6): Establish a Risk Management Strategy 72
2.5.2 Global Teaming Specific Goal 2: Define Management Between Locations 73
2.5.2.1 SP 2.1 Operating Procedures (1): Define How Conflicts and Differences of Opinion Between Locations are Addressed and Resolved 73
2.5.2.2 SP 2.1 Operating Procedures (2): Implement a Communication Strategy for the Team 73
2.5.2.3 SP 2.1 Operating Procedures (3): Establish Communication Interface Points Between the Team Members 73
2.5.2.4 SP 2.1 Operating Procedures (4): Implement Strategy for Conducting Meetings Between Locations 74
2.5.2.5 SP 2.2 Collaboration Between Locations (1): Identify Common Goals, Objectives and Rewards for the Global Team 74
2.5.2.6 SP 2.2 Collaboration Between Locations (2): Collaboratively Establish and Maintain the Work Product Ownership Boundaries Among Interfacing Locations Within the Project or Organisation 75
2.5.2.7 SP 2.2 Collaboration Between Locations (3): Collaboratively Establish and Maintain Interfaces and Processes Among Interfacing Locations for the Exchange of Inputs, Outputs, or Work Products 75
2.5.2.8 SP 2.2 Collaboration Between Locations (4): Collaboratively Develop, Communicate and Distribute Among Interfacing Teams the Commitment Lists and Work Plans that are Related to the Work Product or Team Interfaces 75
2.6 Discussion 76
2.7 Conclusion 76
References 77
3 Requirements-Driven Collaboration: Leveraging the Invisible Relationships between Requirements and People 81
3.1 A Requirements Perspective on Collaboration 81
3.2 An Approach to Study Requirements-driven Collaboration 83
3.2.1 Defining Requirements-Centric Social Networks 85
3.2.2 Using Requirements-Centric Social Networks to Study Requirements-Driven Collaboration 87
3.2.2.1 Analysis to Characterize the Networks 87
3.2.2.2 Analysis of Network Actors 88
3.2.2.3 Analysis of Network Structure 88
3.2.2.4 Analysis of Collaboration Behavior Within the Same Network 89
3.2.2.5 Analysis of Collaboration Behavior Across Different Types of Networks 89
3.3 A Study of Requirements-Driven Collaboration in an Industrial Project 90
3.3.1 Construction of the Requirements-Centric Social Networks 91
3.3.2 Communication in Requirements-Driven Coordination 93
3.4 Implications 97
3.4.1 Research Implications: Future Applications of the Approach 97
3.4.2 Practice Implications: Designing of Collaboration Tools to Support Coordination of Cross-Functional Teams 98
References 98
4 Softwares Product Lines, Global Development and Ecosystems: Collaboration in Software Engineering 101
4.1 Introduction 101
4.2 Architecture, Process, Organization 103
4.3 Five Collaborative Approaches 105
4.3.1 Integration-Centric Development 105
4.3.2 Release Groupings 108
4.3.3 Release Trains 110
4.3.4 Independent Deployment 111
4.3.5 Open Ecosystem 113
4.4 Conclusion 114
References 115
5 Collaboration, Communication and Co-ordination in Agile Software Development Practice 117
5.1 Introduction 117
5.1.1 XP as a Social Activity 118
5.2 Fieldwork 119
5.3 The Social in the Technical: Collaboration and Communication 120
5.3.1 Pairing 121
5.3.2 Customer Collaboration 123
5.4 The Social in the Technical: Co-ordination 125
5.4.1 Story Cards 125
5.4.2 The Wall 127
5.5 Discussion 129
5.6 Conclusion 130
References 131
6 Applications of Ontologies in Collaborative Software Development 133
6.1 Introduction 133
6.2 Foundations 134
6.2.1 Ontologies vs. Models ontologies vs. models 135
6.2.2 Ontology Representation Languages 137
6.2.3 Semantic Web 138
6.3 Uses of Ontologies in CSD 138
6.3.1 Coordination 139
6.3.2 Knowledge Sharing 140
6.3.3 Development 141
6.4 Ontology-Based Tools in CSD 142
6.4.1 Ontologies 142
6.4.1.1 Collaboration Ontologies 142
6.4.1.2 Software Development Ontologies 143
6.4.2 Semantic Wikis 145
6.4.3 Semantic Development Environments 146
6.4.4 Software Engineering Semantic Web 148
6.5 Conclusion 150
References 151
Part II Tools and Techniques 154
References 157
7 Towards and Beyond Being There in Collaborative Software Development 158
7.1 Introduction 158
7.2 Productivity vs. Co-Location Degrees 159
7.3 Towards Being There 162
7.3.1 Virtual Co-location virtual co-location and Radical Co-location 162
7.3.2 Distributed Pair Programming 162
7.3.3 Distributed Side-by-Side Programming 163
7.3.4 Distributed Synchronous Design and Inspection 164
7.3.5 Other ''Towards Being There'' Mechanisms 164
7.4 Beyond Being There 164
7.4.1 File System Events 164
7.4.2 Persistent Awareness vs. Notifications 165
7.4.3 Programming Environment Events 165
7.4.4 Shared Version with Multiple Views 166
7.4.5 Searching and Mining 167
7.4.6 Visualization 168
7.4.7 Context-Based Automatic Filtering 170
7.4.8 Tagging 170
7.5 Summary 171
References 172
8 Continuous Coordination Tools and their Evaluation 175
8.1 Introduction 175
8.2 Research Context 176
8.3 The CC Evaluation Framework 177
8.4 Continuous Coordination (CC) Tools: Their Origin and Evaluation 178
8.4.1 Ariadne 179
8.4.1.1 Objective of Evaluation Process and Steps Taken 179
8.4.1.2 Lessons Learned with Respect to the Tool 181
8.4.1.3 Lessons Learned with Respect to Evaluation 181
8.4.2 Workspace Activity Viewer 182
8.4.2.1 Objective of Evaluation Process and Steps Taken 182
8.4.2.2 Lessons Learned with Respect to the Tool 184
8.4.2.3 Lessons Learned with Respect to Evaluation Methods 184
8.4.3 Lighthouse 184
8.4.3.1 Objective of Evaluation Process and Steps Taken 185
8.4.3.2 Lessons Learned with Respect to the Tool 186
8.4.3.3 Lessons Learned with Respect to the Evaluation of Tool 187
8.4.4 Palantír 187
8.4.4.1 Objective of Evaluation Process and Steps Taken 187
8.4.4.2 Lessons Learned with Respect to the Tool 189
8.4.4.3 Lessons Learned with Respect to the Evaluation of Tool 189
8.4.5 YANCEES 190
8.4.5.1 Objective of Evaluation Process and Steps Taken 190
8.4.5.2 Lessons Learned with Respect to the Tool 191
8.4.5.3 Lessons Learned with Respect to the Evaluation 193
8.5 Discussion 193
8.6 Conclusions 195
Appendix 196
References 197
9 The Configuration Management Role in Collaborative Software Engineering 201
9.1 Introduction 201
9.2 Configuration Management 202
9.3 Configuration Management as an Enabling Technology for Collaboration 205
9.3.1 Communication 205
9.3.2 Awareness 206
9.3.3 Coordination 207
9.3.4 Shared Memory 208
9.3.5 Shared Space 208
9.4 The Future Role of Configuration Management 209
9.4.1 On-Going Researches 209
9.4.2 Future Trends 210
9.5 Conclusion 212
References 215
10 The GRIFFIN Collaborative Virtual Community for Architectural Knowledge Management 217
10.1 Introduction 217
10.1.1 From a Codification/Personalization to a Hybrid Knowledge Management Strategy 219
10.1.2 From Closed to Open Virtual AK Communities 220
10.2 Requirements for Collaboration in a Distributed Environment of Software Architects 221
10.3 A Collaborative Virtual Community for AK Management 222
10.3.1 Support for Collaborative AK Management 223
10.3.1.1 Virtual Spaces for AK Sharing 223
10.3.1.2 Virtual Spaces for AK Discovery 226
10.3.1.3 Virtual Spaces for AK Traceability 229
10.3.1.4 Virtual Spaces for AK Compliance 232
10.3.2 Towards a Virtual AK Sharing Community 236
10.4 Future Trends and Research Challenges 237
10.5 Conclusions 237
References 238
11 Supporting Expertise Communication in Developer-Centered Collaborative Software Development Environments 240
11.1 Introduction 240
11.2 Historical Context: Three Schools of Research Toward Developer-Centered CSDEs 241
11.3 Coordination Communication and Expertise Communication in Software Development 246
11.4 Nine Design Guidelines for Supporting Expertise Communication 247
11.5 Concluding Remarks 254
References 255
Part III What We Know (and Do not Know) About Collaborative Software Engineering 258
References 260
12 Distributed and Collaborative Software Analysis 261
12.1 Introduction 261
12.1.1 Tools and IDEs 262
12.1.2 A Scenario for Collaborative Software Analysis Across Organizational and Tool Boundaries 263
12.2 State-of-the-Art in Software Analyses 263
12.3 The Software Service Platform 266
12.3.1 The Software Analysis Broker Infrastructure 266
12.3.1.1 Software Analysis Services 267
12.3.1.2 Software Analyses Catalog software analyses catalog and Taxonomy 267
12.3.1.3 Ontologies: The Need for Semantic Descriptions in Software Analysis 270
12.3.1.4 Software Analysis Broker Web Service 272
12.4 Software Analysis Services at Work 274
12.4.1 CVS History Extractor Service 274
12.4.2 Bugzilla Extractor Service 275
12.4.3 Famix Model Extractor Service 277
12.4.4 An Interoperability Scenario 277
12.5 Conclusions 281
References 282
13 Dynamic Analysis of Communication and Collaboration in OSS Projects 284
13.1 Introduction 284
13.2 State-of-the-Art in Socio-technical Network Analysis 286
13.3 Modeling Communication and Collaboration in OSS Projects 288
13.3.1 Communication in OSS Projects 288
13.3.1.1 Deriving Communication Paths from Mail Traffic 288
13.3.1.2 Deriving Communication Paths from Bug Reports 289
13.3.2 Collaboration in OSS Projects 290
13.3.3 Integrating Communication and Collaboration Data 291
13.4 STNA-Cockpit 293
13.4.1 Actors 294
13.4.2 Work Packages 294
13.4.3 Communication and Collaboration 295
13.5 Communication and Collaboration in the Eclipse Project 295
13.5.1 The Eclipse Platform Core Project 296
13.5.2 Ownership and Alien Commits 297
13.5.3 Communicators 297
13.5.4 Project Dynamics 299
13.5.5 Summary 301
13.6 Conclusions and Future Work 301
References 302
14 A Comparison of Commonly Used Processes for Multi-Site Software Development 304
14.1 Motivation 304
14.2 Comparison of Different Business Processes for Global Software Development 307
14.3 Example Processes 308
14.3.1 Extended Workbench Model 311
14.3.2 System of Systems Model 313
14.4 Example Project Global Studio Project 315
14.5 Lessons Learned 317
14.6 Conclusions 319
14.7 Future Extensions to the System of Systems Global Software Development Process 320
References 320
Part IV Emerging Issues in Collaborative Software Engineering 322
References 324
15 Collaboration Practices and Affordances in Free/Open Source Software Development 325
15.1 Introduction 325
15.1.1 What Is Free/Open Source Software Development? 326
15.1.2 What Are Affordances Supporting Collaborative Software Development? 326
15.1.3 Results from Recent Studies of FOSSD 327
15.2 Individual Participation in FOSSD Projects 328
15.3 Resources and Capabilities Supporting FOSSD 329
15.3.1 Personal Software Development Tools and Networking Support 329
15.3.2 Beliefs Supporting FOSS Development 330
15.3.3 FOSSD Informalisms 330
15.3.4 Skilled, Self-organizing, and Self-managed Software Developers 333
15.3.5 Discretionary Time and Effort of Developers 334
15.3.6 Trust and Social Accountability Mechanisms 334
15.4 Co-operation, Co-ordination, and Control in FOSS Projects 334
15.5 Alliance Formation, Inter-project Social Networking and Community Development 336
15.6 FOSS as a Multi-project Software Ecosystem 338
15.7 Discussion 340
15.8 Conclusions 341
References 342
16 OUTSHORE Maturity Model: Assistance for Software Offshore Outsourcing Decisions 346
16.1 Introduction 346
16.2 Related Works 347
16.3 The OUTSHORE Maturity Model (OMM) 349
16.3.1 The Calculation of OUTSHORE Maturity calculation of outshore maturity 350
16.3.2 The OMM Phase Model 353
16.3.3 The Levels of the OUTSHORE Maturity Model levels of the outshore maturity model 355
16.4 Summary and Outlook 356
References 357
17 Collaborative Software Architecting Through Knowledge Sharing 359
17.1 Introduction 359
17.2 Theoretical Background 361
17.2.1 Collaboration in Software Architecting 361
17.2.2 Knowledge Management for Collaborative Architecting 362
17.3 A Process for Collaborative Software Architecting 362
17.4 The Knowledge Architect Tool Suite 365
17.4.1 Knowledge Repository 368
17.4.2 Document Knowledge Client 368
17.4.3 Excel Plug-In 369
17.4.4 Python Plug-In 369
17.4.5 Knowledge Explorer 369
17.4.6 Knowledge Translator 370
17.5 Collaboration Within the Process with KA 371
17.5.1 Requirements Engineering 371
17.5.1.1 Horizontal Collaboration 371
17.5.1.2 Vertical Collaboration 372
17.5.2 Scope Problem Space 373
17.5.2.1 Horizontal Collaboration 373
17.5.3 Propose Solutions 374
17.5.3.1 Horizontal Collaboration 374
17.5.3.2 Vertical Collaboration 374
17.5.4 Evaluate Solutions and Choose One 375
17.5.4.1 Horizontal Collaboration 375
17.5.4.2 Vertical Collaboration 376
17.5.5 Evaluate Architecture and Modify the Architecture Description 376
17.5.5.1 Horizontal Collaboration 376
17.5.5.2 Vertical Collaboration 377
17.5.6 Feedback Loop 377
17.5.7 Architectural Knowledge Translation 378
17.6 Related Work 378
17.7 Conclusions and Future Work 380
References 381
18 Collaborative Product Line Requirements Engineering Using Rationale 384
18.1 Introduction 384
18.2 The Communication Problems 385
18.3 Background 388
18.4 Related Work 392
18.5 Issue-Based Variability Modeling 393
18.5.1 Collaboration for Product Instantiation 394
18.5.2 Collaboration for Variability Identification collaboration for and Product Line Evolution 396
18.6 Empirical Evaluation 397
18.7 Conclusion 401
References 401
19 Collaborative Software Engineering: Challenges and Prospects 403
19.1 Introduction 403
19.1.1 What We Know About Collaborative Software Engineering 403
19.1.2 Objectives of This Chapter 405
19.2 Summary of the Book 405
19.3 Todays Challenges 411
19.4 Prospects 413
References 415
Editor Biographies 418
Index 420

Erscheint lt. Verlag 10.3.2010
Zusatzinfo XXIV, 409 p.
Verlagsort Berlin
Sprache englisch
Themenwelt Mathematik / Informatik Informatik Software Entwicklung
Wirtschaft Betriebswirtschaft / Management Wirtschaftsinformatik
Schlagworte Agile software development • Configuration Management • Distributed Software Development • global software development • knowledge management • Offshoring • Ontology • Outsourcing • Requirements Engineering • software architecture • Software engineering • Software Project Management
ISBN-10 3-642-10294-8 / 3642102948
ISBN-13 978-3-642-10294-3 / 9783642102943
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 7,5 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schrä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.

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.

Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Jürgen Sieben

eBook Download (2023)
Rheinwerk Computing (Verlag)
89,90
Eine kompakte Einführung

von Brendan Burns; Joe Beda; Kelsey Hightower; Lachlan Evenson

eBook Download (2023)
dpunkt (Verlag)
39,90
Grundlagen, Menschen, Prozesse, Techniken

von Jochen Ludewig; Horst Lichter

eBook Download (2023)
dpunkt (Verlag)
49,90