软件工程之软件设计阶段
軟件設計階段也是軟件工程里的一個中重要問題,我把它分為三部分,軟件設計階段、軟件編碼階段和軟件測試階段。
一、軟件設計階段
????????
根據用信息域表示的軟件需求,以及功能和性能需求分析,軟件設計階段的目標有數據設計、系統結構設計和過程設計,這是從技術的觀點出發得到的。從工程管理的角度來看,軟件設計分兩步完,即概要設計和詳細設計,這也就是軟件設計的任務。
軟件設計過程分為七個步驟:
1、制定規范;
2、軟件系統結構的總體設計;
3、處理方式設計;
4、數據結構設計;
5、可靠性設計;
6、編寫概要設計階段的文檔;
7、概要設計評審
軟件設計基礎也有七個:
1、 自頂向下,逐步細化。將軟件的體系結構按自頂向下方式,對各個層次的過程細節和數據細節逐層細化。
2、軟件結構。軟件結構包括兩部分。程序的模塊結構和數據的結構。
3、程序結構。分為樹狀結構和網狀結構。
4、結構圖
5、模塊化。模塊的命名有兩種方式,一種是以功能做模塊名,另一種是以功能的縮寫做模塊名。模塊的調用關系和接口容易出現問題,當我們編寫程序的時候應該多注意這些問題。模塊具有獨立性,指軟件系統中每個模塊只涉及軟件要求的具體的子功能,一般用模塊間耦合和模塊內聚這兩個準則來度量模塊獨立性。模塊具有三個基本屬性,功能(描述該模塊實現什么功能),邏輯(描述模塊內部怎么做),狀態(該模塊使用時的環境和條件)。
6、抽象化。對事物的分析。
7、信息隱蔽。
二、編碼階段。
首先是程序設計語言,程序設計語言分為匯編語言和高級語言兩大類。語言選擇,應用領域的不同決定選擇的語言,也有根據系統用戶的要求決定,在運行目標系統的環境中可以提供的編譯程序往往限制了對語言的選擇,程序員的經驗和知識也決定了語言的選擇,軟件可移植性要求等條件都有可能限制語言的選擇。而選擇語言的原則有,最少的工作量原則,最少技巧性原則,最少錯誤原則,最少維護原則,減少記憶原則。根據以上的分析,可得出以下總原則,想求正確后求快,先求清晰后求快,求快不忘保持程序正確,保持程序整潔一求快,不要引效率而犧牲清晰。
其次是程序化程序設計。在編寫程序是,強調使用幾種基本控制結構。在程序設計過程中,盡量采用自頂向下和逐步細化的原則,由粗到細,一步步展開。結構化程序設計的主要原則是:
1、使用語言中的順序、選擇、重復等有限的基本控制結構表示程序邏輯
2、選用的控制結構只準許有一個入口個一個出口
3、復雜結構應該用基本控制結構進行組合嵌套來實現。
在編碼階段時也應采取詳細設計是的自頂向下,逐步求精的方法。
再者就是程序設計風格。程序實際上也是一種供人閱讀的文章,有一個文章的風格的問題。因此程序應具有以下良好的風格:
1、源程序文檔化。標識符的命名應該規范,清晰明了。要有一定的安排注釋,別人能夠讀懂你的代碼。程序看起來不讓人覺得很難看,也就是程序的視覺組織。
2、數據說明。為了使程序中的數據說明更易于理解和維護,必須注意的是,數據說明的次序應當規范化,說明語句中變量安排有序化,使用注釋說明復雜數據結構。
3、語句結構。語句構造力求簡單,直接,不能為了片面追求效率而使語句復雜化。如:一行內只寫一條語句,程序編寫首先應當考慮清晰性,程序要能直截了當地說明程序員的用意等。
4、輸入/輸出方法輸入和輸出信息是與用戶的使用直接相關的,輸入和輸出的方式和格式應當盡可能方便用戶的使用。
最后是程序的復雜性度量。程序復雜性主要指模塊內程序的復雜性,代碼行度量的方法基本考慮是統計一個程序模塊的源代碼行數目,并以源代碼行數做為程序復雜性的度量。McCabe度量法,又稱環路復雜性度量,是一種基于程序控制流的復雜性度量方法。
三、軟件測試
軟件測試是程序的執行過程,主要目的就是發現問題。軟件測試的原則有,盡早地和不斷地進行軟件測試,測試用例應由測試輸入數據和對應的預期輸出結果這兩部分組成,程序員應避免檢查自己的程序,在設計測試用例是,應擔包括合理的輸入條件和不合理的輸入條件。我們在敲機房收費系統的時候,都是一邊敲一邊找錯,敲完之后讓身邊的同學幫忙找錯,師父驗收的時候也是輸入一些合理的條件和不合理的條件,我覺得這些屬于軟件測試的一部分吧。
測試用例設計,測試用例設計有黑盒測試盒白盒測試兩種方法。黑盒測試是把測試對象看做一個黑盒子,檢查程序的功能是否符合它的功能說明。黑盒測試的測試用例設計有等價類劃分,邊界值分析,錯誤推測法和因果圖。白盒測試是把測試對象看做一個透明的盒子,對程序所有邏輯路徑進行測試。在白盒測試中,需要使用邏輯覆蓋著技術,邏輯覆蓋是以程序內部的邏輯結構為基礎的設計測試用例的技術,包括了語句覆蓋,判定覆蓋,條件覆蓋,判定一條件覆蓋,條件組合覆蓋和路徑覆蓋。
軟件測試的策略有:
1、單元測試。單元測試又稱模塊測試,是針對軟件設計的最小單位——程序模塊進行正確性檢驗的測試工作。它的內容包括,模塊接口,出錯處理,獨立路徑,邊界條件和局部數據結構。
2、組裝測試。分為一次性組裝方式和增殖式組裝方式。增殖式組裝方式有自頂向下的增殖方式、自底向上的增殖方式和混合增殖式測試。
3、確認測試。確認測試又稱有效性測試。任務是驗證軟件的功能和性能及其它特性是否與用戶的要求一致。
4、驗收測試。驗收測試是以用戶為主的測試。軟件開發人員和QA(質量保證)人員也應參加。由用戶參加設計測試用例,使用生產中的實際數據進行測試。
5、系統測試。將通過確認測試的軟件,作為整個基于計算機系統的一個元素,與計算機硬件、外設、某些支持軟件、數據和人員等其它系統元素結合在一起,在實際運行環境下,對計算機系統進行一系列的組裝測試盒確認測試。
軟件測試的種類分為多種,有功能測試,可靠性測試,性能測試,恢復測試,安全性測試,可使用性測試,過程測試,互連測試,兼容性測試,容量測試和文檔測試。
軟件調試是在進行了成功的測試之后才開始的工作,它與軟件測試不同,調試的任務是進一步診斷和改正程序中潛在的錯誤。
調試的步驟:
1、從錯誤的外部表現形式入手,確定程序中出錯位置;
2、研究有關部分的程序,找出錯誤的內在原因;
3、修改設計和代碼,以排除這個錯誤;
4、重復進行暴露了這個錯誤的原始測試或某些有關測試。
調試的關鍵在于推斷程序內部的錯誤位置及原因,可采用強行排錯、回溯法調試(比較適合小程序中的調試)、歸納法調試(從錯誤征兆入手)、演繹法調試(從原理或前提出發)
四、總結
軟件工程的設計階段這三個部分缺一不可,有一個合理的軟件設計才能又好又快的編寫代碼部分,代碼部分肯定是有或多或少的錯誤,所以就少不了測試,找出錯誤,解決問題,有了這三個步驟才能保證程序的正常運行。
總結
以上是生活随笔為你收集整理的软件工程之软件设计阶段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xarray的DataArray查看na
- 下一篇: gamma 色彩饱和度_网页设计师的色彩