实验三 软件工程结对项目
实验时间(师范):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分);
- 结对方Github项目仓库链接(1分);
- 符合(1)要求的博客评论(18分);
- 符合(2)要求的代码核查表(15分);
- 结对方项目仓库中的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分):
- 结对编程开发进度计划的要求:在项目正式之前,预估本次结对项目任务的PSP环节的消耗时间,并在PSP过程中统计实际耗时,填写PSP表格。
- 尝试采用汉堡包法实施项目结对中两个人的沟通,关于汉堡包法的阐述参见:http://www.cnblogs.com/xinz/archive/2011/08/22/2148776.html
- 理解领航员和驾驶员两种角色关系:两人都必须参与编码工作,在结对编程中两个人轮流做对方的角色。
- 将结对编程项目的源码以增量方式提交到指定同学Github账号的项目仓库中,Github结对项目仓库的代码提交日志要体现两人合作过程,项目仓库中要能看到项目多次commit的记录,和两人各自的commit记录。(5分)
- 项目必须包含src文件夹;
- 编撰两人合作开发遵守共同认可的编码规范,提交项目代码规范文档到Github项目仓库根目录下。(5分)
- 程序功能评测。( 20分)
任务4:完成结对项目报告博文作业(30分,以下给出评分细目)
博文作业格式符合以下要求:
博文名称:学号-姓名 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告(1分)
博文开头格式:(1分)
项目 |
内容 |
课程班级博客链接 |
<填写课程班级博客链接> |
这个作业要求链接 |
<填写作业要求链接> |
我的课程学习目标 |
<填写目标> |
这个作业在哪些方面帮助我实现学习目标 |
<填写相关内容> |
结对方学号-姓名 |
<填写学号-姓名> |
结对方本次博客作业链接 |
<填写地址> |
本项目Github的仓库链接地址 |
<填写地址> |
博文作为任务3结对编程任务总结的文字资料,需完整包含以下内容:
- 需求分析陈述。(5分)
- 软件设计说明。(5分)
- 软件实现及核心功能代码展示:软件包括哪些类,这些类分别负责什么功能,他们之间的关系怎样?类内有哪些重要的方法,关键的方法是否需要画出流程图?(5分)
- 程序运行:程序运行时每个功能界面截图。扩展功能实现可得附加分5分。(2分)
- 描述结对的过程,提供两人在讨论、细化和编程时的结对照片(非摆拍)。(3分)
- 提供此次结对作业的PSP。(4分)
- 小结感受:两人合作真的能够带来1+1>2的效果吗?通过这次结对合作,请谈谈你的感受和体会。(4分)