• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件測試面向對象軟件開發的敏捷過程[2]

    發布: 2009-11-18 10:26 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 26次 | 進入軟件測試論壇討論

    領測軟件測試網

    軟件測試面向對象軟件開發敏捷過程[2] 軟件測試工具

    關鍵字:oo

      面向對象軟件設計的原則 :

      一、總體原則 :

      1. 針對于接口(抽象)編程,而不要針對于實現(具體)編程。

      舉例來說:操作系統是對邏輯計算機的抽象,通過操作系統的抽象我們不需要考慮具體使用的硬件配置,可以在較高的層次上進行更高生產力的應用。再如:匯編語言對機器的 0 , 1 代碼進行了抽象,大大加快了開發效率,后來使用的高級語言和第四代語言模型驅動抽象的級別更高,生產力也更高。再如: java 和 .net 實現于一個抽象的軟件虛擬機,進一步使開發出來的組件可以跨平臺和操作系統。通過抽象出數據訪問層(持久化層),可以使業務邏輯和具體的數據庫訪問代碼分離,更換數據庫提供商對已有的組件沒有影響。具體實現可以參照 hibernate 實現和 dao (數據訪問對象)模式。

      優勢:

      1 )降低程序各個部分之間的耦合性,使程序模塊互換成為可能。調用的客戶端無需知道具體使用的對象類型,只要對象有客戶希望的接口就可以使用,對象具體是如何實現這些接口的,客戶并不需要考慮。

      2 )簡化了程序各個部分的單元測試,將需要測試的程序模塊中通過重構提煉出抽象的接口,然后編制和接口一致的 Mock 類,測試就會變得很容易。如果應用了測試優先的方法,從簡化客戶端調用的角度,還可以經過抽象改善軟件模塊的設計。

      3 )模塊的部署升級由于模塊之間的耦合度降低變得更加容易。

      相關的設計模式有創建型模式中的工廠模式,結構型模式中的代理模式和組合模式等。

      2. 對象組合優于類繼承。

      面向對象為軟件開發引入了三大工具:繼承,多態和重載。繼承使得程序員可以快速的通過擴展子類來增加功能,但是由于繼承是在編譯時確定的,因此增加的功能較多時,繼承不夠靈活,還有可能出現“子類爆炸”的局面(為了完成新添功能,不得不在繼承體系中添入大量的之間只有細微差別的子類,掌握使用擴展都會變得非常困難)。而通過對象的組合,可以動態透明的添加功能。相關設計模式有裝飾模式和代理模式等。

      3. 分離變化。

      前面說過需求是在不斷變化的,不同的變化可能是倉庫安全庫存的計算方法,可能是報表和數據的展現形式,通過把這些不同的變化識別并分離出來不同的對象委托,簡化了客戶端的調用和升級。相關的設計模式有命令模式,觀察者模式,策略模式,狀態模式,模版方法模式等。

      二、具體原則:

      1. 單一職責原則 srp ( single responsibility principle )

      一個模塊的功能應該盡可能的內聚。如果一個類發生了變化,引起變化的原因應該有且只有一個。每一個類承擔的職責都是一個變化的軸線,需求變化時,會體現為類的職責的變化。如果一個類承擔的職責過多,就等于把這些職責耦合在了一起,一個職責的變化會影響這個類完成其他職責的能力,會出現前面所說的軟件的臭味之一脆弱性。相關的設計模式有

      2. 開放封閉原則 ocp ( open closed principle )

      一個模塊應該對功能的擴展開放,支持新的行為,對自身的更改封閉。每次對模塊的修改都可能會引入新的錯誤和新的依賴。因此擴展新功能時,已經編好的模塊源碼和二進制代碼都是不應該修改的。相關的設計模式有適配器模式,橋接模式,訪問者模式等。

      3. Liskov 替換原則 lsp ( liskov subtitle principle )

      子類型必須可以替換掉他的基類型。一個基類的多個子類型之間要完成動態的替換,各個子類型必須都可以被他們的基類型替換,這樣他們之間動態替換后,客戶端調用的代碼就不需要冗贅的 switch 類型判斷代碼。如果 子類型無法替換基類型,將會導致在派生類對象作為基類對象進行傳值時的錯誤。這樣多態機制處于癱瘓狀態了。相關設計模式為組合模式。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 面向對象 軟件測試 軟件開發


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>