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

Fork仓库的Github项目地址 项目地址
学号尾号 24218
伙伴作业地址 伙伴地址

一、PSP表格

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

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

设计

由于项目功能比较简单,所以只需要设计两个类:窗口类,和骰子类。

  • 窗口类Form1:包含窗口中控件的事件触发时需要的方法;
  • 骰子类Touzi:用来表示骰子,包含属性num(表示骰子点数),方法Dice(表示掷骰子,功能是使num获得随机值)。

实现

实现过程中碰到很多难题,一开始不知道怎么显示图片,怎么播放音乐,b通过不断查阅资料,怎么不用详细路径打开文件,最终将这些问题一一解决。最终我们得到的程序与预想中的并无太大偏差。

代码原则体现

- Information Hiding
将骰子类中的num字段封装成Num属性。

三、代码复审过程

我们在编码过程中就是分别扮演驾驶员和领航员的角色,一人写代码,另外一人在一旁提醒,相当于写代码的时候就检查了一遍,加之我们的程序代码量少,所以复审过程中并没有发现什么问题。
不过我们在复审过程中发现代码可读性很低,因此增加了一些注释,同时尽量规范了代码。

四、计算模块部分单元测试展示

Touzi touzi = new Touzi();
        [TestMethod()]
        //测试Dice方法是否总是能赋予Num一个1到6的值
        public void DiceTest()
        {
            bool judge = true;
            for (int i = 0; i < 10; i++)
            {
                touzi.Dice();
                if (touzi.Num<1||touzi.Num>6)
                {
                    judge = false;
                }
            }
            Assert.IsTrue(judge);
        }

Touzi类中的Dice方法功能是掷骰子,使骰子获得随机点数,上面的代码是用来测试Touzi类中的Dice方法是否总是能赋予num一个1到6的值。
思路是通过for循环调用Dice方法10次,只要有一次不符合要求变不能通过测试。
在这里插入图片描述

五、结对的过程

结对过程中,我们共用一台电脑,一人负责编写代码,一人负责提醒,两人不断轮换角色。
在这里插入图片描述

六、附加功能

我们在程序中添加了炫酷的bgm,使游戏更加带感。

posted @ 2019-09-30 17:42  书山压力大大大大  阅读(203)  评论(1编辑  收藏  举报