第四次作业—结对编程

软件工程第四次作业——结对编程

一、结对编程队友

| GITHUB地址 | https://github.com/xxxy7280/WordCount| |
| ------------ | ------------ |
| 结对编程队友 | 201831061307 |
| 好友博客 | https://www.cnblogs.com/xxxy7280/p/11660510.html |

二、psp表格

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

三、结对编程

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

思维导图

除主函数外,此程序设计了六个基本模块,
Characres():实现字符统计
Word_s():统计单词
Line():统计行数
All():实现所有输出功能
Output():输出结果到文件
对关键函数-统计词频函数按如下思维

2、代码复审

代码规范:

1、在进行变量名和函数名的定义的时候加上必要的注释,注明其作用与功能
2、在函数代码中,在必要的地方添加说明,便于理解查错
3、全局变量必须定义在开头,使用时便于知道其意义
4、缩进时使用tab键(有的时候需要自己缩进)
5、括号的使用很有必要,标注优先级
6、再给变量赋值时,一个变量一行
7、再有意义相同变量时,在其结尾添加数字用于区分
参考网址:C语言代码规范(编程规范)
两人互审中发现的问题:
我:
1.定义变量时有时候不解释其意义
2.关键功能处不加以说明,同伴阅读困难
3.有的时候忘了缩进,代码不雅观
队友:
1.多定义了一些变量,未使用也未删除
2.编写函数时不解释其功能

3、效能分析及其改进

效能分析图片

改进

从图片上分析来看,算是达到了预期,也尝试过进行改进,但都没有什么办法可以有效地改进(知识面狭窄)。

4.计算模块单元测试

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

测试单词个数

此时向Word_s中添加如下代码

errno_t  err;
err = fopen_s(&fp, "D:\\WordCount\\201831061307\\Count\\input.txt", "r+");

测试代码:

#include "stdafx.h"
#include "CppUnitTest.h"
#include"D:\WordCount\201831061307\Count\Count\Count.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace CountUnitTest1
{		
	TEST_CLASS(UnitTest1)
	{

	public:
		TEST_METHOD(TestMethod1)
		{
			Cal x;
			int count = 107;
			Assert::AreEqual(x.Word_s(),count);// TODO: 在此输入测试代码
		}

	};
}

测试结果:

测试行数

TEST_METHOD(TestMethod3)
		{
			Cal x;
			int count = 5;
			Assert::AreEqual(x.Lines(), count);// TODO: 在此输入测试代码
		}

如果有空行 忽略

测试字符数

TEST_METHOD(TestMethod2)
		{
			Cal x;
			int count = 505;
			Assert::AreEqual(x.Characters(), count);// TODO: 在此输入测试代码
		}

测试结果

5、单元测试异常介绍

这里直接使用队友的博客https://www.cnblogs.com/xxxy7280/p/11660510.html

6、结队编程过程

这一次作业,两个人全程交流,一起解决问题,发现问题,但也各自承担着应有的责任,从分析到作业结束两个人一直参与。

四、总结

在这次结对编程中,两个人的力量确是也比一个人大得多,虽然也有困难,但两个人解决困难总归要比一个人解决困难来的快来的轻松,但就我个人而言,算是拖了队友的后腿(差点就把腿拖断了),在这里我要感谢我的队友,感谢大哥带我学习。从队友那里我也学到了不一样的解决问题的思路,真切的感受到了1+1>2的感觉

posted @ 2019-10-12 17:35  织琳琅  阅读(142)  评论(0编辑  收藏  举报