软工第四次作业--结对编程

Git地址  https://github.com/Ayanotc/WordCount.git
结对伙伴 郝振凯
学号  201831061122

PSP表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

 1440

 1500

· Estimate

· 估计这个任务需要多少时间

 800

 800

Development

开发

 800

 800

· Analysis

· 需求分析 (包括学习新技术)

 80

 80

· Design Spec

· 生成设计文档

 80

80 

· Design Review

· 设计复审 (和同事审核设计文档)

 60

60 

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

 60

80 

· Design

· 具体设计

 90

60 

· Coding

· 具体编码

 900

1440 

· Code Review

· 代码复审

 60

90 

· Test

· 测试(自我测试,修改代码,提交修改)

 90

90 

Reporting

报告

 60

60 

· Test Report

· 测试报告

 60

60 

· Size Measurement

· 计算工作量

 60

60 

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

 30

30 

合计

 1500

 1600


设计分析与实现

功能分析:

基本功能:

  • 统计文件的字符数:
  • 只需要统计Ascii码,汉字不需考虑
  • 空格,水平制表符,换行符,均算字符
  • 英文字母:A-Z,a-z
  • 字母数字符号:A-Z,a-z,0-9
  • 分割符:空格,非字母数字符号
  • 例:file123是一个单词,123file不是一个单词。file,File和FILE是同一个单词
  • 输出的单词统一为小写格式
  • 统计文件的单词总数,单词:至少以4个英文字母开头,跟上字母数字符号,单词以分隔符分割,不区分大小写。
  • 统计文件的有效行数:任何包含非空白字符的行,都需要统计。
  • 统计文件中各单词的出现次数,最终只输出频率最高的10个。频率相同的单词,优先输出字典序靠前的单词。
  • 按照字典序输出到文件txt:例如,windows95,windows98和windows2000同时出现时,则先输出windows2000

扩展功能:

a)     自定义输出:输出单词与其数量可以改变

编程实现:

与结对队友思考之后,建立初步想法,一开始想着还是通过现在学习的C++来实现编程。然后一起参考了一些论坛及博文关于wordcount的思路设计以及代码。最后决定用数据结构来存储数据,以指针来遍历要访问的文件,最后返回集合。结对队友负责主要访问计算过程的编码。队友负责收集整理数据代码的编写以及审计工作。结对队友更倾向于代码编写,我更多从事辅助整理工作。对于高级功能进行了尝试,但实在技术有限,只实现了部分功能,其他的错误有点多,没有实现。编写过程有一些是各自完成,因为不在一个寝室。大部分为一起以结对编程模式完成。

关于测试:测试过程为一起完成,这些在结对队友博客中显示,请参考结对队友博客

代码复审

代码复审:

  1,结对队友的代码还是比较整洁有序的,复审过程其实也是我们一起完成的。对于一些函数的参数以及返回,还有注释进行了重新整理。同时对一些错误进行了改正。

  2,对于一些比较混乱的代码,顺序不对的函数也重新进行了排序,一些较少的代码进行了合并处理。

  3,参考的代码规范:https://wenku.baidu.com/view/93ccae68011ca300a6c390fa.html?from=rec&pos=2

结对过程总结

  结对编程相比较一个人来说效率确实会提高很多,结对编程两个人都会更加认真,并且会大大减少编程的错误。可以互相学习编程技巧,在编程中,相互讨论,可以更快更有效地解决问题,互相请教对方,可以得到能力上的互补。确实感觉到两个人之间的不同习惯。结对伙伴的代码更加系统。在编程过程中也显得没有那么枯燥,两个人会有一些趣味。同时两个人也更有兴趣去探索新的东西。在审计过程中,对于错误的发现也会更加快速。通过此次结对编程的确感觉到了结对编程可以让1+1>2。

 

 
 
 

猜你喜欢

转载自www.cnblogs.com/ayanotc/p/11671603.html