軟件架構設計學習總結(17):架構和框架的區別


7層是框架還是架構

 框架:

            1、定義:

               框架(framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件實例間交互的方法,另一種定義為,框架是可被應用開發者定制的應用骨架,前者是從應用方面而后者是從墓地的方面給出的定義。

               框架是一個可服用的設計構件,通常以構件庫的形式出現,但構架庫只是框架的一個重要部分,框架的關鍵在於框架內對象間的的交互模式和控制流模式。

 

            2、框架和構件

                 框架比構件可定制性強。在某種程序上,將構件和框架看成兩個不同但又彼此協作的技術更好。框架為構件提供重用的環境,為構件處理錯誤,交換數據及激活操作提供了標准的方法。

 

              3、應用框架

                  應用框架是實現了某應用領域通用完備功能(除去特殊應用的部分)的底層服務。使用這種框架的編程人員可以在一個通用功能已經實現的基礎上開始具體的系統開發,框架提供了所有應用期望的默認行為的類集合。具體的應用通過重寫子類或組裝對象來支持應用專用的行為。

 

           4、框架的特點

                 ① 其實就是某種應用的半成品,就是一組組件,供你選用完成你自己的系統,而且框架一般是成熟的,不斷升級的軟件。

                 ②框架是一個可復用設計,它是由一組抽象類及其實例間協作關系來表達的。

                 ③一個框架是在一個給定的問題領域內,一個應用程序的一部分設計與實現,也就是說框架是對特定應用領域中的應用系統的部分設計和實現。

            5、為什么要用框架

                   因為軟件系統發展到今天已經很復雜了,特別是服務器端軟件,涉及到的知識,內容,問題太多。在某些方面使用別人成熟的框架,就相當於讓別人幫你完成一些基礎工作,你只需要集中精力完成系統的業務邏輯設計。而且框架一般是成熟,穩健的,他可以處理系統很多細節問題,比如,事物處理,安全性,數據流控制等問題。還有框架一般都經過很多人使用,所以結構很好,所以擴展性也很好,而且它是不斷升級的,你可以直接享受別人升級代碼帶來的好處。

         

架構

          1、定義

              軟件架構(software architecture)是一系列相關的抽象模式,用於指導大型軟件系統各個方面的設計,是一個系統的草圖,描述的對象是直接構成系統的抽象組件。各個組件之間的連接明確細致的描述組件之間的通訊。

        2、如何使用

             在實現階段,這些抽象組件被細化為實際的組件,比如具體某個類或對象,在面向對象領域當中,組件之間的連接通常用接口來實現。軟件體系結構是構建計算機軟件實踐的基礎。

        3、要素

              ①它是一個軟件系統從整體到部分的最高層次的划分。

 

                 一個系統通常是由元件組成的,而這些元件如何形成、相互之間如何發生作用,則是關於這個系統本身結構的重要信息。詳細地說,就是要包括架構元件(Architecture Component)、聯結器(Connector)、任務流(Task-flow)。所謂架構元素,也就是組成系統的核心"磚瓦",而聯結器則描述這些元件之間通訊的路徑、通訊的機制、通訊的預期結果,任務流則描述系統如何使用這些元件和聯結器完成某一項需求。

 

              ②建造一個系統所作出的最高層次的、以后難以更改的,商業的和技術的決定。

 

                 在建造一個系統之前會有很多的重要決定需要事先作出,而一旦系統開始進行詳細設計甚至建造,這些決定就很難更改甚至無法更改。顯然,這樣的決定必定是有關系統設計成敗的最重要決定,必須經過非常慎重的研究和考察。

          4、設計目標

                1.可靠性(Reliable)。軟件系統對於用戶的商業經營和管理來說極為重要,因此軟件系統必須非常可靠。
                2.安全性(Secure)。軟件系統所承擔的交易的商業價值極高,系統的安全性非常重要。
                3.可擴展性(Scalable)。軟件必須能夠在用戶的使用率、用戶的數目增加很快的情況下,保持合理的性能。只有這樣,才能適應用戶的市場擴展得可能性。
                4.可定制化(Customizable)。同樣的一套軟件,可以根據客戶群的不同和市場需求的變化進行調整。
                5.可伸縮 (Extensible)。在新技術出現的時候,一個軟件系統應當允許導入新技術,從而對現有系統進行功能和性能的擴展。
                6.可維護性(Maintainable)。軟件系統的維護包括兩方面,一是排除現有的錯誤,二是將新的軟件需求反映到現有系統中去。一個易於維護的系統可以有效地降低技術支持的花費。
                7.客戶體驗(Customer Experience)。軟件系統必須易於使用。
                8.市場時機(Time to Market)。軟件用戶要面臨同業競爭,軟件提供商也要面臨同業競爭。以最快的速度爭奪市場先機非常重要。

 

框架與架構區別

            1、框架是軟件,架構不是軟件。

                 框架是一種特殊的軟件,它並不能提供完整無缺的解決方案,而是為你構建解決方案提供良好的基礎。框架是半成品。典型地,框架是系統或子系統的半成品;框架中的服務可以被最終應用系統直接調用,而框架中的擴展點是供應用開發人員定制的“可變化點”

                 軟件架構不是軟件,而是關於軟件如何設計的重要決策。軟件架構決策涉及到如何將軟件系統分解成不同的部分、各部分之間的靜態結構關系和動態交互關系等。經過完整的開發過程之后,這些架構決策將體現在最終開發出的軟件系統中;當然,引入軟件框架之后,整個開發過程變成了“分兩步走”,而架構決策往往會體現在框架之中。

 

                 我們不能指着某些代碼,說這就是軟件架構,因為軟件架構是比具體代碼高一個抽象層次的概念。架構勢必被代碼所體現和遵循,但任何一段具體的代碼都代表不了架構。

 

架構、框架、模式

            架構、框架、模式是一種從大到小的關系,也是一種組合關系。

            架構一般針對議和行業或一類應用,是技術和應用的完美結合。

            框架比較小,很多表現為中間件,框架一般是從技術角度解決同類問題,從技術的橫切面來解決實際應用問題。

            模式就更小了,靈活,可重用的范圍更廣。

           一個框架可能使用了多個設計模式,而一個架構很可能應用了多個框架。

          看完了這些概述,你知道7層屬於哪個了嗎?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM