軟件架構(gòu)設(shè)計實踐- 基于SSM框架 課件 第3章 認(rèn)識軟件架構(gòu)_第1頁
軟件架構(gòu)設(shè)計實踐- 基于SSM框架 課件 第3章 認(rèn)識軟件架構(gòu)_第2頁
軟件架構(gòu)設(shè)計實踐- 基于SSM框架 課件 第3章 認(rèn)識軟件架構(gòu)_第3頁
軟件架構(gòu)設(shè)計實踐- 基于SSM框架 課件 第3章 認(rèn)識軟件架構(gòu)_第4頁
軟件架構(gòu)設(shè)計實踐- 基于SSM框架 課件 第3章 認(rèn)識軟件架構(gòu)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

軟件架構(gòu)設(shè)計實戰(zhàn)——基于SSM框架Software

Architecture

Design

Practice

Based

on

SSM

Framework第3章認(rèn)識軟件架構(gòu)123軟件架構(gòu)概述感受身邊的架構(gòu)存在軟件架構(gòu)的表示4軟件架構(gòu)的作用5常見的軟件架構(gòu)模式6軟件架構(gòu)與軟件框架軟件架構(gòu)概述軟件架構(gòu)描述的是一個系統(tǒng)應(yīng)該怎么構(gòu)建,是針對特定的軟件系統(tǒng)進行的一種抽象,能夠為大型軟件系統(tǒng)的設(shè)計、實現(xiàn)提供相應(yīng)的指導(dǎo),是相對而言比較具體的;而軟件體系結(jié)構(gòu)是比較寬泛的,當(dāng)然也是對軟件項目設(shè)計的整體描述,但是面對的抽象層次更高一些。1軟件架構(gòu)概述隨著軟件規(guī)模的不斷擴大和軟件復(fù)雜性的不斷提高,使軟件系統(tǒng)架構(gòu)的復(fù)雜性逐步攀升,直接導(dǎo)致了軟件實現(xiàn)、軟件維護、軟件服務(wù)、軟件項目管理等也越來越困難。現(xiàn)代軟件工程的核心,正在軟件架構(gòu)領(lǐng)域,以軟件架構(gòu)和軟件構(gòu)件為核心的軟件開發(fā)方法,使軟件生產(chǎn)走向工業(yè)化和自動化,極大的提高了軟件開發(fā)的生產(chǎn)效率。11.1軟件架構(gòu)產(chǎn)生的背景隨著組件化軟件開發(fā)方式的發(fā)展,如何在設(shè)計階段對軟件系統(tǒng)進行抽象,獲取系統(tǒng)藍圖以支持系統(tǒng)開發(fā)中的決策成為迫切而現(xiàn)實的問題。主要包括以下3個方面:1.軟件復(fù)雜、易變,其行為特性難以預(yù)見,軟件開發(fā)過程中需求和設(shè)計之間缺乏有效的轉(zhuǎn)換,導(dǎo)致軟件開發(fā)過程困難和不可控。2.隨著軟件系統(tǒng)規(guī)模越來越大,整個系統(tǒng)的結(jié)構(gòu)和規(guī)格說明顯得越來越重要。同時軟件的各個模塊之間有各種顯性或隱性的依賴關(guān)系,隨著系統(tǒng)的成長和模塊的增多,這些關(guān)系的數(shù)量往往以幾何級數(shù)的速度增長。3.對于大規(guī)模的復(fù)雜軟件系統(tǒng),相較于對計算算法和數(shù)據(jù)結(jié)構(gòu)的選擇,總體的系統(tǒng)結(jié)構(gòu)設(shè)計和規(guī)格說明已經(jīng)變得更加重要了。1.1軟件架構(gòu)產(chǎn)生的背景20世紀(jì)90年代,研究人員展開了關(guān)于軟件架構(gòu)的基礎(chǔ)研究,主要集中于架構(gòu)風(fēng)格(模式)、架構(gòu)描述語言、架構(gòu)文檔和形式化方法等方面。軟件架構(gòu)在高層次上對軟件進行描述,便于軟件開發(fā)過程中各個視角(如:用戶、業(yè)務(wù)和系統(tǒng))的統(tǒng)一,能夠及早發(fā)現(xiàn)開發(fā)中的問題并支持各種解決方案的評估和預(yù)測。1.1軟件架構(gòu)產(chǎn)生的背景在軟件項目生命周期的各個階段都需要使用到軟件架構(gòu)。在需求分析階段,需要使用軟件架構(gòu)模式(風(fēng)格)對軟件規(guī)約進行完善,支持從需求模型向架構(gòu)模型轉(zhuǎn)換;在軟件設(shè)計階段,通過軟件架構(gòu)借助形式化或多角度抽象描述,建立系統(tǒng)的架構(gòu)模型、功能模型等,為進一步細(xì)化奠定基礎(chǔ);在軟件項目的實現(xiàn)和維護階段,軟件架構(gòu)能夠幫助實現(xiàn)和維護人員理解軟件項目的整體結(jié)構(gòu)、功能劃分等,更好的實現(xiàn)項目功能,盡早的發(fā)現(xiàn)和修復(fù)問題。因此良好的軟件架構(gòu)設(shè)計是軟件項目得以順利實現(xiàn)的重要保障。1.2軟件架構(gòu)的定義軟件架構(gòu)是由結(jié)構(gòu)和功能各異、相互作用的構(gòu)件集合,按照一定的結(jié)構(gòu)方式構(gòu)成的系統(tǒng)。它包含系統(tǒng)的基礎(chǔ)構(gòu)成單元,它們之間的作用關(guān)系,在構(gòu)成系統(tǒng)時它們的集成方法以及對集成約束的描述等。1.2軟件架構(gòu)的定義從軟件系統(tǒng)的角度理解架構(gòu)定義,可以看到:軟件架構(gòu)是關(guān)于軟件系統(tǒng)如何被組織起來的定義,即軟件系統(tǒng)是由以下三個要素構(gòu)成的。1.組成系統(tǒng)的結(jié)構(gòu)元素或構(gòu)件2.構(gòu)件與構(gòu)件之間的連接以及特定的連接關(guān)系3.系統(tǒng)集成的方法和約束1.2軟件架構(gòu)的定義為了便于理解架構(gòu),不妨將軟件構(gòu)架的定義濃縮為以下三個要素:(1)組成架構(gòu)的元素:構(gòu)件。(2)構(gòu)件的相互聯(lián)系:連接。(3)構(gòu)件之間的相互聯(lián)系關(guān)系:連接關(guān)系。架構(gòu)是一個或多個結(jié)構(gòu)(子架構(gòu)、可不斷細(xì)分)的抽象,是由抽象的構(gòu)件來表示的,構(gòu)件之間相互具有聯(lián)系,相互之間的聯(lián)系具有某些行為特征(連接關(guān)系)。1.3軟件架構(gòu)的應(yīng)用軟件架構(gòu)是軟件生命周期中的重要產(chǎn)物,它影響軟件開發(fā)的各個階段。需求階段設(shè)計階段實現(xiàn)階段維護階段1.4軟件架構(gòu)的一般特性軟件架構(gòu)能夠服務(wù)于軟件項目生命周期的全過程,主要具有以下5個方面的特性。1.注重可重用性2.利益相關(guān)者較多3.關(guān)注點分離4.質(zhì)量驅(qū)動5.概念完整性感受身邊的架構(gòu)存在在我們的身邊有很多架構(gòu)的存在,我們也能時刻感受架構(gòu)的作用,例如人體的骨骼結(jié)構(gòu),正是由于頸椎骨骼的存在才能支撐我們抬頭、搖頭;一條魚能夠在水中快速的游動,也借助的是全身骨骼的支撐;一所高校能夠維持正常的運行,也依賴的是學(xué)校的組織架構(gòu)(結(jié)構(gòu))。22.1交通信號燈控制系統(tǒng)的架構(gòu)構(gòu)件(實體部分):電源、信號燈、電線、開關(guān);構(gòu)件的相互聯(lián)系(連接):連接電路使信號燈能夠點亮與熄滅;構(gòu)件之間的關(guān)系(邏輯關(guān)系):亮燈的順序、時長以及循環(huán)等。2.2智能手機充電接口的架構(gòu)主要的構(gòu)件(實體部分)包括:電線、接口、智能手機、PC機(或其他設(shè)備);構(gòu)件的相互聯(lián)系(連接):智能手機與PC機(這里以PC機為例)通過USB連接;構(gòu)件之間的關(guān)系(邏輯關(guān)系):PC、智能手機支持USBType-C協(xié)議,并遵守該協(xié)議進行數(shù)據(jù)傳遞。軟件架構(gòu)的表示軟件架構(gòu)最主要的功能就是描述系統(tǒng)將如何實現(xiàn)指派給它的軟件功能,這個描述就是架構(gòu)視圖。33.1軟件架構(gòu)的描述手機應(yīng)用的界面設(shè)計草圖架構(gòu)視圖是對于從某一視角或某一點上看到的系統(tǒng)所做的簡化描述,它涵蓋了系統(tǒng)的某一特定方面,而省略了與此方面無關(guān)的實體。3.2基于UML軟件架構(gòu)視圖軟件架構(gòu)是軟件開發(fā)的基礎(chǔ),也是產(chǎn)品迭代的紐帶,通過架構(gòu)能夠理解軟件設(shè)計的思路和目標(biāo)。UML架構(gòu)視圖及其作用3.2基于UML軟件架構(gòu)視圖1.邏輯視圖3.2基于UML軟件架構(gòu)視圖2.開發(fā)視圖3.2基于UML軟件架構(gòu)視圖3.進程視圖3.2基于UML軟件架構(gòu)視圖4.物理視圖3.2基于UML軟件架構(gòu)視圖5.場景視圖場景視圖,一般是用來描述需求的,從某種意義上來講,是最重要的需求抽象,該視圖是其他視圖的冗余,同時其他視圖也都要與場景視圖發(fā)生交互。軟件架構(gòu)的作用軟件架構(gòu)在軟件項目的開發(fā)過程中主要具有以下四個方面的作用。1.作為溝通媒介2.為系統(tǒng)的功能實現(xiàn)提供支撐和約束3.是軟件過程管理的基礎(chǔ)4.是軟件迭代開發(fā)的框架4常見的軟件架構(gòu)模式架構(gòu)模式是一個通用的解決方案,用于解決在給定上下文中的軟件體系結(jié)構(gòu)中經(jīng)常出現(xiàn)的問題。架構(gòu)模式與軟件設(shè)計模式類似,但具有更廣泛的應(yīng)用范圍。這里簡要介紹5種常用的軟件架構(gòu)模式,請讀者注意體會與軟件設(shè)計模式的區(qū)別,并在后面框架篇中結(jié)合具體的Spring、SpringMVC、MyBatis框架進行深入理解。55.1分層模式分成模式是一種最為常見的架構(gòu)模式,也稱為多層體系架構(gòu)模式。它用來構(gòu)造可以分解為子任務(wù)組的軟件系統(tǒng),每個子任務(wù)都處于一個特定的抽象級別。每個層都為上一層提供支撐服務(wù),并依賴于下一層的服務(wù)。5.2客戶端-服務(wù)器模式客戶端-服務(wù)器(Client/Server,簡稱C/S)模式由兩部分組成:一個服務(wù)器和多個客戶端。服務(wù)器組件將為多個客戶端組件提供服務(wù),客戶端從服務(wù)器請求服務(wù),服務(wù)器為這些客戶端提供相關(guān)服務(wù)5.3瀏覽器-服務(wù)器模式瀏覽器-服務(wù)器模型(Brower-Server,簡稱B/S)是一種對C/S模型的演變和改進,在這種模型中,用戶界面完全通過WEB瀏覽器實現(xiàn),一部分事務(wù)邏輯由瀏覽器實現(xiàn),大部分事務(wù)邏輯在服務(wù)器中實現(xiàn),它是一種特殊的客戶端-服務(wù)器模型,這種模型的客戶端是某種瀏覽器,采用HTTP協(xié)議通信。5.4管道過濾器模式管道-過濾器模式是一種面向數(shù)據(jù)流的軟件架構(gòu),主要由管道和過濾器組成,過濾器為一個具體的處理模塊,接受輸入數(shù)據(jù)然后進行一定的處理,最后進行輸出;管道是傳輸數(shù)據(jù)的組件,用于將數(shù)據(jù)從一個過濾器的輸出接口傳送到下一個過濾器的輸入接口。5.5微服務(wù)模式微服務(wù)架構(gòu)指的是將大型復(fù)雜系統(tǒng)按功能或者業(yè)務(wù)需求,垂直切分成更小的子系統(tǒng),這些子系統(tǒng)以獨立部署的子服務(wù)存在,它們之間通過輕量級的、跨語言的同步或者異步(消息)網(wǎng)絡(luò)調(diào)用進行通信。5.5微服務(wù)模式每個微服務(wù)僅關(guān)注于完成一個業(yè)務(wù)域的事情,微服務(wù)模式特點:1.系統(tǒng)是由多個服務(wù)構(gòu)成;2.每個服務(wù)可以獨立部署;3.每個服務(wù)之間是松耦合的,服務(wù)內(nèi)部是高內(nèi)聚的。5.5微服務(wù)模式微服務(wù)模式的主要優(yōu)點為:1.使大型的復(fù)雜應(yīng)用程序可以持續(xù)交付和持續(xù)部署。2.每個服務(wù)都相對較小并容易維護。3.服務(wù)可以獨立部署和獨立擴展,系統(tǒng)迭代容易。4.微服務(wù)架構(gòu)可以實現(xiàn)團隊的自治,團隊協(xié)作容易,每個服務(wù)團隊可以獨立于其他團隊開發(fā)、部署和擴展。開發(fā)速度相對單體應(yīng)用更快。5.每個微服務(wù)都可以有獨立的存儲和服務(wù)器,從而整個系統(tǒng)的吞吐能力更強。5.5微服務(wù)模式微服務(wù)模式的主要缺點為:1.運維成本過高,部署數(shù)量較多,需要協(xié)調(diào)更多的開發(fā)團隊;2.接口需要與多個微服務(wù)對接,因此需要兼容多版本;3.分布式系統(tǒng)帶來更高的復(fù)雜性,需要處理分布式事務(wù),需要有更好的發(fā)布平臺和分布式跟蹤平臺等。軟件架構(gòu)與軟件框架軟件框架要從兩個方面來理解:一方面它是一個框——指其約束,即在特定領(lǐng)域內(nèi)使用該框架應(yīng)該遵守的規(guī)則和規(guī)范;另一方面它是一個架——指其支撐性,即在特定領(lǐng)域內(nèi)對系統(tǒng)功能實現(xiàn)的基礎(chǔ)性支撐。6軟件架構(gòu)與軟件框架軟件架構(gòu)是一個系統(tǒng)的草圖,軟件架構(gòu)描述的對象是直接構(gòu)成系統(tǒng)的抽象組件。各個組件之間的連接則明確和相對細(xì)致地描述組件之間的通訊。在實現(xiàn)階段,這些抽象組件被細(xì)化為實際的組件,比如具體某個類或者對象。在面向?qū)ο箢I(lǐng)域中,組件之間的連接通常用接口來實現(xiàn)??蚣芫褪强蓮?fù)用的代碼,而架構(gòu)不是,它是關(guān)于軟件如何設(shè)計的策略。引入軟件架構(gòu)之后,整個開發(fā)過程變成了“兩步走”,先做架構(gòu)設(shè)計,再進行框架開發(fā),架構(gòu)決策會體現(xiàn)在框架開發(fā)之中。6軟件架構(gòu)與軟件框架框架和架構(gòu)的出現(xiàn),都是為了解決軟件系統(tǒng)日益復(fù)雜所帶來的困難而采取“分而治之”策略,先大局后局部,就出現(xiàn)了架構(gòu),先通用后專用,就出現(xiàn)了框架。下圖就描述了軟件架構(gòu)與軟件框架的關(guān)系,架構(gòu)是抽象解決方案,關(guān)注大局而忽略細(xì)節(jié),而框架是通用半成品,關(guān)注于細(xì)節(jié),但是還必須根據(jù)具體需求進一步定制開發(fā)才能成為應(yīng)用系統(tǒng)。6軟件架構(gòu)與軟件框架在軟件架構(gòu)與軟件框架的關(guān)系中,起點為特定領(lǐng)域的復(fù)雜軟件工程問題(一般指待開發(fā)的軟件系統(tǒng)),先進行抽象,提取軟件系統(tǒng)要解決主要問題,形成軟件架構(gòu),即軟件系統(tǒng)的抽象解決方案,在這里忽略軟件系統(tǒng)實現(xiàn)的細(xì)節(jié)問題;由于特定領(lǐng)域軟件系統(tǒng)的共性問題,可以抽取出其共性問題的解決方案,這里指軟件代碼,例如在WEB應(yīng)用中都涉及到數(shù)據(jù)類型的轉(zhuǎn)換、數(shù)據(jù)校驗等,可以剝離軟件系統(tǒng)中的特定業(yè)務(wù)邏輯,形成具有較好通用性的軟件代碼,這就是軟件框架,基于框架的軟件開發(fā)可以減少后繼軟件開發(fā)的工作量;把軟件架構(gòu)和軟件框架有效結(jié)合,能夠充分發(fā)揮兩者的優(yōu)勢,通過框架能夠更好的理解架構(gòu)的設(shè)計意圖,通過架構(gòu)能夠更好的理解框架的基礎(chǔ)支撐。6課程思政我國的根本政治制度是人民民主專政,是在中國共產(chǎn)黨的領(lǐng)導(dǎo)下,以工農(nóng)聯(lián)盟為基礎(chǔ),實行人民民主和人民專政的國家政權(quán)。我國最高國家權(quán)力機關(guān)是中華人民共和國全國人民代表大會,它的常設(shè)機關(guān)是全國人民代表大會常務(wù)委員會。我國的最高國家行政機關(guān)是中華人民共和國國務(wù)院,也是最高國家權(quán)利機關(guān)的執(zhí)行機關(guān),下設(shè)外交部、國防部、教育部等組成部門。在我國這種總體架構(gòu)的設(shè)計下,我們?nèi)娼ǔ闪诵】瞪鐣?,實現(xiàn)了民族進步和國家富強。在習(xí)近平新時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論