摘 要:本文嘗試把現(xiàn)代軟件體系結(jié)構(gòu)理論運用到革命紀念館圖書管理系統(tǒng)的設(shè)計和開發(fā)之中,給出了整個體系結(jié)構(gòu)設(shè)計過程,讓兩者有機結(jié)合,使成果系統(tǒng)能更好地服務(wù)于讀者,提高書籍管理效率,促進革命紀念館的現(xiàn)代信息化建設(shè)。
關(guān)鍵詞:軟件體系結(jié)構(gòu);革命紀念館;圖書管理系統(tǒng)
1 引言
隨著現(xiàn)代科技的不斷進步和社會需求的日益增多,企事業(yè)單位需求的大量增長,面向?qū)ο蟆⒎植际降刃录夹g(shù)的引入,催生了各種軟件信息系統(tǒng),特別是大中型的企業(yè)級系統(tǒng)的規(guī)模和復(fù)雜度也隨之迅速膨脹。在這樣的背景之下,傳統(tǒng)的軟件構(gòu)架設(shè)計方式已經(jīng)不能適應(yīng)現(xiàn)代軟件系統(tǒng)開發(fā)的需求,于是出現(xiàn)了對軟件體系結(jié)構(gòu)的研究和設(shè)計,以此來解決不斷涌現(xiàn)的軟件危機問題(具體表現(xiàn)在:軟件成本、軟件生產(chǎn)率、軟件質(zhì)量、軟件后期護理等方面)。軟件體系結(jié)構(gòu)規(guī)劃是否良好是決定軟件系統(tǒng)成敗的一個重要因素。
如今,軟件體系結(jié)構(gòu)的設(shè)計對整個軟件開發(fā)起著至關(guān)重要的作用。對軟件工業(yè)化時代下的大規(guī)模復(fù)雜軟件系統(tǒng)來說,全局性的系統(tǒng)結(jié)構(gòu)設(shè)計和規(guī)格說明的重要性已經(jīng)遠遠超過了“程序=算法+數(shù)據(jù)結(jié)構(gòu)”的選擇。只有選擇一個設(shè)計科學(xué)合理的系統(tǒng)體系結(jié)構(gòu),才能開發(fā)出經(jīng)得起用戶需求變化、跟得上時代發(fā)展的軟件系統(tǒng),滿足可生產(chǎn)性、安全性(如數(shù)據(jù)一致性等)、可靠性、可維護性(如可移植性、可理解性)、可重用、可適應(yīng)性(如環(huán)境適應(yīng)性等)、可伸縮性、擴展性、可測試性等方面的要求。這就是我們研究和實現(xiàn)軟件體系結(jié)構(gòu)的目的所在。
2 軟件體系結(jié)構(gòu)
2.1 軟件體系結(jié)構(gòu)的定義
體系結(jié)構(gòu)一詞最早來自于建筑學(xué),ANSI/IEEE Std 1471-2000 中對Architecture的定義是:一個系統(tǒng)的基本組織結(jié)構(gòu),包括該系統(tǒng)的各類組件(Components),組件之間的相互關(guān)系和所處環(huán)境,以及指導(dǎo)該系統(tǒng)設(shè)計和演變時的基本準則[1]。90年代初軟件體系結(jié)構(gòu)(Software Architecture,縮寫:SA)正式出現(xiàn)在人們的視野,它是將軟件系統(tǒng)形象化地比喻為一棟建筑,包含構(gòu)建系統(tǒng)的元素、元素之間的操作、指導(dǎo)本系統(tǒng)構(gòu)成的模式以及附著在模式上的約束的描述。
截止目前,對于軟件體系結(jié)構(gòu)仍舊未形成一個統(tǒng)一的定義。當前廣受業(yè)界認可的典型定義是Mary Shaw和David Garlan對它的認識:軟件體系結(jié)構(gòu)是軟件設(shè)計過程中的一個層次,這一層次超越計算過程中的算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)設(shè)計。體系結(jié)構(gòu)問題包括總體組織和全局控制、通訊協(xié)議、同步、數(shù)據(jù)存取,給設(shè)計元素分配特定功能,設(shè)計元素的組織、規(guī)模和性能,在各設(shè)計方案間進行選擇等。軟件體系結(jié)構(gòu)處理算法與數(shù)據(jù)結(jié)構(gòu)之上關(guān)于整體系統(tǒng)結(jié)構(gòu)設(shè)計和描述方面存在的一些問題,如全局組織和全局控制結(jié)構(gòu),關(guān)于通訊、同步與數(shù)據(jù)存取的協(xié)議,設(shè)計構(gòu)件功能定義,物理分布與合成,設(shè)計方案的選擇、評估與實現(xiàn)等[2]。
可以看到,定義揭示了軟件體系結(jié)構(gòu)包含系統(tǒng)的組織結(jié)構(gòu)和拓撲結(jié)構(gòu),顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對應(yīng)關(guān)系,并且提供了一些設(shè)計決策的基本原理,是構(gòu)建于軟件系統(tǒng)之上的系統(tǒng)級、高層次、大粒度的復(fù)用。有了軟件體系結(jié)構(gòu),能夠做出系統(tǒng)開發(fā)的重要決策,進行項目的理智管理以及改善各種開發(fā)人員的交流與協(xié)調(diào)。
2.2 主要研究的對象
近年來,軟件體系結(jié)構(gòu)領(lǐng)域研究的重點(對象)有:
⑴體系結(jié)構(gòu)的定義和作用。
⑵體系結(jié)構(gòu)的風(fēng)格(模式)或范型,比如:完善現(xiàn)有體系結(jié)構(gòu)風(fēng)格,提出新的體系結(jié)構(gòu)模式;力圖建立面向?qū)iT領(lǐng)域的軟件體系結(jié)構(gòu)范型庫。
⑶軟件體系結(jié)構(gòu)的說明或描述及其標準化,比如:探索新的軟件體系結(jié)構(gòu)描述語言,促成標準化、規(guī)范化描述方式的誕生,從而方便開發(fā)人員之間的理解、溝通、交流。
⑷軟件體系結(jié)構(gòu)的半形式化或形式化方法(基于數(shù)學(xué)的,具有嚴格的語法語義定義的語言),形式化方法是提高軟件系統(tǒng)安全性與可靠性的重要手段。
⑸體系結(jié)構(gòu)的建模及其快速原型。
⑹體系結(jié)構(gòu)的度量與評價,通過分析來預(yù)見軟件的質(zhì)量,通過分析、創(chuàng)建、選擇、評估與比較不同的體系結(jié)構(gòu),建立評價軟件體系結(jié)構(gòu)的方法,滿足產(chǎn)品質(zhì)量需求。
⑺通過理論的分析和實踐的研究,對軟件工程師在軟件開發(fā)實踐中得來的各種體系結(jié)構(gòu)的原則、模式進行整理和歸類、集成、擴展,形成一套可以指導(dǎo)軟件設(shè)計和開發(fā)人員完成體系結(jié)構(gòu)設(shè)計的一般性準則。
經(jīng)過長期的努力,現(xiàn)在社會上形成了一些通用的、具備良好風(fēng)格的軟件體系結(jié)構(gòu)模式,主要代表是:數(shù)據(jù)流系統(tǒng)(Dataflow Systems,如:管道和過濾器),數(shù)據(jù)抽象和面向?qū)ο蠼M織(Data Abstraction and Object-oriented Organization),分層系統(tǒng)(Layered Systems,如:三層分層系統(tǒng)結(jié)構(gòu)),數(shù)據(jù)中心體系結(jié)構(gòu)(Data-centered Architecture,如:知識庫模式)。而對它們綜合交織的應(yīng)用,可以使軟件系統(tǒng)的產(chǎn)品質(zhì)量達到優(yōu)良的設(shè)計和實現(xiàn)效果。
3 革命紀念館圖書管理信息系統(tǒng)
梅園新村紀念館,擁有全國第一家周恩來圖書館資料研究中心——周恩來圖書館,收藏了大量的有關(guān)周恩來的論著、文獻、書刊、音像資料和照片,而且隨著藏書量的不斷擴大和讀者數(shù)量的增加,為了更好地滿足讀者需求,提高服務(wù)群眾的水平,提高圖書館的工作效率,充分發(fā)揮紀念館的社會教育和名人研究功能,也為進一步推動紀念館數(shù)字化、信息化建設(shè),開發(fā)一個應(yīng)用軟件體系結(jié)構(gòu)理論、設(shè)計合理的信息系統(tǒng)對紀念館圖書進行綜合的有效管理,顯得尤為必要。
4 體系結(jié)構(gòu)設(shè)計過程
4.1 需求階段
引入體系結(jié)構(gòu)概念確立系統(tǒng)目標,收集原始需求。這是整個系統(tǒng)正確設(shè)計的根本依據(jù)和指導(dǎo)方針,涵蓋了:結(jié)構(gòu)目標、系統(tǒng)的功能指標和非功能性指標,其中非功能性指標又覆蓋了對系統(tǒng)性能的考慮、對系統(tǒng)可靠性的考慮、對系統(tǒng)擴展和升級的考慮等等。在這個過程中,設(shè)計人員與圖書館部門的工作人員進行了解、調(diào)查、互動討論,以此確定目標和各類用戶的需求,把需求精化分解,得出需求規(guī)約,并形成相應(yīng)的文檔輸出。
4.2 設(shè)計階段
根據(jù)需求階段得到的分析,按照“概念體系結(jié)構(gòu)-邏輯體系結(jié)構(gòu)-執(zhí)行體系結(jié)構(gòu)-體系結(jié)構(gòu)評估、確認”這條主線進行軟件體系結(jié)構(gòu)的構(gòu)建和設(shè)計,確立紀念館圖書管理信息系統(tǒng)體系結(jié)構(gòu),包括對風(fēng)格的描述,以及在后期構(gòu)建指導(dǎo)系統(tǒng)分解、集成的機制與原則。
這個設(shè)計子階段的第一步是明確概念體系結(jié)構(gòu)。對紀念館圖書管理信息系統(tǒng)體系進行構(gòu)件(子系統(tǒng))、連接件(構(gòu)件之間的關(guān)系)、配置約束的定義和劃分及關(guān)鍵技術(shù)的選定。對于中小型問題規(guī)模的紀念館圖書管理系統(tǒng)而言,這個階段可以不必過分關(guān)注具體接口和特定的細節(jié)性信息,可放在邏輯體系結(jié)構(gòu)步驟中進行處理。
第二步是明確邏輯體系結(jié)構(gòu)。僅僅確定概念體系結(jié)構(gòu)距離系統(tǒng)目標的達成還很遙遠,概念結(jié)構(gòu)后面緊接著是邏輯結(jié)構(gòu)的確定,也就是對概念結(jié)構(gòu)中的內(nèi)容進行充實和具體化。可以通過創(chuàng)建動態(tài)模型(包括每個組件所提供的功能的簡述、組件的用戶描述、型號名稱、響應(yīng)信號(IDL)、操作描述、操作的前提條件及約束、并發(fā)模型、組件合成約束、生命周期模型、組件示例、組件命名、典型使用情況、程序范例、例外情況以及執(zhí)行結(jié)果)來考慮、歸納每個軟件元素的功能和接口[3]。
而后是明確執(zhí)行體系結(jié)構(gòu)。在網(wǎng)絡(luò)或分布式環(huán)境下的應(yīng)用程序中,將各組件映射到物理系統(tǒng)中。
最后的子階段是體系結(jié)構(gòu)評估和確認。組織圖書管理信息系統(tǒng)相關(guān)參與人員,對比各種不同方案進行權(quán)衡評估,從而決策出最佳方案。
4.3 開發(fā)實施和迭代階段
把通過前兩個階段篩選得出的紀念館圖書管理信息系統(tǒng)的體系結(jié)構(gòu)付諸具體的開發(fā)實施。任何一個軟件應(yīng)用系統(tǒng)的實現(xiàn)都不是一蹴而就的,同樣道理,任何一個軟件體系結(jié)構(gòu)的設(shè)計也非一日之功,一錘子買賣,而是一個循序漸進的過程。因此,當實施中遭遇問題時還需反復(fù)迭代上面的步驟,以達到良好的設(shè)計開發(fā)效果。
4.4 體系結(jié)構(gòu)測試驗收階段
在此,運用多種測試方法,進行體系結(jié)構(gòu)校驗、模擬測試和驗收實施結(jié)果,做出客觀評價,并在測試過程中及時調(diào)整存在問題的地方,最終獲取優(yōu)質(zhì)實施結(jié)構(gòu)或路徑。
5 結(jié)束語
建設(shè)一個互操作性能優(yōu)、擴展性強和復(fù)用性高的革命紀念館圖書管理信息系統(tǒng),軟件體系結(jié)構(gòu)是整個系統(tǒng)設(shè)計成功的基礎(chǔ)和關(guān)鍵所在,在實際系統(tǒng)的設(shè)計和實現(xiàn)過程中,運用體系結(jié)構(gòu)的知識指導(dǎo)我們的行為,采用正確的基于體系結(jié)構(gòu)的方法約束系統(tǒng)的開發(fā)過程,最終實現(xiàn)符合革命紀念館自身特色的圖書管理系統(tǒng)。
[參考文獻]
[1]http://www.uml.org.cn/success/success1.htm.
[2]Pressman R S,黃柏素,等,譯.軟件工程———實踐者的研究方法[M].北京:機械工業(yè)出版社,1999.
[3]張友生. 軟件體系結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2006.