博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
201671010456-张琼 实验四 软件工程结对项目
阅读量:5141 次
发布时间:2019-06-13

本文共 4515 字,大约阅读时间需要 15 分钟。

博文简要信息表

项目 内容
这个作业属于哪个课程
这个作业的要求在哪里
课程学习目标 熟悉软件开发整体流程,提升自身能力。
本次作业在哪个具体方面帮助我们实现目标 第一次体验一个完整的工程

任务一

点评地址
点评内容 博文结构清晰,层次分明。文档编制很有条理,从需求分析到最后的PSP环环紧扣。但是在内容上还有些欠缺,高频词统计没有实现。但是实现了柱状图,柱状图大部分同学都没有实现,也包括我,所以要向你多多请教了。除了一个功能没有实现外,博文内容整体上还是很完整的。此外,在人机交互界面上,还需要完善,整体上并不美观。在PSP中可以很明显的看到实际的编程开发过程所用的时间远远超出了预计的时间。究其原因,主要还是因为首次进行项目编程,并且好多技术都要重新学习,导致占用了较多时间。这个在下一次PSP中可以借鉴本次经验,尽量放宽开发编程的时间。
点评心得 她的博文整体结构清晰,内容充分。对比我俩的博文,我发现她的柱状图实现的较好,就是对于作业的完成度较高,而我的博文中有流程图设计,在结构流程上看起来更加清晰。所以要多多借鉴他人的经验,看到亮点。不断完善,合作探究。

任务二

1.需求分析
  • 1.程序要能够读入英文文本,并且要求此文本不能为空。
  • 2.程序能容纳的英文单词要在10万以上。
  • 3.程序要能输入想查找的一个或者多个英文单词,并且统计出它出现的次数,并且把它的统计结果以柱状图的形式显示出来。
  • 4.程序运行结果自动显示该文本的单词总数和每个单词出现的频率。把单词数和词频数按照字典顺序输出到文件result.txt。
  • 5.当在键盘输入高频词的个数k后,进行程序统计功能运行,之后要按照词频数降序排列显示在k之前的每个单词的数量和单词。
  • 6.实现java后台与前端的交互。
2.软件设计:使用类图
1614501-20190402162720260-641062859.png
3.核心功能代码展示:展示核心功能代码
//开始时间            long startTime=System.currentTimeMillis();            TreeMap
map1 = new TreeMap
(); WordCount wordCount = new WordCount(); map1= wordCount.bijiao(map, words); //结束时间 long endTime=System.currentTimeMillis(); float excTime=(float)((endTime-startTime)/1000)*1000; //向jsp页面传参数 request.setAttribute("map1", map1); request.setAttribute("excTime", excTime); System.out.println("执行时间:"+excTime+"ms"); request.getRequestDispatcher("index.jsp").forward(request, response);//重定向 }else if(id.equals("2")){ //高频词的统计 //开始时间 long startTime=System.currentTimeMillis(); WordCount wordCount = new WordCount(); int k=Integer.parseInt(wordnum); ArrayList gaopin=wordCount.gaopin(map, k); //结束时间 long endTime=System.currentTimeMillis(); float excTime2=(float)((endTime-startTime)/1000)*1000; request.setAttribute("gaopin", gaopin); request.setAttribute("excTime2", excTime2); request.getRequestDispatcher("html/WordCount.jsp").forward(request, response); }else if(id.equals("3")){ //行数统计 //开始时间 long startTime=System.currentTimeMillis(); WordCount wordCount = new WordCount(); List list=wordCount.statistics(fileName); //结束时间 long endTime=System.currentTimeMillis(); float excTime3=(float)((endTime-startTime)/1000)*1000; request.setAttribute("excTime3", excTime3); request.setAttribute("list", list); request.getRequestDispatcher("html/index.jsp").forward(request, response); } }
/* 获取文件名的函数 */    function one() {        var fileName = document.getElementById("file").value;        location.href = "../WordCountServlet?fileName=" + fileName + "&id=0";    }    function two() {        var word = document.getElementById("word").value;        location.href = "../WordCountServlet?word=" + word + "&id=1";    }    function three() {        var wordnum = document.getElementById("wordnum").value;        location.href = "../WordCountServlet?wordnum=" + wordnum + "&id=2";    }    function four() {        var wordlines = document.getElementById("wordlines").value;        location.href = "../WordCountServlet?wordlines=" + wordlines + "&id=3";            }    function five() {        var result = document.getElementById("result").value;        location.href = "../WordCountServlet?result=" + result + "&id=4";    }
4. 程序运行:程序运行时每个功能界面截图
1614501-20190403072822886-551312298.png

1614501-20190403072913079-1854444922.png

1614501-20190403073014043-2088398859.png
1614501-20190403073040185-796911399.png
1614501-20190403073124201-1869051467.png
1614501-20190403073143523-1293132703.png
1614501-20190403073156302-1474513662.png
1614501-20190403073206113-1144310743.png
1614501-20190403073242951-873362406.png|

5. 结对照片
我的搭档是孙苗坤,在合作过程中她主要负责的是前段页面的设计。我负责修改完善代码,然后画出类图的雏形,然后在这个基础上我俩再进行讨论完善彼此的成果。然后是接口的具体设计,查阅资料并筛选之后,最终使用一个特殊类作为接口。 1614501-20190401203349537-858692386.jpg
6.总结
在本次团队项目合作中,我们首先是互相评论了彼此的上一次作业,找到了优点和不足,用于本次试验完成时要借鉴的技术和改正的地方。先找到不足,然后改正。接着我们规划了要实施的步骤,首先完成任务一,因为相对来说简单些,也只有在任务一完成的基础上才能开始任务二的作业。接着是任务二的需求分析,相对来说较简单,就是在实验二的基础上加上前端界面。然后是概要设计和详细设计,我们是打算放在一起进行的,主要设计程序的类和各个模块,以及各个模块之间的交互,还有Java后台和前端的交互。在后台和前端交互的时候,因为不知道要用什么接口合适,所以我们查找了很多的资料,看到可以用数据库,也可以用json,ajax等,最终选择了一个特殊的类servlet作为实现java后台和前端的交互。在这个过程中花费了大量时间。本次实验中我和搭档合作探究,过程很愉快,更体会到了团队意识的重要性。

PSP

PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 15 15
· Estimate · 估计这个任务需要多少时间,并规划大致工作步骤 15 15
Development 开发 146 218
·· Analysis 需求分析 (包括学习新技术) 160 200
· Design Spec · 生成设计文档 25 35
· Design Review · 设计复审 10 15
· Coding Standard 代码规范 20 20
· Design 具体设计 30 50
· Coding 具体编码 200 300
· Code Review · 代码复审 15 20
· Test · 测试(自我测试,修改代码,提交修改) 30 50
Reporting 报告 25 30
·· Test Report · 测试报告 30 40
· Size Measurement 计算工作量 10 10
· Postmortem & Process Improvement Plan · 事后总结 ,并提出过程改进计划 30 35
结对项目源码在Github的仓库主页链接地址

转载于:https://www.cnblogs.com/zhangqiong/p/10612599.html

你可能感兴趣的文章
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>
tmux的简单快捷键
查看>>
[Swift]LeetCode922.按奇偶排序数组 II | Sort Array By Parity II
查看>>
php match_model的简单使用
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
移动开发平台-应用之星app制作教程
查看>>
如何在maven工程中加载oracle驱动
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
Python IO模型
查看>>
DataGridView的行的字体颜色变化
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
【题解】青蛙的约会
查看>>
autopep8
查看>>