201871010116-祁英红 实验三 软件工程结对项目

项目 内容
课程班级博客链接 班级博客
这个作业要求连接 作业链接
我的课程学习目标 (1)体验软件项目开发中的两人合作,练习结对编程。
(2)掌握Github协作开发程序的操作方法。
(3)加深对D{0-1}问题的解法的理解
(4)熟悉PSP流程
这个作业在哪些方面帮助我实现学习目标 在结对编程过程中完成学习目标(1),
结对方姓名-学号 帖佼佼-201871010119
结对方本次博客作业链接 作业链接
本项目Github的仓库链接地址 仓库地址
  • 任务1:阅读《现代软件工程—构建之法》第3-4章内容,理解并掌握代码风格规范、代码设计规范、代码复审、结对编程概念;

    • 完成情况:已按要求完成
      (1)代码风格规范:就是代码格式的一些要求。主要有以下几个方面:
      缩进、行宽、括号、断行与空白的{}行、分行、命名、下划线、大小写、注释
      代码风格规范的原则是简明、易读、无二异性。
      (2)代码设计规范:不光是程序书写的格式问题,而且牵涉到程序设计、模块之间的关系、设计模式等方方面面。主要体现在以下几个方面:
      函数
      goto
      错误处理:参数处理、断言、
      如何处理C++中的类:类、class vs.struct、公共/保护/私有成员(public、protected和private)、数据成员、虚函数、构造函数、折构函数、new和delete、运算符(Operators)、异常(Exceptions)、类型继承(Class Inheritance)
      (3)代码复审:查看代码是否符合代码规范,找出软件开发过程中的错误,降低软件开发后期维护的难度,提高软件的质量和可靠性。
      (4)结对编程:结对编程中有两个角色:领航员和驾驶员。在个人编写的过程中,很多人喜欢根据个人喜好来规定代码规范,而且存在的bug自己难以发现,因此,在结对编程时,我们可以互换角色,在开始写代码之前,规定两个人都认可的一套代码规范,并且不间断地进行复审,以减少软件中存在的问题,修复bug,提高软件质量。
  • 任务2:两两自由结对,对结对方《实验二 软件工程个人项目》的项目成果进行评价,具体要求如下:

    • (1)对项目博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,将以上评论内容发布到博客评论区。
      完成情况:已按要求完成,结对方实验二作业博客链接:(https://www.cnblogs.com/-8tjj/p/14576097.html)
    • (2)克隆结对方项目源码到本地机器,阅读并测试运行代码,参照《现代软件工程—构建之法》4.4.3节核查表复审同伴项目代码并记录。
      完成情况:按要求测试结对方的代码,运行截图如下:

      复审同伴项目代码并记录:
      1、概要部分
      (1)代码符合需求和规格说明么?
      代码符合需求
      (2)代码设计是否考虑周全?
      考虑较周全
      (3)代码可读性如何?
      可以顺利读下去
      (4)代码容易维护么?
      比较容易维护
      (5)代码的每一行都执行并检查过了吗?
      是的,都可以执行
      2.代码规范部分
      修改的部分符合代码标准和风格么?
      符合
      3.可读性
      代码可读性如何?有没有足够的注释?
      可以顺利读取
      4.可测试性
      可以测试运行出来结果
    • (3)依据复审结果尝试利用github的Fork、Clone、Push、Pull request、Merge pull request等操作对同伴个人项目仓库的源码进行合作修改。
  • 任务3:采用两人结对编程方式,设计开发一款D{0-1}KP 实例数据集算法实验平台,使之具有以下功能:
    (1)平台基础功能:实验二 任务3;
    (2)D{0-1}KP 实例数据集需存储在数据库;
    (3)平台可动态嵌入任何一个有效的D{0-1}KP 实例求解算法,并保存算法实验日志数据;
    (4)人机交互界面要求为GUI界面(WEB页面、APP页面都可);
    (5)查阅资料,设计遗传算法求解D{0-1}KP,并利用此算法测试要求(3);
    (6)附加功能:除(1)-(5)外的任意有效平台功能实现。
    结对编程项目实施要求及代码部分评分细则(30分):

结对编程讨论照片:

结对编程开发进度计划的要求:在项目正式之前,预估本次结对项目任务的PSP环节的消耗时间,并在PSP过程中统计实际耗时,填写PSP表格。
psp表格:

PSP3.1 任务内容 计划共完成需要的时间(h) 实际完成需要的时间(h)
Planning 计划 5 7
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 6 9
Development 开发 15
Analysis 需求分析 (包括学习新技术) 2 6
Design Spec 生成设计文档 2
Design Review 设计复审 (和同事审核设计文档) 10
Coding Standard 代码规范 (为目前的开发制定合适的规范) 10
Design 具体设计 22
Coding 具体编码 34
Code Review 代码复审 11
Test 测试(自我测试,修改代码,提交修改) 2
Reporting 报告 2
Test Report 测试报告 2
Size Measurement 计算工作量 1
Postmortem & Process Improvement Plan 事后总结 ,并提出过程改进计划 1
  • 任务4:完成结对项目报告博文作业(30分,以下给出评分细目)
    总结:其实结对编程做起来很简单也很有趣,两个人不断的交流,整个的设计思想两个人都能体会理解。一个人操作,一个人观看,由于人的思维速度是快于输入代码的速度的。那么观看的人可以有空闲的时间做额外的思考,观察代码写的有没有问题,结构有没有问题,完成了更高质量的代码。程序编的不那么容易出BUG,而且代码也写得更为优雅和紧凑。在结对过程中相互转换位置,两个人都能熟悉每个模块,如果单独工作,在遇到困难的时候,并不是所有人都立刻积极地去解决问题,但结对编程有一种相互督促的作用,在一边工作疲惫状态不好使,另一边会起一个鼓励和激发斗志的作用。在结对过程我也看到了自己能力上的缺陷,以前学习的时候重视理论课而疏于实践课,导致和别人在动手实践上面的差距,需要及时的弥补自己,由于编程能力弱,最后没有设计实现这次的实验内容。
posted @ 2021-04-13 23:10  祁英红Q  阅读(66)  评论(0编辑  收藏  举报