201671010428沙沙:词频统计软件项目 告

课程名称 2016级计算机科学与工程学院软件工程(西北师范大学)
作业要求 实验二 软件工程个人项目
课程目标 通过学习这门课程,深入了解软件开发的标准过程,从软件生命周期的8个阶段分析各个阶段的开发任务,摒弃以往开发软件的方法。
作业意义 此次作业能帮助我掌握软件项目个人开发流程和Github上发布软件项目的操作方法

需求分析(根据作业要求中给出的进行分析)

  •   指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,可显示对应单词在文本中出现的次数和柱状图,由柱状图显示单词出现的频率的高低。
  •   高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。
  •   统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。

功能设计

  •   读入读出文件功能(将文件进行读取,存放),这个是对于第一条和第四条需求所需要的一部分功能。
  •   用户输入功能(用户输入想要查询的单词,以及查询高频单词的个数),这个是对于第二条和第三条需求所需要的一部分功能。
  •   词频统计功能,这个是对于第二条、第三条和第四条需求所需要的一部分功能。
  •   排序功能(降序排序和按字典顺序排序),这个是针对第三条、第四条需求和所需要的一部分功能。
  •   显示功能(显示柱状图,显示前k个高频单词的词频,显示指定单词出现的次数),这个是对于第二条和第三条需求所需要的一部分功能。

设计实现

该程序共有四个类:

  •   指定单词词频统计功能类: Wordcount.java,对用户输入的单词进行处理,查询单词出现的次数。
  •   单词及词频数按字典顺序输出:Wordout.java,获取整个文档,将单词及词频数按字典顺序输出到result.txt中,保存。

测试运行

测试功能一截图:

测试功能三截图:

代码

–   我为什么要粘贴这段代码,因为这段代码编写过程中查阅了很多资料,由于资料类型繁多,就不一一列举了。这段代码是关于柱状图这个需求的。Java中柱状图的画法有很多种,可以在导入jar包的基础上,调用方法去构造,也可以通过重写JFrame中的paint()方法来进行构造,每种方法都是可行的,看你自己的选择,这段代码中涉及在Java中我们可能不常用的一些方法,对象,我也通过写注释的方法来进行了标注。

总结

  •   在进行需求分析时,将整个程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定的功能,并在这些模块之间建立了必要的联系,通过每个模块的互相协作完成整个程序功能,其次采用了自顶向下的方法,将问题划分为几个部分,然后再将各个部分再进行细化,直到分解为较好解决问题为止。这样做的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化,在后期的开发过程中遇到了很多问题,由于每个模块的功能相对独立,所以改起来也没有很麻烦。

PSP

PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 15 15
·       Estimate ·  估计这个任务需要多少时间,并规划大致工作步骤 15 15
Development 开发 146 218
··       Analysis   需求分析 (包括学习新技术) 15 10
·       Design Spec ·  生成设计文档 15 15
·       Design Review 3 5
·       Coding Standard   代码规范 (为目前的开发制定合适的规范) 3 3
·       Design   具体设计 20 25
·       Coding   具体编码 50 120
·       Code Review ·  代码复审 15 20
·       Test ·  测试(自我测试,修改代码,提交修改) 25 20
Reporting 25 30
··       Test Report ·  测试 告 10 15
·       Size Measurement   计算工作量 5 5
·       Postmortem & Process Improvement Plan ·  事后总结 ,并提出过程改进计划 10 10

分享

  •   从表中可以看出在每个阶段自己预估的时间和实际的时间还是有一定的差距,对于Java有些内容还是掌握不够,基础不是很扎实,对软件开发过程的每个阶段还不是很熟悉,导致开发过程较为困难,但是不管是什么困难都可以通过很多方式来得到解决,希望自己能在以后的学习过程中扎好基础,在软件开发过程中去体会软件工程的魅力。

    源代码可以点此处查看

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91537 人正在系统学习中 相关资源:下拉通刷词软件v3.1.zip-其它代码类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年2月15日
下一篇 2019年2月15日

相关推荐