關於軟體重用

來源:互聯網
上載者:User

  在現實的大多數項目中,我們都在考慮著軟體重用的問題,因為這是在軟體開發中無法避免的一個很現實的問題,也是一個很讓人的頭疼的問題。下面是我對軟體重用的非常個人的理解,僅作參考。

軟體重用可分為兩個層次,一個層次是設計上的重用,另外一個層次是代碼級的重用,而代碼級的重用上又可分細分為兩個層次,一個是基於原始碼的重用,另外一個是基於組件的重用。

無論是以往的瀑布型開發模式還是現在比較流行的敏捷開發,無不體現了“設計先行”的觀點,雖然敏捷更注重代碼,但是也還是強調簡單設計。設計上的重用往往體現在對一個事物或領域的知識的重用。比如我們設計了一個排版系統,我們希望重用的可能就是其中的排版規則以及和排版領域相關的核心概念,不同的排版系統都可重新利用這些核心規則和概念建立其自己的系統。因為這種重用方式非常抽象,因此它的重用度是最高的,與此同時也是最難的。MDA就突出地強調了在設計層面的重用。

其實,在現實的項目中,我們提到的重用往往都是代碼級的重用。不同的平台對於重用的觀點上是不一樣的,COM和.NET平台更多地是強調組件級的重用,而STL更多地是強調源碼級的重用。兩者沒有孰優孰劣的說法,在不同的項目中兩者都各有千秋。

但是源碼級重用的一個最大的缺點就是它被程式設計語言所約束,比如說STL代碼就只能被C++程式所使用。而基於組件的重用就有所不同,.NET強調了平台的統一,因此C#編寫的一個組件就可被VB.NET或VC++/CLI程式所複用。從這個角度來說,.NET更多地強調的組件級的重用,因此組件級的重用要求平台的統一。目前.NET就實現了不同的程式設計語言架構在同一個平台上,那就是CLI,如C++/CLI、Python/CLI等。

微軟從COM到.NET一直都在堅持著組件級重用的思想,這是一個趨勢,畢竟原始碼重用是有很多缺陷的,同時設計級的重用難度太高。現在一些組織也在朝著這個方向努力,但是目前的成效並不是太明顯。因此,就目前來說,我們應該更多地關注組件級的重用。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.