内容简介
本书在对现有组件识别方行经验研究的基础上, 提出一套组件识别方法的评价机制, 在此基础上, 针对面向对象软件系统的特点, 提出三种不同类型的权重规划方法, 把它们应用于传统的层次合并聚类算法, 开发出一系列软件聚类策略。
目录
1 IntrOduct|on ;
11 Problems with legacy systems
12 Legacy system evolution
121 Replacing the 1egacy system
122 Wrapping the legacy system
i23 Reengineering the legacy system
13 Scope of our researcht
1 4 Treatise organization
2 Background
21 Definitions of software component
22 Software clustering techniques
23 An overview of agglomerative hierarchical clustering algorithras
24 ;Representation of software system ;
3 Review of component identification approaches ;
31 Key features of component identification technology
311 Similarity measurement
312 Clustering approach
313 Stopping criterion ;
32 Three typical component identification approaches
321 Lung’s approach
322 Lee’S approach ;
323 The Bunch approach
4 Experimental settings
41 CIETool:The tool for component identification and evaluati
42 evaluation criteria
421 Size
422 Coupling
423 Cohesion
43 Subject systems
5 Experimental results ;
51 Overall experimenta1results
52 Overall evaluation resuhs
521 Coupling and cohesion
522 Component size and interface size
5 3 Detailed evaluation results
531 Lung’s approach
532 Lee’s approach ;
533 The Bunch approach
54 Threats to validity
6 Diseussions ;
61 Coupling
62 Cohesion
63 Single class components
64 No interface operation components
7 Related work
71 Experimental studies on legacy system reengineering“
72 framework for system classification techniques”
73 Componentization technology
8 Conclusions
Rererences
;
摘要与插图
; ; pan style="font-family:宋体">.1 Problems with legacy systems
;;A legacy system is defined as the software which is vital to anorganization·but the users do not know what to do with it[7].Legacysystems are generally aging,brittle but necessary systems.Evolving legacysystems remains one of the greatest challenges in the software industry today.
;;Legacy systems continue to be used because of the prohibitive cost ofreplacing or redesigning them despite their poor competitiveness andcompatibility with modern equivalents[83.Legacy systems were developed asseparate systems and programs to support different business functions.However,they have grown with time(through maintenance)into a set ofinteracting systems with complex dependencies.To the users,they appear tobe one composite system[93.
;;Software ageecause changes made to it destroy its architecture,whichin turn implies decreased ility in the legacy system.Even though,they arenecessary systems.Major changes to s legacy system may require hugeinvestments in new technology,with the significant risk that the new systemsmay fail to deliver the required services.Therefore,organizations maintainfunctionality,correct defects,and upgrade systems to keep up with changingbusiness conditions[10].Commonly,organizations will find themselves tiedup with legacy systems that are expensive and hard to maintain because of thereasonelow[11]:
;;·Lack of documentation.Where available.the documentation is likelynot to be updated.
;;In most cases。the original developers are not available and the currentmaintenance staff may not have a comprehensive understanding of the legacysystems.
;;·Sometimes the maintenance staff are forced to make changes to thesystem without following a disciplined process.This leads to some source codediverging from the current running object code rendering it disconnected fromreality.
;;The existence of undocumented dependencies among programs andsystems further complicates the maintenance process.
;;Lack of tool support in the maintenance of legacy systems is one of themajor obstacles as manually maintaining them takes a lot of effort and time.
;;All these reasons suggest that it takes a lot of efforts to understand thelegacy system to any significant level of detail that will allow developers tomake correct amends to it in meaningful amounts of time.In most cases,theresults are not worthy of the efforts.As Schneidewind and Ehert claimed,thecost of maintaining a legacy system could eventually exceed the COSt ofinstalling a new system[10].However,the risk associated with maintaining alegacy system is generally less than that associated with installing a newsystem.A much better understanding of the legacy system problem haeenacquired over the past few years,and much of this is likely to applicable to thenext set of legacy problems.As stated in[12],legacy software is not so mucha technical problem as an organizational and management problem:solutionsneed to be ressed at a higher level of abstraction than the software.
;