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,
" +
            "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
图片名称

原文地址:https://www.cnblogs.com/zhonghongyao/p/10644717.html