You are on page 1of 4

Wilhelm Hasselbring / Simon Giesecke (Hrsg.

Research Methods in Software Engineering


Contents

1 Preface 7

2 The Role of Experimentation in Software Engineering 11


2.1 Introduction 11
2.2 Research and Experimentation in SE 13
2.2.1 Empirical Knowledge versus Theoretical Knowl-
edge 13
2.2.2 Research Paradigms and Methods 14
2.2.3 Data Collection Methods 17
2.2.4 Research in Other Fields 19
2.2.5 The Difference of SE 20
2.3 Current State of Experimentation in SE 21
2.3.1 Study by Tichy et. al. (1994) 21
2.3.2 Study by Zelkowitz et. al. (1997) 22
2.3.3 Further Analyses 23
2.4 Common Fallacies on Experiments 26
2.5 Future Direction of Experimentation in SE 28
2.5.1 General Recommendations 28
2.5.2 Repeatability and Families of Studies 30
2.6 Critical Reflection 31
2.7 Conclusions 33

3 Example of Empirical Research: n-Version Programming 39


3.1 Introduction 39
3.2 N-version programming 41
3.2.1 Functional redundancy in hardware 43
3.2.2 Software reliability 44
3.2.3 Development process 45
3.2.4 Effectivity of NVP 47
3.3 Selected empirical studies 49

3
3.3.1 Early studies (77-78,80-83) 50
3.3.2 The Knight Leveson Experiment (86) 51
3.3.3 The 'Six Language' Experiment (86-88) 52
3.3.4 The 'Second Generation' Study (85-88,91) . . . . 53
3.4 Analysis and discussion 55
3.5 Conclusions 58

Integration of Qualitative and Quantitative Methods 63


4.1 Introduction 63
4.2 Categories of Research Objects in Software Engineering 64
4.3 Qualitative and quantitative research approaches . . . . 66
4.3.1 The research process 66
4.3.2 Data Scale Levels in Quantitative Research . . . 67
4.3.3 Comparison of quantitative and qualitative ap-
proaches 68
4.3.4 Research Approaches 70
4.4 Research Methods 72
4.4.1 Data Collection Methods 72
4.4.2 Data Analysis Methods 76
4.5 Combining Qualitative and Quantitative Approaches . . 78
4.6 Exemplary Study Designs 79
4.6.1 Examplel: Analysis of Architectural Design De-
cisions 80
4.6.2 Example 2: Action Research in a Development
Process 82
4.7 Conclusion 83

Patterns in Building Architecture and Software Engineering 89


5.1 Introduction 89
5.2 Designing a Building in Civil Architecture 91
5.3 Architectural patterns and pattern languages 94
5.4 Software patterns and pattern languages 100
5.4.1 Software patterns forms 102
5.4.2 Software pattern languages 105
5.5 Similarities and differences 107
5.6 Conclusion 111
Contents

6 Legal Methodology and Research 121


6.1 Introduction 121
6.2 The Technique of Subsumtion 122
6.3 The Construction of Law - Hermeneutics 123
6.3.1 Literal Construction 125
6.3.2 Systematic Construction 126
6.3.3 Teleological Construction 128
6.3.4 Historical Construction 128
6.3.5 Additional Construction 129
6.3.6 Example: Pistol for Blanks as Weapon 130
6.3.7 The Construction of Treaties 132
6.4 Standard Juristic Argumentations 132
6.4.1 Analogy and Reverse Argumentation 132
6.4.2 Teleological Reduction 134
6.4.3 Argumentum A Fortiori 134
6.5 Research Aims in Law 134
6.5.1 The Descriptive Approach 135
6.5.2 The New Approach on the Basis of Existing Law 135
6.5.3 Developing New Laws 136
6.6 Conclusion 136

You might also like