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

  • 相关阅读:
    开源测试工具 JMeter 介绍 物联网大并发测试实战 01
    使用测试客户端「玩转」MQTT 5.0
    写给PPT用,可测试性驱动开发导向IOC的过程
    .net并行库的一些记录
    windows上python和django开发环境的安装和配置
    MongoDB的Journaling的工作原理(每日一译)
    留给晚上分享用的python代码
    为什么我们需要可测试的面向对象开发(翻译 )
    使用谷歌统计来跟踪网页加载时间
    酷壳上的一道面试题
  • 原文地址:https://www.cnblogs.com/zhonghongyao/p/10644717.html
Copyright © 2020-2023  润新知