1. 程式人生 > >第五次作業——python效能分析與幾個問題(個人作業)

第五次作業——python效能分析與幾個問題(個人作業)

結合 撰寫 porting tin 設計實現 cti personal 設計文檔 hub

第五次作業——效能分析與幾個問題(個人作業)

前言

閱讀了大家對於本課程的目標和規劃之後,想必很多同學都躍躍欲試,迫不及待想要提高自身實踐能力,那麽就從第一個個人項目開始吧,題目要求見下。

閱讀

閱讀《構建之法》第一章至第三章的內容,並在下方作業裏體現出閱讀後的成果。特別是第2章中的效能分析及個人軟件開發流程(PSP)。

參考文章:

  • 《構建之法》教學筆記——Python中的效能分析與幾個問題
  • 四則運算器效能分析
  • 軟工第2次作業-四則運算器

題目描述

可以選擇以下題目(或者自主選擇題目和語言,提交材料不變):

題目要求:

  • 能自動生成小學四則運算題目(註意是給小學生用的,要是結果出現負數的話他們會迷茫的!)
  • 除了整數外,還要支持真分數的四則運算

工具清單

  • 編程語言:Python
  • 效能分析工具:多種(自選):https://blog.csdn.net/xiemanr/article/details/72763234
  • 源代碼管理平臺: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形式發布的:

接口地址

參數說明

如果:

  1. 參與內測,測試的方式有很多種,同學的程序可以直接通過RESTful方式來訪問測試程序(推薦),
    也可以通過執行自己的程序來對比測試程序執行的結果,無論通過哪種方式,需要至少提出測試程序的一個bug。
  2. bug需要直接在這裏提issue,同時在博客中附上issue的鏈接。

可以獲得2分的附加分。

參考鏈接

  • 理解RESTful架構
  • 從消費者的角度評估REST的價值

附: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 事後總結,並提出過程改進計劃

第五次作業——python效能分析與幾個問題(個人作業)