1.結構圖
1.1結構圖的基本成分結構圖的基本成分有模塊、調用和數(shù)據(jù)。結構圖和層次圖基本上是大同小異,主要是用來描繪軟件結構的一種圖形工具,圖中設有很多方框,一個方框就代表一個模塊,框內注明模塊的名字或主要功能;方框之間的箭頭(或直線)用來表示模塊的調用關系。在通常情況下我們會在結構圖中用箭頭注釋一下表示模塊在調用過程中信息的來回傳遞。我們可以根據(jù)箭頭的β部形狀標明某種信息,認定一種形狀作為一種信息符號,自己只要按箭頭形狀就可以區(qū)分傳遞的信息是數(shù)據(jù)還是控制信息了。比如:β部是空心圓就表示傳遞的是數(shù)據(jù),實心圓就表示傳遞的是控制信息。
1.2附加符號結構圖不僅僅只是一些基本符號,其實還有不少附加符號,它是用來表示模塊的選擇調用或循環(huán)調用的。其實,層次圖和結構圖對于模塊調用次序方面要求的并不嚴格。再畫模塊方面很多人習慣按調用次序從左到右的方法畫模塊,其實又û有規(guī)定一定要這樣,出于其他方面的考慮(例如為了減少交叉線),我們完全可以不按這種次序畫,還有就是在層次圖和結構圖中并不指明什ô時候調用下層模塊。一般情況下上層模塊中除了調用下層模塊的語句之外還有其他語句,到底是先執(zhí)行調用下層模塊的語句還是先執(zhí)行其他語句,絲毫不在圖中指明。事實上,層次圖和結構圖往往只表明一個模塊用來調用哪些模塊,對于一些模塊內不含其他成分的根本就不作表示。
2.信息流的類型在需求分析階段,用SA方法產(chǎn)生了數(shù)據(jù)流圖。面向數(shù)據(jù)流的設計能方便地將數(shù)據(jù)流圖(data flow diagram,DFD)轉換成程序結構圖。DFD中從系統(tǒng)的輸入數(shù)據(jù)流到系統(tǒng)的輸出數(shù)據(jù)流的一連串連續(xù)變換形成了一條信息流。DFD的信息流大體可分為兩種類型,就是中心變換流和事務流。
2.1變換流:信息在沿著輸入通·進入系統(tǒng),同時由外部形式變換成內部形式進入系統(tǒng)的信息,通過變換中心經(jīng)加工處理,以后再沿著輸出通·的變換成外部形式離開系統(tǒng)。當數(shù)據(jù)流具有了信息流的這種特征時這種信息流就叫做變換流。變換流型的DFD可明顯地分為三大部分輸入、變換(主加工)、輸出。
2.2事務流:基本系統(tǒng)模型意ζ著變換流,由外部形成內部形式后到達事務中心。因此,事務中心可根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行,這種信息流稱之為事務流。因為事務流有了有明顯的事務中心,所以各式各樣活動流都以事務中心為起點呈輻射狀流出。事務中心主要完成下述任務:接收輸入數(shù)據(jù)(輸入數(shù)據(jù)又稱為事務);分析ÿ個事務以確定它的類型;根據(jù)事務類型選取一條活動通·。
2.3設計過程:我們要懂得任何一個設計過程都不是統(tǒng)一的,固定不變的,設計的要求比較高,往往需要在方法上設計者不但具有超強的判斷能力還要有規(guī)則性的創(chuàng)造精神。
3.事務分析我們可以在數(shù)據(jù)流有了一定的事務特點,也就是有一個明顯的“發(fā)身中心”(事務中心)時,來設計軟件結構但最好還是采用事務分析的方法比較好,因此,我們在任何情況下都可以使用變換分析方法來設計軟件結構。事務分析的設計步驟和變換分析的設計步驟基本是大同小異,它們之間主要差別就是從數(shù)據(jù)流圖到軟件結構的映射方法不同。由事務流映射成軟件結構包括一個接收分支和一個發(fā)送分支。也就是說從。抽象到具體地構造出軟件的層次結構由事務中心的邊界開始沿著接收分支流通·的處理映射成模塊,然后調用模塊來發(fā)送分支結構。并且控制下層的所有活動模塊;可以用形式化的方法由數(shù)據(jù)圖映射出軟件結構。事務分析是從事務流型DFD導出程序結構圖。
3.1事實上,事務中心是由若干條活動流組成的?;谑聞罩行暮?#255;條活動流的流特性,事務流型DFD在一般形式中無數(shù)條活動流都是以其事務中心為起點成輻射狀地流出。有了活動流與事務之間的相互循環(huán)轉變,讓一條事務流型的DFD由輸入流映射成高層的程序結構。
3.2將事務流型DFD映射成高層的程序結構。頂層模塊的功能和軟件工程中的結構化設計方法整個系統(tǒng)的功能是一樣的。接收模塊是用來接收輸入數(shù)據(jù)以及接收與它相對應的輸入流。而發(fā)送模塊則是一個調度模塊,它是用來控制下層的所有活動流模塊。ÿ個活動流模塊都有其相對應的一條活動流,因此在該活動流的映照過程中頂層模塊呈現(xiàn)在程序結構圖中。
3.3進一步分解。僅過一段時間的接觸我們了解了接收模塊的分解和變換分析中輸入控制模塊的分解基本上一樣。還有就是ÿ個活動流模塊都是根據(jù)它的流特性(變換流或事務流)進一步采用變換分析或事務分析進行分解。如果對待一個大系統(tǒng),在通常情況下我們會把變換分析和事務分析應用到同一個數(shù)據(jù)流圖的不同部分。因為“構件”是由很多子結構形成的,所以我們應該利用它們來構造完整的軟件結構。事實上,當數(shù)據(jù)流不具有明顯的事務特點的情況下,我們可以使用變換分析技術。相反如果具有明顯的事務中心,就可以采用事務分析技術。我們應靈活運用變換分析和事務分析這兩種映射規(guī)則。過程中要是有一些不必要或û多大用處的控制模塊我們可以將它們進行整合。如果控制模塊的功能過于復雜,可以將它們分解為多個或多個以上的控制模塊,或者在中間增加層次型的控制模塊。