ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

201871010113-刘兴瑞 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

2021-04-14 10:05:10  阅读:211  来源: 互联网

标签:结对 博文 复审 201871010113 刘兴瑞 代码 编程 KP 实验


项目 内容
课程班级博客链接 班级链接
这个作业要求链接 作业要求链接
我的课程学习目标 1.体验软件项目开发结对编程

2.练习结对编程

3.掌握Github协作开发程序的操作方法。

这个作业在哪些方面帮助我实现学习目标 通过结对编程与伙伴做项目,熟悉结对编程过程,熟悉了通过Github协作开发程序的操作方法
结对方学号-姓名 张潇潇-201871010132
结对方本次博客作业链接 张潇潇

任务一

阅读《现代软件工程—构建之法》第3-4章内容,理解并掌握代码风格规范、代码设计规范、代码复审、结对编程概念;

  • 第三章总结
    代码风格的原则是:简明,易读,无二义性。
    代码复审的定义:看代码是否在“代码规范”的框架内正确地解决了问题
  1. 代码复审的形式:
名称 形式 目的
自我复审 自己vs.自己 用同伴复审的标准来要求自己。不一定最有效, 因为开发者对自己总是过于自信。如果能持之以恒,则对个人有很大好处。
同伴复审 复审者vs.开发者 简便易行
团队复审 队vs.开发者 有比较严格的规定和流程,适用于关键的代码,以及复审后不再更新的代码。覆盖率高——有很多双眼睛盯着程序,但效率可能不高(全体人员都要到会)
  1. 结对编程的好处:

(1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。
(2)对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。
(3)在心理上, 当有另一个人在你身边和你紧密配合, 做同样一件事情的时候, 你不好意思开小差, 也不好意思糊弄。
(4)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已经被其他人共享。
总之,如果运用得当,结对编程能得到更高的投入产出比(Return of Investment)。

  1. 正确地给予反馈:“三明治”方法

(1) 先放一片面包:做好铺垫:强调双方的共同点,从团队共同的愿景讲起,让对方觉得处于一个安全的环境。
(2) 然后再把肉放上:这时就可以把建设性的意见( Constructive Feedback )加工好,加上生菜、佐料等。
(3) 然后再来一片面包:呼应开头,鼓励对方把工作做好。

任务二

两两自由结对,对结对方《实验二 软件工程个人项目》的项目成果进行评价

  • 对项目博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,将以上评论内容发布到博客评论区。
点评方面 点评内容
博文结构 博文结构清晰,版式整洁,具有段落感。
博文内容 对于每个点评给出了超链接,且定位到了该评论的位置,极为方便;缺点是最好能在超链接前标注一下点评对象的姓名等信息。将《 构建之法》PSP那两章进行提炼概括。在需求分析上,对0-1背包给出了自己的解释
博文结构与PSP中“任务内容”列的关系 撰写流程是按照PSP的主要流程,整体构思清晰完整。
“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析 博主没有实际完成时间
差异原因探究 可能编程能力有欠缺
  • 克隆结对方项目源码到本地机器,阅读并测试运行代码,参照《现代软件工程—构建之法》4.4.3节核查表复审同伴项目代码并记录
    对方没有仓库链接
  • 依据复审结果尝试利用github的Fork、Clone、Push、Pull request、Merge pull request等操作对同伴个人项目仓库的源码进行合作修改。

任务三

采用两人结对编程方式,设计开发一款D{0-1}KP 实例数据集算法实验平台:

  • 需求分析陈述。
    (1) 平台基础功能:实验二 任务3;
    (2) D{0-1}KP 实例数据集需存储在数据库;
    (3) 平台可动态嵌入任何一个有效的D{0-1}KP 实例求解算法,并保存算法实验日志数据;
    (4) 人机交互界面要求为GUI界面;
    (5) 遗传算法求解D{0-1}KP;

  • 软件设计说明。
    (1) D{0-1}KP数据保存到数据库
    (2) 绘制任意一组D{0-1}KP数据以重量为横轴、价值为纵轴的数据散点图
    (3) 对任意一组D{0-1}KP数据用重量和价值比进行排序;
    (4) 用户能够选择动态规划算法、回溯算法求解指定D{0-1} KP数据的最优解和求解时间(以秒为单位)
    (5) 最优解、求解时间和解向量可保存至EXCEL文件
    (6) 可使用遗传算法求解D{0-1}KP

  • 软件实现及核心功能代码展示:软件包括哪些类,这些类分别负责什么功能,他们之间的关系怎样?类内有哪些重要的方法,关键的方法是否需要画出流程图?

  • 描述结对的过程,提供两人在讨论、细化和编程时的结对照片(非摆拍)。(3分)

  • 提供此次结对作业的PSP。

PSP2.1 任务内容 划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 14 10
· · Estimate · 估计这个任务需要多少时间,并规划大致工作步骤 10 10
development 开发 800 880
· · Analysis · 需求分析 (包括学习新技术) 60 70
· · Design Spec · 生成设计文档 25 20
· · Design Review · 设计复审 (和同事审核设计文档) 20 20
· · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 27
· · Design 具体设计 20 12
· · Coding · 具体编码 120 80
· · Code Review · 代码复审 60
· · Test · 测试(自我测试,修改代码,提交修改) 30
Reporting 报告 80
· · Test Report · 测试报告 10
· · Size Measurement · 计算工作量 500 5
· · Postmortem & Process Improvement Plan · 事后总结 ,并提出过程改进计划 5 8
  • 小结感受:两人合作真的能够带来1+1>2的效果吗?通过这次结对合作,请谈谈你的感受和体会。
    我认为两人合作能够带来1+1>2的效果。首先在结对编程中,随时的沟通和交流,使程序中的错误,质量提高。而且,结对编程是一个分享和交流的过程,使得我们可以避免一些自己思想上的误区,同时拥有了一个新的知识,有新的创意。

标签:结对,博文,复审,201871010113,刘兴瑞,代码,编程,KP,实验
来源: https://www.cnblogs.com/lxr0/p/14656327.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有