瀑布模型:計劃
螺旋模型:風險低
原型模型: 用戶反饋
噴泉模型:代碼復用
?高內聚 低耦合:模塊內部功能緊密 模塊之間依賴程度小
-
高內聚:指的是一個模塊內部的功能應該緊密相關。換句話說,一個模塊應當只實現單一的功能或者一組緊密相關的功能。這樣做的好處是可以讓模塊更容易理解和維護。例如,一個專門處理用戶輸入驗證的模塊就應該只包含與輸入驗證相關的代碼,而不應該混入數據庫訪問等其他功能的代碼。
-
低耦合:指的是模塊之間的依賴程度要盡可能小。模塊之間如果存在高度依賴(即高耦合),那么修改一個模塊可能會導致其他多個模塊也需要做出相應修改,這會大大增加維護成本和出錯的可能性。低耦合的設計鼓勵使用接口或者抽象層來減少直接依賴,使得系統更加靈活和易于修改。例如,通過定義接口來規范不同模塊之間的交互,可以降低模塊間的直接依賴關系。
類圖:
1.關聯關系(association)
關聯關系是用一條直線表示的;它描述不同類的對象之間的結構關系;它是一種靜態關系, 通常與運行狀態無關,一般由常識等因素決定的;它一般用來定義對象之間靜態的、天然的結構; 所以,關聯關系是一種“強關聯”的關系;
比如,乘車人和車票之間就是一種關聯關系;學生和學校就是一種關聯關系;
關聯關系默認不強調方向,表示對象間相互知道;如果特別強調方向,如下圖,表示A知道B,但 B不知道A;
注:在最終代碼中,關聯對象通常是以成員變量的形式實現的;
?
2.依賴關系:是用一套帶箭頭的虛線表示的;如下圖表示A依賴于B;他描述一個對象在運行期間會用到另一個對象的關系;
與關聯關系不同的是,它是一種臨時性的關系,通常在運行期間產生,并且隨著運行時的變化; 依賴關系也可能發生變化;
顯然,依賴也有方向,雙向依賴是一種非常糟糕的結構,我們總是應該保持單向依賴,杜絕雙向依賴的產生;
?
?
軟件測試的目的
- 測試是一個為了發現錯誤而執行程序的過程。
- 一個好的測試用例是指很可能找到迄今為止尚未發現的錯誤的測試用例。
- 一個成功的測試是指揭示了迄今為止尚未發現的錯誤的測試。
白盒測試
-
語句覆蓋:
-
判定覆蓋:選擇足夠的測試用例,使得運行這些測試用例時,被測程序的所有可能結果都至少出現一次(即判定的每個分支都至少經過一次)
-
條件覆蓋:選擇足夠的測試用例,使得運行這些測試用例時,被測程序的每個判定中的每個條件的所有可能結果都至少出現一次
黑盒測試
-
等價分類法:
-
邊界值分析法:
測試策略
-
單元測試:是針對程序中的模塊或構件,主要揭露編碼階段產生的錯誤。
-
集成測試:針對集成的軟件系統,主要揭露設計階段產生的錯誤
-
確認測試:是根據軟件需求規約對集成的軟件進行確認,主要揭露不符合需求規約的錯誤。
-
系統測試:對于基于計算機系統中的軟件,還需將它集成到基于計算機系統中,并進行系統測試,以揭露不符合系統工程中對軟件要求的錯誤。
軟件維護與再工程
1.什么是軟件維護?
是指軟件系統交付使用以后,為了改正錯誤或滿足新的需要而修改軟件的過程。
2.軟件維護分類
糾錯性維護:為了改正軟件系統中的錯誤,使軟件能夠滿足預期的正常運行狀態的要求而進行的維護
適應性維護:為了使軟件適應內部或外部環境變化,而去修改軟件的過程。
改善性維護:滿足使用過程中用戶提出增加新功能或修改已有功能的建議維護。
預防性維護:為了提高軟件的可維護性、可靠性等,為以后進一步改進軟件打下良好基礎而修改軟件的活動。
?