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

猜你喜欢

转载自www.cnblogs.com/zhonghongyao/p/10644717.html