摘要:軟件工程之中的結(jié)構(gòu)化設計方法研究具有非常強的現(xiàn)實意義,本文在概述了軟件結(jié)構(gòu)設計的基礎上,對結(jié)構(gòu)化設計的具體流程以及體系結(jié)構(gòu)設計方法進行了分析,希望能夠?qū)ξ覀兊墓ぷ髌鸬揭欢ㄖ笇Ш痛龠M的作用。 

  關鍵詞:軟件工程;結(jié)構(gòu)化設計;設計方法; 

  中圖分類號:TP311.5 文獻標識碼:A 文章編號:1007-9599 (2013) 01-0242-02 

  針對一些大型項目的開發(fā),為了提升軟件的質(zhì)量及其開發(fā)效率,在我們對程序進行詳細設計之前,必須要對軟件的總體結(jié)構(gòu)進行確定,而在軟件總體結(jié)構(gòu)確定的過程中,結(jié)構(gòu)化設計方法屬于一個主要的手段。基于此,本文關于軟件工程之中的結(jié)構(gòu)化設計方法的研究具有非常強的實踐指導作用。 

  1 軟件結(jié)構(gòu)設計概述 

  1.1 軟件設計概念及原則 

  在軟件設計的過程中,最為基本的目標是使用抽象概括的方式確定目標系統(tǒng),換句話說,軟件設計主要是將系統(tǒng)物理模型確定下來的過程。在軟件設計的過程中,我們會將比較復雜的問題分解為很多比較小的、容易解決的問題。另外,在對其進行模塊分解的過程中,我們會對每一個模塊進行獨立的開發(fā)及測試,然后使其組裝成為比較完成的程序,這樣可以確保程序具有比較好的理解性以及比較清晰的結(jié)構(gòu),對于后續(xù)的測試及修改都比較有利,了解這些內(nèi)容對于加深我們對結(jié)構(gòu)化設計的理解非常有幫助。 

  1.2 結(jié)構(gòu)化設計 

  所謂結(jié)構(gòu)化設計,主要屬于一種面向數(shù)據(jù)流的設計方式,具體來看,這是基于模塊化、自頂而下細化、結(jié)構(gòu)化程序設計等基礎的一種設計方法,其最為基礎的思想是把系統(tǒng)設計成為功能單一、相對獨立的模塊組成結(jié)構(gòu)。 

  在結(jié)構(gòu)化軟件設計過程中,從技術角度來看,設計階段主要包括數(shù)據(jù)設計、接口設計、體系結(jié)構(gòu)設計以及過程設計。其中數(shù)據(jù)設計主要是將實體關系轉(zhuǎn)化為文件系統(tǒng)結(jié)構(gòu)以及數(shù)據(jù)庫表結(jié)構(gòu)。至于體系結(jié)構(gòu)設計主要是對軟件模塊之間的關系進行定義。而接口設計則是以數(shù)據(jù)流圖對系統(tǒng)內(nèi)部中的各種關系及交互機制進行定義。最后,過程設計則是對軟件各組成部分的算法以及內(nèi)部數(shù)據(jù)結(jié)構(gòu)確定下來,并采取某種形式對算法進行描述。 

  如果從工程管理這一角度出發(fā)的話,則軟件設計則可以分為概要設計以及詳細設計這兩部分,其中概要設計主要包含軟件需求到軟件體系結(jié)構(gòu)的轉(zhuǎn)換、系統(tǒng)級接口的確定等。至于詳細設計則是對每個模塊的實現(xiàn)算法以及數(shù)據(jù)結(jié)構(gòu)進行確定、采取合理的方法對算法以及數(shù)據(jù)結(jié)構(gòu)細節(jié)進行表示。 

  2 結(jié)構(gòu)化設計的具體實施方法 

  2.1 結(jié)構(gòu)化設計流程 

 。1)對數(shù)據(jù)流圖進行研究、分析及審查,這主要可以幫助我們從軟件需求規(guī)格說明中掌握數(shù)據(jù)流加工過程。 

 。2)以數(shù)據(jù)流圖為依據(jù)對數(shù)據(jù)處理的類型進行確定,需要注意的是,針對事務型及變換型,我們要對其進行分別分析及處理。 

 。3)通過數(shù)據(jù)流圖對系統(tǒng)初始結(jié)構(gòu)圖進行推導。 

 。4)采取啟發(fā)式原則對系統(tǒng)初始結(jié)構(gòu)圖進行改進,直到結(jié)構(gòu)圖滿足我們的要求為止。 

 。5)利用數(shù)據(jù)字典以及分析模型ER圖對數(shù)據(jù)進行設計,這又包括數(shù)據(jù)文件設計以及數(shù)據(jù)庫設計。 

 。6)以狀態(tài)轉(zhuǎn)換圖、加工規(guī)格說明為依據(jù),進行過程設計。 

  2.2 體系結(jié)構(gòu)設計方法 

  (1)基于數(shù)據(jù)流方法設計過程。這一設計方法也被稱之為過程驅(qū)動設計方法,在使用這一方法的過程中,主要是和軟件需求分析階段的SA進行銜接,然后將數(shù)據(jù)流圖所表示的信息轉(zhuǎn)化為程序結(jié)構(gòu)設計描述。 

 。2)典型數(shù)據(jù)流及典型系統(tǒng)結(jié)構(gòu)。對于典型數(shù)據(jù)流類型來說在,主要包括事務型數(shù)據(jù)流以及變換型數(shù)據(jù)流,在數(shù)據(jù)流的類型存在區(qū)別的時候,其所獲得的系統(tǒng)結(jié)構(gòu)也會存在差異。一般來說,我們會把系統(tǒng)中的全部數(shù)據(jù)流認作變換流,數(shù)據(jù)沿輸入通道進到系統(tǒng)中,經(jīng)歷數(shù)據(jù)變化,把數(shù)據(jù)外部形勢轉(zhuǎn)變?yōu)閮?nèi)部表示,再利用變化中心進行處理,最后沿輸出通道離開系統(tǒng),而這種數(shù)據(jù)就被稱之為變換流。不過,在遇到明顯帶有事務特性數(shù)據(jù)流的時候,則最好采取事務型映射方法設計。 

  具體來說,變換流系統(tǒng)結(jié)構(gòu)圖主要包括了輸入、變換中心以及輸出這三個部分。至于事務流,其數(shù)據(jù)則會沿輸入通道到達事務中心,然后事務中心將以輸入數(shù)據(jù)的類型為依據(jù)選擇一個動作進行執(zhí)行,在事務流中,事務中心是明顯存在的,各種活動流將以事務中心作為起點按照輻射的形狀流出。 

 。3)變換映射方法。所謂變換分析,主要是從數(shù)據(jù)流圖中將系統(tǒng)結(jié)構(gòu)圖導出,其具體的步驟為:首先,對數(shù)據(jù)流圖進行重畫;其次,對有效輸入、有效輸出以及變換中心部分進行區(qū)分;第三,進行一級分解及二級分解。 

  具體來說,在對數(shù)據(jù)流圖進行重畫的過程中,為建立好系統(tǒng)結(jié)構(gòu),要對數(shù)據(jù)流圖進行平鋪,其中物流輸入在左邊,物理輸出在右邊。至于確定有效輸入、有效輸出以及變換中心的過程中,則要注意程序的核心功能為變換中心,輸入屬于邏輯輸入流,而輸出屬于邏輯輸出流。而第一級分級中,頂層模塊負責整個系統(tǒng)功能,它又可以分為輸入控制模塊、變換控制模塊以及輸出控制模塊。