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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(Lab 1结对编程实验报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Lab 1结对编程实验报告.docx

1、Lab 1结对编程实验报告XXX工业大学计算机科学与技术学院软件工程Lab 1:结对编程文档全部完成之后,请更新上述区域1实验要求练习结对编程(pair programming),体验敏捷开发中的两人合作;两人一组,自由组合;使用一台计算机,共同编码,完成实验要求;在工作期间,两人的角色至少切换4次;使用JAVA+Eclipse编程。2待求解问题描述与数学模型输入1:一个服务流程,由一组活动及其之间的关系构成,使用DAG输入2:针对每个服务活动的候选服务集,各服务有功能和QoS信息;输入3:客户针对服务流程的QoS需求;输出:满足QoS需求的服务选择方案(使用DAG表示) ;计算方式:Q =

2、TR TP/100,其中TR为最终方案的总体可靠性,TP为最终方案的总价格,Q值越大越好。3算法与数据结构设计3.1设计思路主要思想为深度优先搜索,用到的数据是根据数据表第四个值(即价格)有小到大排好序的数据,以排好序的各个字母最小的价格值对应的Q值作为初始判断条件值。寻找一条完整路径可以划分为两个部分,一部分是还没有搜索到最后一个字母,另一个是到了最后一个字母搜索。第一部分搜索存在三种情况,一是搜索字母对应的500个数据时还没有到达第500个数据,这样在不满足条件的情况下,可以继续向下一个数据搜索;另一个是如果已经到达最后一个数据即第500个数据,仍然没有满足条件,此时需要去路径上一级字母标

3、记(记录字母的下标)的下个数据开始寻找;三是在满足条件的情况下,此时只需保存记录,同时向路径的下一级字母展开搜索即可。第二部分搜索是到达最后一个字母,需遍历所有的数据。如果满足条件不仅需要保存记录,还需要更新Q值作为新的判断条件;如果不满足条件,返回上一级字母标记的下一个数据开始继续搜索。搜索完成后,根据记录可以得到各个字母对应的下标,即得到最优路径。3.2算法流程图 递归此流程为寻找一个服务流程的最优解。多个流程时,只需循环多次即可3.3核心数据结构一维数组g,h,二维数组p,r,c,index3.4时间复杂度分析假设一个服务流程有n个节点,每个节点对应有m个不同的候选服务。首先程序开始有将

4、数据排序,用到的是选择排序,时间复杂度为:o(m*m*n)算法用到的是剪枝法,最坏时间复杂度应该为o(mn),考虑到实际约束条件和排好序的结果,程序不会每个点都运行到,所以时间会远小于上述值。4实验结果4.1流程的图示化展示第一组(A-355,B-91),(A-355,C-308),(C-308,D-124),(B-91,G-162),(D-124,G-162),第二组(A-355,B-91),(A-355,C-308),(C-308,D-405),(C-308,E-420),(B-91,G-390),(D-405,G-390),(E-420,H-432),(G-390,K-89),(H-43

5、2,K-89) 第三组(A-355,B-91),(A-355,C-308),(C-308,D-405),(C-308,E-420),(C-308,F-420),(B-91,G-390),(D-405,G-390),(E-420,H-454),(F-420,I-396),(F-420,J-79),(G-390,K-89),(H-454,K-89),(K-89,L-231),(I-396,L-231),(J-79,L-231)第四组(A-355,B-91),(A-355,C-308),(C-308,D-405),(C-308,E-420),(C-308,F-420),(B-91,G-390),(D

6、-405,G-390),(E-420,H-454),(F-420,I-396),(F-420,J-311),(G-390,K-89),(H-454,K-89),(K-89,L-231),(I-396,L-231),(J-311,L-231),(G-390,M-444),(I-396,M-444),(M-444,N-256),(L-231,N-256),4.2需求(0.9,20)(0.8,40)(0.6,70)(0.4,80)4.3最终的服务选择结果流程4第一组(A-355,B-91),(A-355,C-308),(C-308,D-124),(B-91,G-162),(D-124,G-162),

7、第二组(A-355,B-91),(A-355,C-308),(C-308,D-405),(C-308,E-420),(B-91,G-390),(D-405,G-390),(E-420,H-432),(G-390,K-89),(H-432,K-89) 第三组(A-355,B-91),(A-355,C-308),(C-308,D-405),(C-308,E-420),(C-308,F-420),(B-91,G-390),(D-405,G-390),(E-420,H-454),(F-420,I-396),(F-420,J-79),(G-390,K-89),(H-454,K-89),(K-89,L-2

8、31),(I-396,L-231),(J-79,L-231)第四组(A-355,B-91),(A-355,C-308),(C-308,D-405),(C-308,E-420),(C-308,F-420),(B-91,G-390),(D-405,G-390),(E-420,H-454),(F-420,I-396),(F-420,J-311),(G-390,K-89),(H-454,K-89),(K-89,L-231),(I-396,L-231),(J-311,L-231),(G-390,M-444),(I-396,M-444),(M-444,N-256),(L-231,N-256),4.4最终结

9、果的全局QoS属性第一组Reliability=0.9410939999999992,Cost=8.409999999999727 ,Q=0.8569940000000019第二组Reliability=0.9316830599999871,Cost=12.39999999999211 ,Q=0.8076830600000661第三组Reliability=0.8949710300124106,Cost=20.629999996449083 ,Q=0.6886710300479197第四组Reliability=0.8770716093348236,Cost=23.30999998085399

10、 ,Q=0.64397160952628374.5算法执行时间运行时间 :16803ms5编程语言与环境Java语言Myeclipse20146结对编程6.1分组依据为何你们两位组成了结对编程的小组?从性格、能力、编程技能等方面简要介绍。陈焱锋的优点:(1)特别的认真;(2)幽默,跟他一起工作挺好玩的 缺点:交流少我的优点:(1)乐观;(2)交流能力还行我的缺点:算法数据结构薄弱分组依据:我俩之间可以形成互补,共同完成任务6.2角色切换与任务分工6.3工作照片6.4工作日志由领航员负责记录,记录结对编程期间的遇到的问题、两人如何通过交流合作解决每个问题的。可增加表格的行。时间问题描述最终解决方

11、法两人如何通过交流找到解决方法9.19reQ文件以字符串读入后,难以将数字取出存到double型数组里(例如:0.9包含三个字符)利用Str.replace()Float.valueOf()两个函数对数据进行处理,最后提取出期望的数组一人查阅书籍,一人搜网络上的解决方法,综合得到目前方案9.20写完算法代码之后运行时一直跑不出结果,而调试过程中发现程序能跑,只不过数据太大,需要时间太多将文件中读进来的数据先进行排序,这样在循环和判断里面可以剔除大量不合格数据,大大提高了效率开始时候两人交流尝试使用更多的限制条件来约束,但是收效不高。最后考虑可以排好序再进行搜索可以大大提高效率6.5对结对编程的

12、体会(1)首先应该是结对编程的高效率了,结对编程的时候,两个人可以分开做不同的unit,也可以同时做相同的unit。在项目的一些简单的 unit,一个人能够很简单的unit就可以分给不同的人去做;对于核心的unit,比如说此次项目电梯调度的算法部分,这是一个核心的部分,需要我们共 同讨论,经过讨论后再去实现,或者两个人分别写出自己的想法,用代码实现,这时候,综合两个人效率高的那个人的算法。另外,在结对编程时候,有一定相互监 督作用,比起一个写程序,更不会想去玩一些其它的东西。(2)想法源于两个人的激烈讨论,很多时候,我们在讨论中,常常忽然就会有一个灵感突然来袭,或者是会有一些之前不懂得地方,可

13、能一下就懂了。(3)结对编程的时候乐子多,我们合作的很开心,这样能提高我们的激情,同时也就提高了效率,工作起来很带劲(4)在调试的时候,不再是一个人调试时那样无奈了,遇到了bug时,两个人一起,上面那张相片就是我们两个人在调试时候留下的,这时候,有两个人的经验,应付这些bug就能更得心应手一些了。后期维护起来也更加方便。7计划与实际进度任务编号计划时间长度(分钟)实际耗费时间(分钟)提前或延期的原因分析1180360读取数据处理较多2360720调试过程中出现许多bug,重构3180240写进文件时出现问题8小结结对编程这个概念我还是第一次听说。最开始接触pair programming的时候

14、,我有一个很大的疑问”这样做不是浪费了一个人的劳动力吗?但是经过了这次结对编程的经历,我原来的想法实在是“too simple, naive”存在就有其道理,结对编程必然有其可取之处。我在与陈焱锋合作的过程中,深刻体会到了结对编程的优势,它把两个人的力量合在一起,在提高开发速度的同时,也保证了代码质量,同时两个人也都能从对方身上学到很多东西。当自己一个人写程序的时候,难免会犯一些很愚蠢的小错误,而这些小错误反倒需要大量的时间来debug,效率非常的低。然而,当两个人坐在一起的时候,那些非常可笑的错误出现的几率就很小了,省去了很多debug的时间。而且,经过两个人的讨论得到的方案肯定跟靠谱。同时,两个人在一起的时候,一个人写累了可以换一换角色,效果也不错。

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

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