结对编程-第9小组

1、Fork仓库的Github项目地址:

https://github.com/linlkg/PairProject2018

2、预估各个模块开发耗费的时间:

PSP2.1 PersonalSoftware Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 20 20
-Estimate -估计这个任务需要多少时间 20 20
Development 开发 230 303
-Analysis -需求分析(包括学习新技术) 20 25
-Design Spec -生成设计文档 20 25
-Design Review -设计复审(和同事审核设计文档) 5 8
-Coding Standard -代码规范(为目前的开发制定合适的规范) 10 10
-Design -具体设计 25 25
-Coding -具体编码 120 150
-Test -测试(自我测试,修改代码,提交修改) 30 60
Reporting 报告 80 105
-Test Report -测试报告 20 20
-Size Measurement -计算工作量 30 35
-Postmortem&Process Improvement Plan -事后分析,并提出过程改进计划 30 50
- 合计 330 428

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

-第一步:相关类设计

  • 读取输入输出文件类IOfile用于定义用户输入/输出的文件名和路径;
  • 单词类Word用于存储单词提取以及单词词频统计;
  • 词组类Phrase用于存储词组提取以及词组频度;
  • 接口类UserInterface用于存储用户输入的参数值;
  • 相关类图如下:

  • 第二步:相关操作函数
    • 提取单词函数getWord()用于根据分隔符将文件流中的单词提取出来并存储;
    • 统计单词频率函数countWord();
    • 排序输出单词频度函数sortWordOutput();
    • 提取指定长度词组getPhrase();
    • 统计词组频率函数countPhrase();
    • 排序输出词组频度函数sortPhraseOutput();

4、计算模块接口部分性能改进

-性能分析图(由VS 2017/JProfiler的性能分析工具自动生成)

5、计算模块部分测试结果

6、计算模块部分异常处理说明

读文件时若读取文件失败则抛异常

//读入TXT文件

try {

File file = new File(args[0]);

Scanner input = new Scanner(file);

String path = input.next();

List

7、关键代码分析

//单词的词频统计

//按value的大小进行排序并输出词频最高的前十个

//统计行数

8、描述结对的过程

结对体会:

  • 结对中汪璟玢充当领航员(Navigator)角色,林静充当驾驶员(Driver)角色。先是一起讨论做了大体类的设计和算法流程设计,接着林静就开始编程。两个人编程还是比一个人来的效率高些,有问题一起讨论,错误也第一时间被指出,特别是一开始的讨论,就先定义和封装了几个要用到的函数,避免了后期推翻修改,提高了开发效率。不过缺点也是有的,就是一个人在编程的时候,另一个人不好打扰,默默滴看,后面发现没有完全按照领航员的设计来实现。函数没有完全按照预期抽象出来,导致效能分析处有问题!设计当中的接口和新增功能未实现,但类图当中的设计将其抽象出来方便了后续的代码优化。
  • 这次的体会真的很深,实打实的结对,两人分工合作完成一个看似不难的任务,实际执行过程中还是遇到不少困难,结对的最大好处就在此处体现:在遇到困难的时候总是可以通过提醒和讨论解决之!

原文地址:https://www.cnblogs.com/linlkg/p/9286543.html

时间: 2024-10-18 15:01:09

结对编程-第9小组的相关文章

结对编程第4小组-词频统计

(项目源代码路径:https://github.com/miaozhongfeng/PairProject2018.git) 一.PSP表格预估时间花费 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划     · Estimate · 估计这个任务需要多少时间 30 30 Development 开发     · Analysis · 需求分析 (包括学习新技术) 30 30 · Design Spec

结对编程心得

结对编程是我第一次听说到的一个编程方式,结对编程就是两个人组成一个小队伍进行编程,是一种新的编程思想.结对编程的优点有以下这几点第一点,就是思考问题的角度,一个人思考问题肯定没有两个人思考问题来的明白,看的清楚.当一个东西你理解了,并且还能清楚的表达的时候,那么思路会更清晰.第二点,就是加强交流,使得知识能够更快的再整个团队传播,使得代码全员共享.第三点就是所有的代码都会有备份,防止丢失.但结对编程也是有缺点的,首先是编码的效率低下问题.接下来是结对对象的交换,因为结对编程是在一个小组成员中进行

软工第二次实验——结对编程

1丶小组成员 卫瑞亮 1500802122 王玉卿 1500802099 2.代码链接 https://coding.net/u/qq1062718477/p/SE_task/git/commits/master/ 3.软件界面 4.结对编程照片 5.心得体会 到今天接触结对编程差不多两周了,对于结对编程有了更加深刻地理解,通过结对编程,我们可以及时的发现并解决后面可能会出现的问题,并且还能提升我们与别 人进行交流的能力,与人沟通对我们来说也是极为重要的,同时,结对编程使我们频繁进行交流,而且要

结对编程过程总结

(1)工作中的照片 (2)对方性格评价: 1.我个友善的人,愿意合作与交流,在与我的合作学习和探究活动中,能选择自己擅长的方式(语言.文字.图表等)表述研究过程和结果;主动提供自己的资料和想法,与我分享自己智慧,思路,体验合作的愉快.能倾听和尊重我提出的不同观点和评议,能对研究过程和结果进行评议,并与我交换意见,充分体现结对编程的价值. 2.是个谦逊的人,在与我的合作交流中,我们做到相互尊重,相互信赖,认真倾听对方意见,勇于承认自己的不足,有虚心向对方学习请教的良好风尚,能在合作交流中正确地评价

什么时候该采用结对编程

结对编程是构建软件系统的一种有效方法.采用结对编程,带来的显著效益: l  更好的想法--持续不断的头脑风暴.更大的知识库.在理解上有更少的差异.有更多的脑力解决设计问题: l  更好的质量--更少的漏洞.想法的即时认证.始终如一的方法并更加遵守团队会议中的要求: l  更全面的认识--经验共享与知识共享.对于为什么做.怎么做和做什么有更深入的理解: l  更高的生产率--更好地集中精力及更高的工作强度.彼此促进并激励来达到最好的结果.更少的拖延和时间浪费: l  更多乐趣--大多数人喜欢分小组

结对编程2--单元测试(95\97)

小组成员: 林清青 201421123095  郑   莹 201421123097 代码地址:https://coding.net/u/zy97/p/pp2/git/tree/master/ 一.测试需求分析a.把计算模块提取出来,单独创建一个类. b.针对提取出来的计算类的接口函数做单元测试. c.测试相关单元模块运算错误: 输入错误.例如:"1 ++ 2"的随机算式,或者"*""/"在第一个的错误算式.除数为0的非法表达式错误.例如:除数为

结对编程的推行

这几天一直在探索有关结对编程的知识.关于结对的基本理论,上篇博客已经基本阐述了,这次主要总结一下结对编程在项目中和单元测试中如何去推行. 在项目中: 1.结对的双方限定为同一项目组: 2.领航者和实施者坐在同一台速度较快.配置较高的机器前,要保证两个人都能看清屏幕,尤其是领航者(可以考虑接一个显示屏): 3.两个人至少保证每分钟交流一次: 4.在我们提高班,建议用有经验的"老手"带"新手"的方式或者"新手"之间组合,尽量避免两个人都特别经验丰富,

作业四--结对编程四则运算

结对编程--四则混合运算 结对小伙伴:秦文 130201214  http://www.cnblogs.com/896702797-qw/ 于悦 130201221  http://www.cnblogs.com/yuyue1216/ 基本功能: 带有用户登陆界面 题目不重复 支持负数 可设置题目数量 具有数值范围 有乘除法 运算结果中会出现分数 用户登录界面 功能选择 题目 编程过程中的我们: 总结: 此次结对编程中,我觉得优点是结对编程自己的工作量变小了,而且遇到什么事,还有可以商量的人,并

结对编程初识

按照敏捷开发的要求,我们测试小组开始了第二个story.我领到了结对编程和跟着江霄一起完成关于.Net下对具体的项目代码写出测试Demo的task. 在结对编程的task中,主要又分为了概念性认识和具体推行两个子任务.这次主要还是单元测试理论性的一些基本认识吧. 定义: 结对编程就是两位程序员坐在同一工作台前开发软件.也就是说,两位程序员来完同一个设计,一个作为领航者在后边说代码怎么写,另一个作为实施者写代码. 优势:    对项目: (1)两个程序员具有相同的缺点和盲点的可能性很小,所以当我们