亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        李 波 聶裕鵬

        摘要:軟件體系結(jié)構(gòu)是軟件工程中的一個新興研究領(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)件

        中圖分類號:TP311文獻標(biāo)識碼:A

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

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

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

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

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

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

        3.計算機輔助軟件工程。在軟件工程學(xué)中,方法和工具是同一問題的兩個方面。方法是工具研制的先導(dǎo),工具是方法的現(xiàn)實體現(xiàn)。計算機輔助軟件工程(CASE)就是為工程化的軟件生產(chǎn)提供計算機化的支持,以期提高軟件生產(chǎn)率和軟件產(chǎn)品的質(zhì)量。進入90年代以來,結(jié)合面向?qū)ο蠹夹g(shù),各種基于對象的構(gòu)件標(biāo)準(zhǔn)逐步涌現(xiàn)并走向?qū)嵱茫渲幸詫ο蠊芾砑瘓F(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è)計提供了新的平臺和方式。

        使用構(gòu)件技術(shù)開發(fā)軟件,對于軟件系統(tǒng)結(jié)構(gòu)的分析、設(shè)計與描述比對算法與數(shù)據(jù)結(jié)構(gòu)的選擇顯得更加重要。這種系統(tǒng)結(jié)構(gòu)上的考慮包括:如何將軟件元素復(fù)合組織成為一個有機的系統(tǒng);如何定義全局控制結(jié)構(gòu);如何規(guī)定各元素間的通信、同步協(xié)議;系統(tǒng)功能如何在各組成元素間劃分,以及如何將各元素組織完成某一系統(tǒng)功能;軟件系統(tǒng)各元素如何進行物理分布及系統(tǒng)配置;系統(tǒng)的規(guī)模與性能如何;如何選擇系統(tǒng)設(shè)計方案以及確定系統(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)研究和使用剛剛興起,因而對它的理解還沒有達成共識。就體系結(jié)構(gòu)而言,它是指建立系統(tǒng)時的構(gòu)造模型、構(gòu)造風(fēng)格和構(gòu)造模式。軟件體系結(jié)構(gòu)對于軟件系統(tǒng)的構(gòu)造所起的是指導(dǎo)性的作用,著重于探討軟件系統(tǒng)的總體框架。廣義而言,軟件系統(tǒng)結(jié)構(gòu)涉及多方面的內(nèi)容:(1)軟件的成分及系統(tǒng)框架;(2)軟件成分的選擇,各成分之間的相互作用,軟件成分的進一步復(fù)合以及指導(dǎo)軟件復(fù)合過程的總體模式;(3)系統(tǒng)的功能、性能、設(shè)計以及從多種方案及選項中進行選擇的決策。可見,軟件體系結(jié)構(gòu)更為關(guān)注的是系統(tǒng)結(jié)構(gòu)及其成分,而方法更關(guān)心系統(tǒng)的開發(fā)過程。

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

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

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

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

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

        四、結(jié)語

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

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

        參考文獻

        [1]梅宏,申峻嶸.Journal of software 軟件學(xué)報 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é)院計電學(xué)院講師,軟件工程碩士;聶裕鵬,男,長沙商貿(mào)旅游職業(yè)技術(shù)學(xué)院經(jīng)貿(mào)系教師。

        一区二区三区放荡人妻| 亚洲av综合a色av中文| 99久久精品费精品国产一区二区| 手机看片1024精品国产| 亚洲中文字幕人妻诱惑| 国产饥渴的富婆一凶二区| 永久免费人禽av在线观看| 人人妻人人爽人人做夜欢视频九色 | 国产精品免费久久久免费| 最新国产av网址大全| 人妻熟女翘屁股中文字幕| 999国内精品永久免费观看| 日韩黑人欧美在线视频观看| 中文字幕乱码av在线| 国产成人精品日本亚洲i8| 亚洲av永久无码精品三区在线| 国产一区二区波多野结衣| 亚洲精品国产av一区二区| 视频在线观看国产自拍| 欧美乱人伦人妻中文字幕| 91av国产视频| 午夜日本理论片最新片| 寂寞人妻渴望被中出中文字幕| 国产如狼似虎富婆找强壮黑人| 久久精品国产热| 国产色婷亚洲99精品av网站| 日本高清在线一区二区三区| 300部国产真实乱| 亚洲欧洲AV综合色无码| 日韩av在线亚洲女同| 亚洲视频在线观看| 奇米影视久久777中文字幕| 亚洲区1区3区4区中文字幕码| 亚洲一区二区三区高清在线| 免费看黄色电影| 国产精品欧美韩国日本久久| 国产午夜精品视频观看| 不卡一卡二卡三乱码免费网站| 91精品国产综合成人| 精品女同一区二区三区在线播放器 | 蜜桃av噜噜一区二区三区9|