不少人在學完了python的class機制以後,遇到一個生產中的問題,仍是會懵逼,這其實太正常了,由於任何程序的開發都是先設計後編程,python的class機制只不過是一種編程方式,若是你硬要拿着class去和你的問題死磕,變得更加懵逼都是分分鐘的事,在之前,軟件的開發相對簡單,從任務的分析到編寫程序,再到程序的調試,能夠由一我的或一個小組去完成。可是隨着軟件規模的迅速增大,軟件任意麪臨的問題十分複雜,須要考慮的因素太多,在一個軟件中所產生的錯誤和隱藏的錯誤、未知的錯誤可能達到驚人的程度,這也不是在設計階段就徹底解決的。python
因此軟件的開發其實一整套規範,咱們所學的只是其中的一小部分,一個完整的開發過程,須要明確每一個階段的任務,在保證一個階段正確的前提下再進行下一個階段的工做,稱之爲軟件工程算法
面向對象的軟件工程包括下面幾個部分:編程
一、面向對象分析(object oriented analysis, OOA)工具
軟件工程中的系統分析階段,要求分析員和用戶結合在一塊兒,對用戶的需求作出精確的分析和明確的表述,從大的方面解析軟件系統應該作什麼,而不是怎麼去作。面向對象的分析要按照面向對象的概念和方法,在對任務的分析中,從客觀存在的事物和事物之間的關係,概括出有關的對象(對象的‘特徵’和‘技能’)以及對象之間的聯繫,並將具備相同屬性和行爲的對象用一個類class來標識。性能
創建一個能反映這是工做狀況的需求模型,此時的模型是粗略的。測試
二、面向對象設計(object oriented design, OOD)設計
根據面向對象分析階段造成的需求模型,對每一部分分別進行具體的設計。調試
首先是類的設計,類的設計可能包含多個層次(利用繼承與派生機制)。而後以這些類爲基礎提出程序設計的思路和方法,包括對算法的設計。對象
在設計階段並不牽涉任何一門具體的計算機語言,而是用一種更通用的描述工具(如僞代碼或流程圖)來描述。繼承
三、面向對象編程(object oriented programming, OOP)
根據面向對象設計的結果,選擇一種計算機語言把它寫成程序,能夠是python。
四、面向對象測試(object oriented test, OOT)
在寫好程序後交給用戶使用前,必須對程序進行嚴格的測試,測試的目的是發現程序中的錯誤並修正它。
面向對的測試是用面向對象的方法進行測試,以類做爲測試的基本單元。
五、面向對象維護(object oriented soft maintenance, OOSM)
正如對任何產品都須要進行售後服務和維護同樣,軟件在使用時也會出現一些問題,或者軟件商想改進軟件的性能,這就須要修改程序。
因爲使用了面向對象的方法開發程序,使用程序的維護比較容易。
由於對象的封裝性,修改一個對象對其餘的對象影響很小,利用面向對象的方法維護程序,大大提升了軟件維護的效率,可擴展性高。
在面向對象方法中,最先發展的確定是面向對象編程(OOP),那時OOA和OOD都尚未發展起來,所以程序設計者爲了寫出面向對象的程序,還必須深刻到分析和設計領域,尤爲是設計領域,那時的OOP實際上包含了如今的OOD和OOP兩個階段,這對程序設計者要求比較高,許多人感到很難掌握。
如今設計一個大的軟件,是嚴格按照面向對象軟件工程的5個階段進行的,這個5個階段的工做不是由一我的從頭至尾完成的,而是由不一樣的人分別完成,這樣OOP階段的任務就比較簡單了。程序編寫者只須要根據OOd提出的思路,用面嚮對象語言編寫出程序既可。