摘要:軟件工程之中的結(jié)構(gòu)化設(shè)計(jì)方法研究具有非常強(qiáng)的現(xiàn)實(shí)意義,本文在概述了軟件結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上,對(duì)結(jié)構(gòu)化設(shè)計(jì)的具體流程以及體系結(jié)構(gòu)設(shè)計(jì)方法進(jìn)行了分析,希望能夠?qū)ξ覀兊墓ぷ髌鸬揭欢ㄖ笇?dǎo)和促進(jìn)的作用。 

  關(guān)鍵詞:軟件工程;結(jié)構(gòu)化設(shè)計(jì);設(shè)計(jì)方法; 

  中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2013) 01-0242-02 

  針對(duì)一些大型項(xiàng)目的開發(fā),為了提升軟件的質(zhì)量及其開發(fā)效率,在我們對(duì)程序進(jìn)行詳細(xì)設(shè)計(jì)之前,必須要對(duì)軟件的總體結(jié)構(gòu)進(jìn)行確定,而在軟件總體結(jié)構(gòu)確定的過程中,結(jié)構(gòu)化設(shè)計(jì)方法屬于一個(gè)主要的手段;诖耍疚年P(guān)于軟件工程之中的結(jié)構(gòu)化設(shè)計(jì)方法的研究具有非常強(qiáng)的實(shí)踐指導(dǎo)作用。 

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

  1.1 軟件設(shè)計(jì)概念及原則 

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

  1.2 結(jié)構(gòu)化設(shè)計(jì) 

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

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

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

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

  2.1 結(jié)構(gòu)化設(shè)計(jì)流程 

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

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

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

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

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

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

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

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

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

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

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

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