Week4——结对练习&团队作业1
Deadline:
2017-10-14 10:00PM,以博客发表日期为准。
评分基准:
- 按时交 - 有分(结对代码-10分,结对博客-10分,团队博客-10分),检查的项目包括后文的三个方面
- 按要求完成结对练习博客(基本分5分,根据完成质量加分,原则上不超过满分10分)
- 按要求完成结对练习代码(基本分5分,根据代码质量加分,原则上不超过满分10分)
- 按题目要求完成团队博客注册(1分)
- 完成团队展示和计划(基本分5分,根据完成质量加分,原则上不超过满分10分)
- 晚交 - 0分
- 迟交两周以上 - 倒扣本次作业分数
- 抄袭 - 倒扣本次作业分数
Task1:结对代码练习
- 将https://gitee.com/happyfaye/Calculator项目fork到自己的项目下;
- 阅读
CalString
类,分析四则运算的实现原理,了解代码审查工具,编写测试用例,进行单元测试,分析代码覆盖率; - 阅读
Calculator
类,主要实现两个操作数的加减乘除运算,结合CalString
类,扩展Calculator
类实现四则混合运算。类的分析可用思维导图,参考:http://www.cnblogs.com/hts-technology/p/6490667.html; - 附加题:扩展
Calculator
类的图形界面,包括“(、)”运算符,实现四则混合运算; - 结对编程实现上述功能。
在两人合作的过程中, 请看下面的内容:
a. 满足代码风格规范和代码设计规范(参考书第4章4.1-4.3内容)http://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html
b. 给人提意见的方式——送一个汉堡包http://www.cnblogs.com/xinz/archive/2011/08/22/2148776.html
- 请重视这点,在开发时两个人要有口头上的沟通:“好的,我们一起在开发中遵守一起认可的编码规范”
- 请把你们约定的编码规范文档也提交到gitc. 理解领航员和驾驶员两种角色关系,并在结对编程中两个人轮流做对方的角色。两人都必须参与本次作业的编码工作,并在git提交日志上体现这点。
参考示例:http://www.cnblogs.com/circlek/p/6528722.html
Task2:结对练习博客
提交的博客(两个同学都要写)必须完整包含下面内容:
a. 需求分析:测试上有哪些详细的需求?b. 设计测试框架, 模拟测试数据:
- (1) 请给出计算模块的测试用例及运行结果
(2) 描述测试过程中遇到的问题以及解决的方案。
(3) 请展示上面描述的单元测试的每个环节。
d. 体会代码规范要求
- (1) 良好的设计
(2) 编码规范
(3) 必要的注释
- (1) 请给出计算模块的测试用例及运行结果
- 在随笔开头,备注两个同学的学号。
- 提供项目开发的码云地址。
提供此次结对作业的PSP。
个人软件过程:
- 在开始实现程序之前,理解下Personal Software Process Stages(http://www.cnblogs.com/xinz/archive/2011/10/22/2220872.html)
- 在开始实现程序之前,请使用以下PSP表格,在第3列填上自己对每个环节的估计时间(单位:分钟).
- 在做每个环节的过程中,请在第4列填上对应环节的实际消耗时间(单位:分钟).
在软件开发中,掌握估计时间是一项重要的技能,请通过PSP表格做到
a.厘清开发的完整环节,争取在每个环节都有实际的工作,一开始边界不清楚是正常的,但请尝试按自己的理解去努力在对应环节做实际的工作。
b.预估每个环节的时间,并真实统计这些环节的耗时,在完成后输出完整的PSP耗时估计表。
c.注意:该表格是给自己看的,不要伪造数据!
d.PSP模版表格如下,第3列和第4列分别对应第2列条目的估计时间和真实时间,模版表格里的时间只是示意。
PSP2.1 | Personal Software Process Stages | Estimate Time (单位:分钟) | Actual Time (单位:分钟) |
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 |
· | 测试报告 | 3 | 2 |
· | 计算工作量 | 2 | 1 |
· | 并提出过程改进计划 | 3 | 3 |
Task3:注册团队博客账号
- 目的:提交每次团队作业
- 安科网地址:http://www.cnblogs.com/
- 班级博客:https://edu.cnblogs.com/campus/jmu/2016SEM
Task4:团队展示
根据5-6人的组队要求,每个队伍创建团队博客并发表一篇随笔,包括:
- 队名;
- 队员学号(标记组长);
- 拟作的团队项目描述:一句话;
队员风采:介绍每一队员的风格、擅长的技术、编程的兴趣、希望的软工角色(开发、测试、PM等)、一句话宣言等;请阅读第7章:MSF(Microsoft Solution Framework),理解MSF的9点的基本原则,例如:
a. 为共同的远景而工作
b. 充分授权和信任
c. 各司其职,为项目共同负责
- 团队的首次合照(有图有真相,合照风格可以发挥创意);
团队的特色描述,主要描述有别于其他所有团队的特点或核心竞争力,言简意赅。
Task5:团队计划
根据发布的项目时间规划,初步确立团队任务计划,将团队的任务计划添加到码云的团队项目任务里,要求:
- PM组织成员快速阅览《构建之法》第8章到第15章关于“软件开发完整生命周期”的相关章节,对项目做时间安排。同时请参考下面的团队项目每周环节进度表。
- 必须使用《构建之法》“计划和估计” 一节中提到的讨论方法和耗时估计公式来矫正计划的时间表,为每个环节定制好时间。并注意,不要贪图做太多的功能,而是要把关键的场景实现了。
参考链接
http://www.cnblogs.com/xinz/archive/2011/05/01/2033927.html
团队项目很难么?别的同学做难度更大的要求都完成了(10 个SCRUM):
http://www.cnblogs.com/teamftd/p/4929007.html
参考链接:
- GitHub团队项目合作例子:http://www.cnblogs.com/schaepher/p/4933873.html
- 团队git仓库初始化的例子:http://www.cnblogs.com/greyzeng/p/6044837.html