999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關(guān)于軟件體系結(jié)構(gòu)研究的初步探討

2009-06-20 07:13:46聶裕鵬

李 波 聶裕鵬

摘要:軟件體系結(jié)構(gòu)是軟件工程中的一個(gè)新興研究領(lǐng)域,它與軟件工程技術(shù)的發(fā)展有著密切的關(guān)系。首先,從軟件工程技術(shù)的發(fā)展了解軟件體系結(jié)構(gòu)研究的必然性。然后,給出軟件體系結(jié)構(gòu)的概念描述,介紹有關(guān)體系結(jié)構(gòu)研究的內(nèi)容。

關(guān)鍵詞:軟件體系結(jié)構(gòu);軟件工程技術(shù);軟件構(gòu)件

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1674-1145(2009)15-0149-02

一、軟件工程技術(shù)的發(fā)展

軟件工程技術(shù)的基本目標(biāo)就是用抽象的方法將現(xiàn)實(shí)世界(問題域)的問題轉(zhuǎn)化為程序空間(解題域)的解題程序,通過程序控制的方式,由計(jì)算機(jī)的執(zhí)行獲得問題的結(jié)果。然而,由于人們認(rèn)識(shí)和理解現(xiàn)實(shí)世界的過程和方法不一致,導(dǎo)致了構(gòu)造軟件系統(tǒng)時(shí)所使用的分析、設(shè)計(jì)和實(shí)現(xiàn)的過程與方法也不一致,這種不一致是軟件生產(chǎn)效率低下的主要癥結(jié)之一。軟件工程技術(shù)的水平遠(yuǎn)遠(yuǎn)落后于硬件,造成了“軟件危機(jī)”,而軟件工程技術(shù)與開發(fā)方法就是在解決“軟件危機(jī)”的過程中逐步發(fā)展起來的。

隨著計(jì)算機(jī)硬件的不斷更新,計(jì)算機(jī)程序設(shè)計(jì)語言經(jīng)歷了從匯編語言到高級(jí)語言的發(fā)展過程,規(guī)模越來越大,復(fù)雜程度越來越高。人們逐漸認(rèn)識(shí)到高級(jí)程序設(shè)計(jì)語言只不過實(shí)現(xiàn)了高級(jí)源程序碼到機(jī)器指令間的自動(dòng)轉(zhuǎn)換,卻仍然缺乏將問題域映射到程序空間的方法和工具,即缺乏軟件設(shè)計(jì)的方法和工具。為了改變軟件開發(fā)的手工狀況,適應(yīng)大規(guī)模軟件開發(fā)的需要,人們開始尋找新的適合工程化軟件開發(fā)的設(shè)計(jì)方法、工具與管理方式。

1.程序設(shè)計(jì)方法學(xué)的研究。程序設(shè)計(jì)方法學(xué)的研究以結(jié)構(gòu)化程序設(shè)計(jì)為代表,它強(qiáng)調(diào)從程序結(jié)構(gòu)和設(shè)計(jì)風(fēng)格上來研究程序。E.W.dijkstra首先提出了結(jié)構(gòu)化自頂向下和逐步求精的軟件設(shè)計(jì)方法,即在程序設(shè)計(jì)中將目標(biāo)逐步分解為子目標(biāo)并加以細(xì)化,直至得到可執(zhí)行的程序。20世紀(jì)70年代,Parnas引入信息隱藏作為模塊劃分的基本原則。從Simular 67語言引入類的概念,人們開始了有關(guān)抽象數(shù)據(jù)類型ADT的研究。

2.軟件開發(fā)方法學(xué)的研究。程序設(shè)計(jì)方法研究的是小規(guī)模的程序,而軟件開發(fā)方法學(xué)則是研究大規(guī)模軟件開發(fā)應(yīng)遵循的方法和準(zhǔn)則,以及軟件開發(fā)項(xiàng)目管理方法。軟件開發(fā)方法學(xué)的內(nèi)容包括對(duì)軟件生命周期和其中各階段相應(yīng)的軟件開發(fā)方法的研究。軟件生命周期從總體上規(guī)范了軟件開發(fā)過程中各項(xiàng)工作的內(nèi)容及步驟,從而使軟件開發(fā)有章可循。從70年代開始,人們陸續(xù)提出了一些軟件開發(fā)方法,如結(jié)構(gòu)化分析和設(shè)計(jì)方法等。進(jìn)入80年代后期,面向?qū)ο蟮姆治?設(shè)計(jì)(OOA/OOD)逐漸得到了廣泛的重視和研究。目前,面向?qū)ο蠓椒ㄔ诙喾降呐χ拢呀?jīng)初步實(shí)現(xiàn)了標(biāo)準(zhǔn)化的統(tǒng)一建模語言UML,這標(biāo)志著它已成為軟件開發(fā)的主流技術(shù),正在大規(guī)模軟件生產(chǎn)方面發(fā)揮越來越重要的作用。

3.計(jì)算機(jī)輔助軟件工程。在軟件工程學(xué)中,方法和工具是同一問題的兩個(gè)方面。方法是工具研制的先導(dǎo),工具是方法的現(xiàn)實(shí)體現(xiàn)。計(jì)算機(jī)輔助軟件工程(CASE)就是為工程化的軟件生產(chǎn)提供計(jì)算機(jī)化的支持,以期提高軟件生產(chǎn)率和軟件產(chǎn)品的質(zhì)量。進(jìn)入90年代以來,結(jié)合面向?qū)ο蠹夹g(shù),各種基于對(duì)象的構(gòu)件標(biāo)準(zhǔn)逐步涌現(xiàn)并走向?qū)嵱茫渲幸詫?duì)象管理集團(tuán)(OMG)制定的CORBA(Common Objec七Request Broker Architecture)工業(yè)構(gòu)件標(biāo)準(zhǔn)和Microsoft公司的COM/DCOM構(gòu)件模型最為著名。這些構(gòu)件標(biāo)準(zhǔn)為不同的構(gòu)件在異構(gòu)環(huán)境下相互操作定義了統(tǒng)一的接口,它們的出現(xiàn)為軟件的開發(fā)和設(shè)計(jì)提供了新的平臺(tái)和方式。

使用構(gòu)件技術(shù)開發(fā)軟件,對(duì)于軟件系統(tǒng)結(jié)構(gòu)的分析、設(shè)計(jì)與描述比對(duì)算法與數(shù)據(jù)結(jié)構(gòu)的選擇顯得更加重要。這種系統(tǒng)結(jié)構(gòu)上的考慮包括:如何將軟件元素復(fù)合組織成為一個(gè)有機(jī)的系統(tǒng);如何定義全局控制結(jié)構(gòu);如何規(guī)定各元素間的通信、同步協(xié)議;系統(tǒng)功能如何在各組成元素間劃分,以及如何將各元素組織完成某一系統(tǒng)功能;軟件系統(tǒng)各元素如何進(jìn)行物理分布及系統(tǒng)配置;系統(tǒng)的規(guī)模與性能如何;如何選擇系統(tǒng)設(shè)計(jì)方案以及確定系統(tǒng)的演化方向。因此,必須首先確定軟件的總體組織結(jié)構(gòu),選擇或開發(fā)完成系統(tǒng)功能所需的構(gòu)件以及構(gòu)件之間的交互關(guān)系,這正是軟件體系結(jié)構(gòu)的研究范疇。

二、軟件體系結(jié)構(gòu)的基本概念

雖然軟件體系結(jié)構(gòu)在軟件工程中已有很深的根基,但由于有關(guān)研究和使用剛剛興起,因而對(duì)它的理解還沒有達(dá)成共識(shí)。就體系結(jié)構(gòu)而言,它是指建立系統(tǒng)時(shí)的構(gòu)造模型、構(gòu)造風(fēng)格和構(gòu)造模式。軟件體系結(jié)構(gòu)對(duì)于軟件系統(tǒng)的構(gòu)造所起的是指導(dǎo)性的作用,著重于探討軟件系統(tǒng)的總體框架。廣義而言,軟件系統(tǒng)結(jié)構(gòu)涉及多方面的內(nèi)容:(1)軟件的成分及系統(tǒng)框架;(2)軟件成分的選擇,各成分之間的相互作用,軟件成分的進(jìn)一步復(fù)合以及指導(dǎo)軟件復(fù)合過程的總體模式;(3)系統(tǒng)的功能、性能、設(shè)計(jì)以及從多種方案及選項(xiàng)中進(jìn)行選擇的決策??梢姡浖w系結(jié)構(gòu)更為關(guān)注的是系統(tǒng)結(jié)構(gòu)及其成分,而方法更關(guān)心系統(tǒng)的開發(fā)過程。

綜合來說,軟件體系結(jié)構(gòu)開始于系統(tǒng)的早期設(shè)計(jì),主要描述以下屬性:功能性構(gòu)件和數(shù)據(jù)構(gòu)件;構(gòu)件間的連接,包括數(shù)據(jù)流和控制流;各種約束,包括構(gòu)件通信協(xié)議、構(gòu)件間的同步等;用構(gòu)件及它們之間的連接表示的整體結(jié)構(gòu)的拓?fù)潢P(guān)系等。

三、軟機(jī)體系結(jié)構(gòu)研究目的和內(nèi)容

在使用構(gòu)件技術(shù)的組合軟件工程中,好的軟件體系結(jié)構(gòu)是決定軟件系統(tǒng)開發(fā)成敗的關(guān)鍵。然而,許多以前被人們廣泛采用的體系結(jié)構(gòu)如管道、層次系統(tǒng)、客戶機(jī)/服務(wù)器模式等都可能被按照個(gè)人的嗜好做出不同的理解并以不同的方式應(yīng)用到系統(tǒng)設(shè)計(jì)開發(fā)上。其結(jié)果通常是軟件系統(tǒng)設(shè)計(jì)人員無法就系統(tǒng)體系結(jié)構(gòu)的共性達(dá)成共識(shí),因而也沒有對(duì)軟件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)方案進(jìn)行評(píng)估與選擇的基本原則。

有關(guān)軟件體系結(jié)構(gòu)的研究目前可分為三類:(1)研究體系結(jié)構(gòu)主要目的是使用領(lǐng)域分析技術(shù)和工具獲取有關(guān)軟件體系結(jié)構(gòu)的所有特征,并創(chuàng)建一個(gè)通用的體系結(jié)構(gòu)描述語言ADL (Architectural Description Language),用于刻畫其性質(zhì)。這將為設(shè)計(jì)人員提供一個(gè)嚴(yán)格定義軟件系統(tǒng)結(jié)構(gòu)的統(tǒng)一方法,從而避免了自然語言與框圖描述可能引起的理解上的不一致,即所謂的二義性。(2)體系結(jié)構(gòu)的分類主要研究體系結(jié)構(gòu)專業(yè)的范疇與內(nèi)容,其目的在于通過大量的實(shí)例,考察體系結(jié)構(gòu)的決策是如何受項(xiàng)目需求、組織目標(biāo)和個(gè)人背景影響的,從而對(duì)軟件開發(fā)實(shí)踐中所采用的體系結(jié)構(gòu)劃分原則與模式進(jìn)行分類并理論化,幫助開發(fā)人員確定有關(guān)體系結(jié)構(gòu)選擇的工程化原則。(3)第三類研究主要致力于特定領(lǐng)域軟件體系結(jié)構(gòu)框架的研究,如關(guān)于操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)及用戶界面等領(lǐng)域的軟件體系結(jié)構(gòu)研究。這一類的研究成果可為某一領(lǐng)域中新產(chǎn)品的開發(fā)提供一個(gè)復(fù)用度很高的系統(tǒng)結(jié)構(gòu)與開發(fā)模式。

建立完善的體系結(jié)構(gòu)理論不僅適合軟件系統(tǒng)開發(fā)的需要,也是軟件維護(hù)的需要。從開發(fā)方面考慮:首先,對(duì)軟件體系結(jié)構(gòu)進(jìn)行抽象形成幾類通用的模型,將有利于在較高的抽象層次上理解不同類型系統(tǒng)間的相互關(guān)系;其次,理論的建立為系統(tǒng)設(shè)計(jì)人員確立正確的體系結(jié)構(gòu)提供指導(dǎo)性意見;第三,不同類型的體系結(jié)構(gòu)模型是分析一個(gè)復(fù)雜系統(tǒng)高級(jí)性質(zhì)的模型;第四,統(tǒng)一的體系結(jié)構(gòu)描述方式將為軟件開發(fā)人員間進(jìn)行交流提供便利;最后,對(duì)于業(yè)已存在的可復(fù)用模塊來說,它們可能被包裝成為過程、進(jìn)程或數(shù)據(jù)轉(zhuǎn)換過濾器等,它們分別以過程調(diào)用、進(jìn)程通訊和共享數(shù)據(jù)等方式與其他模塊進(jìn)行交互,體系結(jié)構(gòu)的提出將有利于解決何時(shí)以及如何對(duì)這些可復(fù)用模塊進(jìn)行復(fù)合的問題。而從軟件維護(hù)方面考慮,對(duì)軟件的系統(tǒng)結(jié)構(gòu)及其性質(zhì)給出嚴(yán)格的定義并文檔化,非常有利于維護(hù)人員全面理解系統(tǒng)的構(gòu)成。不僅如此,由于組成系統(tǒng)的各成分界限劃分得較為清晰,使得代碼維護(hù)成本降低且容易保持原有的系統(tǒng)設(shè)計(jì)風(fēng)格。

四、結(jié)語

當(dāng)前對(duì)軟件體系結(jié)構(gòu)的研究已經(jīng)從萌芽工作進(jìn)展到對(duì)軟件體系結(jié)構(gòu)風(fēng)格的分類、評(píng)估、形式化及特定領(lǐng)域體系結(jié)構(gòu)的應(yīng)用和基于構(gòu)件的軟件開發(fā),而且軟件體系結(jié)構(gòu)描述語言也相繼出現(xiàn),使軟件體系結(jié)構(gòu)的表示更加嚴(yán)謹(jǐn)。但軟件體系結(jié)構(gòu)在一些方面仍然不成熟,很難被一般的開發(fā)人員所理解,主要問題在于沒有統(tǒng)一的體系結(jié)構(gòu)劃分標(biāo)準(zhǔn)和設(shè)計(jì)原則,缺乏形式化技術(shù)對(duì)其進(jìn)行完整性和一致性的分析,并且,現(xiàn)有的軟件體系結(jié)構(gòu)模式已無法適應(yīng)新的軟件開發(fā)技術(shù)的需要。另外,開發(fā)人員進(jìn)行軟件體系結(jié)構(gòu)的設(shè)計(jì)缺少有效的計(jì)算機(jī)輔助工具的幫助。

為了幫助開發(fā)人員有效地使用體系結(jié)構(gòu)模型進(jìn)行軟件設(shè)計(jì),應(yīng)當(dāng)在分析特定領(lǐng)域軟件靜態(tài)結(jié)構(gòu)模型和動(dòng)態(tài)模型的基礎(chǔ)上,以構(gòu)造此類軟件的過程模型為指導(dǎo),利用形式化方法建立以過程為中心的軟件開發(fā)環(huán)境,為開發(fā)人員提供高級(jí)的開發(fā)環(huán)境。

參考文獻(xiàn)

[1]梅宏,申峻嶸.Journal of software 軟件學(xué)報(bào) VOL.17,NO.6,June 2006.

[2]Dahl O J,Hoare C A&Dijkstra E W .Structure Programming[M].London; Academic Press,1972.

[3]Pamas D C. A Technique for Software Module Specification, with Examples[J].Communication of the ACM,1972,15(5).

[4]Royce W W.Managing the Development ofLarge Software System:Concepts and Techniques[M].Wescon:Yourdon Press,1970.

作者簡介:李波,女,湖南商學(xué)院計(jì)電學(xué)院講師,軟件工程碩士;聶裕鵬,男,長沙商貿(mào)旅游職業(yè)技術(shù)學(xué)院經(jīng)貿(mào)系教師。

主站蜘蛛池模板: 国产欧美视频综合二区| 久久网欧美| 国产成人综合久久精品下载| www中文字幕在线观看| 2022精品国偷自产免费观看| 国产精品主播| 欧美另类第一页| 国产凹凸视频在线观看| AV熟女乱| 91色在线视频| 亚洲天堂视频在线播放| 欧美一道本| 丁香婷婷激情网| 免费毛片视频| 国产微拍一区二区三区四区| 亚州AV秘 一区二区三区| 黄色三级毛片网站| 亚洲va在线观看| 国产SUV精品一区二区| 波多野结衣一区二区三区四区 | 五月婷婷综合网| 国产粉嫩粉嫩的18在线播放91| 日韩精品无码免费专网站| 久久久久国产一区二区| 午夜人性色福利无码视频在线观看 | 中文字幕免费在线视频| 激情六月丁香婷婷| 99热线精品大全在线观看| 国产精品99久久久久久董美香| 一级毛片免费观看不卡视频| 国产黑人在线| 人与鲁专区| 欧美日韩国产精品va| 国产免费久久精品99re不卡| 日韩精品专区免费无码aⅴ| 被公侵犯人妻少妇一区二区三区| 久久性妇女精品免费| 欧美中文字幕一区| 国产精品网址你懂的| 亚洲成人高清无码| 国产在线视频福利资源站| 天天干天天色综合网| 国产欧美精品专区一区二区| 2021国产在线视频| 国产亚洲精品资源在线26u| 国产色伊人| 免费在线色| 日韩国产高清无码| 国产三级a| 六月婷婷综合| 中文字幕有乳无码| 在线看国产精品| 中文成人在线| 国产精品部在线观看| 福利国产微拍广场一区视频在线| 在线国产91| 国禁国产you女视频网站| 先锋资源久久| 在线va视频| 欧洲一区二区三区无码| 福利在线一区| 亚洲毛片一级带毛片基地| 国产精品一区不卡| 国产理论最新国产精品视频| 91久久偷偷做嫩草影院精品| 看国产一级毛片| 午夜福利免费视频| 国产无码性爱一区二区三区| 国产美女人喷水在线观看| 婷婷六月激情综合一区| 国产精品入口麻豆| 国产精品专区第1页| 久久精品中文字幕免费| 伊人成人在线| 一本一本大道香蕉久在线播放| 国产污视频在线观看| 国产极品美女在线播放| 亚洲视频欧美不卡| 久久午夜影院| 亚洲制服丝袜第一页| 精品无码国产自产野外拍在线| 精品国产香蕉伊思人在线|