一、地址

GITH地址:https://github.com/haveadate/WordCount.git

结对伙伴的作业地址:https://www.cnblogs.com/haveadate/p/10652689.html

二、结对过程

在结对之后,选定了两方都有空的时间出来讨论,现制定了PSP表,然后根据各自水平,分配任务。各自的任务完成过后,先自审,再交由对方复审,然后汇总,封装成dll文件,进行单元测试和效能分析,并且改进代码,最后撰写博客。

三、PSP表

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

880

1395

· Estimate

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

880

1395

Development

开发

760

1270

· Analysis

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

40

50

· Design Spec

· 生成设计文档

30

35

· Design Review

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

50

60

· Coding Standard

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

20

15

· Design

· 具体设计

30

50

· Coding

· 具体编码

400

900

· Code Review

· 代码复审

60

40

· Test

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

100

120

Reporting

报告

120

125

· Test Report

· 测试报告

60

60

· Size Measurement

· 计算工作量

30

40

· Postmortem & Process Improvement Plan

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

30

25

合计

880

1395

四、思路

看到这个题目时,觉得很难,但是在和结对伙伴讨论之后,发现还是可以解决。首先就是读取文件,然后把它存进一个字符串里面,就可以进行统计字符个数,然后用字符串的Split方法分割成字符串数组,通过循环对每个字符串数组中的元素进行判断,针对这个判断我们又重新制定了一个方法,用于专门判断它是否是一个单词,其思路为再将字符串转化为字符数组,如果它符合条件,就count进去。还查找了关于命令行参数的资料。

五、设计实现过程

有一个对文件的操作类 class fileOperate,里面有统计字符个数方法charNumber()、统计单词个数方法wordNumber()、统计文件行数方法lineNumber()、统计单词频率方法wordTimes()。展示一下结对方写的判断一字符串是否是一个单词的isWords(string word)方法、获取文件中的频率最高的n个词的wordTimes(int n)方法、获取文件中指定词组的wordGroup(int len)方法的流程图:

由于此次的方法都是有返回值的,所以在单元测试部分,都是创建一个FileOperate的对象,然后通过调用相应的方法,然后使用断言判断进行单元测试。

六、代码规范

1. 命名规则:使用驼峰命名法。给类或函数或字段命名,使用具有相应中文意思的英文单词。

2. 分行:不把多条语句放在一行上,不把多个变量定义在一行上。

3. 断行与空白的{}行:”{“、”}”单独在一行。

4. 注释:在类或方法的上面使用文档注释,在方法中使用单行注释。

七、代码复审

因为本人负责的部分比较简单,所以没有什么太大的问题。

lineNumber()方法原来用的File类下的一个ReadAllLInes()方法,会把空白行也计算进去,所以在结对方的指导下,改成了下面的代码。

八、代码说明

读取文件,然后判断是否为空,用字符串来存,可以直接读取长度。

九、单元测试

大部分为结对方完成的测试 

   

 

  

十、说明

该部分由结对方完成

基本功能的实现:

  

  

  健壮性:

  

  基本实现了错误提示功能;

  新添功能: 仿照像cmd、matlab等等中的help命令:

  

  获得帮助路径不唯一:

  

十一、总结

此次结对项目令自己深刻认识到了与同学之间的差距,看来平时还是要多敲代码多思考。在本次作业中,复习了一下类库知识,如何封装,并且复习了一下上次作业的git push 等操作。还学习了新的知识,命令行参数。在同学的身上也看到了很多值得我学习的地方,这次的作业令我收获颇多。还要努力提高自己的水平,减轻合作伙伴的压力。

转载于:https://www.cnblogs.com/youthlll/p/10651526.html

第三次作业——结对编程相关推荐

  1. ASE第三次作业——结对编程

    ASE第三次作业--结对编程 成员:张贺 杨涛 石恩升 github地址:https://github.com/ThomasMrY/ASE-project-MSRA 题目简介: 此次编程的题目是--统 ...

  2. 第三次作业-结对编程

    Github项目地址:https://github.com/WHYNOTEN/WordCount.git 合作同学作业地址:https://www.cnblogs.com/Mchandu/p/1065 ...

  3. 北航2022软件工程第三次作业——结对编程(最长英语单词链)

    软件工程第三次结对编程作业 项目 内容 这个作业属于哪个课程 北京航空航天大学2022春季软件工程(罗杰 任健) 这个作业的要求在哪里 结对编程项目-最长英语单词链 我在这个课程的目标是 学习软件工程 ...

  4. 软工第三次作业-结对编程

    结对项目-最长英语单词链 哈哈,这次记住了,来,初始化! 项目 内容 这个作业属于哪个课程 2023年北航敏捷软件工程社区 这个作业的要求在哪里 结对项目-最长英语单词链 我在这个课程的目标是 学习软 ...

  5. 罗杰软工第三次作业——结对编程

    BUAA-2023软件工程结对编程博客作业 项目 这个作业属于哪个课程 2023北航敏捷软件工程 这个作业的要求在哪里 结对项目-最长英语单词链 我在这个课程的目标是 学习并实践软件工程开发的方法论. ...

  6. 软工第三次作业——结对编程之最长单词链

    项目 内容 这个作业属于哪个课程 2023北航敏捷软工 这个作业的要求在哪里 结对项目-最长单词链 我在这个课程的目标是 学习软件工程理论,在实践中体会并运用软件工程理论,收获团队开发和软件工程实践经 ...

  7. [2022软工第三次作业]结对编程项目——最长英语单词链

    项目 内容 本作业所属课程 2022年北航敏捷软件工程教学实践 本作业要求 结对编程项目-最长英语单词链 个人课程目标 学习到软件工程的方法论,了解整个过程,并进行亲自实践 本作业在哪个具体方面帮助我 ...

  8. 软件工程第三次作业 结对编程

    结对编程 小组成员: 201521123055 林一心 博客地址 201521123046 张杭镖 博客地址 项目地址 一.分析改进现有代码 1.单元测试: 2.覆盖率: 3.确定当前设计的一个弱点, ...

  9. 20172303 20172322 2017-2018-2 暑假作业 结对编程项目-舒尔特方格(及获小黄衫感想)...

    20172303 20172322 2017-2018-2 暑假作业 结对编程项目-舒尔特方格(及获小黄衫感想) 项目介绍 结对伙伴 姓名:张昊然 学号:20172322 舒尔特方格简介 舒尔特方格是 ...

最新文章

  1. PostgreSQL — 安装
  2. 稳扎稳打Silverlight(17) - 2.0数据之详解DataGrid, 绑定数据到ListBox
  3. 操作系统(三十)避免死锁
  4. Android使用READ_CONTACTS读取手机联系人
  5. java 动态转换器,Java 编程的动态性,第 5 部分: 动态转换类
  6. java final const_Java 中的final 和C++ 中的const 有什么区别?
  7. sicily 1156 ——虽然Wrong error(原因尚未查明),但温习了一下基础知识
  8. “9元课程”拼凑起来的暑假和K12在线教育企业的生死营销战
  9. docker nginx 命令。
  10. c语言编译器官网,C语言编译器app_c语言编译器app官网下载_c语言编译器手机版app-多特软件站安卓网...
  11. iozone联机测试
  12. javascript继承的6种方法
  13. 网络请求框架 -- 理解Https
  14. 元宇宙开发者的乐园 解析元宇宙协议Caduceus生态价值
  15. excel股票今日走势计算机,有没有可以在excel上自动显示股票实时数据的方法
  16. List,Set,Map集合总结
  17. 【DNS域名解析服务】
  18. 大学计算机专业个人介绍 英语翻译,哪位高手帮我翻译一下个人简历个人简介br/作为一名计算机专业 爱问知识人...
  19. Android 夜间模式实现
  20. 【原创】常用元器件(电阻)选型之E系列阻值列表

热门文章

  1. python类是实例的工厂_Python设计模式之工厂方法模式实例详解
  2. python随机生成字符串_Python 2.6中的随机字符串(可以吗?)
  3. python爬取本地天气信息_用Python写一个爬取中国天气网的终端版天气预报爬虫
  4. cassandra hbase_为什么选择Cassandra
  5. php怎么刷新缓存,ZZ PHP立即刷新缓存(输出)的方法
  6. java log4j mysql_java – 配置log4j属性文件以存储在mysql数据库中
  7. 省二c语言笔试试卷,2005年春浙省二级C语言笔试试卷.doc
  8. console.log(text)打印不出来的值,用console.log(text.length)却打印出来长度为1?
  9. git branch set-upstream master 分支名/master
  10. 解决Cannot resolve method ‘createDataSource‘ in ‘DruidDataSourceFactor