(1)Fork github 项目https://github.com/Cherish599/PairProgramming到本身的仓库,在Github仓库中新建一个以一位同窗的学号为名的文件夹,用于创建C#的项目和第二次做业相似。(结对的两人中任意一人的学号均可以)。
(2)在开始实现程序以前,在PSP表格[附录1]记录下你估计在程序开发各个步骤上耗费的时间,在你实现程序以后,在PSP表格记录下你在程序的各个模块上实际花费的时间。
(3)使用C#语言实现,C#请使用Visual Studio Community 2017进行开发。html
(1)在文章开头给出结对使用的Github项目地址和结对伙伴的做业地址。(两我的使用同一个)注意:GitHub的地址必须是用于clone的地址即以下图片中的地方获取。(若是不是这个地址,助教就没法批量编译运行大家的程序,出现问题的都会被助教抽中询问详情)git
描述结对的过程,提供非摆拍的两人在讨论的结对照片(一块儿工做编码时的照片)。
(3)给出结对的PSP表格。github
注:两人都要提交博客,结对共同部分,可在其中一我的的博客给出(另外一我的给出连接),不一样部分分别写在本身的博客中。算法
二、实现班级学生的随机点名函数
二、体现分层思想工具
(1) 在文章开头给出大家Fork仓库的Github项目地址。(5')
(2) 在开始实现程序以前,在下述PSP表格记录下你估计将在程序的各个模块的开发上耗费的时间。(5')
(3) 计算模块接口的设计与实现过程。 设计包括代码如何组织,好比会有几个类,几个函数,他们之间关系如何,关键函数是否须要画出流程图?说明你的算法的关键(没必要列出源代码),以及独到之处。并讲讲你的设计是如何体现“Design by Contract”、“Information Hiding”、 “Interface Design”、 “Loose Coupling”等原则的。(45)
(4) 代码复审过程。代码互审状况、发现的问题等。(15‘)
(5) 计算模块部分单元测试展现。 展现出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路。并将单元测试获得的测试覆盖率截图,发表在博客中。(15')
(6) 描述结对的过程,提供非摆拍的两人在讨论的结对照片。(5')
(7) 在你实现完程序以后,在附录提供的PSP表格记录下你在程序的各个模块上实际花费的时间。(5')
(8) 附加功能(5)单元测试
PSP是卡耐基梅隆大学(CMU)的专家们针对软件工程师所提出的一套模型:Personal Software Process (PSP, 我的开发流程,或称个体软件过程)。学习
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | ||
· Estimate | · 估计这个任务须要多少时间 | ||
Development | 开发 | ||
· Analysis | · 需求分析 (包括学习新技术) | ||
· Design Spec | · 生成设计文档 | ||
· Design Review | · 设计复审 (和同事审核设计文档) | ||
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | ||
· Design | · 具体设计 | ||
· Coding | · 具体编码 | ||
· Code Review | · 代码复审 | ||
· Test | · 测试(自我测试,修改代码,提交修改) | ||
Reporting | 报告 | ||
· Test Report | · 测试报告 | ||
· Size Measurement | · 计算工做量 | ||
· Postmortem & Process Improvement Plan | · 过后总结, 并提出过程改进计划 | ||
合计 |
请阅读邹欣老师的博客:源代码管理,了解源代码管理的10个实践问题。
本次做业要求使用Github进行源代码管理,代码有进展即签入Github。签入记录不合理的项目会被助教抽查询问项目细节。
对代码签入的具体要求以下:根据需求划分功能后,每作完一个功能,编译成功后,应至少commit一次。本例中,至少应区分基本功能和扩展功能,即分别针对基本功能、扩展功能,编译成功后,总共至少应commit两次。具体的功能划分,请自行定义,并在撰写博客时体现出来,遵循本身对需求的功能划分来提交代码便可。
对Commit不是很熟悉的话,请阅读阮一峰的博客:Commit message 和 Change log 编写指南,了解更多细节。测试
请根据本身以往积累的测试经验,在编码完成以后,提交产品以前,设计测试用例,并编写单元测试,对本身的项目进行测试。
首先,至少应采用白盒测试用例设计方法来设计测试用例,其余测试方法不限。其次,要设计至少10个测试用例,确保你的程序可以正确处理各类状况。最后,结合测试评估的要求,对本身的测试设计进行评价,这些测试用例能知足该程序测试的要求吗?
另外一个重要的措施是要把单元测试自动化,这样每一个人都能很容易地运行它,而且可使单元测试天天都运行。每一个人均可以随时在本身的机器上运行。团队通常是在每日构建中运行单元测试的,这样每一个单元测试的错误就能及时被发现并获得修改。
推荐阅读邹欣老师关于单元测试和回归测试的博客:
http://www.cnblogs.com/xinz/archive/2011/11/20/2255830.html编码
(1)代码不要出现抄袭或者直接拷贝的现象,一旦发现做业将没有成绩。(容许模仿,但必定要有本身的理解和改进) (2)确保代码可以运行经过,代码不能经过,则博客成绩最多给60分。 (3)博客要体现出本身的思想,每一个人遇到的问题和解决方法以及感得到的感觉都应是不同的,博客出现抄袭或者拷贝现象,一旦发现做业将没有成绩。