需求分析、概要設(shè)計、詳細設(shè)計說明書的概念及區(qū)別

??

1.需求分析--產(chǎn)生軟件功能規(guī)格說明書,需要確定用戶對軟件的需求,要作到明確、無歧義。不涉及具體實現(xiàn)方法。用戶能看得明白,開發(fā)人員也可據(jù)此進行下面的工作(概要設(shè)計)。

2.概要設(shè)計--產(chǎn)生軟件概要設(shè)計說明書,說明系統(tǒng)模塊劃分、選擇的技術(shù)路線等,整體說明軟件的實現(xiàn)思路。并且需要指出關(guān)鍵技術(shù)難點等。

3.詳細設(shè)計--產(chǎn)生軟件詳細設(shè)計說明書,對概要設(shè)計的進一步細化,一般由各部分的擔(dān)當(dāng)人員依據(jù)概要設(shè)計分別完成,然后在集成,是具體的實現(xiàn)細節(jié)。理論上要求可以照此編碼。

—————————————————————————————————————??

????概要設(shè)計就是設(shè)計軟件的結(jié)構(gòu),包括組成模塊,模塊的層次結(jié)構(gòu),模塊的調(diào)用關(guān)系,每個模塊的功能等等。同時,還要設(shè)計該項目的應(yīng)用系統(tǒng)的總體數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu),即應(yīng)用系統(tǒng)要存儲什么數(shù)據(jù),這些數(shù)據(jù)是什么樣的結(jié)構(gòu),它們之間有什么關(guān)系。??

????詳細設(shè)計階段就是為每個模塊完成的功能進行具體的描述,要把功能描述轉(zhuǎn)變?yōu)榫_的、結(jié)構(gòu)化的過程描述。?

—————————————————————————————————————

概要設(shè)計階段通常得到軟件結(jié)構(gòu)圖??

詳細設(shè)計階段常用的描述方式有:流程圖、N-S圖、PAD圖、偽代碼等?

—————————————————————————————————————

概要設(shè)計和詳細設(shè)計?

????在軟件設(shè)計中,大家經(jīng)常問到的一個問題是:概要設(shè)計應(yīng)該怎樣一個概要法,詳細設(shè)計應(yīng)該怎樣一個詳細法???

????這個問題在公司內(nèi)部經(jīng)常有人問?,F(xiàn)在陳述一下。??

????我們公司的研發(fā)流程是瀑布型的,這個模型中的分析、設(shè)計階段是基于經(jīng)典的結(jié)構(gòu)化方法。???

????結(jié)構(gòu)化設(shè)計方法的基本思路是:按照問題域,將軟件逐級細化,分解為不必再分解的的模塊,每個模塊完成一定的功能,為一個或多個父模塊服務(wù)(即接受調(diào)用),也接受一個或多個子模塊的服務(wù)(即調(diào)用子模塊)。模塊的概念,和編程語言中的子程序或函數(shù)是對應(yīng)的。

這樣一來,設(shè)計可以明顯地劃分成兩個階段:???

?概要(結(jié)構(gòu))設(shè)計階段:把軟件按照一定的原則分解為模塊層次,賦予每個模塊一定的任務(wù),并確定模塊間調(diào)用關(guān)系和接口。

詳細設(shè)計階段:依據(jù)概要設(shè)計階段的分解,設(shè)計每個模塊內(nèi)的算法、流程等。

—————————————————————————————————————

概要設(shè)計階段:

????在這個階段,設(shè)計者會大致考慮并照顧模塊的內(nèi)部實現(xiàn),但不過多糾纏于此。主要集中于劃分模塊、分配任務(wù)、定義調(diào)用關(guān)系。模塊間的接口與傳參在這個階段要定得?十分細致明確,應(yīng)編寫嚴謹?shù)臄?shù)據(jù)字典,避免后續(xù)設(shè)計產(chǎn)生不解或誤解。概要設(shè)計一般不是一次就能做到位,而是反復(fù)地進行結(jié)構(gòu)調(diào)整。典型的調(diào)整是合并功能重復(fù)的模塊,或者進一步分解出可以復(fù)用的模塊。在概要設(shè)計階段,應(yīng)最大限度地提取可以重用的模塊,建立合理的結(jié)構(gòu)體系,節(jié)省后續(xù)環(huán)節(jié)的工作量。

????概要設(shè)計文檔最重要的部分是分層數(shù)據(jù)流圖、結(jié)構(gòu)圖、數(shù)據(jù)字典以及相應(yīng)的文字說明等。以概要設(shè)計文檔為依據(jù),各個模塊的詳細設(shè)計就可以并行展開了。?

詳細設(shè)計階段:???

????在這個階段,各個模塊可以分給不同的人去并行設(shè)計。在詳細設(shè)計階段,設(shè)計者的工作對象是一個模塊,根據(jù)概要設(shè)計賦予的局部任務(wù)和對外接口,設(shè)計并表達出模塊的算法、流程、狀態(tài)轉(zhuǎn)換等內(nèi)容。這里要注意,如果發(fā)現(xiàn)有結(jié)構(gòu)調(diào)整(如分解出子模塊等)的必要,必須返回到概要設(shè)計階段,將調(diào)整反應(yīng)到概要設(shè)計文檔中,而不?能就地解決,不打招呼。詳細設(shè)計文檔最重要的部分是模塊的流程圖、狀態(tài)圖、局部變量及相應(yīng)的文字說明等。一個模塊一篇詳細設(shè)計文檔。?????

概要設(shè)計文檔相當(dāng)于機械設(shè)計中的裝配圖,而詳細設(shè)計文檔相當(dāng)于機械設(shè)計中的零件圖。文檔的編排、裝訂方式也可以參考機械圖紙的方法。

????我們公司對模塊的認識和傳統(tǒng)定義有所不同,認為是較大的軟件功能單元才可以稱作模塊。這種認識使大家對概要設(shè)計和詳細設(shè)計的分工產(chǎn)生了混亂的理解,降低了文檔的可用性,應(yīng)該予以糾正。??

????概要設(shè)計中較頂層的部分便是所謂的方案。方案文檔的作用是在宏觀的角度上保持設(shè)計的合理性。??

????有的項目采用面向?qū)ο蟮姆治?、設(shè)計方法??赡茉诟乓O(shè)計、詳細設(shè)計的分工上疑問更多。其實,面向?qū)ο蟮姆治?、設(shè)計方法并沒有強調(diào)結(jié)構(gòu)化方法那樣的階段性,因此一般不引入概要、詳細設(shè)計的概念。如果按照公司的文檔體系,非要有這種分工的話,可以將包的劃分、類及對象間的關(guān)系、類的對外屬性、方法及協(xié)作設(shè)計看做?概要設(shè)計;類屬性、方法的內(nèi)部實現(xiàn)看做詳細設(shè)計。

—————————————————————————————————————

概要設(shè)計和詳細設(shè)計的區(qū)別與聯(lián)系?

????軟件設(shè)計采用自頂向下、逐次功能展開的設(shè)計方法,首先完成總體設(shè)計,然后完成各有機組成部分的設(shè)計。?

根據(jù)工作性質(zhì)和內(nèi)容的不同,軟件設(shè)計分為概要設(shè)計和詳細設(shè)計。概要設(shè)計實現(xiàn)軟件的總體設(shè)計、模塊劃分、用戶界面設(shè)計、數(shù)據(jù)庫設(shè)計等等;詳細設(shè)計則根據(jù)概要設(shè)計所做的模塊劃分,實現(xiàn)各模塊的算法設(shè)計,實現(xiàn)用戶界面設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計的細化,等等

?—————————————————————————————————————??

概要設(shè)計是詳細設(shè)計的基礎(chǔ),必須在詳細設(shè)計之前完成,概要設(shè)計經(jīng)復(fù)查確認后才可以開始詳細設(shè)計。概要設(shè)計,必須完成概要設(shè)計文檔,包括系統(tǒng)的總體設(shè)計文檔、以及各個模塊的概要設(shè)計文檔。每個模塊的設(shè)計文檔都應(yīng)該獨立成冊。

????詳細設(shè)計必須遵循概要設(shè)計來進行。詳細設(shè)計方案的更改,不得影響到概要設(shè)計方案;如果需要更改概要設(shè)計,必須經(jīng)過項目經(jīng)理的同意。詳細設(shè)計,應(yīng)該完成詳細設(shè)計文檔,主要是模塊的詳細設(shè)計方案說明。和概要設(shè)計一樣,每個模塊的詳細設(shè)計文檔都應(yīng)該獨立成冊。

????概要設(shè)計里面的數(shù)據(jù)庫設(shè)計應(yīng)該重點在描述數(shù)據(jù)關(guān)系上,說明數(shù)據(jù)的來龍去脈,在這里應(yīng)該結(jié)合我們的一下結(jié)果數(shù)據(jù),說明這些結(jié)果數(shù)據(jù)的源點,我們這樣設(shè)計的目的和原因。詳細設(shè)計里的數(shù)據(jù)庫設(shè)計就應(yīng)該是一份完善的數(shù)據(jù)結(jié)構(gòu)文檔,就是一個包括類型、命名、精度、字段說明、表說明等內(nèi)容的數(shù)據(jù)字典。????

????概要設(shè)計里的功能應(yīng)該是重點在功能描述,對需求的解釋和整合,整體劃分功能模塊,并對各功能模塊進行詳細的圖文描述,應(yīng)該讓讀者大致了解系統(tǒng)作完后大體的結(jié)構(gòu)和操作模式。詳細設(shè)計則是重點在描述系統(tǒng)的實現(xiàn)方式,各模塊詳細說明實現(xiàn)功能所需的類及具體的方法函數(shù),包括涉及到的sql語句等。

概要設(shè)計只說明系統(tǒng)有多少個模塊,各模塊之間的接口和各模塊本身的功能;

詳細設(shè)計說明某個具體模塊如何實現(xiàn),粒度應(yīng)該比程序略高一些;

—————————————————————————————————————??

軟件的概要設(shè)計,主要是建立軟件系統(tǒng)的整體架構(gòu),也就是我們在蓋房子時候,需要先將房子的整個架子構(gòu)建起來。

軟件的詳細設(shè)計,主要是將軟件系統(tǒng)的各個部分的具體設(shè)計方法、邏輯、功能采用文字方式進行表述。這樣在實現(xiàn)過程中,Coding人員原則上嚴格按此進行代碼實現(xiàn)即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容