軟體復用就是利用已有的軟體元件來實現或更新新的軟體系統。
軟體復用可以大幅度的節省新軟體的開發時間和開發成本。譬如,如果你想造一輛超級跑車,那麼給你法拉利,邁**的圖紙,會不會感覺任務變得更輕鬆了呢。軟體復用讓我們的任務由從0到1簡化成了從1到2,這就是乙個質的飛躍。畢竟我們都知道,改進遠比創造要容易的多。可復用的軟體的適應性一般都比較強,在很多方面都有值得借鑑的地方。
還是給你法拉利的圖紙,如果這次造的是普通的家用轎車,那我們必定不能直接照搬照抄整個圖紙,畢竟家用轎車的預算和法拉利的預算天差地別,這也就體現了軟體復用的缺點所在,其針對性並不是很強,如果一有類似就全盤照搬照抄,往往會無法達到我們的期待。不只體現在效能差的方面,還有預算成本,健壯性,適用群體等多方面都會有所差距。
那麼既然很難找到兩個大致相仿的軟體系統,是否就意味著可復用軟體的開發並沒有什麼意義呢?
答案顯然是錯誤的。像吸收外來文化也得取其精華,棄其糟粕。軟體復用也是如此,我們只需保留其可復用的部分,捨棄其難以復用的部分即可。還是利用法拉利圖紙來開發家用轎車,引擎部分顯然是無法復用了,但是在車的形狀上是可以參考的,法拉利流線型的車身有益於速度的增加,那麼家用轎車同樣可以設計成流線型,既提高了速度,又可以節省燃料,最重要的,設計師們也不需要在為車身形狀的設計而苦苦思索,爭論不休了。
模組級別的復用:類/抽象類/介面
庫級別的復用:api/包
系統級別的復用:框架
how much? ——復用的代價有多大
軟體的可維護性和可復用性
軟體的復用 reuse 或重用擁有眾多優點,如可以提高軟體的開發效率,提高軟體質量,節約開發成本,恰當的復用還可以改善系統的可維護性。物件導向設計復用的目標在於實現支援可維護性的復用。在物件導向的設計裡面,可維護性復用都是以物件導向設計原則為基礎的,這些設計原則首先都是復用的原則,遵循這些設計原則可...
軟體構造 可復用性 Strategy模式
問題 針對特定任務存在多種演算法,呼叫者需要根據上下文環境動態的選擇和切換。strategy模式 定義乙個演算法的介面,每個演算法用乙個類來實現,客戶端針對介面編寫程式。圖示如下 stategy介面 演算法介面 concretestategya類 具體演算法a concretestategyb類 具...
可復用性 Reusability
1.2模組 類和介面 1.3庫 api 1.4架構 框架framework 2.可重用性的外部表現 可復用性是軟體構造過程中乙個重要的外部質量指標。對經過充分測試的程式進行復用可以利用其高可靠性 穩定性 適應性,並可降低成本以及開發時間。源 可見,直接複製並進行修改。需要對源 內部結構 設計思路充分...