發(fā)布時間:所屬分類:計算機職稱論文瀏覽:1次
摘 要: 有關(guān)現(xiàn)在軟件系統(tǒng)機構(gòu)的新認識有哪些,應該如何來加強對軟件工程的應用管理制度呢?不同的管理新方式有哪些呢?我們應該如何來促使現(xiàn)在軟件工程建設的新技巧呢?文章選自: 《軟件學報》 ,《軟件學報》重刊登反映計算機科學和計算機軟件新理論、新方法和新技術(shù)
有關(guān)現(xiàn)在軟件系統(tǒng)機構(gòu)的新認識有哪些,應該如何來加強對軟件工程的應用管理制度呢?不同的管理新方式有哪些呢?我們應該如何來促使現(xiàn)在軟件工程建設的新技巧呢?文章選自:《軟件學報》,《軟件學報》重刊登反映計算機科學和計算機軟件新理論、新方法和新技術(shù)以及學科發(fā)展趨勢的文章,主要涉及理論計算機科學、算法設計與分析、系統(tǒng)軟件與軟件工程、模式識別與人工智能、數(shù)據(jù)庫技術(shù)、計算機網(wǎng)絡、信息安全、計算機圖形學與計算機輔助設計、多媒體技術(shù)及其他相關(guān)的內(nèi)容。
摘要:軟件結(jié)構(gòu)是指一種層次表況,由軟件組成成分構(gòu)造軟件的過程、方法和表示。軟件結(jié)構(gòu)主要包括程序結(jié)構(gòu)和文檔結(jié)構(gòu)。程序結(jié)構(gòu)有兩層含義,一是指程序的數(shù)據(jù)結(jié)構(gòu)和控制結(jié)構(gòu);另一是指由比程序低一級的程序單位(模塊)組成程序的過程、方法和表示。在后者含義下,具有代表性的是塊結(jié)構(gòu)和嵌套結(jié)構(gòu)兩種。塊結(jié)構(gòu)比較自然,各個部分之間通過一些公用變量取得聯(lián)系,嵌套結(jié)構(gòu)是在嵌套分程序的基礎上引進局部性和動態(tài)性,以減少程序的初始信息量,嵌套結(jié)構(gòu)不如塊結(jié)構(gòu)直觀,調(diào)試不方便。
關(guān)鍵詞:軟件結(jié)構(gòu),工程管理,計算機職稱論文
軟件體系結(jié)構(gòu)風格分析
最初的軟件體系結(jié)構(gòu)是Mainframe結(jié)構(gòu)——客戶、數(shù)據(jù)和程序都被集中在主機上,通常只有少量的GUI界面,對遠程數(shù)據(jù)庫的訪問比較困難。隨著PC的廣泛應用,該結(jié)構(gòu)逐漸被淘汰。在20世紀80年代中期出現(xiàn)了Client/Server分布式計算結(jié)構(gòu),應用程序的處理在客戶機和服務器之間分擔。隨著大型軟件系統(tǒng)的開發(fā),這種結(jié)構(gòu)在系統(tǒng)的部署和擴展性方面暴漏出不足。隨著Internet的發(fā)展,一個更靈活的體系結(jié)構(gòu)“三層/多層計算”體系結(jié)構(gòu)應運而生。
Garlan和Shaw將通用軟件體系結(jié)構(gòu)風格總結(jié)為以下幾類:
1.數(shù)據(jù)流風格:批處理序列;管道/過濾器。2.調(diào)用/返回風格:主程序/子程序;面向?qū)ο箫L格;層次結(jié)構(gòu)。3.獨立構(gòu)件風格:進程通訊;事件系統(tǒng)。4.虛擬機風格:解釋器;基于規(guī)則的系統(tǒng)。5.倉庫風格:數(shù)據(jù)庫系統(tǒng);超文本系統(tǒng);黑板系統(tǒng)。C2風格是最常用的一種軟件體系結(jié)構(gòu)風格。從C2風格的組織規(guī)則和結(jié)構(gòu)圖中,我們可以得出,C2風格具有以下特點:
(1)系統(tǒng)中的構(gòu)件可實現(xiàn)應用需求,并能將任意復雜度的功能封裝在一起;(2)所有構(gòu)件之間的通訊是通過以連接件為中介的異步消息交換機制來實現(xiàn)的;(3)構(gòu)件相對獨立,構(gòu)件之間依賴性較少。系統(tǒng)中不存在某些構(gòu)件將在同一地址空間內(nèi)執(zhí)行,或某些構(gòu)件共享特定控制線程之類的相關(guān)性假設。
2.數(shù)據(jù)抽象和面向?qū)ο箫L格。目前軟件界已普遍轉(zhuǎn)向使用面向?qū)ο笙到y(tǒng),抽象數(shù)據(jù)類型概念對軟件系統(tǒng)有著重要作用。這種風格的構(gòu)件是對象,或者說是抽象數(shù)據(jù)類型的實例。對象是一種被稱作管理者的構(gòu)件,因為它負責保持資源的完整性。對象是通過函數(shù)和過程的調(diào)用來交互的。圖2是數(shù)據(jù)抽象和面向?qū)ο箫L格的示意圖。 面向?qū)ο蟮南到y(tǒng)有許多的優(yōu)點:
(1)因為對象對其他對象隱藏它的表示,所以可以改變一個對象的表示,而不影響其他的對象。(2)設計者可將一些數(shù)據(jù)存取操作的問題分解成一些交互的代理程序的集合。面向?qū)ο蟮南到y(tǒng)也存在著某些問題:①為了使一個對象和另一個對象通過過程調(diào)用等進行交互,必須知道對象的標識。只要一個對象的標識改變了,就必須修改所有其他明確調(diào)用它的對象。②必須修改所有顯式調(diào)用它的其他對象,并消除由此帶來的一些副作用。
3.基于事件的隱式調(diào)用風格。基于事件的隱式調(diào)用風格的思想是構(gòu)件不直接調(diào)用一個過程,而是觸發(fā)或廣播一個或多個事件。系統(tǒng)中的其他構(gòu)件中的過程在一個或多個事件中注冊,當一個事件被觸發(fā),系統(tǒng)自動調(diào)用在這個事件中注冊的所有過程,這樣,一個事件的觸發(fā)就導致了另一模塊中的過程的調(diào)用。基于事件的隱式調(diào)用風格的主要特點是事件的觸發(fā)者并不知道哪些構(gòu)件會被這些事件影響。這樣不能假定構(gòu)件的處理順序,甚至不知道哪些過程會被調(diào)用。隱式調(diào)用系統(tǒng)的主要優(yōu)點有:(1)為軟件重用提供了強大的支持。當需要將一個構(gòu)件加入現(xiàn)存系統(tǒng)中時,只需將它注冊到系統(tǒng)的事件中。(2)為改進系統(tǒng)帶來了方便。當用一個構(gòu)件代替另一個構(gòu)件時,不會影響到其他構(gòu)件的接口。隱式調(diào)用系統(tǒng)的主要缺點有:①構(gòu)件放棄了對系統(tǒng)計算的控制。一個構(gòu)件觸發(fā)一個事件時,不能確定其他構(gòu)件是否會響應它。而且即使它知道事件注冊了哪些構(gòu)件的構(gòu)成,它也不能保證這些過程被 調(diào)用的順序。②數(shù)據(jù)交換的問題。有時數(shù)據(jù)可被一個事件傳遞,但另一些情況下,基于事件的系統(tǒng)必須依靠一個共享的倉庫進行交互。在這些情況下,全局性能和資源管理便成了問題。③既然過程的語義必須依賴于被觸發(fā)事件的上下文約束,關(guān)于正確性的推理存在問題。
4.管道/過濾器風格。在管道/過濾器風格的軟件體系結(jié)構(gòu)中,每個構(gòu)件都有一組輸入和輸出,構(gòu)件讀輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流。這個過程通常通過對輸入流的變換及增量計算來完成,所以在輸入被完全消費之前,輸出便產(chǎn)生了。因此,這里的構(gòu)件被稱為過濾器,軟件體系結(jié)構(gòu)風格研究這種風格的連接件就象是數(shù)據(jù)流傳輸?shù)墓艿溃瑢⒁粋過濾器的輸出傳到另一過濾器的輸入。 管道/過濾器風格的軟件體系結(jié)構(gòu)的優(yōu)點:
(1)使得軟構(gòu)件具有良好的隱蔽性和高內(nèi)聚、低耦合的特點;(2)支持軟件重用。重要提供適合在兩個過濾器之間傳送的數(shù)據(jù),任何兩個過濾器都可被連接起來;(3)系統(tǒng)維護和性能增強簡單;(4)支持并行執(zhí)行。每個過濾器是作為一個單獨的任務完成,因此可與其他任務并行執(zhí)行。管道/過濾器風格的主要缺點:①通常導致進程成為批處理的結(jié)構(gòu)。這是因為雖然過濾器可增量式地處理數(shù)據(jù),但它們是獨立的,所以設計者必須將每個過濾器看成一個完整的從輸入到輸出的轉(zhuǎn)換。②不適合處理交互的應用。當需要增量地顯示改變時,這個問題尤為嚴重。③因為在數(shù)據(jù)傳輸上沒有通用的標準,每個過濾器都增加了解析和合成數(shù)據(jù)的工作,這樣就導致了系統(tǒng)性能下降,并增加了編寫過濾器的復雜性。
5.批處理風格。批處理風格的每一步處理都是獨立的,并且每一步是順序執(zhí)行的,只有當前一步處理完后,后一步處理才能開始,數(shù)據(jù)傳送在步與步之間作為一個整體。批處理的典型應用是經(jīng)典數(shù)據(jù)處理和程序開發(fā)。