天天看點

《Python語言程式設計》——2.13 軟體開發流程

本節書摘來自華章計算機《python語言程式設計》一書中的第2章,第2.13節,作者:[美]梁勇(y. daniel liang) 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

關鍵點:程式開發周期是一個包括明确需求、分析、設計、實作、測試、部署和維護的多步驟過程。

開發軟體是一個工程過程。軟體産品,無論是大還是小,它們都有相同的周期:明确需求、系統分析、系統設計、實作、測試、部署和維護,如圖2-2所示。

明确需求是尋求了解軟體要解決的問題和建立關于軟體系統需要完成任務的詳細文檔的一個正式流程。這個階段需要使用者和開發者之間的進行緊密的互動。本書中大多數例子都很簡單,并且它們的需求陳述很明确。然而,在現實世界中,問題并不總是定義明确。開發者需要保持和使用者(會使用軟體的個人或團體)緊密的聯系,仔細研究問題以期明确到底需要軟體做什麼。

《Python語言程式設計》——2.13 軟體開發流程

https://yqfile.alicdn.com/a085ddfcddda0a9fb7881fea8b2729a770f67e5b.png" >

圖2-2 在程式開發周期的任何一步,為了修改錯誤或解決導緻程式

不能完成既定功能的問題,退回前一步是有必要的

系統分析是指分析資料流和識别系統的輸入和輸出。當你分析時,它幫你确認哪個輸入是最早的,然後幫你搞清楚要産生輸出需要哪些輸入資料。

系統設計是設計從輸入擷取輸出的過程。這一階段涉及很多層的抽象,将問題分解為可管理的幾個元件,然後為每個元件的實作設計政策。你可以将每個元件看作一個完成系統中特定功能的子系統。系統分析和設計的本質是輸入、處理和輸出(ipo)。

實作過程涉及将系統設計翻譯成程式。每個元件被編寫成各自的程式,然後将它們內建在一起工作。這一階段需要使用程式設計語言,例如:python。實作過程設計到編寫代碼、自測和調試(就是在代碼中找被稱為小蟲子(bug)的錯誤)。

測試過程確定代碼滿足需求規範并且清除程式bug。一部分不參與産品設計和實作的工程師組成的獨立團隊通常進行這類測試。

部署過程是使程式可以使用。根據軟體類型的不同,有些安裝到每個使用者的機器上而有些則安裝在可以通過網際網路通路的伺服器上。

維護過程涉及産品的更新和更新。一款軟體産品必須持續在一個不斷變化的環境中完善和更新。這需要定期更新産品來解決最新發現的bug并合并這些改變。

為了更直覺地看軟體開發過程,我們現在建立一個計算貸款支付額的程式。這筆貸款可以是汽車貸款、學生貸款或房屋抵押貸款。作為一個對程式設計教學的介紹,我們專注于需求分析、分析、設計、實作和測試。

第1階段:需求分析

這個程式必須滿足以下需求:

必須由使用者鍵入利率、貸款數以及貸款的年限。

必須計算出每月還貸數和總還款數。

第2階段:系統分析

輸出是月供(monthlypayment)和總還款數(totalpayment),可以通過下面的公式來擷取:

《Python語言程式設計》——2.13 軟體開發流程

https://yqfile.alicdn.com/92c6589e4f916b90f6567f2eeb5c5c1df7fbf092.png

" >

是以,程式需要輸入的是年利率、貸款年限和總貸款數目。

注意:需求分析要求使用者必須輸入利率、貸款數、貸款年限。但在分析過程中,有可能你會發現輸入是不充分的或有些輸入對于輸出而言是不必要的。如果是這樣,你可以傳回上一步修改需求分析。

注意:在現實世界裡,你會為各行各業的使用者工作。你可能會為化學家、實體學家、工程師、經濟學家和心理學家開發軟體。你不一定會有(或需要)這些行業的完備知識。是以,你不需要知道這些數學公式是怎樣推導出來的。是以,在給出利率、貸款數、貸款年限的情況下,你可以利用公式來計算月供。然而,你需要和使用者進行交流并了解這個數學模型是如何為系統工作的。

第3階段:系統設計

在系統設計過程中,你需要确定程式中以下幾個步驟。

第1步:提示使用者輸入年利率、貸款數、貸款年限和貸款額。

第2步:輸入的年利率是百分比格式的數字,例如:4.5%。程式需要将它除以100轉換為小數。因為一年有12個月,是以将年利率除以12即月利率。是以,為了擷取月利率,你需要将百分比格式的年利率除以1200。例如:如果年利率是4.5%,那月利率就是4.5/1200=0.003 75。

第3步:使用第2步中的公式計算月供。

第4步:通過将月供乘以12再乘以貸款年限求出還款總額。

第5步:顯示月供和還款總額。

第4階段:實作過程

實作過程又被稱為編碼(編寫代碼)。在公式中,你需要計算(1 + 月利率)年限×12。你可以利用指數運算符将它寫作:

《Python語言程式設計》——2.13 軟體開發流程

程式清單2-8給出了完整的程式。

程式清單2-8 computeloan.py

《Python語言程式設計》——2.13 軟體開發流程
《Python語言程式設計》——2.13 軟體開發流程

第2行讀取年利率,該值在第4行被轉換為月利率。

計算月供的公式在第14到15行被翻譯成python代碼。

變量monthlypayment(第14行)是2076.0252175。注意:

《Python語言程式設計》——2.13 軟體開發流程

https://yqfile.alicdn.com/c30b28ac3788a89f99e2d4e61e5b48e2f299b923.png" >

是以,第19行顯示的是保留了小數點後兩位的稅款2076.02。

第5階段:測試過程

在實作程式之後,測試過程是利用幾組樣本輸入資料來驗證輸出是否正确來完成的。如你在後面幾章會看到的一樣,某些問題會牽扯到許多情況。對于這種類型的問題,你需要設計能涵蓋所有情況的測試資料。

提示:這個例子的系統設計階段确認了幾個步驟。一次增加一步來開發和測試這些步驟是一種很好的方法。這個過程可以更容易查明問題也更易于調試。