基本信息·出版社:清华大学出版社 ·页码:213 页 ·出版日期:2008年08月 ·ISBN:7302175373/9787302175377 ·条形码:9787302175377 ·版本:第1版 · ...
商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
 |
软件演化过程建模 |
 |
|
 |
软件演化过程建模 |
 |

基本信息·出版社:清华大学出版社
·页码:213 页
·出版日期:2008年08月
·ISBN:7302175373/9787302175377
·条形码:9787302175377
·版本:第1版
·装帧:精装
·开本:32
·正文语种:英语
·外文书名:An Approach to Modelling Software Evolution Processes
内容简介 软件演化是近年来软件工程领域正逐步受到重视的研究方向,并将得到越来越多的关注。《An Approach to Modelling Software Evolution Proces》从软件演化管理的角度,较为系统地讨论了软件演化过程的相关问题,包括软件演化过程元模型、软件演化过程描述语言、软件演化过程框架、软件演化过程建模方法、软件演化过程改进等。《An Approach to Modelling Software Evolution Proces》还给出了一个软件演化过程的支撑工具,并提供了多个案例研究。
《An Approach to Modelling Software Evolution Proces》可以作为计算机专业研究生和高年级本科生的教材和教学参考书,也可供从事软件工程的科技人员使用和参考。
编辑推荐 An Approach to Modelling Software Evolution Processes describes formal software processes that effectively support software evolution.The importance and popularity ofsoftware evolution increase as more and more successful software systems become legacy systems.For one thing,software evolution has become an important characteristic in the software lire cycle; for another,software processes play an important role in increasing efficiency and quality of software evolution.Therefore,the software evolution process, the inter-discipline of software process and software evolution,becomes a key area in software engineering.
The book iS intended for software engineers and researchers in computer science.
Prof.Tong Li earned his Ph.D.in Software Engineering at De Montfort University,U.K.;he has published five monographs and over one hundred papers
目录 Preface ix
List of Figures and Tablesxiii
1 Introduction 1
1.1 Motivation 1
1.2 Contributions3
1.3 Research Methods4
1.4 Success Criteria5
1.5 Validation Methods5
1.6 Outline6
References7
2 Overview of Software Processes and Software Evolution8
2.1 Introduction9
2.2 Software Processes9
2.2.1 Concepts of Software Process9
2.2.2 Software Process Modelling and Descriptions11
2.2.3 Software Process Modelling and Description Languages13
2.2.4 Software Process Improvement and CMM16
2.2.5 Software Process Reuse19
2.2.6 Process-Centred Software Engineering Environments20
2.3 Software Evolution21
2.3.1 Concepts of Software Evolution21
2.3.2 Software Reengineering22
2.3.3 Software Evolution25
2.4 Summary27
References27
3 Related Work34
3.1 Introduction35
3.2 Software Evolution Process35
3.3 Concurrency in the Software Life Cycle38
3.4 Petri Nets39
3.5 Dependence Analysis43
3.6 Formal Functional Decomposition44
3.7 Summary46
References46
4 Software Evolution Process Meta-Model EPMM50
4.1 Introduction51
4.2 Properties of Software Evolution Processes52
4.3 Iteration in Software Evolution Processes52
4.4 Concurrency in Software Evolution Processes54
4.4.1 Version Concurrency54
4.4.2 Process Concurrency55
4.4.3 Sub-Process Concurrency55
4.4.4 Phase Concurrency56
4.4.5 Activity Concurrency56
4.4.6 Task Concurrency57
4.5 Static Component Definitions of EPMM57
4.5.1 Task58
4.5.2 Activity59
4.5.3 Software Process60
4.5.4 Example: Prototype Evolution Process Model61
4.5.5 Global Model63
4.6 Dynamic Component Definitions of EPMM64
4.7 Supports for Software Evolution Processes66
4.8 Summary67
References68
5 Software Evolution Process Description Language EPDL70
5.1 Introduction71
5.2 Survey of EPDL71
5.2.1 Design Goals71
5.2.2 Characteristics72
5.2.3 Program Structure73
5.3 Task74
5.4 Activity76
5.5 Software Process77
5.6 Global Model80
5.7 EPDL Program80
5.8 Example81
5.9 Summary82
References83
6 Framework of Software Evolution Processes85
6.1 Introduction86
6.2 Framework of Software Evolution Processes86
6.3 Steps for Modelling Software Evolution Processes88
6.4 Designing Global Models91
6.5 Evolution Process Descriptions92
6.6 Summary93
References93
7 Designing Processes and Activities95
7.1 Introduction96
7.2 Designing Processes96
7.2.1 Basic Blocks96
7.2.2 Software Process Package98
7.2.3 Procedure for Modelling Processes99
7.3 Designing Activities100
7.4 Reuse of Software Evolution Processes101
7.4.1 Reuse by Inheritance101
7.4.2 Reuse of Basic Blocks102
7.4.3 Reuse of Process Packages106
7.5 Summary107
References107
8 Designing Tasks109
8.1 Introduction110
8.2 Procedure of Designing Tasks111
8.3 Structures of Functional Decomposition111
8.4 Decomposition Rules113
8.4.1 Sequence Decomposition114
8.4.2 Selection Decomposition115
8.4.3 Repetition Decomposition116
8.5 Structure of the Knowledge Base117
8.5.1 The Case Base118
8.5.2 The Segment Base119
8.5.3 The Rule Base119
8.6 Decomposition119
8.6.1 The Decomposition Tree119
8.6.2 Match Between Two 2-Assertions120
8.6.3 The Decomposition Process121
8.6.4 Supports by Modellers122
8.7 Summary123
References124
9 Efficiency Improvement of the Software Evolution Processes125
9.1 Introduction126
9.2 Procedure of Efficiency Improvement127
9.3 Dependence Analysis Between Entities130
9.3.1 Constructing a Dependence Graph130
9.3.2 Localising Dependences131
9.4 Reconstructing Process Segments132
9.4.1 Preprocessing an ADG133
9.4.2 Transformation Rules136
9.4.3 Transformation Algorithm137
9.4.4 Examples138
9.5 Capturing Concurrency within an Activity140
9.6 Analysing Dependences Between Partition Blocks142
9.7 Extending Concurrency144
9.8 Reconstructing Software Processes146
9.9 Summary149
References149
10 Support Environment EPT151
10.1 Introduction152
10.2 Architecture of EPT153
10.3 File Depository154
10.3.1 Data Structures of EPDL Object Codes154
10.3.2 Other Data Structures156
10.4 Process Server158
10.4.1 Modelling Manager158
10.4.2 EPDL Compiler161
10.4.3 Runtime Manager161
10.5 User Interface and Message Server163
10.6 Summary165
References165
11 Case Studies166
11.1 Introduction167
11.2 First Case Study: The Waterfall Model168
11.3 Second Case Study: Three Software Processes Involved in Evolution170
11.4 Third Case Study: An Evolution Process of an Information Security System174
11.4.1 Background174
11.4.2 The Process of Modelling175
11.4.3 EPDL Program175
11.4.4 White Box Approach176
11.4.5 Black Box Approach179
11.4.6 Efficiency Improvement180
11.5 Fourth Case Study: The Maintenance Process of ISO/IEC 12207183
11.5.1 Background183
11.5.2 EPDL Program185
11.5.3 Activity: Process Implementation186
11.5.4 Activity: Problem and Modification Analysis187
11.5.5 Activity: Modification Implementation189
11.5.6 Activity: Maintenance Review/Acceptance190
11.5.7 Activity: Migration190
11.5.8 Activity: Software Retirement192
11.6 Summary194
References195
12 Conclusions196
12.1 Success Criteria Revisited196
12.2 Evaluations198
12.2.1 Comparison with Osterweil's Approach198
12.2.2 Comparison with Lehman's Approach200
12.2.3 Evaluations202
12.3 Summary202
12.4 Future Work204
12.4.1 Limitations204
12.4.2 Directions for Future Work205
References205
Index207
……
序言 The importance and popularity of software evolution increase as more and more successful software systems become legacy systems. For one thing, software evolution has become an important characteristic in the software life cycle; for another, software process plays an important role in increasing efficiency and quality of software evolution. Therefore, the software evolution process, the inter-discipline of software process and software evolution, becomes a key area in software engineering. A well-managed software evolution process can effectively support a successful software evolution; however, a poor software evolution process will lead to the failure of the corresponding software evolution.
What Is the Uniqueness of This Book?
This book aims to model and describe formal software processes that effectively support software evolution. For this purpose, progress has been made in the following aspects:
Firstly, five important properties of software evolution processes are analysed. It is indicated that iteration, concurrency, interleaving of continuous and discontinuous change, feedback-driven systems and multi-level frameworks play important roles in software evolution processes.
Secondly, a Petri Net is extended with object-oriented technology and Hoare Logic. Based on the extended Petri Net and according to the preceding properties, a formal evolution process meta-model EPMM is designed. EPMM can define software evolution process models with a four-level framework and can embody some important properties, such as iteration, concurrency, interleaving of continuous and discontinuous change and feedback-driven systems.
Thirdly, based on EPMM, an object-oriented evolution process description language EPDL is designed. It is more detailed and easier to implement in computers than EPMM.
Fourthly, based on EPMM, the framework of software evolution processes is discussed. According to the framework, a semi-formal approach to modelling and describing software evolution processes is proposed. The approach is used to design software evolution processes at the global level (designing global models), at the process level (designing software processes), at the activity level (designing activities) and at the task level (designing tasks), each corresponding to the levels in the framework. At the process level, the approach supports top-down white box modelling and top-down black box modelling, which are proved to preserve the interface consistency over refinement hierarchies. The approach also supports process reuse by means of three different reuse methods. At the task level, by repeatedly decomposing the function of a task into one of three basic control structures, the function can be decomposed into a code segment consisting of finer functions, which can be easily realised. If the executions of all the decomposed finer functions terminate, the decomposition is proved to be totally correct. Using EPDL, software evolution processes can be described in detail.
Fifthly, according to the dependence analysis between activities and between tasks, an approach is proposed to capture and extend concurrency in an inefficient process segment dug down from an evolution process model. After its efficiency is improved, the process segment is put back into the original model to improve the efficiency of the corresponding evolution process.
Sixthly, a CASE environment EPT that supports the proposed approach is designed and a prototype system of EPT is also implemented.
Finally, four case studies of various complexities and scales indicate that the proposed approach is feasible and effective.
In summary, a semi-formal approach is proposed to construct formal software evolution process models and the corresponding descriptions to effectively support software evolution.
文摘 插图: