第三次作业——结对编程
一、地址
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
第三次作业——结对编程相关推荐
- ASE第三次作业——结对编程
ASE第三次作业--结对编程 成员:张贺 杨涛 石恩升 github地址:https://github.com/ThomasMrY/ASE-project-MSRA 题目简介: 此次编程的题目是--统 ...
- 第三次作业-结对编程
Github项目地址:https://github.com/WHYNOTEN/WordCount.git 合作同学作业地址:https://www.cnblogs.com/Mchandu/p/1065 ...
- 北航2022软件工程第三次作业——结对编程(最长英语单词链)
软件工程第三次结对编程作业 项目 内容 这个作业属于哪个课程 北京航空航天大学2022春季软件工程(罗杰 任健) 这个作业的要求在哪里 结对编程项目-最长英语单词链 我在这个课程的目标是 学习软件工程 ...
- 软工第三次作业-结对编程
结对项目-最长英语单词链 哈哈,这次记住了,来,初始化! 项目 内容 这个作业属于哪个课程 2023年北航敏捷软件工程社区 这个作业的要求在哪里 结对项目-最长英语单词链 我在这个课程的目标是 学习软 ...
- 罗杰软工第三次作业——结对编程
BUAA-2023软件工程结对编程博客作业 项目 这个作业属于哪个课程 2023北航敏捷软件工程 这个作业的要求在哪里 结对项目-最长英语单词链 我在这个课程的目标是 学习并实践软件工程开发的方法论. ...
- 软工第三次作业——结对编程之最长单词链
项目 内容 这个作业属于哪个课程 2023北航敏捷软工 这个作业的要求在哪里 结对项目-最长单词链 我在这个课程的目标是 学习软件工程理论,在实践中体会并运用软件工程理论,收获团队开发和软件工程实践经 ...
- [2022软工第三次作业]结对编程项目——最长英语单词链
项目 内容 本作业所属课程 2022年北航敏捷软件工程教学实践 本作业要求 结对编程项目-最长英语单词链 个人课程目标 学习到软件工程的方法论,了解整个过程,并进行亲自实践 本作业在哪个具体方面帮助我 ...
- 软件工程第三次作业 结对编程
结对编程 小组成员: 201521123055 林一心 博客地址 201521123046 张杭镖 博客地址 项目地址 一.分析改进现有代码 1.单元测试: 2.覆盖率: 3.确定当前设计的一个弱点, ...
- 20172303 20172322 2017-2018-2 暑假作业 结对编程项目-舒尔特方格(及获小黄衫感想)...
20172303 20172322 2017-2018-2 暑假作业 结对编程项目-舒尔特方格(及获小黄衫感想) 项目介绍 结对伙伴 姓名:张昊然 学号:20172322 舒尔特方格简介 舒尔特方格是 ...
最新文章
- PostgreSQL — 安装
- 稳扎稳打Silverlight(17) - 2.0数据之详解DataGrid, 绑定数据到ListBox
- 操作系统(三十)避免死锁
- Android使用READ_CONTACTS读取手机联系人
- java 动态转换器,Java 编程的动态性,第 5 部分: 动态转换类
- java final const_Java 中的final 和C++ 中的const 有什么区别?
- sicily 1156 ——虽然Wrong error(原因尚未查明),但温习了一下基础知识
- “9元课程”拼凑起来的暑假和K12在线教育企业的生死营销战
- docker nginx 命令。
- c语言编译器官网,C语言编译器app_c语言编译器app官网下载_c语言编译器手机版app-多特软件站安卓网...
- iozone联机测试
- javascript继承的6种方法
- 网络请求框架 -- 理解Https
- 元宇宙开发者的乐园 解析元宇宙协议Caduceus生态价值
- excel股票今日走势计算机,有没有可以在excel上自动显示股票实时数据的方法
- List,Set,Map集合总结
- 【DNS域名解析服务】
- 大学计算机专业个人介绍 英语翻译,哪位高手帮我翻译一下个人简历个人简介br/作为一名计算机专业 爱问知识人...
- Android 夜间模式实现
- 【原创】常用元器件(电阻)选型之E系列阻值列表
热门文章
- python类是实例的工厂_Python设计模式之工厂方法模式实例详解
- python随机生成字符串_Python 2.6中的随机字符串(可以吗?)
- python爬取本地天气信息_用Python写一个爬取中国天气网的终端版天气预报爬虫
- cassandra hbase_为什么选择Cassandra
- php怎么刷新缓存,ZZ PHP立即刷新缓存(输出)的方法
- java log4j mysql_java – 配置log4j属性文件以存储在mysql数据库中
- 省二c语言笔试试卷,2005年春浙省二级C语言笔试试卷.doc
- console.log(text)打印不出来的值,用console.log(text.length)却打印出来长度为1?
- git branch set-upstream master 分支名/master
- 解决Cannot resolve method ‘createDataSource‘ in ‘DruidDataSourceFactor