魏慶
摘要:隨著軟件系統(tǒng)規(guī)模越來越大、越來越復(fù)雜,在教學(xué)中讓學(xué)生能夠領(lǐng)會(huì)整個(gè)系統(tǒng)的結(jié)構(gòu)成為一個(gè)難題。本文主要對(duì)面向教學(xué)的軟件架構(gòu)建模進(jìn)行分析,并描述了軟件架構(gòu)模型開發(fā)過程,進(jìn)而講解了基本架構(gòu)設(shè)計(jì)的方法,最后使用實(shí)例應(yīng)用進(jìn)行了分析。
關(guān)鍵詞:教學(xué);軟件;體系;架構(gòu)
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2017)36-0271-02
一、軟件架構(gòu)概述
軟件架構(gòu)有五種建模,分別是框架模型、結(jié)構(gòu)模型、功能模型、過程模型和動(dòng)態(tài)模型。而最常用的模型則是動(dòng)態(tài)模型和結(jié)構(gòu)模型。(1)結(jié)構(gòu)模型。這是在諸多軟件架構(gòu)建模中最普遍直觀的構(gòu)建模型。(2)框架模型。該模型針對(duì)的是一些特殊問題,其焦點(diǎn)是整體的結(jié)構(gòu),從而能夠建立起適應(yīng)具體問題的結(jié)構(gòu)。(3)動(dòng)態(tài)模型。動(dòng)態(tài)模型主要對(duì)系統(tǒng)的“大顆?!钡男袨樾再|(zhì)進(jìn)行研究,它是上述兩種模型的補(bǔ)充。(4)過程模型。該模型的主要作用是研究構(gòu)造一個(gè)軟件系統(tǒng)所需要的過程及步驟,并分析結(jié)果。(5)功能模型。功能模型的作用是將軟件體系結(jié)構(gòu)看作由功能模塊按層次組成的群組,上層的服務(wù)從下層獲得。
二、軟件架構(gòu)模型開發(fā)過程
1.邏輯視圖(logic view)。該視圖的主要作用是功能需求的支持,即系統(tǒng)會(huì)給最終用戶提供的服務(wù)。邏輯視圖里面,系統(tǒng)會(huì)被分解成某些來自問題領(lǐng)域的功能抽象。
2.開發(fā)視圖(development view)。該視圖的主要作用是組織和管理軟件模塊。該視圖的焦點(diǎn)是程序包,其中涵蓋了源程序、SDK,以及第三方的類庫、框架,甚至還包括中間件。
3.進(jìn)程視圖(process view)。運(yùn)行特性是該視圖的焦點(diǎn)所在,其關(guān)注的主要方面是非功能性需求。線程、進(jìn)程等運(yùn)行時(shí)概念是其重點(diǎn)關(guān)注的對(duì)象,而通信、同步、并發(fā)等問題也是其考慮的方面。
4.物理視圖(physical view)。其作用是建立軟件到硬件的映射。通信和系統(tǒng)拓?fù)浣Y(jié)構(gòu)是其能夠重點(diǎn)解決的問題。系統(tǒng)可以運(yùn)行在不同的網(wǎng)絡(luò)節(jié)點(diǎn)上,而節(jié)點(diǎn)上的視圖組件則可以對(duì)應(yīng)網(wǎng)絡(luò)的不同節(jié)點(diǎn)。
5.場景(scenario)。其作用是為建立不同類型的視圖的關(guān)系,在體系結(jié)構(gòu)的設(shè)計(jì)中,它能使得設(shè)計(jì)者建立視圖和體系結(jié)構(gòu)的構(gòu)件之間的關(guān)系。
三、軟件基本架構(gòu)設(shè)計(jì)
1.數(shù)據(jù)流風(fēng)格的架構(gòu)。數(shù)據(jù)流風(fēng)格的架構(gòu)在數(shù)據(jù)流路線上,處理過程遵循“自頂向下、逐步求精”的原則。該過程依賴于執(zhí)行過程,而不是依賴于數(shù)據(jù)的先后到達(dá)順序。在實(shí)踐中,最典型的數(shù)據(jù)流風(fēng)格實(shí)例就是管道/過濾器和批作業(yè)序列。
2.倉庫風(fēng)格的體系架構(gòu)。倉庫風(fēng)格的組件共分兩種,一是中央數(shù)據(jù)結(jié)構(gòu),它用于描述當(dāng)前狀態(tài),二是獨(dú)立組建,它的作用是用于中央數(shù)據(jù)存儲(chǔ)執(zhí)行,倉庫和外組件間的相互作用在實(shí)際系統(tǒng)中會(huì)有一些變化。系統(tǒng)中的組件通常包括數(shù)據(jù)存儲(chǔ)區(qū),以及與這些存儲(chǔ)區(qū)進(jìn)行交互的處理單元和進(jìn)程,連接器的作用是訪問存儲(chǔ)區(qū);如果輸入流中某類時(shí)間觸發(fā)進(jìn)程執(zhí)行的選擇,那么倉庫蛻變?yōu)橐粋€(gè)傳統(tǒng)型數(shù)據(jù)庫。
3.調(diào)用/返回風(fēng)格的體系構(gòu)架。在該類系統(tǒng)構(gòu)架中,其風(fēng)格有如下幾種:①面向?qū)ο蟾拍钪械膶?duì)象體系結(jié)構(gòu)風(fēng)格;②主-子程序風(fēng)格;③層次型系統(tǒng)風(fēng)格。其中,主-子程序風(fēng)格體系架構(gòu)主要應(yīng)用在結(jié)構(gòu)化程序設(shè)計(jì)中,成為一種經(jīng)典的編程模式。而一般為了大大提高程序的可更改性,可以將程序劃分為若干個(gè)小片段,這也是此體系的主要特點(diǎn),它的調(diào)用/返回關(guān)系較明確。
四、應(yīng)用實(shí)例
1.SOA體系架構(gòu)。SOA可以用任何一種編程語言來實(shí)現(xiàn),可以與其他技術(shù)結(jié)合在一起使用,作為服務(wù)條件,WSDL可以與編程語言結(jié)合在一起生成服務(wù)。圖2是一個(gè)完全的標(biāo)準(zhǔn)架構(gòu)來實(shí)現(xiàn)SOA架構(gòu)Web服務(wù)。而圖3則是一個(gè)使用MVC模式表述的SOA架構(gòu)。
2.SOA在企業(yè)中的應(yīng)用。從2009年到2012這三年對(duì)于SOA而言,是從技術(shù)推廣的初期進(jìn)入縱深發(fā)展的階段,也是SOA發(fā)展周期中的重要階段。作為一整套徹底改變企業(yè)IT核心的基礎(chǔ)架構(gòu),一種已廣為企業(yè)所認(rèn)可的技術(shù)方案,SOA在各行業(yè)的規(guī)?;瘧?yīng)用趨勢(shì)不減。傳統(tǒng)的集成方法已經(jīng)不能適應(yīng)基于企業(yè)現(xiàn)代業(yè)務(wù)變化不斷產(chǎn)生的需求,其具有相對(duì)復(fù)雜、昂貴、不靈活等缺點(diǎn)。SOA描述了一套完善的開發(fā)模式從而使得客戶端應(yīng)用連接到服務(wù)上得以實(shí)現(xiàn),這些模式基于UDDI,用于描述服務(wù)、通知及發(fā)現(xiàn)服務(wù)、與服務(wù)進(jìn)行通信。SOA可以直接為WEB服務(wù)接口做一層封裝,然后可以對(duì)外提供WEB服務(wù)接口,進(jìn)一步使系統(tǒng)應(yīng)用轉(zhuǎn)換為可以實(shí)現(xiàn)的服務(wù),與修改現(xiàn)有系統(tǒng)架構(gòu)是不同的。基于SOA架構(gòu)的平臺(tái)化軟件已經(jīng)成功應(yīng)用于中石化、中石油、中移動(dòng)、三一重機(jī)等各行業(yè)的領(lǐng)軍企業(yè)。SOA架構(gòu)已經(jīng)成為中間件軟件供應(yīng)商爭奪的新焦點(diǎn)。SOA架構(gòu)應(yīng)用于中國長航南京長江油運(yùn)公司,在最初的應(yīng)用過程中,企業(yè)內(nèi)部形成了“信息孤島”這一現(xiàn)狀,并且企業(yè)信息化的現(xiàn)狀與業(yè)務(wù)需求發(fā)展不匹配,信息化程度的提高是亟須解決的問題,借此對(duì)內(nèi)部流程進(jìn)行簡化和優(yōu)化,提升決策、實(shí)現(xiàn)信息共享,反應(yīng)速度、風(fēng)險(xiǎn)和成本都因此降低了,同時(shí)增加了投資收益。實(shí)現(xiàn)統(tǒng)一消息中心、流程集成、應(yīng)用集成是基于SOA的架構(gòu)開發(fā)Web Service應(yīng)用系統(tǒng)在MB/MQ和WPS的支持下能夠完成的工作。
五、結(jié)語
隨著軟件系統(tǒng)日趨復(fù)雜化,能夠清晰把握整個(gè)系統(tǒng)的結(jié)構(gòu)顯得越來越重要。在用于教學(xué)案例的軟件設(shè)計(jì)和開發(fā)過程中,進(jìn)行軟件體系架構(gòu)要根據(jù)不同的應(yīng)用領(lǐng)域選擇體系結(jié)構(gòu)。面向服務(wù)的體系架構(gòu)是一種新興的軟件設(shè)計(jì)和架構(gòu)思想,從設(shè)計(jì)分析,到技術(shù)實(shí)現(xiàn),都基于XML標(biāo)準(zhǔn),從而使得它的靈活性和異質(zhì)性得到了保證。
參考文獻(xiàn):
[1]劉真.軟件體系結(jié)構(gòu)[M].北京:中國電力出版社,2004.
[2]萬建成,盧雷.軟件體系結(jié)構(gòu)的原理、組成與應(yīng)用[M].科學(xué)出版社,2002.
[3]王斐,祝開艷.面向服務(wù)的架構(gòu)(SOA)及其應(yīng)用模型研究[J].科技資訊,2007,(07).
[4]陳述.設(shè)備管理系統(tǒng)的軟件架構(gòu)[J].電腦編程技巧與維護(hù),2009,(10).endprint