首页 > 其他 > 详细

软工实践第五次作业

时间:2018-10-12 23:26:58      阅读:39      评论:0      收藏:0      [点我收藏+]

标签:学习   单词   工作量   多人   冲突   image   虚拟   获取   队友   

软工实践第五次作业

写在前面

具体分工

两个人一起在实验室完成的,有什么问题都当面沟通解决+使用github多人协作的形势,一人写一部分函数然后传到github上面去,通过git pull更新本地仓库

  • 吴杰婷:词数统计部分,词频统计部分,代码整合,文档撰写,单元测试,性能分析
  • 许舒玲:爬虫部分,字符统计,行数统计,附加题部分,代码整合,文档撰写,性能分析

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟)
Planning 计划 10
? Estimate ? 估计这个任务需要多少时间 10
Development 开发 700
? Analysis ? 需求分析 (包括学习新技术) 30
? Design Spec ? 生成设计文档 5
? Design Review ? 设计复审 5
? Coding Standard ? 代码规范 (为目前的开发制定合适的规范) 10
? Design ? 具体设计 20
? Coding ? 具体编码 500
? Code Review ? 代码复审 70
? Test ? 测试(自我测试,修改代码,提交修改) 60
Reporting 报告 20
? Test Repor ? 测试报告 5
? Size Measurement ? 计算工作量 5
? Postmortem & Process Improvement Plan ? 事后总结, 并提出过程改进计划 10
合计 730 1014

解题思路描述与设计实现说明

  • 爬虫使用

    • 使用java jsoup包,jsoup最主要用到的就是的elements类和select()方法。elements类相当于网页元素中的标签,而select()方法用于按一定条件选取符合条件的标签,组成符合条件的标签数组。element支持转成字符串或者文本等。
    • 打开网页查看元素-选择代码行-右键-copy-copy selector 获取便签
      如://#content > dl > dt:nth-child(2935)获得链接
    Document document = Jsoup.connect("http://openaccess.thecvf.com/CVPR2018.py").userAgent("Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)").get();
      Element main = document.getElementById("content");
      //#content > dl > dt:nth-child(0)
      Elements url = main.select("dl").select("dt:nth-child(0)");
      for(Element question:url) {
          String URL = question.attr("abs:href");
          Document document2 = Jsoup.connect(URL).get();
          //#papertitle
          Elements title = document2.select("#papertitle");
          //#abstract
          Elements Abstract = document2.select("#abstract");
    }
  • 代码组织与内部实现设计(类图)

    技术分享图片
  • 说明算法的关键与关键实现部分流程图

    • 计算行数(linesCount.java)
      技术分享图片
    • 获取有效文本(HandleContent.java)

      技术分享图片
    • 计算字符数(charsCount.java)

      技术分享图片
    • 计算单词数(wordsCount.java)

      技术分享图片
    • 输出单词排序(WordsCount.java)

附加题设计与展示

  • 设计的创意独到之处

  • 实现思路

  • 实现成果展示

    技术分享图片
    技术分享图片

关键代码解释

单元测试

  • 代码覆盖率

    技术分享图片

  • 测试文本部分截图
    技术分享图片

  • 测试结果/时间截图
    技术分享图片

性能分析

  • 展示性能分析图

    通过java虚拟机的javaConsole显示性能分析情况
    技术分享图片
  • 结合单元测试,可见Weighttest(权重统计)和wordtest(词组总数统计)所耗费的时间更长,原因出在权重统计时涉及了暴力排序。

Github代码签入记录

技术分享图片

遇到的代码模块异常或结对困难及解决方法

  • 关于github多人协作问题

    • 问题描述:一开始在做的时候,不知道如何一起协作完成一份代码,并且对github多人协作的功能一头雾水。
    • 做过的尝试:一开始我在网上找了资料,资料上采用的方法是添加contributors,然后创建分支,再合并分支到master的方法,但是步骤繁琐,而且我们一般是把代码整合后测试再上传,一般不会发生冲突,然后舒玲也提出了一个方法是让我folk她那边的项目,然后我提交到我本地folk的仓库再提交给她,不过本次尝试以不知道如何同意合并结束……
    • 是否解决:已经解决。经过向大佬的请教,我们决定采用在舒玲的github仓库上添加contributor的方式,只用一个master分支,这样方便了我们的提交。只需要git add,git commit,git push即可
    • 有何收获:一个人硬着头皮找资料的做的很容易心态爆炸,两个人一起商量显然效率很高(而且开心),掌握了几种github团队协作的开发方式!
  • 关于代码合并问题

    • 问题描述:两个人的代码风格不同,舒玲写在接口里,然后在主函数调用。我写在Class里,然后直接调用Class的某个函数。
    • 做过的尝试:互相研究对方的代码,统一在Main函数调用。本来我想写在舒玲的接口里,不过引用的时候总是出错,最后直接引用我的类了……
    • 是否解决:已经解决。在Main函数里调用舒玲的接口和我的类,不过有些地方需要统一,比如文件读入读出这里。
    • 有何收获:统一代码规范很重要

评价你的队友

  • 值得学习的地方

  • 代码能力强,思路也清晰。很多我研究半天的东西一下就弄好了
  • 团队协作能力高,是很适合结对的人选
  • 对github的使用比较熟练
  • 遇到问题很快想到解决的方法
  • 掌握的技术多
  • 需要改进的地方

  • 效率太高了= =每天都能做好多事 令人心慌

学习进度条

第 N 周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时)
1 82 82 4 4
2 94 176 5 5
3 107 283 5.6 5.6

软工实践第五次作业

标签:学习   单词   工作量   多人   冲突   image   虚拟   获取   队友   

原文:https://www.cnblogs.com/wjt98/p/9777506.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号