|
课程<o:p></o:p> 名称<o:p></o:p> |
2016级计算机科学与工程学院软件工程(西北师范大学)<o:p></o:p> |
|
作业<o:p></o:p> 要求<o:p></o:p> |
实验二 软件工程个人项目<o:p></o:p> |
|
课程<o:p></o:p> 目标<o:p></o:p> |
尝试按照《构建之法》第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发。<o:p></o:p> |
|
作业<o:p></o:p> 意义<o:p></o:p> |
(1)掌握软件项目个人开发流程。<o:p></o:p> (2)掌握Github上发布软件项目的操作方法。<o:p></o:p> <o:p> </o:p> |
需求分析<o:p></o:p>
1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个。<o:p></o:p>
2.程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。<o:p></o:p>
3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。<o:p></o:p>
4.高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。<o:p></o:p>
5.统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。<o:p></o:p>
功能设计(基于JavaScript语言)<o:p></o:p>
1.需手动输入文档(复制),点击搜索即可统计全文词汇。
2.需手动输入需要查询的词汇,点击搜索即可统计在文章中出现的次数。
3.程序健壮,已用《哈利波特之魔法石》第一章(近3万词)试验,不存在卡顿。
4.因为规定浏览器不可直接访问用户计算机内容,所以无法直接导入文本文件。<o:p></o:p>
设计实现<o:p></o:p>
1.该函数主要以从input输入框中获取文本从而获取字符长度length和我们所需要查询的单词的value值。
2.在给予文章、单词赋值后,利用循环和遍历获取我们需要的信息。
3.获取信息后,再由document.getElementById从JavaScript中输出到html中。
4.最后利用button按钮的show()功能将结果展示出来。<o:p></o:p>
测试运行(以哈利波特第一章为文本)<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
代码
<o:p></o:p>
function show() {<br />
var a = document.getElementById("txt1").value;<br />
var b = document.getElementById("txt2").value;><br />
document.getElementById("resut1").innerHTML = a.length;<br />
var n = (a.split(b)).length - 1;<br />
document.getElementById("resut2").innerHTML = n;<br />
}<br />
总结
改程序本应该使用Java语言进行设计,因对Java掌握程度很浅,所以改为使用JavaScript设计。设计时,将程序分为输入、分析、遍历、输出四部分,这四部分并不是相互独立的,下一级对上一级有依赖,如没有获取文本,就无法获取字符长度从而导致功能无法使用。发觉自身能力的欠缺而导致程序很简陋,在设计过程中也遇到了很多问题。在以后的学习过程中会更多的弥补欠缺,并掌握更多有关编程的知识与技巧。
PSP
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
15 |
40 |
Estimate |
估计这个任务需要多少时间,并规划大致工作步骤 |
15 |
40 |
Development |
开发 |
40 |
60 |
Analysis |
需求分析 (包括学习新技术) |
10 |
10 |
Design Spec |
生成设计文档 |
15 |
10 |
Design Review |
设计复审 (和同事审核设计文档) |
3 |
5 |
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
3 |
3 |
Design |
具体设计 |
20 |
25 |
Coding |
具体编码 |
30 |
60 |
Code Review |
代码复审 |
15 |
20 |
Test |
测试(自我测试,修改代码,提交修改) |
25 |
20 |
Reporting |
报告 |
25 |
30 |
Test Report |
测试报告 |
10 |
15 |
Size Measurement |
计算工作量 |
5 |
5 |
Postmortem & Process Improvement Plan |
事后总结 ,并提出过程改进计划 |
10 |
10 |
一些代码分享