馬麗娟
(江南機(jī)電設(shè)計(jì)研究所,貴州貴陽,550000)
基于軟件開發(fā)環(huán)節(jié)中軟件架構(gòu)的作用研究
馬麗娟
(江南機(jī)電設(shè)計(jì)研究所,貴州貴陽,550000)
隨著在軟件開發(fā)環(huán)節(jié)中軟件架構(gòu)所具備的作用越來越強(qiáng),為此相關(guān)學(xué)者對(duì)這一課題投入比較多的時(shí)間與精力,本文通過對(duì)軟件架構(gòu)的定義、種類、表現(xiàn)方法、具體作用進(jìn)行分析,以期可以更好的發(fā)揮軟件架構(gòu)作用。
軟件開發(fā);軟件架構(gòu);作用
軟件架構(gòu)就如同是軟件系統(tǒng)的地基,那么這是屬于一個(gè)軟件系統(tǒng)核心因素,為此,這對(duì)于一個(gè)系統(tǒng)所存在的基本功能、宏觀特性、主體結(jié)構(gòu)起到?jīng)Q定性的作用,往往軟甲架構(gòu)處在開發(fā)軟件環(huán)節(jié)的前期階段,設(shè)計(jì)軟件架構(gòu)就是通過進(jìn)行客戶需求的分析、非功能性需求的挖掘、另外轉(zhuǎn)化客戶需求進(jìn)行定義的領(lǐng)域知識(shí)成為軟件模型?;诒举|(zhì)上進(jìn)行分析,軟件架構(gòu)屬于一種抽象解決軟件需求的方案,可以為設(shè)計(jì)大型軟件系統(tǒng)的各個(gè)方面提供相應(yīng)的指導(dǎo)。
軟件架構(gòu)所指的就是說相應(yīng)的系列性的抽象模式,可以為設(shè)計(jì)大型軟件系統(tǒng)的各個(gè)方面提供相應(yīng)的指導(dǎo)。從本質(zhì)上來看,軟件架構(gòu)是屬于一種系統(tǒng)草圖。在軟件架構(gòu)所描述的對(duì)象就是直接的進(jìn)行系統(tǒng)抽象組件構(gòu)成。連接系統(tǒng)的各個(gè)組件之間就是做到把組件之間所存在的通訊比較明確與相對(duì)細(xì)致的實(shí)施描述。處于相應(yīng)的系統(tǒng)實(shí)現(xiàn)環(huán)節(jié),那么就會(huì)使得細(xì)化這些抽象組件成為現(xiàn)實(shí)的組件,比如可以是具體的某個(gè)類或者是對(duì)象。從面向?qū)ο箢I(lǐng)域進(jìn)行分析,那么各個(gè)組件之前實(shí)施的連接實(shí)現(xiàn)往往是接口。
按照當(dāng)前我國的各種不同的關(guān)注角度,能夠?qū)④浖軜?gòu)劃分成為三種類型。
2.1 邏輯架構(gòu)
軟件系統(tǒng)系統(tǒng)當(dāng)中的各個(gè)元件之間所存在的關(guān)系,比如外部系統(tǒng)接口、用戶界面、商業(yè)邏輯元件、數(shù)據(jù)庫等。
2.2 物理架構(gòu)
究竟是怎樣做到在硬件當(dāng)中放置軟件元件。例如處于上海與北京進(jìn)行分布的分布式系統(tǒng)的物理架構(gòu),這也就是說全部的元件都是屬于物理設(shè)備,主要的有主機(jī)、整合服務(wù)器、應(yīng)用服務(wù)器、代理服務(wù)器、存儲(chǔ)服務(wù)器、報(bào)表服務(wù)器、Web服務(wù)器、網(wǎng)絡(luò)分流器等。
2.3 系統(tǒng)架構(gòu)
相應(yīng)的系統(tǒng)存在著性能、強(qiáng)壯性、可擴(kuò)展性、靈活性、可靠性等這些非功能性特征。設(shè)計(jì)系統(tǒng)的架構(gòu)比要讓系統(tǒng)架構(gòu)設(shè)計(jì)人員存在著過硬的軟件與硬件的性能與功能,往往從事這樣的工作這是屬于設(shè)計(jì)系統(tǒng)架構(gòu)環(huán)節(jié)最為困難的工作。除了以上所提到的之外,基于各個(gè)不同的角度進(jìn)行分析,都能夠了解到劃分元件、決定設(shè)計(jì)這兩個(gè)架構(gòu)的要素。一個(gè)軟件系統(tǒng)的元件首先就是屬于一種邏輯元件。那么究竟怎樣做到在硬件中有效的放置以上所提到的邏輯元件,還有的就是這些元件怎樣發(fā)揮作用在整個(gè)系統(tǒng)的性能、強(qiáng)壯性、可擴(kuò)展性、靈活性、可靠性等。這也是屬于特別重要的信息。比如在一個(gè)中等規(guī)模的數(shù)據(jù)庫應(yīng)用系統(tǒng)往往大致存在一百個(gè)左右數(shù)據(jù)表,那么這也就使得設(shè)計(jì)一個(gè)系統(tǒng)往往必須依托一百頁規(guī)模架構(gòu)進(jìn)行文檔設(shè)計(jì)。
往往表示軟件架構(gòu)則是借助于多種架構(gòu)視圖實(shí)施。基于本質(zhì)上進(jìn)行分析,那么這樣的多種架構(gòu)視圖則是選取相應(yīng)的圖形方式將處于架構(gòu)領(lǐng)域存在著十分重要意義的模型元素予以摘要性的說明。
(1)實(shí)施視圖,這主要包含的內(nèi)容為包含這實(shí)施模型及其從模塊到包、層的組織形式實(shí)施的概覽;而且在這一過程中,還存在著把相應(yīng)的邏輯視圖中的包與類往實(shí)施視圖中的包與分配模塊的狀況實(shí)施描述。
(2)邏輯視圖,這主要的是最為關(guān)鍵的設(shè)計(jì)類、從這些設(shè)計(jì)類到包與子系統(tǒng)的組織形式,另外還有的就是這些包與子系統(tǒng)到層的組織形式。
(3)配置視圖,這主要的是描述最為典型的配置平臺(tái)的各種物理節(jié)點(diǎn),還有的就是往物理節(jié)點(diǎn)分配來自于進(jìn)程視圖的任務(wù)的情況,往往這一視圖僅僅只是在分布式系統(tǒng)。
(4)用例視圖,這主要的是場景與用例。
(5)進(jìn)程視圖,這主要的是描述進(jìn)程與線程的涉及的任務(wù),這些任務(wù)的配置與交互,還有的就是把設(shè)計(jì)分配對(duì)象與類向任務(wù),往往這一視圖僅僅只是出于系統(tǒng)存在著特別高程度并行過中才使用。
4.1 開發(fā)新產(chǎn)品過程中軟件架構(gòu)所具備的作用分析
所謂的軟件架構(gòu)則是屬于在現(xiàn)實(shí)的世界與計(jì)算機(jī)領(lǐng)域所搭建起來的一座溝通的橋梁,具體來說,其作用主要為以下幾點(diǎn)。
第一點(diǎn)就是進(jìn)行業(yè)務(wù)目標(biāo)的上乘。從本質(zhì)上來看,軟件架構(gòu)往往存在著出于將業(yè)務(wù)目標(biāo)完成而必須開展相應(yīng)的大局規(guī)劃的責(zé)任;第二點(diǎn)所指的就是進(jìn)行技術(shù)決策的下接。憑借著把面向業(yè)務(wù)的相關(guān)需求往面向技術(shù)方向轉(zhuǎn)向的軟件架構(gòu)設(shè)計(jì)方案,這可以將行之有效的限制與指導(dǎo)提供給后續(xù)的技術(shù)開發(fā)工作;第三點(diǎn)就是有效的將新產(chǎn)品的質(zhì)量提升;第四點(diǎn)所指的就是進(jìn)相應(yīng)的新產(chǎn)品開發(fā)過程的組織;第五點(diǎn)所指的就是借助于相應(yīng)的迭代實(shí)施相應(yīng)新產(chǎn)品開展與增量的交付;第六點(diǎn)則是說控制所具備的復(fù)雜性,立足于相應(yīng)的分而治之的思想,從而能夠?yàn)榻鹦切銌栴}所具備的復(fù)雜性實(shí)施相應(yīng)的控制。
4.2 開發(fā)軟件產(chǎn)品過程中系統(tǒng)架構(gòu)所具備的作用分析
第一就是將所具備的相應(yīng)的核心知識(shí)予以固話;第二就是可以提供相應(yīng)的可重用資產(chǎn);第三就是將產(chǎn)品推出的周期進(jìn)行有效的縮短;第四就是使得產(chǎn)品開發(fā)與維護(hù)的總成本得以最大限度的降低;第五就是將產(chǎn)品的質(zhì)量有效的提升;第六就是為批量控制提供有效的支持。
4.3 軟件產(chǎn)品線架構(gòu)所具備的特點(diǎn)分析
軟件產(chǎn)品線架構(gòu)就是說根據(jù)一個(gè)公司或者是某一個(gè)組織內(nèi)部那些一系列的產(chǎn)品所進(jìn)行設(shè)計(jì)的相應(yīng)的通用架構(gòu)。那么就能夠了解到這樣的一系列產(chǎn)品存在著特別多的相似之處那么這些能夠借助同一個(gè)架構(gòu)或者部分共享來實(shí)施具體實(shí)現(xiàn),使得生產(chǎn)率得到最大限度的提升。軟件產(chǎn)品線架構(gòu)主要存在著以下的作用。
第一個(gè)作用就是應(yīng)該將一系列的明確許可的變化進(jìn)行考慮;第二個(gè)作用所指的就是必須做到文檔化;第三個(gè)作用就是說應(yīng)該可以存在著相應(yīng)的產(chǎn)品創(chuàng)建者指南,將實(shí)例化架構(gòu)的整個(gè)過程進(jìn)行描述。
4.4 維護(hù)軟件過程中軟件架構(gòu)的作用分析
從本質(zhì)上來看,相應(yīng)的軟件維護(hù)工作主要的來源是Bug與需求變更。往往修復(fù)一個(gè)Bug與增加一個(gè)新的功能,那么通常都會(huì)涉及到架構(gòu)環(huán)節(jié)的一條模塊協(xié)作鏈,針對(duì)這樣的情況,軟件架構(gòu)比有利于維護(hù)工作的開展;反之,如果對(duì)于架構(gòu)并不能了解,相應(yīng)的進(jìn)行程序的盲目修改,這也就會(huì)存在著可能性對(duì)架構(gòu)設(shè)計(jì)的思路造成未必,從而導(dǎo)致整個(gè)系統(tǒng)所存在的架構(gòu)逐步顯得比較混亂,這也就會(huì)存在著可能性導(dǎo)致出現(xiàn)不可思議的Bug與問題。
4.5 軟件升級(jí)過程中軟件架構(gòu)的作用分析
相應(yīng)的軟件架構(gòu)則是通過對(duì)軟件系統(tǒng)實(shí)施持續(xù)性的修改,還應(yīng)該必須做好重構(gòu),往往對(duì)其實(shí)施重構(gòu)主要是兩種狀況:第一種狀況就是特別混亂的架構(gòu),從而導(dǎo)致實(shí)施一個(gè)比較小的改動(dòng)就會(huì)出現(xiàn)牽動(dòng)全身;第二種狀況所指的就是即將實(shí)施的升級(jí)軟件存在著比較大的力度,之前的軟件架構(gòu)與新的需求根本就不能適應(yīng)。相應(yīng)的軟件架構(gòu)予以重構(gòu)則是屬于再工程的一種情況,往往必須實(shí)施的步驟為逆向工程、重新規(guī)劃、正向工程這樣的三個(gè)步驟。
[1]陳煥彬. 淺談.NET三層架構(gòu)在系統(tǒng)開發(fā)中的應(yīng)用[J]. 電腦與信息技術(shù),2016,(05):45-47.
[2]李聲威,王愛景,譚紅星.敏捷開發(fā)中軟件架構(gòu)設(shè)計(jì)與實(shí)踐[J].電腦與信息技術(shù),2015,(03):1-4+11.
Research on the role of software architecture in software development
Ma Lijuan
(the jiangnan institute of mechanical and electrical design, Guiyang Guizhou,550000)
With the software architecture in the software development process has more and more strong, the effect of related scholars have to invest more time and energy for the subject, this article through to the
definition of software architecture, kinds, method of performance, the specific function is analyzed, in
order to better able to play a role of software architecture.
software development; Software architecture; role