title page
Abstract
Contents
Abbreviations 11
I. Introduction 12
1.1. Motivation 12
1.2. Contribution 13
1.3. Outline 13
II. Related Works 14
2.1. Frameworks For Software Architecture Reconstruction 14
2.1.1. Symphony: View-Driven Software Architecture Reconstruction 14
2.1.2. QADSAR: Quality Attribute Driven Software Architecture Reconstruction 16
2.2. Case Studies Of Software Architecture Reconstruction 18
2.2.1. Linux kernel 18
2.2.2. Apache 1.3 19
2.3. Tools for Software Architecture Reconstruction 20
2.3.1. Industrial Tools for Static Analysis 20
2.3.2. Research Tools for Static Analysis 21
2.3.3. Industrial Tools for Dynamic Analysis 22
2.3.4. Research Tools for Dynamic Analysis 23
III. Process of Software Architecture Reconstruction for Modifying Open Source 24
3.1. Reconstruction Preparation 26
3.1.1. Problem Definition 26
3.1.2. Concept Determination 27
3.2. Reconstruction Execution 28
3.2.1. Static View Reconstruction 28
3.2.2. Dynamic View Reconstruction 29
IV. Tools Supporting Software Architecture Reconstruction 31
4.1. Finding Automatable Steps in the process defined in Section 3 31
4.1.1. Reconstruction Preparation 32
4.1.2. Reconstruction Execution 33
4.2. Current Tool Capability for Supporting the Automatable Steps 36
4.2.1. Tools for Static Analysis 36
4.2.2. Tools for Dynamic Analysis 40
4.3. Analysis of Current Tool Capability 43
4.3.1. Static View Reconstruction 43
4.3.2. Dynamic View Reconstruction 44
V. SAROS: A Framework of Software Architecture Reconstruction for Modifying Open Source 46
5.1. Steps of The SAROS Framework 46
5.2. Toolset of the SAROS Framework 48
VI. Case Study: Reflexion Model Program 50
6.1. Purpose Description 50
6.2. Scope Identification 52
6.3. Conceptual Architecture Identification 52
6.4. Understanding the Configuration 54
6.5. Source Model Extraction 55
6.6. Source Model Abstraction 57
6.7. Implementation Analysis 59
6.8. Execution Model Extraction 61
6.9. Execution Model Abstraction 62
6.10. Execution Analysis 64
VII. Conclusion 66
국문 요약 68
References 69
Curriculum Vitae 73
TABLE 1. Techniques for each step of Symphony 15
TABLE 2. Tools used in QADSAR 17
TABLE 3. The steps of Linux Case Study 19
TABLE 4. The Apache Case Study 20
TABLE 5. Finding Automatable Steps in Problem Definition 32
TABLE 6. Finding Automatable Steps in Concept Determination 33
TABLE 7. Finding Automatable Steps in Static View Reconstruction 34
TABLE 8. Finding Automatable Steps in Dynamic View Reconstruction 35
TABLE 9. Tools Mapped to the Static Architecture Reconstruction Steps 37
TABLE 10. Tools Napped to the Static Architecture Reconstruction Steps 41
TABLE 11. Analysis of Current Tool Capability in Static View Reconstruction 43
TABLE 12. Analysis of Current Tool Capability in Dynamic View Reconstruction 45
TABLE 13. Static Analysis Toolset 48
TABLE 14. Dynamic Analysis Toolset 49
TABLE 15. All Files f Reflexion Model Program 55
TABLE 16. The mapping rules between source code and an abstraction model 57
TABLE 17. The mapping rules between High Level Model and Conceptual Architecture 58
TABLE 18. The parts related to modification requirements 60
TABLE 19. Trace Data of Reflexion Model 61
TABLE 20. mapping rules between source code and High Level Model 63
TABLE 21. The execution summary of "compute Reflexion Model" 64
TABLE 22. Classes related to "compute Reflexion Model" 65
FIGURE 1. Process of Software Architecture Reconstruction for Modifying Open Source 25
FIGURE 2. Steps of the SAROS Framework 47
FIGURE 3. Conceptual Architecture of Reflexion Model 53
FIGURE 4. The result of analyzing concrete relationships 58
FIGURE 5. Conceptual Architecture of Reflexion Model 59
FIGURE 6. Message Sequence Chart of Reflexion Model 62
FIGURE 7. Abstract Message Sequence Chart of Reflexion Model 63