Deadline:2018-4-4 10:00,以博客发表日期为准html
评分标准:git
- 未提交项目源码到Github上,代码部分不得分;未提交博客到班级博客上,博客部分不得分;github
- 根据项目完成质量累计加分,完成基本功能原则上不超过满分15分,完成软件的附加功能,给予加分;编程
- 代码提交(代码规范,不然倒扣分);小程序
- 这次做业为结对项目,单干户不得分;app
- 结对编程两位同窗代码部分分数一致,博客部分分别评分。编程语言
- 博文规范(行文清晰流畅,若是行文中涉及代码,请使用博客园自带的代码控件,或使用MarkDown的语法块)ide
一、实验目的与要求工具
(1)练习结对编程(Pair programming),体验软件项目开发中的两人合做。学习
(2)掌握Github上增量发布软件的操做方法。
题目来源参考:
http://www.cnblogs.com/happyzm/p/6509116.html(集美大学)
http://www.cnblogs.com/xinz/p/7417960.html(邹欣老师)
http://www.cnblogs.com/vertextao/p/6896953.html(张栋老师)
二、实验环境要求
编程语言使用Java
开发工具:Elipse或Myelipse
三、实验相关知识
关于结对编程(阅读教材第4章内容):
如下图片是一个结对编程场景:两位学习伙伴坐在一块儿,面对着同一台显示器,使用着同一键盘,同一个鼠标,他们一块儿思考问题,一块儿分析问题,一块儿编写程序。
同窗们是否尝试过结对编程的软件开发模式:本次实验就让咱们来体验一下结对编程的魅力。
关于结对编程的阐述可参见如下连接:
http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html
http://en.wikipedia.org/wiki/Pair_programming
关于工具:
在软件开发中,要善于学习和使用工具来辅助软件设计。本次实验请开始尝试使用类图设计程序中模块之间的关系。关于类图,参见:http://blog.csdn.net/xx326664162/article/details/50475352
类图的经常使用绘制工具备:Visio 、Rational Rose、PowerDesign,建议同窗们采用轻量级的Visio。
四、实验内容和步骤采用
任务1:
在《实验二 软件工程我的项目》中,同窗们实现了一个命令行四则运算出题小程序,本次实验采用结对编程方式,设计开发一个小学生四则运算练习软件,使之具备如下功能:
(1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分;
(2)题库文件可采用实验二的方式自动生成,也能够手工编辑生成,文本格式以下:
(3)程序为用户提供三种进阶四则运算练习功能选择:百之内整数算式(必作)、带括号算式、真分数算式练习;
(4)程序容许用户进行多轮测试,提供用户多轮测试分数柱状图,示例以下:
(5)程序记录用户答题结果,当程序退出再启动的时候,可为用户显示最后一次测试的结果,并询问用户能否进行新一轮的测试;
(6)测试有计时功能,测试时动态显示用户开始答题后的消耗时间。
(7)程序人机交互界面是GUI界面(WEB页面、APP页面均可),界面支持中文简体(必作)/中文繁体/英语,用户能够进行语种选择。
任务一结对编程实施要求:
对于结对编程进度计划的要求:在程序正式开发以前,请先预估本次结对编程任务的PSP环节的消耗时间,并在PSP过程当中统计实际耗时,填写PSP表格。
对于结对编程中代码设计规范的要求参见:http://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html
编撰任务一结对编程时两我的遵照共同承认的编码规范,并提交到github项目仓库中。
对于结对编程两我的沟通的技巧:
尝试采用制做汉堡包法实施项目结对中两我的的沟通。
关于汉堡包法的阐述参见:http://www.cnblogs.com/xinz/archive/2011/08/22/2148776.html
理解领航员和驾驶员两种角色关系:两人都必须参与程序的编码工做,在结对编程中两我的轮流作对方的角色。要在github代码提交日志上体现两人合做过程。
任务2:
Github如何托管项目?
参考文章:http://www.cnblogs.com/edisonchou/p/5990875.html
学习视频:https://www.bilibili.com/video/av10475153/
任务3:完成结对项目报告博文做业
博文名称要求:学号1/学号2《小学四则运算练习软件》结对项目报告;
博文中要有任务1源码在Github的仓库主页连接地址;
博文(两个同窗都要写)做为结对项目实施过程的文字资料,请完整包含下面8个部分:
a. 需求分析:
b. 软件设计:使用类图。
c. 核心功能代码展现:展现核心功能代码。
d. 程序运行:程序运行时每一个功能界面截图。
e.描述结对的过程,提供两人在讨论、细化和编程时的结对照片(非摆拍)。
f.提供这次结对做业的PSP。
PSP2.1 |
任务内容 |
计划共完成须要的时间(min) |
实际完成须要的时间(min) |
Planning |
计划 |
8 |
6 |
· Estimate |
· 估计这个任务须要多少时间,并规划大体工做步骤 |
8 |
6 |
Development |
开发 |
82 |
88 |
·· Analysis |
需求分析 (包括学习新技术) |
6 |
10 |
· Design Spec |
· 生成设计文档 |
5 |
6 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
4 |
6 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
3 |
3 |
· Design |
具体设计 |
10 |
12 |
· Coding |
具体编码 |
36 |
21 |
· Code Review |
· 代码复审 |
7 |
9 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
13 |
21 |
Reporting |
报告 |
9 |
6 |
·· Test Report |
· 测试报告 |
3 |
2 |
· Size Measurement |
计算工做量 |
2 |
1 |
· Postmortem & Process Improvement Plan |
· 过后总结 ,并提出过程改进计划 |
3 |
3 |
g. 请使用汉堡评价法给你的小伙伴一些点评。汉堡评价法:http://www.cnblogs.com/xinz/archive/2011/08/22/2148776.html
h. 结对编程真的可以带来1+1>2的效果吗?经过此次结对编程,请谈谈你的感觉和体会。