實驗二 軟件工程個人項目


實驗二  軟件工程個人項目

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

評分標准:

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

1、實驗目的與要求

(1)掌握軟件項目個人開發流程。

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

2、實驗內容和步驟
 
任務1:
嘗試按照《構建之法》第2章中2.3所述PSP流程,使用JAVA編程語言,獨立完成一個包含3到5個數字的四則運算練習的命令行軟件開發題目參考:http://www.cnblogs.com/xinz/p/7417960.html
軟件基本功能要求如下:
  • 程序可接收一個輸入參數n,然后隨機產生n道加減乘除練習題,每個數字在 0 和 100 之間,運算符在3個到5個之間。
  • 為了讓小學生得到充分鍛煉,每個練習題至少要包含2種運算符。同時,由於小學生沒有分數與負數的概念,你所出的練習題在運算過程中不得出現負數與非整數,比如不能出 3/5+2=2.6,2-5+10=7等算式。
  • 練習題生成好后,將你的學號與生成的n道練習題及其對應的正確答案輸出到文件“result.txt中,不要輸出額外信息,文件目錄與程序目錄一致。
  • 當程序接收的參數為4時,以下為輸出文件示例。

軟件附加功能要求如下:(請有余力的同學完成)
  • 支持有括號的運算式,包括出題與求解正確答案。注意,算式中存在的括號必須大於2個,且不得超過運算符的個數。(5分)
  • 擴展程序功能支持真分數的出題與運算,例如:1/6 + 1/8 + 2/3= 23/24。注意在實現本功能時,需支持運算時分數的自動化簡,比如 1/2+1/6=2/3,而非4/6。(5分)
任務2:
  • 包含任務1源碼的完整工程文件提交到你注冊Github賬號下的項目倉庫中。
  • 從助教提供的地址克隆演示示例,你的工程應該與演示示例的目錄及主要文件名保持一致。
  • 將包含任務1源碼的完整工程文件提交到你注冊 Coding.net 賬號下的項目倉庫中。

 

Github如何托管項目?

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

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

 

測試須知

測試機為Windows環境,所有提交到Github上的項目必須包含src文件夾在src文件夾中必須包含名為Main.java文件,且Main.java中包含 public static void main(String[] args) 方法。同時請注意以下點:

  • 生成文件時請使用相對路徑(也就是說,不要帶任何C:\ 這樣的路徑),生成的 results.txt 文件需在項目的根目錄下。如何自測:在windows系統中打開命令行界面(Linux/Mac 使打開終端,后續操作一致),進入項目所在根目錄下,使用 javac src/Main.java,然后再使用 java src/Main 1,生成的results.txt在當前目錄下。
  • 本次項目較為簡單,故不得使用除限定版本jdk與jre外的額外依賴包。

一個示例項目目錄如下所示:

助教在測試學生提交代碼時,將以命令行運行腳本的方式進行測試,參數及其約定如下:

 

值得一提的是,測試數據中有可能出現錯誤的參數,比如出現java Main abc 這樣的命令,你的程序需要自行處理錯誤情況,並給出合適的錯誤提示信息。

 

任務3: 完成個人項目報告博文作業

博文名稱要求:學號+小學四則運算練習軟件項目報告;

博文中要有任務1源碼在Github的倉庫主頁鏈接地址;

博文作為個人項目實施過程的文字資料,請完整包含下面7個部分:

  1. 需求分析:即使老師已經給出了題目,也要對題目的需求做分析。
  2. 功能設計:題目的需求,以及從真實調研里獲得的需求后,要對程序做功能設計,有同學會問:“不就是出題嘛,有啥好設計的?”,其實,題目要求的只是項目基本的功能要求,自己思考和調研會有超出題目要求的需求,甚至你有天才的設計,作出特色的功能。因此,功能會有:基本功能  擴展功能。
  3. 設計實現:設計包括你會有哪些類,這些類分別負責什么功能,他們7之間的關系怎樣?你會設計哪些重要的函數,關鍵的函數是否需要畫出流程圖?函數之間的邏輯關系如何?
  4. 測試運行:你的程序必須是可運行的,請展示程序的運行截圖,包括題目要求實現功能對應的運行截圖。這些截圖說明你的程序確實完成了項目需求,如果程序實現了擴展需求,也請大方秀出來。
  5. 核心代碼:粘貼自己覺得比較獨特的或滿意的代碼片段,用博客園正確的代碼控件來顯示。(提示:要有必要的注釋說明,提示:不要貼所有代碼!不符合規定的要倒扣分
  6. 總結:你設計的程序如何實現軟件設計的'模塊化'原則。
  7. 展示PSP,這個環節重要的是讓自己看到自己的估計和實際消耗時間,哪個環節耗時最多,哪個環節估計和實踐相差巨大?為什么?

PSP參考:http://www.cnblogs.com/xinz/archive/2011/10/22/2220872.html

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

如果所有的環節你都認真做了,那么,此處你應該會有很多經驗願意與大家分享。


免責聲明!

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



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