个人第三次作业——结对编程

个人第三次作业——结对编程(黄耀萱、孙颖)

个人第三次作业 结对作业
Github项目地址 Github项目地址
结对伙伴的博客地址 小黄博客地址

一、PSP表格

PSP是卡耐基梅隆大学(CMU)的专家们针对软件工程师所提出的一套模型:Personal Software Process (PSP, 个人开发流程,或称个体软件过程)。

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 20 20
·Estimate · 估计这个任务需要多少时间 840 900
Development 开发 720 810
· Analysis · 需求分析 (包括学习新技术) 80 120
· Design Spec · 生成设计文档 10 10
· Design Review · 设计复审 (和同事审核设计文档) 10 10
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10 10
· Design · 具体设计 30 60
· Coding · 具体编码 360 360
· Code Review · 代码复审 60 60
· Test · 测试(自我测试,修改代码,提交修改) 180 180
Reporting 报告 130 190
· Test Report · 测试报告 60 120
· Size Measurement · 计算工作量 8 8
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 60 60
合计 2578 2918

●有关PSP的更多内容,请自行阅读邹欣老师的博客:
http://www.cnblogs.com/xinz/archive/2011/10/22/2220872.html

二、计算模块的设计与实现过程

1.设计

  该项目运用C#语言将学生信息录入,登录后进行数据加载,并实现实现点名功能。
这些功能总体由这几个部分组成:
(1)FrmLogin(登陆窗体)
个人第三次作业——结对编程_第1张图片
(2)FrmStudent(学生随机点名系统窗体)
个人第三次作业——结对编程_第2张图片
(3)Student、StudentDataset、StudentDAO类

2.原则

(1)Design By Contract(契约式设计):契约式设计就是按照某种规定对一些数据等做出约定,如果超出约定,程序将不再运行,例如要求输入的参数必须满足某种条件。
如何体现:设计在正确的输入下,能够得到正确的输出,否则程序将报错。
参考链接:https://baike.baidu.com/item/%E5%A5%91%E7%BA%A6%E5%BC%8F%E8%AE%BE%E8%AE%A1/2180000?fr=aladdin
该项目实现过程中的应用如图:
个人第三次作业——结对编程_第3张图片
(2)Information Hiding(信息隐藏):信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。
如何体现:C#中的访问修饰符分为public 、private、protected 、internal等,而修饰类的只有public和internal。
public:公开的、公共的;
private:私有的,只能在当前类的内部访问;
protected:受保护的,只能在当前类的内部及该类的子类中访问;
interal:只能在当前项目中访问。
(3)Interface Design(接口设计):对接口的名字,功能,接口与接口间的继承关系进行设计;好的接口设计可以增强代码可读性,易用性,可更改性。
如何体现:我们用的是项目之间的引用,并没有涉及到接口。
(4)Loose Coupling (松耦合):软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
如何体现:目前并没有达到很熟练的程度,模块之间联系并不是很紧密,耦合性较差。

3、实现

(1)登录界面代码设计
个人第三次作业——结对编程_第4张图片
(2)FrmStudent代码设计(学生随机点名系统窗体)个人第三次作业——结对编程_第5张图片
(3)创建学生表并实现调用,完成随机点名
个人第三次作业——结对编程_第6张图片
个人第三次作业——结对编程_第7张图片
个人第三次作业——结对编程_第8张图片

三、代码复审过程

1、C#代码编写规范:https://blog.csdn.net/VS18703761631/article/details/94615734
2、在代码复审过程中,我们互相检查排版是否正确,命名是否规范,包括方法的命名、控件的命名、类的命名等。

四、运行结果

个人第三次作业——结对编程_第9张图片
个人第三次作业——结对编程_第10张图片

五、单元测试展示

我们对 WinformControlUse 进行单元测试,结果如图:
个人第三次作业——结对编程_第11张图片

六、结对的过程及讨论的结对照片

1、结对过程:我们本为室友,上课及平时活动都在一起,讨论起来比较方便,因此结对。
2、讨论的结对照片:

七、总结与感想

☛☛该项目是我们第一次接触结对编程,虽然上课的时候老师带领我们一起完成了一遍窗体与代码的设计,但是当想到要自己独立完成时仍然有一些心理压力。在完成过程中,因为项目类型创建错误以及其他各种原因,我们进行了一次又一次的修改,最终也得到了期望的结果,还是有一点点小欣慰的。在本次结对过程中,我们两人分别负责不同的部分,在遇到困难时相互帮助,解决困难,体会到了1+1>2的感受,也让我们对结对编程的理解更加深入。

你可能感兴趣的:(个人第三次作业——结对编程)