201671010444 夏嚮明 《英文文本統計分析》結對項目報告

博文簡要信息表

項目 內容
軟件工程 任課教師博客主頁連接
結對項目要求 做業連接地址
課程學習目標 熟悉軟件開發總體流程,提高自身能力
本次做業在哪一個具體方面幫助咱們實現目標 第一次體驗一個完整的工程

點評信息

點評博客: 201671010453 鍾紅耀 實驗二我的項目
github地址: github地址
點評內容: 從你的博文能夠看出來,你對待本課程的重視程度,使用了嚴格的markdown排版:代碼方面規範整齊,內容健壯,惟一的不足就是缺乏部分功能。
點評心得: 本身對markdown的排版還有很大的欠缺, 基本排版還不是很瞭解,要多加註意和使用;代碼方面對代碼開發過程不是很熟悉,致使過程花了大把的時間。

源碼地址

查看源碼請點我html

結對項目實施過程

a.需求分析 --根據實驗四 軟件工程結對項目所提要求,咱們分析的主要需求有:

a. 可處理任意用戶輸入的任意英文文本功能; 
      b. 統計該文本的行數和字符數功能 
      c. 指定單詞詞頻統計功能; 
      d. 前k個高頻詞統計功能; 
      e. 統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt功能    
      f. 統計時計時功能; 
      g. GUI人機交互界面; 
      h. 統計文本中除冠詞、代詞、介詞以外的高頻詞;

b.軟件設計:使用類圖

類型 內容
數據 設計數據庫的E-R圖
工具 IDEA,Navicat,Git,Github,maven,nginx
框架 ssm
圖形 (Echarts)
編程技術 WEB

c.核心功能代碼展現:展現核心功能代碼

數據接口層源碼
package com.zhong.controller;java

import com.zhong.entiry.*;
import com.zhong.service.TestDateService;
import com.zhong.service.WordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;nginx

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;git

@Controller
@RequestMapping("/word")
public class WordController {github

@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

控制層源碼

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">web

<!--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>

d. 程序運行:程序運行時每一個功能界面截圖

e. 描述結對的過程,提供兩人在討論、細化和編程時的結對照片(非擺拍)


f. 提供這次結對做業的PSP。

結對做業的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

g.對這次實驗的總結

這次實驗是結對項目,兩我的互相學習,互相進步。在這次實驗中向個人搭檔鍾紅耀學習到了不少東西,讓我深入的認識到了本身的不足。spring

相關文章
相關標籤/搜索