系統(tǒng)分析與設(shè)計(jì)學(xué)習(xí)筆記7

描述軟件架構(gòu)與框架之間的區(qū)別與聯(lián)系

一、軟件框架
?軟件框架是面向領(lǐng)域(如ERP、計(jì)算領(lǐng)域等)的、可復(fù)用的“半成品”軟件,它實(shí)現(xiàn)了該領(lǐng)域的共性部分,并提供了一些定義良好的可變點(diǎn)以保證靈活性和可擴(kuò)展性。也就是說(shuō)軟件框架是領(lǐng)域分析結(jié)果的軟件化,是領(lǐng)域內(nèi)最終應(yīng)用的模板。

隨著軟件規(guī)模的擴(kuò)大、應(yīng)用廣泛和軟件復(fù)用技術(shù)的發(fā)展,以子程序和類(lèi)為單位的軟件復(fù)用出現(xiàn)了很多的不足之處:

(1)子程序的庫(kù)越來(lái)越龐大以至于其使用人員難以掌握

(2)大多數(shù)類(lèi)的粒度很小,其自身不能完成所有有用的功能

正是因?yàn)檫@些原因,使得人們?cè)趶?fù)用中將一組類(lèi)(模塊)作為一個(gè)整體來(lái)考慮,由此出現(xiàn)了軟件框架。而軟件框架中至少包含以下組成部分:

(1)一系列完成計(jì)算的模塊,成為構(gòu)件

(2)構(gòu)件之間的關(guān)系及交互機(jī)制

(3)一系列可變點(diǎn)(熱點(diǎn)、或者稱(chēng)為調(diào)整點(diǎn))

(4)可變點(diǎn)的行為調(diào)整機(jī)制

開(kāi)發(fā)人員通過(guò)軟件框架行為調(diào)整機(jī)制,將領(lǐng)域中具體應(yīng)用中所特有的軟件模塊綁定到該軟件框架的可變點(diǎn)上,從而得到了最終的應(yīng)用系統(tǒng),這個(gè)過(guò)程稱(chēng)為軟件軟件框架的例化,軟件框架的存在使得開(kāi)發(fā)人員將主要的精力放在系統(tǒng)所特有的模塊的開(kāi)發(fā)上,從而提高軟件的生產(chǎn)率和質(zhì)量。

軟件框架的行為調(diào)整機(jī)制是指如何針對(duì)具體的應(yīng)用調(diào)整該框架的可變部分、如何在可變點(diǎn)加入特定應(yīng)用模塊所采用的方法和規(guī)則。

二、軟件架構(gòu)?
軟件架構(gòu)是一個(gè)系統(tǒng)的草圖。軟件架構(gòu)描述的對(duì)象是直接構(gòu)成系統(tǒng)的抽象組件。各個(gè)組件之間的連接則明確和相對(duì)細(xì)致地描述組件之間的通訊。
軟件架構(gòu)在定義上分為‘組成派’和‘決策派’兩大陣營(yíng),分別描述如下:

  1. ’組成派‘認(rèn)為軟件架構(gòu)是將系統(tǒng)描述成計(jì)算組件及組件之間的交互。它有兩個(gè)非常明顯的特點(diǎn)“:

    • 關(guān)注架構(gòu)實(shí)踐的客體——軟件,以軟件本身作為描述對(duì)象。
    • 分析了軟件的組成,說(shuō)明軟件不是一個(gè)‘原子’意義上的整體,而是有不同的部分經(jīng)過(guò)特定的接口進(jìn)行連接組成的一個(gè)整體,這對(duì)軟件開(kāi)發(fā)來(lái)說(shuō)很重要。
  2. ‘決策派’認(rèn)為軟件架構(gòu)包含了一系列的決策,主要包括:

    • 軟件系統(tǒng)的組織
    • 選擇組成系統(tǒng)的結(jié)構(gòu)元素和它們之間的接口,以及當(dāng)這些元素相互協(xié)作時(shí)所體現(xiàn)的行為
    • 如何組合這些元素,使它們逐漸合成為更大的子系統(tǒng)
    • 用于指導(dǎo)這個(gè)系統(tǒng)組織的架構(gòu)風(fēng)格:這些元素以及它們的接口、協(xié)作和組合

軟件架構(gòu)并不僅僅關(guān)注軟件本身的結(jié)構(gòu)和行為,還注重其他特性:使用、功能性、性能、彈性、重用、可理解、經(jīng)濟(jì)以及技術(shù)的限制和權(quán)衡等

簡(jiǎn)而言之,框架和架構(gòu)的關(guān)系可以總結(jié)為兩句話:(1)為了盡早驗(yàn)證架構(gòu)設(shè)計(jì),或者處于支持產(chǎn)品線開(kāi)發(fā)的目的,可以將關(guān)鍵的通用機(jī)制甚至整個(gè)架構(gòu)以框架的方式進(jìn)行實(shí)現(xiàn);(2)業(yè)界(及公司內(nèi)部)可能存在大量可供重用的框架,這些框架或者已經(jīng)實(shí)現(xiàn)了軟件架構(gòu)所需的重要架構(gòu)機(jī)制,或者為未來(lái)系統(tǒng)的某個(gè)子系統(tǒng)提供了可擴(kuò)展的半成品,所以最終的軟件架構(gòu)可以借助這些框架構(gòu)造。

項(xiàng)目簡(jiǎn)單三層架構(gòu)示意圖

image.png

采用三層架構(gòu)的優(yōu)點(diǎn):
1、相關(guān)開(kāi)發(fā)人員可以只關(guān)注整個(gè)結(jié)構(gòu)中的其中某一層;
2、可以很容易的用新的實(shí)現(xiàn)來(lái)替換原有層次的實(shí)現(xiàn);
3、可以降低層與層之間的依賴(lài);
4、有利于標(biāo)準(zhǔn)化;
5、利于各層邏輯的復(fù)用。
6、結(jié)構(gòu)更加的明確
7、在后期維護(hù)的時(shí)候,極大地降低了維護(hù)成本和維護(hù)時(shí)間

研究VUE 與 Flux 狀態(tài)管理的異同

相同點(diǎn):

  • 中心化狀態(tài)管理
  • 狀態(tài)只能通過(guò)專(zhuān)門(mén) 突變 單元進(jìn)行變更
  • 應(yīng)用層通過(guò)發(fā)送信號(hào)(一般稱(chēng) action),觸發(fā)變更

不同點(diǎn):

  • Vuex把a(bǔ)ction細(xì)分成了action和mutation,分別應(yīng)對(duì)異步場(chǎng)景和同步場(chǎng)景,由store自身充當(dāng)dispatcher
  • Vuex的更新是直接通過(guò)state實(shí)例,作為state方法來(lái)調(diào)用,而flux的action由view提交后,通過(guò)dispatch分發(fā)到store更新,然后再通知view更新。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容