實驗四 軟件工程結對項目


實驗四  軟件工程結對項目

2019-3-21/22

Deadline:2019-4-3 10:00,以博客發表日期為准

評分標准:

  • 按時交 - 有分(滿分100分),檢查項目包括:
  • 任務1部分(40分,代碼和博客各20分)
  • 任務2部分(60分,代碼和博客各30分)
  • 未提交項目源碼到Github,代碼部分不得分;未提交博客到班級博客上,博客部分不得分;
  • 任務2根據項目完成質量累計加分,完成基本功能原則上不超過滿分60分,完成附加功能,給予加分;
  • 代碼提交(代碼規范,否則倒扣分);
  • 博文規范(行文清晰流暢,如果行文中涉及代碼,請使用博客園自帶的代碼控件,或使用MarkDown的語法塊)
  • 抄襲 - 倒扣本次作業分數

1、實驗目的與要求

(1)體驗軟件項目開發中的兩人合作,練習結對編程(Pair programming)。

(2)掌握Github上增量發布軟件的操作方法。

2、實驗相關知識

閱讀現代軟件工程—構建之法第4章內容,掌握以下概念:

1)結對編程

        以下圖片是一個結對編程場景:兩位學習伙伴坐在一起,面對着同一台顯示器,使用着同一鍵盤,同一個鼠標,他們一起思考問題,一起分析問題,一起編寫程序。

同學們是否嘗試過兩人合作的軟件開發模式:本次實驗,就讓我們來體驗一下結對編程的魅力。

關於結對編程的闡述可參見以下鏈接:

http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html

http://en.wikipedia.org/wiki/Pair_programming

2)代碼規范

關於代碼規范的其他參考博文:https://www.cnblogs.com/S031602240/p/10551854.html

關於github基礎操作的參考鏈接:

參考文章:http://www.cnblogs.com/schaepher/p/4933873.html

參考文章:http://www.cnblogs.com/edisonchou/p/5990875.html

學習視頻:https://www.bilibili.com/video/av10475153/ 

3、實驗內容和步驟

任務1:兩兩自由結對,對結對方的《實驗二 軟件工程個人項目》的項目成果進行評價,具體要求如下:

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

任務2:采用兩人合作方式,設計開發一個英文文本統計分析軟件,使之具有以下功能:

(1)實驗2要求的功能;

(2)單詞頻數可視化柱狀圖要求是以下樣式:

(3)統計該文本行數及字符數;

(4)各種統計功能均提供計時功能,顯示程序統計所消耗時間(單位:ms);

(5)可處理任意用戶導入的任意英文文本;

(6)人機交互界面要求GUI界面(WEB頁面、APP頁面都可);

(7)附加分功能:統計文本中除冠詞、代詞、介詞之外的高頻詞;

(8)附加分功能:統計前10個兩個單詞組成的詞組頻率。

任務二兩個合作項目實施要求:

  •  結對合作開發進度計划的要求:在項目正式開發之前,預估本次合作開發任務的PSP環節的消耗時間,並在PSP過程中統計實際耗時,填寫PSP表格。
  • 嘗試采用漢堡包法實施項目結對中兩個人的溝通,關於漢堡包法的闡述參見:http://www.cnblogs.com/xinz/archive/2011/08/22/2148776.html
  • 理解領航員和駕駛員兩種角色關系:兩人都必須參與程序的編碼工作,在結對編程中兩個人輪流做對方的角色。
  • github倉庫中的代碼提交要體現兩人合作過程,不能只看到最終的代碼,至少有三次以上的代碼簽入記錄, 能顯示代碼從最初的基本框架, 基本功能,到全部功能實現的構建過程 。
  • 編撰兩人合作開發遵守共同認可的編碼規范,並提交編碼規范文檔到github項目倉庫根目錄下。
  •  將包含任務2的源碼以增量方式提交到指定同學注冊Github賬號下的項目倉庫中,要求項目倉庫中要能看到項目多次commit的記錄,同時必須有兩個人各自的commit記錄。

任務3:完成博文作業

博文名稱要求:學號1姓名+《英文文本統計分析》結對項目報告;

填寫博文簡要信息表:

項目

內容

這個作業屬於哪個課程

任課教師博客主頁鏈接

這個作業的要求在哪里

作業鏈接地址

課程學習目標

熟悉軟件開發整體流程,提升自身能力

本次作業在哪個具體方面幫助我們實現目標

第一次體驗一個完整的工程

博文作為兩個任務總結的文字資料,請完整包含以下內容:

  •  任務1要給出所點評作業的博客、github鏈接地址,點評內容和點評心得;
  • 任務2需要給出結對項目源碼在Github的倉庫主頁鏈接地址;
  • 任務2博文作為結對項目實施過程的文字資料,請完整包含下面7個部分:

          a.需求分析

          b.軟件設計:使用類圖

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

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

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

          f. 提供此次結對作業的PSP。

PSP2.1

任務內容

計划共完成需要的時間(min)

實際完成需要的時間(min)

Planning

計划

8

6

·       Estimate

·  估計這個任務需要多少時間,並規划大致工作步驟

8

6

Development

開發

82

88

··       Analysis

  需求分析 (包括學習新技術)

6

10

·       Design Spec

·  生成設計文檔

5

6

·       Design Review

·  設計復審 (和同事審核設計文檔)

4

6

·       Coding Standard

  代碼規范 (為目前的開發制定合適的規范)

3

3

·       Design

  具體設計

10

12

·       Coding

  具體編碼

36

21

·       Code Review

·  代碼復審

7

9

·       Test

·  測試(自我測試,修改代碼,提交修改)

13

21

Reporting

報告

9

6

··       Test Report

·  測試報告

3

2

·       Size Measurement

  計算工作量

2

1

·       Postmortem & Process Improvement Plan

·  事后總結 ,並提出過程改進計划

3

3

               g. 小結感受:兩人合作真的能夠帶來1+1>2的效果嗎?通過這次結對合作,請談談你的感受和體會。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM