201671010453钟红耀英文文本统计分析》结对项目报告
GitHub:https://github.com/zhonghongyao/ssm.git
博文简要信息表
项目 | 内容 |
---|---|
软件工程 | 任课教师博客主页链接 |
结对项目要求 | 作业链接地址 |
课程学习目标 | 熟悉软件开发整体流程,提升自身能力 |
本次作业在哪个具体方面帮助我们实现目标 | 第一次体验一个完整的工程 |
任务一:
点评信息
||||
|--|--|
|点评博客:|201671010444 夏向明 实验二个人项目|
|GitHub:|https://github.com/xiaxiangming/-|
|点评内容:|项目设计上条例分析清楚,但实现上和大多数同学一样,代码太过于标准,希望能有自己的代码风格和实现思路|
|点评心得:|希望助教可以在技术方面对我们提出建设性的意见||
任务二:
1.需求分析
1.统计单词词频柱形图
2.统计该文本行数和字符数
3.各种统计统计功能,显示程序所消耗时间
4.可处理任意用户导入的任意文本
5.统计文本中除冠词,代词,介词之外的高频词
2. 软件设计-使用类图
类型 | 内容 |
---|---|
数据 | 设计数据库的E-R图 |
工具 | IDEA,Navicat,Git,Github,maven,nginx |
框架 | ssm |
图形 | Echarts |
编程技术 | WEB |
开发手册 | 阿里巴巴开发手册 |
3.展示核心功能代码
数据层接口层:
<!--JavaBean传递参数-->
<select id="selectWord" resultType="com.zhong.entiry.Word">
SELECT * FROM word
</select>
<select id="selectWordLine" resultType="com.zhong.entiry.WordLine">
SELECT * FROM word_count
</select>
<select id="selectTimeCount" resultType="com.zhong.entiry.TimeCount">
SELECT * FROM time_count
</select>
<insert id="insertword" parameterType="java.util.List" useGeneratedKeys="false">
insert into word
(word,count)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.word},
#{item.count}
)
</foreach>
</insert>
<insert id="insertWordLine" parameterType="com.zhong.entiry.WordLine">
insert into word_count
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="wordLine != null">
wordLine,
</if>
<if test="charCount != null">
charCount,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="wordLine != null">
#{wordLine,jdbcType=INTEGER},
</if>
<if test="charCount != null">
#{charCount,jdbcType=INTEGER},
</if>
</trim>
</insert>
<insert id="insertTimeCount" parameterType="java.util.List" useGeneratedKeys="false">
insert into time_count
(type,time)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.type},
#{item.time}
)
</foreach>
</insert>
@Controller
@RequestMapping("/word")
public class WordController {
@Autowired
WordService wordService;
@RequestMapping(value = "/count" )
public @ResponseBody
ResultResponse selectWord()throws CustomException{
List<Word> list=wordService.selectWord();
if(list.size()>=1)
System.out.println("有数据");
ResultResponse rs=new ResultResponse(list,0,"");
return rs;
}
@RequestMapping(value = "/countOther" ,method = RequestMethod.POST)
public @ResponseBody
ResultResponse selectWordOther()throws CustomException{
String str="at,before,after,since,still,until,upon,on,from,between,by,in,during,for,through,\n" +
"within,over";
String strArray[]=str.split(",");
List<Word> list=wordService.selectWord();
for (int i = 0; i <list.size() ; i++) {
String word=list.get(i).getWord();
if(word!="the"&&word!="an"&&word!="a"){
boolean flag=true;
for (int j = 0; j <strArray.length ; j++) {
if(word==strArray[j])
flag=false;
}
if(flag==false){
list.remove(i);
}
}
}
if(list.size()>=1)
System.out.println("有数据");
ResultResponse rs=new ResultResponse(list,0,"");
return rs;
}
@RequestMapping("/wordLine")
public @ResponseBody
ResultResponse selectWordLine(){
List<WordLine> list=wordService.selectWordLine();
if(list.size()>=1)
System.out.println("有数据");
ResultResponse rs=new ResultResponse(list,0,"");
return rs;
}
@RequestMapping("/timeCount")
public @ResponseBody
ResultResponse selectTimeCount(){
List<TimeCount> list=wordService.selectTimeCount();
if(list.size()>=1)
System.out.println("有数据");
ResultResponse rs=new ResultResponse(list,0,"");
return rs;
}
}
4.功能界面截图
5. 描述结对的过程,提供两人在讨论、细化和编程时的结对照片
照片
感想 | 总结 |
---|---|
技术 | 主要是采用RestFul APi,采用这个技术的原因是前后台分离,有利于模块的松耦合,和开发公司技术比较接近 |
交流 | 对一个功能,两个人会有不一样的想法和思路,这个时候就使用代码的复杂度来度量和代码的整洁度,体现了代祖华老师说的软件工程的有效性,不一定追求完美 |
学习 | 通过和他人对比发现了自己的不足和长处,希望在下一次多人的配合中发挥技术骨干的力量 |
6.psp展示
|PSP2.1|任务内容|计划共完成需要的时间(min)|实际完成需要的时间(min)|
|--|--|--|--|
|Planning|计划|25|20|
|Estimate|估计这个任务需要多少时间,并规划大致工作步骤|25|20|
|Development|开发|500|420|
|Analysis|需求分析 (包括学习新技术)|100|80|
|Design Spec|生成设计文档|30|30|
|Design Review|设计复审(和同事审核设计文档)|15|11|
|Coding Standard|代码规范(为目前的开发制定合适的规范)|20|20|
|Design|具体设计|60|50|
|Coding|具体编码|450|400|
|Code Review|代码复审|60|80|
|Test测试|(自我测试,修改代码,提交修改)|50|40|
|Reporting|报告|50|50|
|Test Report|测试报告|20|20|
|Size Measurement|计算工作量|10|5|
|Process Improvement Plan|事后总结,并提出过程改进计划|25|30|
总结:
1.自己对于业务代码的熟悉度增加,echarts语法使用更加熟练
2.对jdk1.8中Lambda表达式更加熟悉
3.git提交出现错误:
解决方法git remote set-url origin url
合并代码:git pull --rebase origin master
提交代码:git push -u origin master