用户名: 密码: 验证码:
大规模分布式软件系统的伴随式监控技术研究
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
随着软件规模和复杂度不断增加,软件故障和软件失效问题日益严峻,给人们生活、社会和经济运转等带来极大的影响。如何保证大规模分布式软件系统的可信运行已经成为现实挑战。大规模分布式软件系统具有规模庞大、部署分散、部件异质、环境开放、持续演化等特点,其可信问题很难通过测试、形式化验证等手段在开发阶段解决。要保证大型分布式软件系统持续、可靠运转,需要运行时对其进行必要的“把握”和“调整”,其中的重要实现技术之一就是软件监控。
     软件监控技术经历了数十年的发展,研究者已经从软件调试、软件维护、软件调优、软件质量评估、软件实时容错等角度开展了研究。但在支持大规模分布式软件系统的可信运行方面,此类系统特点仍然为现有工作带来较大的挑战,突出表现在:(1)缺乏大规模分布式软件系统监控体系架构的研究,特别是针对此类系统中监控架构的适应性、灵活性、非侵入性等的研究;(2)缺乏对大规模分布式软件系统监控使能机制和方法的研究,特别是监控需求的完备性和系统性、监控设计的效率等方面的研究;(3)缺乏对分布式系统监控机制的普适开发方法的研究。
     本文从软件工程层面入手,针对上述挑战,从监控体系、监控使能机制、监控开发方法三个角度展开初步探索。本文工作的主要创新点包括:
     (1)提出了面向大规模分布式软件系统的伴随式监控架构和方法体系。
     “伴随式”是指监控机制的开发和运行基本独立于被监控系统。本文提出了伴随式软件监控架构和方法体系,通过应用面向方面编程(Aspect-OrientedProgramming,AOP)技术和相关设计模式支持大规模分布式系统开发时的伴随,通过监控使能的分布式软件运行框架实现运行时的伴随,通过监控系统的动态部署方法实现演化维度上的伴随,从而实现在开发阶段可以支持多种软件开发模式,运行阶段减少对被监控系统行为影响以及支持监控机制的独立在线演化的目标。
     (2)提出了设计约束驱动的软件监控使能机制和方法。
     本文剖析了软件设计过程中的计算表达失真、物理-数字映射失真和人的因素三类主要失真问题,从计算系统本源角度分析了软件系统监控的基本对象和要素,进而提出基于设计约束的不变式监控使能机制和操作规程强制执行机制。两种机制以伴随式思想为引擎,实现了对计算表达中存在的设计约束、操作人员应当遵守的使用规程的运行时监督,相对应的方法和工具拓宽了监控需求源,提高了监控使能的自动化程度和设计效率。
     (3)提出了基于元信息的软件系统监控能力注入方法。
     业务逻辑和监控逻辑混杂在一起,会导致大规模分布式软件系统复杂性的增加。基于元信息的软件监控能力注入方法通过“分而治之”思想来实现伴随效果:监控代码的开发和维护独立于业务逻辑,监控代码开发完成后,通过提取源代码的元信息,结合反射机制和工具支持将监控能力注入到软件系统中。这一方法由源代码分析、监控需求建模、监控代码生成、监控代码织入等环节构成,并由相应的软件工具支持,可以实现软件开发过程中和软件发布以后的监控能力注入,支持多种开发方法和环境。
     (4)提出了监控信息的多用途归纳和综合方法。
     软件系统监控的最终目标是服务于用户对系统的要求,这些要求来源于两个空间和三类用户,两个空间是数字空间和物理空间,三类用户是维护人员、保障人员和业务人员。本文从监控能效发挥的角度,提出了在数字空间通过监控综合解决软件运行时“黑盒”问题的运行轨迹追踪方法,面向调试和缺陷定位的监控定制方法,以及基于监控的数字-物理空间虚实协同分析方法,探索通过监控信息归纳和综合方法形成新能力的思路和途径。
Along with the increase of the scale and complexity of software systems, softwarefaults and failures is becoming more and more severe, bringing a tremendous impact topeople's lives as well as social and economic functioning. How to ensure thetrustworthiness of large scale distributed software system becomes a real challenge.Large-scale distributed software systems have the following characteristics: immensesize, decentralized deployment, heterogeneous components, opening environment andcontinuous evolution, which makes that its trustworthiness cannot be ensured by meansin the development phase such as software testing and formal verification. To guaranteereliable operation of large scale distributed software system, we have to "inspect” and"adjust" the system at runtime, in which one of the key enabling technology is softwaremonitoring.
     Software monitoring technology has undergone decades of development, andresearchers have carried out their research from different point of views, such assoftware debugging, software maintenance, software tuning, software qualityassessment, software, real-time assurance and fault-tolerance. However, to support theassurance of the trustworthiness of large-scale distributed software systems, we stillconfront a set of huge challenges. The most prominent ones are:(1) The lack of researchon the large-scale software monitoring architecture, especially the adaptability,flexibility, and non-invasiveness of for such an architecture;(2) The lack of research onthe monitoring-enabling mechanisms and methods in large-scale systems, especially theresearch on the completeness of monitoring requirements and the efficiency of themonitoring design;(3) The lack of pervasive development methodology to design themonitoring system in large systems.
     This dissertation launches the research in view of the above challenges and mainlyfocuses in the software engineering field. Our work covers three major topics: themonitoring architecture, the monitoring-enabling mechanism, and the monitoringdevelopment method. The main contributions of this dissertation are as follows:
     (1) The Adjoin Monitoring Architecture for large-scale distributed softwaresystems
     We present the Adjoin Monitoring Architecture (AMA) for large-scale distributedsoftware system in this dissertation. Here,"adjoin" means the separation of themonitoring mechanisms and the system being monitored. AMA supports the adjoindevelopment through the application of the Aspect-Oriented Programming (AOP)technology and related design patterns, supports the adjoin running through theapplication of monitoring-enabling distributed software run-time framework, andsupports the adjoin evolution through the dynamic deployment of the monitoring system. As a result, AMA can support a variety of software development paradigms, reduce theimpact on the behavior of the system being monitored and support the independentevolution of the monitoring mechanisms.
     (2) The monitoring-enabling mechanisms and methods driven by designconstraints
     This paper analyzes three main types of distortion in the process of software design:the calculation distortion, the physical-digital mapping distortion and the human-relatedfactors. We present the basic objects and elements in software monitoring from thepoint of view of the origin of computing systems. Based on those work, we propose theinvariant monitoring-enabling mechanism based on design constraints and themonitoring execution mechanism forced by operation specifications. Those twomechanisms are based on the idea of the adjoin monitoring architecture, which achievethe runtime supervision of the design constraints in calculation expression and theoperation specification which should be followed by the operators. The correspondingmethods and tools widen the source of the monitoring requirements and improve theautomation as well as design efficiency of the monitoring-enabling procedure.
     (3) The monitoring ability injecting method based on meta-information
     The intermixing of the business logic and the monitoring logic will lead to theincrease of the complexity of large-scale distributed software systems. The monitoringability injecting method based on meta-information is the realization of the idea of“divid and conquer”. In this method, the development and maintenance of themonitoring code is independent of the business code, and after the development of themonitoring code, it will be weaved into the target system based on its meta-information(such as the class name, function name, the variable type in the code) with the aid of thereflection mechanism and a set of tools. This approach is composed of four steps: thesource code analysis, the monitoring requirement modeling, the monitoring codegeneration and the monitoring code weaving, which can support the injection ofmonitoring ability before and after the software release as well as a variety ofdevelopment methods and environments.
     (4) The multi-purpose induction and synthesis method of monitoring information
     The ultimate goal of software monitoring is to serve the requirements from theusers to the system, which comes from the two spaces and three types of users. Theformer is digital space and physical space, the latter includes maintenance personnel,assurance personnel and operational personnel. The main purpose of traditionalsoftware monitoring is the "fault detection." From the perspective of improvingmonitoring efficiency, this dissertation put forward the trace tracking method in the“black-box” problem at runtime based on monitoring synthesis in the digital space, themonitoring customization method for debugging and fault location, and the approach torealize the digital-physical space analysis based on software monitoring.
引文
[1] P. Horn. Autonomic Computing: IBM's Perspective on the State of InformationTechnology[R]. IBM,2001
    [2] Tencent. QQ同时在线用户突破1亿[Z], http://tech.qq.com/zt/2010/qq100000000/,2010
    [3] D. J. Buettner. Designing an Optimal Software Intensive System Acquisition: AGame Theoretic Approach[D]. Los Angeles: University of Southern California,2008
    [4] L. Northrop,P. H. Feiler,B. Pollak,D. Pipitone. Ultra-Large-Scale Systems: TheSoftware Challenge of the Future[R]. Carnegie Mellon University,2006
    [5] PlanetLab. PlanetLab: An Open Platform for Developing, Deploying, andAccessing Planet-Scale Services[Z],http://www.planet-lab.org/,2011
    [6]朱孟平,宋自林.美军全球信息栅格研究述评[J].军事运筹与系统工程,2004(2):77-80
    [7] S. Adler. The Slashdot Effect: An Analysis of Three Internet Publications[J].Linux Gazette,1999,38:2
    [8]王怀民,唐扬斌,尹刚,李磊.互联网软件的可信机理[J].中国科学: E辑,2006,36(010):1156-1169
    [9] Pingdom. Best and Worst US Online Banks Revealed[R]. Pingdom,2009
    [10] Pingdom. Downtime for International Airline Websites[R]. Pingdom,2009
    [11] J. E. Sammet. Programming Languages: History and Future[J]. Communicationsof the ACM,1972,15(7):601-610
    [12] J. Woodcock,P. G. Larsen,J. Bicarregui,J. Fitzgerald. Formal methods: Practiceand experience[J]. ACM Computing Surveys (CSUR),2009,41(4):1-36
    [13]朱水林.哥德尔不完全性定理[M].沈阳:辽宁教育出版社,1987
    [14]单锦辉,姜瑛,孙萍.软件测试研究进展[J].北京大学学报(自然科学版),2005,41(1):134-145
    [15] H. E. Ferguson. Debugging Systems at the Source Language Level[J].Communications of the ACM,1963,6(8):430-432
    [16] R. M. Balzer. EXDAMS: Extendable Debugging and Monitoring System[C].Proceedings of the Spring Joint Computer Conference,1969
    [17] F. Chen,G. Ro u. Towards Monitoring-Oriented Programming A ParadigmCombining Specification and Implementation[C]. Proceedings of theInternational Workshop on Runtime Verification,2003
    [18] K. S. Templer,C. L. Jeffery. A Configurable Automatic Instrumentation Tool forANSI C[C]. Proceedings of the IEEE International Conference on AutomatedSoftware Engineering,1998
    [19] W. Gu,G. Eisenhauer,K. Schwan,J. Vetter. Falcon: On-line Monitoring forSteering Parallel Programs[J]. Theory and Practice of Object Systems,1998,10(9):699-736
    [20] M. Kim,S. Kannan,I. Lee,O. Sokolsky,M. Viswanathan. Java-MaC: A Run-timeAssurance Tool for Java Programs[C]. Proceedings of the InternationalWorkshop on Runtime Verification,2001
    [21] D. K. Peters,D. L. Parnas. Requirements-Based Monitors for Real-TimeSystems[J]. IEEE Transactions on Software Engineering,2002,28(2):146-158
    [22] K. Havelund,G. Rosu. Monitoring Java Programs with Java Pathexplorer[C].Proceedings of the International Workshop on Runtime Verification,2001
    [23] D. S. Rosenblum. A Practical Approach to Programming with Assertions[J].IEEE Transactions on Software Engineering,1995,21(1):19-31
    [24] A. Q. Gates,S. Roach,O. Mondragon,N. Delgado. DynaMICs:: ComprehensiveSupport for Run-Time Monitoring[C]. Proceedings of the InternationalWorkshop on Runtime Verification,2001
    [25] J. M. Jazequel,B. Meyer. Design by Contract: The Lessons of Ariane[J].Computer,1997,30(1):129-130
    [26] R. Snodgrass. A Relational Approach to Monitoring Complex Systems[J]. ACMTransactions on Computer Systems (TOCS),1988,6(2):157-195
    [27] A. S. Beth. On-Line Monitoring: A Tutorial[J]. IEEE Computer,1995,28(6):72-78
    [28] G. Khanna,M. Y. Cheng,P. Varadharajan,S. Bagchi,M. P. Correia,P. J.Veríssimo. Automated Rule-Based Diagnosis through a Distributed MonitorSystem[J]. IEEE Transactions on Dependable and Secure Computing,2007,4(4):266-279
    [29] J. Gao,E. Y. Zhu,S. Shim,L. Chang. Monitoring Software Components andComponent-Based Software[C]. Proceedings of the Annual InternationalComputer Software and Applications Conference,2000
    [30] J. Voas. Why is it so Hard to Predict Software System Trustworthiness fromSoftware Component Trustworthiness?[C]. Proceedings of the IEEE Symposiumon Reliable Distributed Systems,2001
    [31] W. Robinson. Extended OCL for Goal Monitoring[J]. ElectronicCommunications of the EASST,2007,9(1):1-12
    [32] K. Mahbub,G. Spanoudakis. A Framework for Requirents Monitoring of ServiceBased Systems[C]. Proceedings of the International Conference on ServiceOriented Computing,2004
    [33] van Hoorn A, Rohr M, Hasselbring W, et al. Continuous monitoring of softwareservices: Design and application of the Kieker framework[R]. University of Kiel,TR-0921.2009.
    [34] J. Bowring,A. Orso,M. J. Harrold. Monitoring Deployed Software UsingSoftware Tomography[C]. Proceedings of ACM SIGPLAN-SIGSOFTWorkshop on Program Analysis for Software Tools and Engineering,2002
    [35] D. M. Ogle,K. Schwan,R. Snodgrass. Application-Dependent DynamicMonitoring of Distributed and Parallel Systems[J]. IEEE Transactions onParallel and Distributed Systems,1993,4(7):762-778
    [36] N. Delgado,A. Q. Gates,S. Roach. A Taxonomy and Catalog of RuntimeSoftware-Fault Monitoring Tools[J]. IEEE Transactions on softwareEngineering,2004,30(12):859-872
    [37] G. Khanna,P. Varadharajan,S. Bagchi. Automated Online Monitoring ofDistributed Applications through External Monitors[J]. IEEE Transactions onDependable and Secure Computing,2006,3(2):115-129
    [38] B. Bruegge,T. Gottschalk,B. Luo. A Framework for Dynamic ProgramAnalyzers[J]. ACM SIGPLAN Notices,1993,28(10):65-82
    [39] Jesper Andersson,Rogério de Lemos,Sam Malek,Danny Weyns. ModelingDimensions of Self-Adaptive Software Systems[M]. Software Engineering forSelf-Adaptive Systems,2009:27-47
    [40] A. Orso,D. Liang,M. J. Harrold,R. Lipton. Gamma system: Continuousevolution of software after deployment[C]. Proceedings of the ACM SIGSOFTInternational Symposium on Software Testing and Analysis,2002
    [41] B. H. Sigelman,L. A. Barroso,M. Burrows,P. Stephenson,M. Plakal,D.Beaver,et al. Dapper, a Large-Scale Distributed Systems TracingInfrastructure[R]. Google,2010
    [42] M. Chen,E. Kiciman,E. Fratkin,A. Fox,E. Brewer. Pinpoint: ProblemDetermination in Large, Dynamic Systems[C]. Proceedings of the InternationalConference on Dependable Systems and Networks,2002
    [43] Erich,Richard Helm,Ralph Johnson,John Gamma Vlissides. Design Patterns:Elements of Reusable Object-Oriented Software[M]. Boston, MA:Addison-Wesley,1995
    [44] Wikipedia. Distributed Computing[Z], http://en.wikipedia.org/wiki/Distributed_computing,2010
    [45]王怀民,史佩昌,丁博,尹刚,史殿习.软件服务的在线演化[J].计算机学报,2011,34(2)
    [46] M. Mansouri-Samani,M. Sloman. Monitoring Distributed Systems[J]. Network,IEEE,1993,7(6):20-30
    [47] E. Al-Shaer,H. Abdel-Wahab,K. Maly. HiFi: A new monitoring architecture fordistributed systems management[C]. Proceedings of the InternationalConference on Distributed Computing Systems,1999
    [48] J. O. Kephart,D. M. Chess. The Vision of Autonomic Computing[J]. IEEEComputer,2003,36(1):41-50
    [49] H. Kreger. Java Management Extensions for Application Management[J]. IBMSystems Journal,2001,40(1):104-129
    [50] G. Kiczales,J. Lamping,A. Mendhekar,C. Maeda,C. Lopes,J. M. Loingtier,et al.Aspect-Oriented Programming[C]. Proceedings of European Conference onObject-Oriented Programming,1997
    [51] K. B llert. On Weaving Aspects[C]. Proceedings of Workshop onObject-Oriented Technology,1999
    [52] G. Kiczales,E. Hilsdale,J. Hugunin,M. Kersten,J. Palm,W. Griswold. AnOverview of AspectJ[C]. Proceedings of the European Conference onObject-Oriented Programming,2001
    [53] O. Spinczyk,A. Gal,W. Schr Der-Preikschat. AspectC++: an Aspect-OrientedExtension to the C++Programming Language[C]. Proceedings of theInternational Conference on Tools Pacific: Objects for Internet, Mobile andEmbedded Applications,2002
    [54] C. Alexander,S. Ishikawa,M. Silverstein. A Pattern Language: Towns, Buildings,Construction[M]. Oxford: Oxford University Press,1977
    [55] K. Beck,W. Cunningham. Using Pattern Languages for Object-OrientedPrograms[R]. Apple Computer,1987
    [56] F. Fages,A. Rizk. From Model-Checking to Temporal Logic ConstraintSolving[C]. Proceedings of Principles and Practice of Constraint Programming,2009
    [57] O. Kupferman,M. Vardi. From Complementation to Certification[C].Proceedings of the International Conference on Tools and Algorithms for theConstruction and Analysis of Systems,2004
    [58]袁崇义. Petri网原理及应用[M].北京:电子工业出版社,2005
    [59] Object Management Group,OCL2.0Specification[S]. http://www.omg.org/,2006
    [60] Karine Arnout, Raphael Simon. The.Net Contract Wizard: Adding Design ByContract to language other than Eiffel. In Proceedings of TOOLs39, IEEEComputer Society,2001:14-23
    [61] N. Dodoo,A. Donovan,L. Lin,M. D. Ernst. Selecting, Refining, and EvaluatingPredicates for Program Analysis[R]. MIT Laboratory for Computer Science,2003
    [62] G. T. Leavens,A. L. Baker,C. Ruby. Preliminary Design of JML: A BehavioralInterface Specification Language for Java[J]. ACM SIGSOFT SoftwareEngineering Notes,2006,31(3):1-38
    [63] E. M. Gagnon,L. J. Hendren. SableCC, an Object-Oriented CompilerFramework[C]. Proceedings of the Technology of Object-Oriented Languagesand Systems,1998
    [64]彭中.基于AOP的软件性质监控技术研究[D].长沙:国防科学技术大学研究生院,2008
    [65] Jos Warmer,Anneke Kleppe. The Object Constraint Language[M].2nd Edition.Boston, MA: Addison-Wesley,2003
    [66] L. C. Briand,W. Dzidek,Y. Labiche. Using Aspect-Oriented Programming toInstrument OCL Contracts in Java[R]. Carlton University,2004
    [67]王燕妮.基于不变式的软件故障检测与恢复技术研究[D].长沙:国防科学技术大学研究生院,2010
    [68] G. Leavens. JML's Rich, Inherited Specifications for Behavioral Subtypes[C].Proceedings of the International Conference on Formal Methods and SoftwareEngineering,2006
    [69] M. Gogolla,F. Büttner,M. Richters. USE: A UML-Based SpecificationEnvironment for Validating UML and OCL[J]. Science of ComputerProgramming,2007,69(1-3):27-34
    [70] C. M. Woodside,D. C. Petriu. Capabilities of the UML Profile for SchedulabilityPerformance and Time[C]. Proceedings of the Workshop on the Usage of theUML profile for Scheduling, Performance and Time,2004
    [71] I. Neamtiu,J. S. Foster,M. Hicks. Understanding Source Code Evolution usingAbstract Syntax Tree Matching[C]. Proceedings of the International Workshopon Mining Software Repositories,2005
    [72] J. I. Maletic,M. L. Collard,A. Marcus. Source Code Files as StructuredDocuments[C]. Proceedings of the International Workshop on ProgramComprehension,2002
    [73] E. Bodden. A Lightweight LTL Runtime Verification Tool for Java[C].Companion to the19th annual ACM SIGPLAN conference on Object-orientedprogramming systems, languages, and applications,2004
    [74] H. Barringer,A. Goldberg,K. Havelund,K. Sen. Rule-Based RuntimeVerification[C]. Proceedings of the International Conference on Verification,Model Checking, and Abstract Interpretation,2004
    [75] I. Lee,S. Kannan,M. Kim,O. Sokolsky,M. Viswanathan. Runtime Assurancebased on Formal Specifications[C]. Proceedings of the International Conferenceon Parallel and Distributed Processing Techniques and Applications,1999
    [76] C. Ko,M. Ruschitzka,K. Levitt. Execution Monitoring of Security-CriticalPrograms in Distributed Systems: A Specification-Based Approach[C].Proceedings of the IEEE Symposium on Security and Privacy,1997
    [77] R. Sekar,Y. Cai,M. Segal. A Specification-Based Approach for BuildingSurvivable Systems[C]. Proceedings of the National Information SystemsSecurity Conference,1998
    [78] Z. Li,Y. Jin,J. Han. A Runtime Monitoring and Validation Framework for WebService Interactions[C]. Proceedings of the Australian Software EngineeringConference,2006
    [79] Marc Léger, Thomas Ledoux, Thierry Coupaye. Reliable DynamicReconfigurations in the Fractal Component Model [C]. Proceedings of theInternational Workshop on Adaptive and Reflective Middleware,2007
    [80] T. Mens,S. Demeyer. Software Evolution[M]. Berlin: Springer,2008
    [81] Cook S, Harrison R, Lehman M M, et al. Evolution in software systems:foundations of the SPE classification scheme[J]. Journal of SoftwareMaintenance and Evolution: Research and Practice.2006,18(1):1-35.
    [82]张银奎.调试软件[M].北京:电子工业出版社,2008
    [83] Andreas Zeller.系统化调试指南[M].北京:电子工业出版社,2006
    [84] A. Zeller,R. Hildebrandt. Simplifying and Isolating Failure-Inducing Input[J].IEEE Transactions on Software Engineering,2002,28(2):183-200
    [85] atmnew.zip[OL], http://down.ydaima.com/daima/atmnew.zip
    [86]和青芳.计算机图形学原理及算法教程[M]:清华大学出版社,2005
    [87] M. Xu,R. Bodik,M. D. Hill. A Flight Data Recorder for Enabling Full-SystemMultiprocessor Deterministic Replay[C]. Proceedings of the AnnualInternational Symposium on Computer Architecture,2003
    [88] S. Narayanasamy,G. Pokam,B. Calder. Bugnet: Continuously RecordingProgram Execution for Deterministic Replay Debugging[J]. ACM SIGARCHComputer Architecture News,2005,33(2):284-295
    [89] J. R. Larus. Whole Program Paths[J]. ACM SIGPLAN Notices,1999,34(5):269
    [90] Y. Zhang,R. Gupta. Timestamped Whole Program Path Representation and itsApplications[J]. ACM SIGPLAN Notices,2001,36(5):180-190
    [91] S. Tallam,R. Gupta,X. Zhang. Extended Whole Program Paths[C]. Proceedingsof the International Conference on Parallel Architectures and CompilationTechniques,2005
    [92] S. P. Reiss,M. Renieris. Encoding Program Executions[C]. Proceedings of theInternational Conference on Software Engineering,2001
    [93] X. Zhang,R. Gupta. Whole Execution Traces and their Applications[J]. ACMTransactions on Architecture and Code Optimization (TACO),2005,2(3):301-334
    [94] J. C. Corbett,M. B. Dwyer,J. Hatcliff,S. Laubach,C. S. Pasareanu. Bandera:Extracting Finite-State Models from Java Source Code[C]. Proceedings of theInternational Conference on Software Engineering,2000
    [95] C. Lindig,V. Dallmeier,A. Zeller. Lightweight Control-Flow Abstraction[C].Proceedings of the Workshop on Software Reengineering,2005
    [96] T. Zimmermann,A. Zeller. Visualizing Memory Graphs[C]. Proceedings of theDagstuhl Seminar01211"Software Visualization",2002
    [97] R. Abreu,P. Zoeteweij,A. J. C. Gemund. Spectrum-Based Multiple FaultLocalization[C]. Proceedings of the International Conference on AutomatedSoftware Engineering,2009
    [98] X. Zhang,N. Gupta,R. Gupta. A Study of Effectiveness of Dynamic Slicing inLocating Real Faults[J]. Empirical Software Engineering,2007,12(2):143-160
    [99] A. Zeller. Yesterday, my Program Worked. Today, it does not. Why?[C].Proceedings of the European Software Engineering Conference,1999
    [100] H. Cleve,A. Zeller. Locating Causes of Program Failures[C]. Proceedings of theInternational Conference on Software Engineering,2005
    [101] S. Kim,T. Zimmermann,E. J. Whitehead Jr,A. Zeller. Predicting Faults fromCached History[C]. Proceedings of the International Conference on SoftwareEngineering,2007
    [102] C. Artho. Iterative Delta Debugging[J]. International Journal on Software Toolsfor Technology Transfer,2011,13(3):223-246
    [103] R. Abreu,P. Zoeteweij,A. J. C. van Gemund. On the Accuracy ofSpectrum-based Fault Localization[C]. Proceedings of the Testing: Academicand Industrial Conference Practice and Research Techniques,2007
    [104] J. A. Jones,M. J. Harrold,J. Stasko. Visualization of Test Information to AssistFault Localization[C]. Proceedings of the International Conference on SoftwareEngineering,2002
    [105] B. C. Dean,W. B. Pressly,B. A. Malloy,A. A. Whitley. A Linear ProgrammingApproach for Automated Localization of Multiple Faults[C]. Proceedings of theInternational Conference on Automated Software Engineering,2009
    [106] P. Zoeteweij,J. Pietersma,R. Abreu,A. Feldman,A. J. C. Van Gemund.Automated Fault Diagnosis in Embedded Systems[C]. Proceedings of theInternational Conference on Secure System Integration and ReliabilityImprovement,2007
    [107] R. Abreu,A. González,P. Zoeteweij,A. J. C. van Gemund. Automatic SoftwareFault Localization using Generic Program Invariants[C]. Proceedings of theACM symposium on Applied computing,2008
    [108] B. Liblit,M. Naik,A. X. Zheng,A. Aiken,M. I. Jordan. Scalable Statistical BugIsolation[C]. Proceedings of the ACM SIGPLAN Conference on ProgrammingLanguage Design and Implementation,2005
    [109] C. Liu,X. Yan,L. Fei,J. Han,S. P. Midkiff. SOBER: Statistical Model-Based BugLocalization[J]. ACM SIGSOFT Software Engineering Notes,2005,30(5):286-295
    [110] P. Hu,Z. Zhang,W. K. Chan,T. H. Tse. Fault Localization with Non-ParametricProgram Behavior Model[C]. Proceedings of the International Conference onQuality Software,2008
    [111] D. Hao,Y. Pan,L. Zhang,W. Zhao,H. Mei,J. Sun. A Similarity-Aware Approachto Testing Based Fault Localization[C]. Proceedings of the InternationalConference on Automated Software Engineering,2005
    [112] M. Renieres,S. P. Reiss. Fault Localization With Nearest Neighbor Queries[C].Proceedings of the International Conference on Automated SoftwareEngineering,2003
    [113] J. Tucek,S. Lu,C. Huang,S. Xanthos,Y. Zhou. Triage: Diagnosing ProductionRun Failures at the User's Site[C]. Proceedings of the ACM SIGOPSSymposium on Operating Systems Principles,2007
    [114] X. Zhang,N. Gupta,R. Gupta. Locating Faults Through Automated PredicateSwitching[C]. Proceedings of the International Conference on SoftwareEngineering,2006
    [115] D. Jeffrey,N. Gupta,R. Gupta. Fault Localization Using Value Replacement[C].Proceedings of the International Symposium on Software Testing and Analysis,2008
    [116] Z. Zhang,B. Jiang,W. K. Chan,T. H. Tse,X. Wang. Fault Localization throughEvaluation Sequences[J]. Journal of Systems and Software,2010,83(2):174-187
    [117] X. Wang,S. C. Cheung,W. K. Chan,Z. Zhang. Taming Coincidental Correctness:Coverage Refinement with Context Patterns to Improve Fault Localization[C].Proceedings of the International Conference on Software Engineering,2009
    [118]刘慧梅,徐华宇.软件测试中代码分析与插装技术的研究[J].计算机工程,2007,33(1):86-88
    [119] S. Chiba. Getting started with javassist[Z], http://www.csg.is.titech.ac.jp/chiba/javassist/tutorial/tutorial.html,2011
    [120]王承松.支持二进制执行码调试和测试的插装技术研究[D].长沙:国防科学技术大学研究生院,2010

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700