201671010436 王雪剛 實驗四 《英文文本統計分析》結對項目報告


一:實驗名稱:軟件工程結對項目


二:實驗目的與要求

(1)體驗軟件項目開發中的兩人合作,練習結對編程(Pair programming)。
(2)掌握Github上增量發佈軟件的操作方法。


三:實驗步驟

任務一:兩兩自由結對,對結對方的《實驗二 軟件工程個人項目》的項目成果進行評價。
1、對項目博文作業進行閱讀並進行評論,評論要點包括:博文結構、博文內容、博文結構與PSP中“任務內容”列的關係、PSP中“計劃共完成需要的時間”與“實際完成需要的時間”兩列數據的差異化分析與原因探究。
2、克隆結對方項目源碼到本地機器,閱讀並測試運行代碼,結合運行結果評論程序代碼,評論要點包括:軟件結構、代碼規範、功能實現、人機交互等。
3、嘗試利用github中的Fork、Clone、Push、Pull request、Merge pull request對結對方倉庫中的源碼進行合作修改。



任務二:採用兩人合作方式,設計開發一個英文文本統計分析軟件。


任務三:完成博文作業。

四:實驗內容

項目 內容
這個作業屬於哪個課程 http://www.cnblogs.com/nwnu-daizh/
這個作業的要求在哪裏 https://www.cnblogs.com/nwnu-daizh/p/10569690.html
課程學習目標 熟悉軟件開發整體流程,提升自身能力。
本次作業在哪個具體方面幫助我們實現目標 第一次體驗一個完整的工程

任務一:作業互評

    結對對象評論鏈接地址:https://www.cnblogs.com/bkcq/p/10558650.html
    結對對象github源代碼鏈接地址:https://github.com/201671010403/- <hr>
    點評內容:
    讀完你的博文之後,就我個人而言,此篇博文條列清晰,一下就能讓人瞭然與胸,但其中也有很多的不足之處。從博文結構上看,太過於簡單,可以在markdown編輯器下學習一些語法,接受一些新知識,新事物來充實你的博文。從博文內容上看,功能實現過於片面,基本功能的實現不完整,比如柱狀圖的實現。從PSP表上看,我們的JAVA編程功底太差,不止是你,我也是,希望在以後的作業中學習中都能不斷的進步。

你的程序編碼段:

    設計實現:
    1.在本地磁盤中創建了一個文本文件,摘取英語文本。
    2.通過map集合和定義的文本字節,實現讀取存儲等功能。
    3.利用類treemap〈K,V〉基於樹的接口實現。整個實現過程不夠完整,功能實現片面,也沒有按照需求分析來實現。
    以上是我的個人看法,希望對你的博文改進有所幫助,有什麼觀點誤解還望指出。<hr>
    閱讀心得:在看了結對對象的實驗二作業後,我深刻意識到自己的不足,包括在整體結構上。幾次接觸markdown編輯器之後,基礎語法已經能夠運用自如,在之後的每篇博文裏,我將嚴格要求自己,一步一步完善自己的博文,查缺補漏,在編程方面也將努力,把之前的不足儘快糾正。

任務二:採用兩人合作方式,設計開發一個英文文本統計分析軟件

  • 需求分析
    1、實驗二的功能;
    2、單詞頻數可視化柱狀圖要求是以下樣式:

      3、統計該文本行數及字符數;
      4、各種統計功能均提供計時功能,顯示程序統計所消耗時間(單位:ms);
      5、可處理任意用戶導入的任意英文文本;
      6、人機交互界面要求GUI界面(WEB頁面、APP頁面都可);

  • 軟件設計說明:
    本次項目主要目的是實現可導入任意英文文本文件,統計該英文文件中單詞數和各單詞出現的頻率(次數),並能將單詞按字典順序輸出;將單詞及頻率寫入文件;實現GUI界面;將單詞及頻率寫入指定位置。
    算法設計
    1) 文章分割成單詞
    簡單概述下算法:把從文件提取的文章存放在String字符串中,然後進行逗號,句號,空格分割,基本上可以分割成單詞。
    2)按字典排序算法
    這裏字符串的排序和數字的排序一樣。
    3)統計詞頻
    利用hashmap的compareTo()方法,map存在則put並count++(計數),不存在則put進去。


  • 核心功能代碼展示











  • 程序運行:程序運行時每個功能界面截圖

1、統計文本單詞總數


2、統計單詞出現的次數


3、統計出現頻率最高的前8個單詞結果


4、統計文本行數


5、GUI界面



6、單詞頻數可視化柱狀圖


7、輸出到文件result.txt中




8、在GitHub中的倉庫管理以及代碼的共同合作及修改
1)代碼克隆,檢查及修改





2) issues交互




3) pull request請求與項目同步


9、所用集成開發環境eclipse。
使用的JDK版本爲 jdk8u161(jdk1.8)。
數據庫SQL serve2016。
  • 結對過程、結對照片


  • 提供此次作業的psp
psp2.1 任務內容 計劃總共需要完成的時間(min) 實際完成需要的時間(min)
Planning 計劃 10 20
Estimate 估計需要時間,並計劃大致工作步驟 10 10
Development 開發 200 240
Analysis 需求分析 10 15
Design Spec 生成設計文檔 30 25
Design Review 設計複審 10 8
Coding Standard 代碼規範 20 25
Design 具體設計 20 30
Coding 具體編碼 360 420
Code Review 代碼複審 30 40
Test 測試 15 20
Reporting 報告 8 10
Text Report 測試報告 5 8
Size Measurement 計算報告量 5 5
Postmortem&Process Improvement plan 總結,並提出改進計劃 15 20

  • 小結感受

      通過本次結編程項目,深刻的體會到一個人的力量畢竟有限,無論是在邏輯設計還是技術實現上,都存在很大差距,整個項目的完成過程中,每個人都發揮出了各自的長處,達到了結對編程的目的,1+1>2的效果很明顯,兩人都必須參與程序的編碼工作,在結對編程中兩個人輪流做對方的角色,達到知識互補,將代碼質量提到最高,在結對編程模式下,我們之間沒有水平上的高低比較,雙方都是平等地、互補地進行工作,我們一起分析、起設計、寫代碼並測試運行,直到最後的文檔生成,在開發層次,結對編程能提供更好的設計質量和代碼質量,兩人合作能有更強的解決問題的能力,對我們自身來說,結對編程能帶來更多的自信心,每個模塊的實現都能帶來更多的成就感,這有利於項目可以更好的進行下去,結對能更好並且有效地交流,相互學習和傳遞經驗,因爲一個人的知識已經被其他人共享。如果運用得當,結對編程能達到更好的效果。

    結對項目源碼在GitHub的倉庫主頁鏈接地址:https://github.com/201671010436/jieduibiancheng

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章