검색 상세

INSURE: An Integrated Framework for Building Sustainable Software Systems

초록/요약

The advancements of technology in software systems affect society and the environment. Due to the critical role of a software-intensive system in society, software engineers have a responsibility to add sustainability as a goal while designing a software system. However, sustainability is usually treated as an afterthought in the current practices. The existing works are too vague and mostly aligned to a specific dimension. There is a lack of practical guide which provides a tangible decomposition of the sustainability aspect. Moreover, there are limited quantifiable methods to support sustainable design and analysis. The purpose of this study is to help software practitioners in addressing sustainability concerns by providing a systematic guideline for the software engineering process. We propose a framework that presents a reference model to decompose sustainability requirements and assessment method to evaluate sustainability achievements This study proposes an integrated framework that allows the software practitioners to accommodate sustainability requirements that are aligned with the other software quality attributes to enhance sustainable development. Using the combination of goal-scenario based approach and feature modeling, the sustainability requirements are designed along with its functional compositions. For sustainability assessment purpose, software analysis and machine learning techniques are utilized to analyze the software products based on sustainability metrics and criteria. The conducted theoretical evaluation and empirical study with participants from academia and industry showed that the proposed framework improves participant ability to consider the sustainability aspect in their software engineering task focusing on requirements, design, and evaluation. With the provided sustainability meta-model, the participants were able to extract more stakeholders, requirements, and features in a shorter time. Moreover, the participants were also able to identify the software artifacts which need to be changed to improve the sustainability achievement. The proposed integrated framework contributes in narrowing the research gap in software sustainability by (1) presenting a reference model that decomposes sustainability requirements, (2) enabling analysis, support, and assessment of sustainability risk analysis, (3) guiding the designer to construct feature model as system functional decomposition, and (4) determining the sustainability achievement of software products.

more

목차

Chapter I. Introduction 1
A. Background and Motivation 1
B. Problem Statements 3
C. Contribution 4
D. Thesis Organization 5
Chapter II. Related Work 6
A. Systematic Literature Review Method 6
1. Research Process 6
2. Study Selection 7
B. Sustainability in Software Engineering 7
1. Sustainability Definition 8
2. Eliciting Sustainability Requirements 11
3. Evaluating Software Sustainability 12
4. Research Gap Analysis 13
C. Goal-based Modeling 15
D. Feature Modeling 16
E. Machine Learning in Software Engineering 16
Chapter III. Proposed Methodology 19
A. Requirements Development Phase 20
1. Requirements Elicitation 20
2. Sustainability Analysis 23
3. Requirements Validation 26
B. Software Design Phase 28
1. Feature Extraction 28
2. Feature Composition 29
C. Test Construction Phase 29
1. Sustainability Baseline Definition 29
2. Test Case Generation 37
D. Software Evaluation Phase 38
1. Software Code Profiling 38
2. Software Analysis 39
3. Sustainability Analysis 41
Chapter IV. Validation Method 43
A. Theoretical Evaluation 43
1. Case Study Design Methodology 43
2. Data Collection Procedure 46
B. Empirical Study 47
1. Study Question and Hypothesis 47
2. Feasibility Study 49
3. Replicated Study 52
Chapter V. Case Study Description 56
A. Senior Citizen Smart Home System 57
B. Healthcare Management System 57
Chapter VI. Implementation 60
A. Requirements Development Phase 60
B. Software Design Phase 68
C. Test Construction Phase 72
D. Software Evaluation Phase 74
Chapter VII. Theoretical Evaluation Result 80
A. Evidence Collection 80
B. Summary 86
1. How can the proposed approach address sustainability design in software development? (SQ1) 86
2. How can the proposed approach assess the sustainability achievement in software development process? (SQ2) 87
Chapter VIII. Empirical Study Result 89
A. Feasibility Study 89
B. Replicated Study 96
C. Summary 103
1. Is the proposed approach more effective at gathering sustainability requirements and metrics? (SQ3) 103
2. Is the proposed more efficient at addressing sustainability in software engineering process (SQ4) 104
3. Is the proposed approach viewed to be practical for addressing sustainability (SQ5)? 104
Chapter IX. Discussion 106
A. How can we address sustainability design in software development? 106
B. How do we assess the sustainability achievement in a software system? 108
Chapter X. Threats of Validity 110
A. Construct Validity 110
B. Internal Validity 110
C. External Validity 111
D. Conclusion Validity 112
Chapter XI. Conclusion 113
REFERENCES 115
LIST OF ACRONYMS 123
APPENDIX I. Questions for Experiment Session 124
APPENDIX II. Stakeholder List and Weight 127
APPENDIX III. Sustainability Priority 129
APPENDIX IV. Requirements List 131
APPENDIX V. Feature List 134

more