ImageVerifierCode 换一换
格式:DOCX , 页数:48 ,大小:872.39KB ,
资源ID:21972440      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21972440.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于软件演化的性能评估与分析Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于软件演化的性能评估与分析Word文件下载.docx

1、研究生姓名:导 师 姓 名:Performance evaluation and analysis Based on the evolution of softwareA Thesis Submitted toSoutheast UniversityFor the Academic Degree of Master of EngineeringBYSupervised bySchool of Computer Science and Engineering2015东 南 大 学 学 位 论 文 独 创 性 声 明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所

2、知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。研究生签名: 日 期:东 南 大 学 学 位 论 文 使 用 授 权 声 明东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布(包括刊登)论文的全部或部分内容。论文的公布(包括刊登)授权东南

3、大学研究生院办理。 导师签名: 日 期: 摘 要软件系统的实现依赖于环境,为了能够在这个环境中生存下去,延长软件的生命周期,软件需要进行逐步的演化。在软件中,造成这种变化的原因有多种,例如错误的修复、功能上的增删改等。软件演化所造成的功能和架构上的改变会造成软件性能发生变化,从而影响软件质量,并对用户体验造成影响。另一方面,有时演化的目的是为了提升软件性能。随着计算机软件复杂性的不断增加,想要确定软件演化过程中哪些代码变更带来了性能的变化变得十分困难。从软件性能评估与分析入手,通过开发软件性能评估工具,对软件各演化版本进行性能评估,并根据评估数据和版本差异分析代码变更对软件性能的影响,从而确定

4、造成软件性能变化的原因。本课题的研究内容在于利用软件在演化过程中逐步变化的特点,通过对历史库中所有版本的性能指标(包括响应时间和资源占用率)的检测和对比来发现性能出现显著变化的版本,最后通过相邻版本的代码差异比较发现造成性能降低或者提升的原因。主要工作如下:1. 软件性能指标评估(1)根据实际情况,选取较为可行的,可监控的评估软件的性能指标,这些指标包括CPU占用时间,虚拟机内存消耗等指标;(2)设计与实现软件性能指标评估工具。通过该工具,在被评估软件运行过程中对选择的软件性能指标进行评估,将判断软件性能指标是否符合预期,给出软件性能评估结果;2. 软件性能指标的分析(1)对选择的具有多个版本

5、的Java开源软件进行性能评估,通过相邻两个版本的性能指标差异和版本差异定位造成软件性能变化的原因;(2)对当前版本的性能评估结果进行分析,得出下一个版本在性能上的演化需求;3. 软件性能指标评估系统的设计与实习(1)根据上述功能要求,设计与实现了性能指标评估系统。该系统包含了性能指标评估过程中的每一个环节;(2)该工具还包括了系统存储模块,存储性能指标历史版本的数据;(3)该工具也包括了实施展示功能模块,该模块将性能指标历史数据进行实时展示。4. 结合Java开源项目进行实验(1)开发Java软件性能评估工具,作为实验工具对选取的Java开源软件进行性能评估,能够获取性能指标并对其进行存储;

6、(2)对比获取到的两个相邻版本的性能指标,结合版本差异确定软件性能变化的根源。5针对开源的图书管理系统进行了软件性能评估与测试。在实验结果基础上,结合系统源代码,分析源代码的变化对系统的性能指标在各方面的影响,并通过相关工具分析了各个版本的开源图书管理系统的代码变更情况。经过图书馆管理系统的不同演化版本的实验下,测试了其主要的性能参数,获得了相关结果,并进行了相关的分析。从分析中可以看出,软件系统性能的变化原因是多种因素造成的,与网络,主机运行环境,用户的参数等都有关系。但在相同环境下,某些代码的变化会带来软件系统性能的变化,包括内存使用,虚拟机内存,处理时间等各种情况的变化。通过实验工具的分

7、析和总结,得出系统工具的可行性。从分析中可以看到,软件代码的变化对系统性能的重要影响。关键词 软件架构;演化;性能;仿真;顺序图;评估AbstractSoftware system implementation depends on the environment. In order to survive in this environment and extend its life cycle of software software must evolve gradually. There are many reasons like bug fixes, requirement chang

8、es and so on causing changes to software. Changes to function and architecture caused by software evolution may affect software performance, thus affecting software quality and user experience. On the other hand, sometimes the purpose of evolution is to improve software performance. With the increas

9、ing complexity of computer software, it is very difficult to identify code changes which affect the software performance during the software evolution. This paper introduces a method to identify these code changes. Firstly, I develop a performance evaluation tool to evaluate and compare performance

10、of successive software versions. Then, two successive versions which have dramatic performance changes are identified, and the code changes between them must be responsible for performance changes.Research content of this paper is to use the software in the evolution gradual change in the characteri

11、stics of historical libraries in all versions of the performance metrics (including response time and resource utilization) detection and contrast to see a performance significant change in the version of the last by comparison between the adjacent version of the code found cause performance degrada

12、tion or improvement reasons.Keywords:Software architecture; evol7ution; performance; simulation; sequence diagram; evaluation目 录摘 要 IAbstract II目 录 III缩略词表 V第一章 绪论 11.1 研究背景与意义 11.2 研究现状 11.2.1 软件演化研究 11.2.2 软件性能评估研究 21.3 论文主要工作 31.3.1 研究内容 31.3.2 可行性分析 31.4 论文章节安排 41.5 本章小结 4第二章 软件演化概念及软件性能评估技术 52.

13、1 相关概念 52.1.1 软件演化的定义 52.1.2 软件性能评估概念 52.2 软件性能测试过程 72.2.1 软件性能测试模型 72.2.3 软件性能测试过程 72.3 软件性能测试工具 82.3.1 Jconsole工具 82.3.2 VisualVM工具 82.3.3 Perform工具 102.3.4 WMI(Windows Management Instrumentation)技术 102.3.5 Beyond Compare 122.4 本章小结 12第三章 软件演化及软件性能评估 133.1 软件演化以及性能评估过程 133.2 软件系统性能指标选择 133.3 软件系统性

14、能指标计算方法 153.3.1 进程性能指标获取 153.3.2 虚拟机性能指标获取 153.3.3 其它性能指标获取 163.4 性能评估工具需求分析 173.5 本章小结 18第四章 软件演化过程性能评估工具设计与实现 194.1 软件演化性能评估工具的设计 194.2 软件性能评估过程 194.3 系统性能指标获取 204.4 测试用例选择以及对比分析 21第五章 软件系统性能评估实验 225.1 实验环境搭建 225.2 实验测试与结果分析 225.2.1 实时监控界面 225.2.2连续版本性能评估、对比以及分析 235.3 本章小结 24第六章 总结与展望 256.1 主要工作总结

15、 256.2 未来工作展望 25致 谢 26参考文献 27作者简介 28缩略词表缩略词英文全称中文全称SASoftware Architecture软件架构SAESoftware Architecture Evolution软件架构演化SSDSystem Sequence Diagram系统顺序图SDSequence Diagram顺序图MSCMessage Sequence Chart消息序列图EEGEvent Execution Graph事件执行图JDKJava Development KitJava开发工具SASESoftware Architecture Simulation Eva

16、luation软件架构仿真评估工具第一章 绪论随着信息化技术的发展,计算机软件得到了广泛的应用。同时,计算机软件的不断创新、不断发展成长,对软件系统的功能和非功能需求也越来越高,这使得人们越来越重视软件本身的质量。在软件质量中,软件性能(例如响应时间和资源占用率)是评价软件质量的一个重要指标,它在某种程度上决定了用户体验是否完美,如果不满足用户要求,将会对用户体验,软件质量造成重大影响。随着新技术的不断发展,软件系统也在不断的演化和发展。在这样的过程中,软件性能也在不断变化。因此,定位软件演化过程中对软件性能造成影响的变更代码非常重要,它能够为后续软件演化的性能提升提供指导。本文通过研究软件演

17、化过程中,对软件性能具有关键影响的代码更新情况,为后续软件演化和发展提供指导和帮助。1.1 研究背景与意义变化性是软件的基本属性。随着信息化技术的普及和不断发展,一方面软件系统得到了广泛的应用;另一方面,软件技术也必须要跟随着信息系统技术的发展而不断演化和发展。随着网络环境的变化和软硬件技术平台的不断更新和快速变化,人们对软件功能和非功能的需求也在不断提高。特别是在Intemet成为主流软件运行环境之后,网络的开放性和动态性使得客户需求与硬件资源更加频繁地变化,导致软件的变化性和复杂性进一步增强。为了适应这种需求和发展,人们提出了软件演化技术。软件演化指的是软件进行变化并达到所希望形态的过程,

18、可分为静态演化和动态演化两种类型。由于具有持续可用性的优点,动态演化已成为软件工程研究的热点。软件演化过程作为软件过程的一个分支,它同样也是一种软件过程,它通过对软件演化过程中的一些较难以控制的活动进行管理,试图为软件演化过程建立一个统一的流程框架。软件演化能否取得成功在很大的程度上取决于组织所实施的软件演化过程。因而,它对于软件的演化具有重要的意义。在软件演化过程中,软件代码的更新变化对于软件的质量有着重要的影响和作用。定位并确定软件演化过程中那些对软件性能造成重要影响的代码对于后续软件演化非常重要。这是因为它能够为后续软件演化的性能提升提供准确性指导。通过对软件演化中各个开发版本的性能评估

19、与比较来找出发生性能变化的相邻版本,发生在这两个版本间的代码变更就是这次性能变化的原因。通过找出导致系统性能发生变化根本原因的代码变化,会为开发人员今后的系统开发带来帮助。在软件演化过程中,新的性能需求所造成的代码变更必然会引起性能的变化,而其他类型的需求所带来的代码变更有可能导致软件性能上升,也可能导致其下降,具有不确定性。所以需要研究软件演化对性能的影响,总结规律,为后期的软件演化操作积累经验。综上所述,如果能对软件系统的演化进行评估,就可以在软件开发及其演化的早期阶段对软件进行预测分析,从而指导软件的合理开发以及演化。因此针对软件系统的演化版本性能评估的研究具有重要的意义。1.2 研究现

20、状目前,许多研究人员对软件演化以及软件性能评估进行了多方面的研究。1.2.1 软件演化研究软件演化可以分为动态演化和静态演化,动态演化远比静态演化技术更为复杂,技术上更难以处理。部分研究人员从软件体系结构高层次对软件演化过程进行分析,从系统全局描述系统当前配置状态,对系统级特征属性的监控和关键约束,并以此作为软件动态演化的重要依据和驱动因素。文献1为实现基于体系结构方面的动态演化,系统地从动态体系结构描述语言、软件应用模型和构造框架、软件运行环境和机制等方面逐步展开研究,并采用高层次逻辑描述语言进行建模和分析。文献2从软件体系结构和特征驱动方面研究了软件演化过程,提出了软件演化参考体系结构(S

21、ERA),该结构描述了基于特征模型的动态软件体系结构的受限演化空间和面向各种特定演化需求的动态软件体系结构可变性。文献3通过建立一种系统性的软件动态演化建模理论和方法,该方法主要以软件需求为驱动,通过体系结构模型,建立软件行为管理机制和流程实现软件系统的动态演化,采用形式化方法描述软件演化过程。文献4 在分析软件动态演化面临的挑战的基础上,设计了面向动态演化的需求元模型。该元模型以特征为基本元素,按特征组合的方式建立需求模型,需求模型由行为特征和属性特征组成。在此基础上,讨论了需求模型的参照完整性、依赖一致性和互斥一致性,并进一步把需求模型规范化为需求模型第一范式到第三范式,需求模型规范化 的

22、过程提供了一种保证需求模型一致性的方法。表明了该方法的可行性及其对软件动态演化的有效支持。文献5提出基于Agent的软件演化支撑框架。在该支撑框架基础上,提出了基于Agent的软件演化过程模型并采用形式化方法描述,该模型包括了面向用户需求和环境动态变化两个纬度描述软件体系架构变化。作者还针对动态环境中软件演化过程的关键环节上利用动态演化逻辑描述需求。文献6从软件演化的角度出发,将软件的整个生命周期中产生的历史版本进行研究,通过这种软件历史版本的研究和分析,寻找软件本身特征参数能耗的演化趋势和规律并对这些规律进行软件的能耗建模,用以软件能耗评估。该方法将实测与能耗建模相结合的方法并在软件历史版本

23、相关数据的基础上进行建模分析,最后从软件演化的角度来分析和探究软件能耗实测数据与软件高层特征参数之间的关联关系,并建立相应的能耗评估模型。1.2.2 软件性能评估研究关于软件演化过程中,软件性能方面的研究主要有:文献7提出使用神经网络模型对收集到的所有性能数据进行建模和分析,从而得到系统整体资源的消耗情况。但是它没有实现软件不同版本之间的性能比较。文献8提出利用引用传播图(reference propagation graph)来查找程序中应该被释放掉的无效引用,最终解决运行时膨胀(run-time bloat)问题。文献9中提出方法调用的重复模式对软件的性能造成重大影响,可以通过在调用环境树

24、(Calling Context Tree, CCT)所包含的方法调用数据中寻找这种重复模式来定位性能问题的根源。然而,这三篇文献没有涉及性能数据对比的部分,所以与软件演化没有关系,只能在分析性能问题时加以参考。文献10探索了一种利用性能回归测试历史库来帮助进行性能回归测试分析的方法。这个方法会自动地将新的性能测试结果同过去相对应的测试结果进行对比,最后将系统度量指标中出现性能下降的地方按照严重级别呈现在测试报告中。但是它只研究了如何快速定位性能下降的位置,没有对相邻版本的代码进行对比,也没有给出性能下降的原因。文献11通过对比两次程序执行所生成的调用环境树,在方法层面上得出两次程序执行之间的

25、性能差异(这里的性能主要指方法调用次数和处理时间)。但是这篇文章侧重于迅速给出两次程序执行之间的性能差异,并不关心各个演化版本的性能对比情况和性能变化对应的原因。在文献12、13、14中,针对软件演化过程中的性能分析方式得到了阐述。这种分析方式首先需要记录整个软件执行过程中方法栈的数据(包括调用方法、被调用方法、调用次数、执行时间等等),然后在执行结束后根据这些数据生成调用环境树,最后通过对比两个版本执行后所生成的调用环境树(在相同输入环境下)以及两个版本的代码得到导致性能发生变化的方法及其对应的代码变更。这种性能分析方式是方法级的,程序执行后能够迅速定位导致性能变化的原因。它的缺点在于只关注

26、方法的处理时间,不关注资源的占用情况。综上所述,目前,针对软件演化过程中每一个阶段的性能变化情况,尚无系统性分析与研究。无法真正明确认识系统变化过程中,给系统性能带来影响的关键因素,无法为用户体验的改善带来帮助。1.3 论文主要工作1.3.1 研究内容针对软件演化过程中,系统性能的变化情况,本文旨在设计并实现一种基于软件演化的性能评估系统与方法进行分析研究与实现。对软件性能指标进行评估、在软件性能指标评估结果的基础上进行演化分析、结合Java开源项目对评估方法和分析方法进行实验验证。具体如下:1. 软件性能指标的评估(1)选取要进行评估的软件性能指标;(2)构建软件性能指标评估工具,在软件运行

27、过程中对选择的软件性能指标进行评估;判断软件性能指标是否符合预期,给出软件性能评估结果;3. 结合Java开源项目进行实验1.3.2 可行性分析目前,据现有资料可知国内外关于软件演化的性能研究比较少,大部分集中在利用调用环境树对比性能差异再结合代码差异确定性能变化的原因。但是主要的思想是明确的,即在软件演化过程中,对比相同输入情况下的不同历史版本软件的性能差异,再结合版本间的代码变更,可以确定造成软件性能变化的根源。这些研究都验证了这一思路的可行性。在软件性能指标的获取方面,现有的关于程序插桩的技术是成熟的,可以用来获取软件的响应时间,另外Java虚拟机和Windows操作系统都对外提供了获取

28、资源占用率的相关接口,利用这些接口来获取资源占用率数据是可行的。目前有大量的开源软件以及这些软件的各种历史版本,对于分析其代码变化与性能变化之间的关系也可通过查看比较源代码的变化情况分析得到。通过上述分析,本文的研究方向是可行的,并且对于分析软件演化以及保障性能变化之间关系具有一定的价值和意义。1.4 论文章节安排本论文共分为六章,各章的内容简述如下:第一章介绍了软件演化及其演化的评估的研究背景、关键技术点的研究现状,本文研究内容和可行性分析,以及全文的章节安排。第二章介绍了与软件演化及性能评估相关的技术,包括软件演化的定义,软件性能定义以及软件性能评估模型以及相关技术。第三章介绍了软件演化及

29、性能评估系统需求分析和描述。第四章介绍了软件演化及性能评估系统的实现,性能参数的获取。设计并实现了软件性能评估工具,给出了工具每个模块的设计思路,并按照评估参数,对软件评估工具每个模块进行实现。第五章设计了实验系统和平台以及方案,针对某开源软件,进行性能评估的实际测试和分析,建立性能与代码之间的模型,并通过实例分析系统功能及模型。第六章总结了本文的研究工作,并指出未来的研究方向。1.5 本章小结本章介绍了该课题的研究背景和研究意义,并对目前软件演化以及软件性能方面的研究现状进行了总述和总结,并给出了该课题研究的可行性分析。第二章 软件演化概念及软件性能评估技术本章首先介绍当前研究对软件演化的定义,软件性能评估参数以及软件性能评估参数监控方法。2.1 相关概念2.1.1 软件演化的定义软件过程包含了软件生命周期里所涉及的系列过程,它为管理软件开发过程中难以控制的活动提供了一个统一的框架15。软件演化过程作为软件过程的一个分支,它同样也是一种软件过程,它通过对软件演化过程中的较难以控制的活动进行管理,试图为软件演化过程建立一个统一的流程框架。软件演化能否取得成功在很大的程度上取决于组

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1