实验三  软件工程结对项目

实验时间(师范):2021-4-1

实验时间(卓越工程师班): 2021-4-2

Deadline:2020-4-14 10:00,以博客发表日期为准

评分标准:

  •  按时交 - 有分(满分100分),检查项目包括:
  • 任务2部分(40分,代码和博客各20分)
  • 任务3-任务4部分(60分,代码和博客各30分)
  • 未提交项目源码到Github,代码部分不得分;未提交博客到班级博客上,博客部分不得分;
  • 任务3根据项目完成质量累计加分,完成基本功能原则上不超过满分60分,完成附加功能,给予加分;
  • 代码提交(代码规范,否则倒扣分);
  • 博文规范(行文清晰流畅,如果行文中涉及代码,请使用博客园自带的代码控件,或使用MarkDown的语法块)
  • 抄袭 - 倒扣本次作业分数

1、实验目的与要求

(1)体验软件项目开发中的两人合作,练习结对编程(Pair programming)。

(2)掌握Github协作开发程序的操作方法。

2、实验内容和步骤

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

任务2:两两自由结对,对结对方《实验二 软件工程个人项目》的项目成果进行评价,具体要求如下:

(1)对项目博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,将以上评论内容发布到博客评论区。

(2)克隆结对方项目源码到本地机器,阅读并测试运行代码,参照《现代软件工程—构建之法》4.4.3节核查表复审同伴项目代码并记录。

(3)依据复审结果尝试利用github的Fork、Clone、Push、Pull request、Merge pull request等操作对同伴个人项目仓库的源码进行合作修改。

博客作业中针对任务2的评分要点:

  1. 结对方博客链接(1分);
  2. 结对方Github项目仓库链接(1分);
  3. 符合(1)要求的博客评论(18分);
  4. 符合(2)要求的代码核查表(15分);
  5. 结对方项目仓库中的Fork、Clone、Push、Pull request、Merge pull request日志数据(5分)

任务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分):

  1. 结对编程开发进度计划的要求:在项目正式之前,预估本次结对项目任务的PSP环节的消耗时间,并在PSP过程中统计实际耗时,填写PSP表格。
  2. 尝试采用汉堡包法实施项目结对中两个人的沟通,关于汉堡包法的阐述参见:http://www.cnblogs.com/xinz/archive/2011/08/22/2148776.html
  3. 理解领航员和驾驶员两种角色关系:两人都必须参与编码工作,在结对编程中两个人轮流做对方的角色。
  4. 将结对编程项目的源码以增量方式提交到指定同学Github账号的项目仓库中,Github结对项目仓库的代码提交日志要体现两人合作过程,项目仓库中要能看到项目多次commit的记录,和两人各自的commit记录。(5分)
  5. 项目必须包含src文件夹;
  6. 编撰两人合作开发遵守共同认可的编码规范,提交项目代码规范文档到Github项目仓库根目录下。(5分)
  7. 程序功能评测。( 20分)

任务4:完成结对项目报告博文作业(30分,以下给出评分细目)

博文作业格式符合以下要求:       

博文名称:学号-姓名 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告(1分)

博文开头格式:(1分)

项目

内容

课程班级博客链接

<填写课程班级博客链接>

这个作业要求链接

<填写作业要求链接>

我的课程学习目标

<填写目标>

这个作业在哪些方面帮助我实现学习目标

<填写相关内容>

结对方学号-姓名

<填写学号-姓名>

结对方本次博客作业链接

<填写地址>

本项目Github的仓库链接地址

<填写地址>

博文作为任务3结对编程任务总结的文字资料,需完整包含以下内容:

  1. 需求分析陈述。(5分)
  2. 软件设计说明。(5分)
  3. 软件实现及核心功能代码展示:软件包括哪些类,这些类分别负责什么功能,他们之间的关系怎样?类内有哪些重要的方法,关键的方法是否需要画出流程图?(5分)
  4. 程序运行:程序运行时每个功能界面截图。扩展功能实现可得附加分5分。(2分)
  5. 描述结对的过程,提供两人在讨论、细化和编程时的结对照片(非摆拍)。(3分)
  6. 提供此次结对作业的PSP。(4分)
  7. 小结感受:两人合作真的能够带来1+1>2的效果吗?通过这次结对合作,请谈谈你的感受和体会。(4分)