大學三年級的第二學期咱們開設了軟件工程這門課程,開學第一節課經過代老師的精彩講解,使我對這門課程產生了濃厚的興趣與學習熱情。代老師讓咱們在課下的學習過程當中通讀教材《構建之法》,經過對教材的閱讀後我以爲這門課程含金量很高,須要下功夫去理解與掌握,經過對教材的閱讀我提出瞭如下三個問題:算法
1.軟件概要設計和軟件詳細設計有什麼區別?數據庫
答:概要設計就是設計軟件的結構,包括組成模塊,模塊的層次結構,模塊的調用關係,每一個模塊的功能等等。同時,還要設計該項目的應用系統的整體數據結構和數據庫結構,即應用系統要存儲什麼數據,這些數據是什麼樣的結構,它們之間有什麼關係。
詳細設計階段就是爲每一個模塊完成的功能進行具體的描述,要把功能描述轉變爲精確的、結構化的過程描述。
概要設計階段一般獲得軟件結構圖
詳細設計階段經常使用的描述方式有:流程圖、N-S圖、PAD圖、僞代碼等。數據結構
2.一個完整軟件開發流程須要哪些步驟?(書上P96頁)框架
答:軟件開發通常分爲五個階段:
1.問題的定義及規劃
此階段是軟件開發與需求放共同討論,主要肯定軟件的開發目標及其可行性。
2.需求分析
在肯定軟件開發可行性的狀況下,對軟件須要實現的各個功能進行詳細需求分析。需求分析階段是一個很重要的階段,這一階段作的好,將爲整個軟件項目的開發打下良好的基礎。「惟一不變的是變化自己」,一樣軟件需求也是在軟件愛你開發過程當中不斷變化和深刻的,所以,咱們必須定製需求變動計劃來應付這種變化,以保護整個項目的正常進行。
3.軟件設計
此階段中偶要根據需求分析的結果,對整個軟件系統進行設計,如系統框架設計、數據庫設計等。軟件設計通常分爲整體設計和詳細設計。還的軟件設計將爲軟件程序編寫打下良好的基礎。
4.程序編碼
此階段是將軟件設計的結果轉化爲計算機可運行的程序代碼。在程序編碼中一定要制定統1、符合標準的編寫規範。以保證程序的可讀性、易維護性。提升程序的運行效率。
5.軟件測試
在軟件設計完成以後要進行嚴密的測試,一發現軟件在整個軟件設計過程當中存在的問題並加以糾正。整個測試階段分爲單元測試、組裝測試、系統測試三個階段進行。測試方法主要有白盒測試和黑盒測試。數據庫設計
3.書上P223頁提到軟件的設計與實現包括哪幾個步驟?佈局
第一步,一個對軟件的全局觀點。系統經過逐步求精使得設計陳述逐漸接近源代碼。這裏有兩個基本步驟,第一步是初步設計(Preliminary design) ,關注於如何將需求轉換成數據和軟件框架。單元測試
第二步是 詳細設計(Detail design),關注於將框架逐步求精細化爲具體的數據結構和軟件的算法表達。發生中的設計行爲、數據、算法和程序設計都須要由現代程序所需的界面設計這一清晰的行爲來結合起來。界面設計(Interface design) 創建程序佈局和人機交互機制。貫穿設計過程的質量由一系列的正式技術評定(formal technical reviews)或設計排演(design walkthroughs)來評價。學習
4.在團隊開發中,每一個人的性格也不盡相同,有人喜歡把事情儘早作出來,但也有人喜歡把事情放在後面,拖到最後,出現兩極分化這樣就會產生衝突、工做進展緩慢、合做不愉快等,那要如何協調和解決這件事,從而保證團隊的高度團結和團隊開發的效率?(書上P90頁第五章團隊和流程)測試