第五次做業——效能分析與幾個問題(我的做業)
前言
閱讀了你們對於本課程的目標和規劃以後,想必不少同窗都躍躍欲試,火燒眉毛想要提升自身實踐能力,那麼就從第一個我的項目開始吧,題目要求見下。html
閱讀
閱讀《構建之法》第一章至第三章的內容,並在下方做業裏體現出閱讀後的成果。特別是第2章中的效能分析及我的軟件開發流程(PSP)。git
參考文章:
題目描述
能夠選擇如下題目(或者自主選擇題目和語言,提交材料不變):github
題目要求:
- 能自動生成小學四則運算題目(注意是給小學生用的,要是結果出現負數的話他們會迷茫的!)
- 除了整數外,還要支持真分數的四則運算
工具清單
測試須知
要求與說明
- 【項目設計】分析並理解題目要求,獨立完成整個項目,並將遵循上述測試須知中規範的最新項目發佈在Github上。
- 【項目測試】使用單元測試對項目進行測試,並使用插件查看測試分支覆蓋率等指標。
- 【性能優化】完成項目的首個版本以後,使用性能分析工具找出代碼中的性能瓶頸並進行改進。
- 【源代碼管理】在項目實踐過程當中須要使用Github管理源代碼,代碼有進展即簽入Github。簽入記錄不合理的項目會被助教抽查詢問項目細節。
- 【博客發佈】按照要求發佈博客,利用在構建之法中學習到的相關內容,結合我的項目的實踐經歷,撰寫解決項目的心路歷程與收穫。博客與Github項目明顯不符的做業將取消做業成績。
博文規範
將博文發佈到我的博客上,並提交到班級博客羣,word留檔案,且需包含如下8個內容。(10分)編程
- 在文章開頭給出Github項目地址。(0.5‘)
- 在開始實現程序以前,在下述PSP表格記錄下你估計將在程序的各個模塊的開發上耗費的時間。(0.5‘)
- 解題思路描述。即剛開始拿到題目後,如何思考,如何找資料的心路歷程。(0.5‘)
- 設計實現過程。設計包括代碼如何組織,好比會有幾個類,幾個函數,他們之間關係如何,關鍵函數是否須要畫出流程圖?(2‘)
- 代碼說明。展現出項目關鍵代碼,並解釋思路與註釋說明。(2‘)
- 測試運行。程序必須是可運行的,展現出程序運行的截圖。PS:若是有擴展需求或者更高級的需求,請秀出來,有額外加分。(2‘)
- 記錄在改進程序性能上所花費的時間,描述你改進的思路,並展現一張性能分析圖,並展現你程序中消耗最大的函數。PS:若是採用Visual Studio Community 2015開發,使用C++或者C#語言實現,VS 2015的性能分析工具可自動生成。(2‘)
- 在你實現完程序以後,在下述PSP表格記錄下你在程序的各個模塊上實際花費的時間。(0.5‘)
特別注意:
- 按時間完成並提交——正常評分
- 晚交一週之內——0分
- 晚交一週以上或不交——倒扣本次做業分數
附加題(2分)
助教寫了一個四則運算的測試程序 ,
目的是測試同窗的生成的四則運算程序是否符合要求, 目前正在內測階段,測試程序是RESTful形式發佈的:性能優化
接口地址restful
參數說明架構
若是:編程語言
- 參與內測,測試的方式有不少種,同窗的程序能夠直接經過RESTful方式來訪問測試程序(推薦),
也能夠經過執行本身的程序來對比測試程序執行的結果,不管經過哪一種方式,須要至少提出測試程序的一個bug。
- bug須要直接在這裏提issue,同時在博客中附上issue的連接。
能夠得到2分的附加分。函數
參考連接
附:PSP 2.1表格
psp2.1 |
Personal Software Process Stages |
Time(%)student |
Time(%)SDE |
Planning |
計劃 |
|
|
Estimate |
估計這個任務須要多少時間 |
|
|
Development |
開發 |
|
|
Analysis |
需求分析 |
|
|
Design Spec |
生成設計文檔 |
|
|
Design Review |
設計複審(和同事審覈設計文檔) |
|
|
Coding Standerd |
代碼規範(爲目前的開發制定合適的規範) |
|
|
Design |
具體設計 |
|
|
Coding |
具體編碼 |
|
|
Code Review |
代碼複審 |
|
|
Text |
測試(自測,修改代碼,提交修改) |
|
|
Reporting |
報告 |
|
|
Text Report |
測試報告 |
|
|
Size Measurement |
計算工做量 |
|
|
Postmortem & Process Improvement Plan |
過後總結,並提出過程改進計劃 |