劉永慶(海軍計算技術研究所,北京 100841)
基于軟件體系結構的軟件設計及構造
劉永慶
(海軍計算技術研究所,北京 100841)
軟件的設計存在著很多種方式,比如,傳統的基于程序語言的軟件設計等等。現在又出現了兩種不同于傳統方法的設計新技術,它們是軟件體系結構和軟件設計模式。這兩種技術的關鍵之處就是在于將傳統的軟件設計針對的算法和數據結構轉向整個軟件系統的組織結構和系統性能表現。其中我們要提到的是軟件體系結構,它包括了構件的處理、由數據組成的構件和構件的連接這三個部分。構件連接的作用是把結構體系中的不同數據部分組合并且連接起來;由數據組成的構件是已經加工了處理過的信息。各個有機組成成分及其關連作用和語義模式是軟件體系結構的研究重點。
軟件體系的結構;軟件設計及其相關構造;軟件體系結構的應用前景與軟件體系結構相關的介紹
軟件的體系結構是軟件的整體結構,它包括了構件、連接件和約束構成的軟件,當然這是從整個系統上來看的。除此之外,它還應該包括了軟件需要完成的業務、執行這些業務的組織、組織在整體結構中相對應的位置、軟件技術基礎設施方面和運行軟件所需要的信息的內容。軟件是具有一定結構的,而不僅僅只是單個的算法或者數據的拼湊,我們常常提到的軟件開發只是這其中很小的一部分。這些部分具有一些相同的地方,比如軟件對應的操作系統、基于這些操作系統的基礎軟件、實現計算邏輯主體的應用程序、方便使用的用戶界面程序等等。從細節來看,它們每個程序并不是完全獨立的,它們本身也具有一定的結構。早期的結構化程序就僅僅是以語句來組成模塊,通過模塊的聚集和嵌套最終形成了可以層層調用的程序結構。結構化程序的程序規模比較小,通過強調結構化程序設計方法去學習,自頂向下一步一步的精心設計并同時注意兩個模塊之間的耦合性一般就會得到一個比較良好的軟件結構,最終就會得到自己想要的運算結果,所以在整個設計過程其實并沒有那么注重體系結構的。
對面向對象技術和抽象數據類型這兩項新型技術的研究,加快了對軟件體系的研究。因為抽象數據類型和面向對象技術需要自頂向下,是從底向上構造軟件,所以可以大量應用已使用過的構件。所以,軟件的規模變得更大同時軟件的開發速度變得更加快,從而滿足了人們對復雜軟件高效率的需求。
1.1 模塊化
模塊是一種可以單獨命名的并且可用名字來訪問的結構。子程序、函數、過程、宏等可以作為一個簡單的模塊。模塊化就是將一些程序分成若干個模塊,然后每個模塊單獨去完成一個個小的功能,最后把這些模塊所完成的小的功能集合起來組成一個整體,最終就可以完成指定的要求。
1.2 抽象
抽象是對于某一種東西不在乎它的細節,對細節進行隱藏的一種思維方式,即把事物本質中的共同性抽出,暫時不去考慮其他的因素從而對對象的一種研究方法。軟件工程在運用中,它的每個部分我們都能把它們看作是一種細分,是對軟件抽象層次的一種細分。在系統的定義階段,我們可以把軟件作為整個計算機系統中的一個元素來對待;在對軟件的需求階段,我們需要用專業術語來解決問題;從總體設計到詳細設計階段,抽象的層次逐步降低,這意味著軟件設計時越到后面越精細,這樣抽象的層次就會降低。
1.3 信息隱蔽
通過抽象這個方法,我們可以確定什么樣的實體可以構成軟件。而通過對部分信息進行隱蔽,我們可以定義模塊的細節,對一些相關數據的結構實施存取限制。
2.1 關鍵問題
通過使用軟件體系結構來進行軟件設計并且進行構造,這個新技術有著不同于傳統軟件設計方法的三個典型特點:軟件設計方法與設計概念的有效融合、具備開放性的精確的系統軟件體系語言及基于領域模型的模式。
2.1.1 過程介紹
過程是可以分為三個階段的,第一個階段要對軟件系統特性進行了解,需要做的工作與傳統軟件設計差不多,要分析軟件系統的特性,了解系統的構成;第二個階段要對軟件設計方案進行確立,需要建立獨立與系統軟件實際的應用,也就是說要把軟件進行抽象,是在忽略軟件程序具體的使用環境和實際功能的基礎上進行的。然后對軟件系統中的相關構造進行描述說明,同時對軟件整體功能進行設定,來達到這個階段的要求;第三個階段是對具體問題的應用領域所開發的軟件系統的應用框架的構建階段,軟件開發人員在進行軟件開發設計之前,就要深入了解軟件設計的模式和相關技術,利用好軟件系統的特性和相關內容,這樣就會使軟件設計轉向對系統軟件的框架進行設計開發,以此來達到提高效率的效果。
2.1.2 開發方法的介紹
現在社會需求的軟件越來越復雜,對功能的要求也越來越多,相對應的軟件設計的方法也是種類繁多,如何將這些軟件設計方法融合在一起來滿足復雜的軟件設計,就需要軟件開發人員想出一種能將不同的軟件設計開發方法進行融合使用的方法,利用各種方法的優勢去進行軟件設計。這時就需要以一種抽象的方法,使得每個階段采用最適合的設計方法去進行軟件設計。
2.2 設計核心
設計核心是軟件的體系結構,設計的關鍵是對系統抽象和描述。它的優勢就是能對軟件的結構特點有著很精確的定位,使得軟件體系結構成了發展最快的軟件設計方法。它的缺點就是由于軟件設計結構描述語言投入使用的不多,使得它們只能應用在比較特殊的范圍內,當然能夠獲得結果也是比較固定和有限的。
軟件體系結構在軟件設計中的應用,打破了傳統僅使用程序設計語言去做軟件研究的障礙,將各種軟件設計的方法融合在軟件設計的同階段使用,在軟件復雜度越來越高、追求效率的今天應用更加廣泛。但同時機遇和挑戰是并存的,比如有限的使用方法需要更多人力來學習。而且傳統的軟件設計技術雖有局限性,但其現在的應用卻是多于使用軟件體系結構的。不過,雖然面臨著花費更多精力和時間的挑戰,但是其現實價值卻是更大的,其應用前景也是十分廣闊的。
[1]肖蘇.軟件設計基本原則及其實例分析[Z].TP3.A.1671-7597(2008)1010138-01.
[2]麥中凡,戴彩霞.軟件體系結構的概念[Z].TP311.A.1002-8331-(2001)11-0092-04.
[3]胡華,高濟,何志均.基于軟件體系結構的軟件設計及構造[Z].