概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)的區(qū)別_第1頁
概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)的區(qū)別_第2頁
概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)的區(qū)別_第3頁
概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)的區(qū)別_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、轉(zhuǎn)自葉子ID:skyly84博客:概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)的區(qū)別    概要設(shè)計(jì)就是設(shè)計(jì)軟件的結(jié)構(gòu),包括組成模塊,模塊的層次結(jié)構(gòu),模塊的調(diào)用關(guān)系,每個(gè)模塊的功能等等。同時(shí),還要設(shè)計(jì)該項(xiàng)目的應(yīng)用系統(tǒng)的總體數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu),即應(yīng)用系統(tǒng)要存儲(chǔ)什么數(shù)據(jù),這些數(shù)據(jù)是什么樣的結(jié)構(gòu),它們之間有什么關(guān)系。     詳細(xì)設(shè)計(jì)階段就是為每個(gè)模塊完成的功能進(jìn)行具體的描述,要把功能描述轉(zhuǎn)變?yōu)榫_的、結(jié)構(gòu)化的過程描述。    概要設(shè)計(jì)階段通常得到軟件結(jié)構(gòu)圖     詳細(xì)設(shè)計(jì)

2、階段常用的描述方式有:流程圖、N-S圖、PAD圖、偽代碼等概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)    在軟件設(shè)計(jì)中,大家經(jīng)常問到的一個(gè)問題是:概要設(shè)計(jì)應(yīng)該怎樣一個(gè)概要法,詳細(xì)設(shè)計(jì)應(yīng)該怎樣一個(gè)詳細(xì)法? 這個(gè)問題在公司內(nèi)部經(jīng)常有人問?,F(xiàn)在陳述一下。     我們公司的研發(fā)流程是瀑布型的,這個(gè)模型中的分析、設(shè)計(jì)階段是基于經(jīng)典的結(jié)構(gòu)化方法。     結(jié)構(gòu)化設(shè)計(jì)方法的基本思路是:按照問題域,將軟件逐級(jí)細(xì)化,分解為不必再分解的的模塊,每個(gè)模塊完成一定的功能,為一個(gè)或多個(gè)父模塊服務(wù)(即接受調(diào)用),

3、也接受一個(gè)或多個(gè)子模塊的服務(wù)(即調(diào)用子模塊)。模塊的概念,和編程語言中的子程序或函數(shù)是對應(yīng)的。     這樣一來,設(shè)計(jì)可以明顯地劃分成兩個(gè)階段:     概要(結(jié)構(gòu))設(shè)計(jì)階段:把軟件按照一定的原則分解為模塊層次,賦予每個(gè)模塊一定的任務(wù),并確定模塊間調(diào)用關(guān)系和接口。     詳細(xì)設(shè)計(jì)階段:依據(jù)概要設(shè)計(jì)階段的分解,設(shè)計(jì)每個(gè)模塊內(nèi)的算法、流程等。概要設(shè)計(jì)階段:     在這個(gè)階段,設(shè)計(jì)者會(huì)大致考慮并照顧模塊的內(nèi)部實(shí)現(xiàn),但不過多糾纏于

4、此。主要集中于劃分模塊、分配任務(wù)、定義調(diào)用關(guān)系。模塊間的接口與傳參在這個(gè)階段要定得 十分細(xì)致明確,應(yīng)編寫嚴(yán)謹(jǐn)?shù)臄?shù)據(jù)字典,避免后續(xù)設(shè)計(jì)產(chǎn)生不解或誤解。概要設(shè)計(jì)一般不是一次就能做到位,而是反復(fù)地進(jìn)行結(jié)構(gòu)調(diào)整。典型的調(diào)整是合并功能重復(fù)的模塊,或者進(jìn)一步分解出可以復(fù)用的模塊。在概要設(shè)計(jì)階段,應(yīng)最大限度地提取可以重用的模塊,建立合理的結(jié)構(gòu)體系,節(jié)省后續(xù)環(huán)節(jié)的工作量。     概要設(shè)計(jì)文檔最重要的部分是分層數(shù)據(jù)流圖、結(jié)構(gòu)圖、數(shù)據(jù)字典以及相應(yīng)的文字說明等。以概要設(shè)計(jì)文檔為依據(jù),各個(gè)模塊的詳細(xì)設(shè)計(jì)就可以并行展開了。詳細(xì)設(shè)計(jì)階段:    在這

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

6、#160;  我們公司對模塊的認(rèn)識(shí)和傳統(tǒng)定義有所不同,認(rèn)為是較大的軟件功能單元才可以稱作模塊。這種認(rèn)識(shí)使大家對概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)的分工產(chǎn)生了混亂的理解,降低了文檔的可用性,應(yīng)該予以糾正。     概要設(shè)計(jì)中較頂層的部分便是所謂的方案。方案文檔的作用是在宏觀的角度上保持設(shè)計(jì)的合理性。    有的項(xiàng)目采用面向?qū)ο蟮姆治觥⒃O(shè)計(jì)方法。可能在概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)的分工上疑問更多。其實(shí),面向?qū)ο蟮姆治觥⒃O(shè)計(jì)方法并沒有強(qiáng)調(diào)結(jié)構(gòu)化方法那樣的階段性,因此一般不引入概要、詳細(xì)設(shè)計(jì)的概念。如果按照公司的文檔體系,非要有這種分工的話,可以將

7、包的劃分、類及對象間的關(guān)系、類的對外屬性、方法及協(xié)作設(shè)計(jì)看做 概要設(shè)計(jì);類屬性、方法的內(nèi)部實(shí)現(xiàn)看做詳細(xì)設(shè)計(jì)。   1.需求分析-產(chǎn)生軟件功能規(guī)格說明書,需要確定用戶對軟件的需求,要作到明確、無歧義。不涉及具體實(shí)現(xiàn)方法。用戶能看得明白,開發(fā)人員也可據(jù)此進(jìn)行下面的工作(概要設(shè)計(jì))。    2.概要設(shè)計(jì)-產(chǎn)生軟件概要設(shè)計(jì)說明書,說明系統(tǒng)模塊劃分、選擇的技術(shù)路線等,整體說明軟件的實(shí)現(xiàn)思路。并且需要指出關(guān)鍵技術(shù)難點(diǎn)等。      3.詳細(xì)設(shè)計(jì)-產(chǎn)生軟件詳細(xì)設(shè)計(jì)說明書,對概要設(shè)計(jì)的進(jìn)一步細(xì)化,一般

8、由各部分的擔(dān)當(dāng)人員依據(jù)概要設(shè)計(jì)分別完成,然后在集成,是具體的實(shí)現(xiàn)細(xì)節(jié)。理論上要求可以照此編碼。概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)的區(qū)別與了解    軟件設(shè)計(jì)采用自頂向下、逐次功能展開的設(shè)計(jì)方法,首先完成總體設(shè)計(jì),然后完成各有機(jī)組成部分的設(shè)計(jì)。    根據(jù)工作性質(zhì)和內(nèi)容的不同,軟件設(shè)計(jì)分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)實(shí)現(xiàn)軟件的總體設(shè)計(jì)、模塊劃分、用戶界面設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)等等;詳細(xì)設(shè)計(jì)則根據(jù)概要設(shè)計(jì)所做的模塊劃分,實(shí)現(xiàn)各模塊的算法設(shè)計(jì),實(shí)現(xiàn)用戶界面設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的細(xì)化,等等。    概要設(shè)計(jì)是詳細(xì)設(shè)計(jì)的基礎(chǔ),必

9、須在詳細(xì)設(shè)計(jì)之前完成,概要設(shè)計(jì)經(jīng)復(fù)查確認(rèn)后才可以開始詳細(xì)設(shè)計(jì)。概要設(shè)計(jì),必須完成概要設(shè)計(jì)文檔,包括系統(tǒng)的總體設(shè)計(jì)文檔、以及各個(gè)模塊的概要設(shè)計(jì)文檔。每個(gè)模塊的設(shè)計(jì)文檔都應(yīng)該獨(dú)立成冊。    詳細(xì)設(shè)計(jì)必須遵循概要設(shè)計(jì)來進(jìn)行。詳細(xì)設(shè)計(jì)方案的更改,不得影響到概要設(shè)計(jì)方案;如果需要更改概要設(shè)計(jì),必須經(jīng)過項(xiàng)目經(jīng)理的同意。詳細(xì)設(shè)計(jì),應(yīng)該完成詳細(xì)設(shè)計(jì)文檔,主要是模塊的詳細(xì)設(shè)計(jì)方案說明。和概要設(shè)計(jì)一樣,每個(gè)模塊的詳細(xì)設(shè)計(jì)文檔都應(yīng)該獨(dú)立成冊。   概要設(shè)計(jì)里面的數(shù)據(jù)庫設(shè)計(jì)應(yīng)該重點(diǎn)在描述數(shù)據(jù)關(guān)系上,說明數(shù)據(jù)的來龍去脈,在這里應(yīng)該結(jié)合我們的一下結(jié)果數(shù)據(jù),說明這些結(jié)果數(shù)

10、據(jù)的源點(diǎn),我們這樣設(shè)計(jì)的目的和原因。詳細(xì)設(shè)計(jì)里的數(shù)據(jù)庫設(shè)計(jì)就應(yīng)該是一份完善的數(shù)據(jù)結(jié)構(gòu)文檔,就是一個(gè)包括類型、命名、精度、字段說明、表說明等內(nèi)容的數(shù)據(jù)字典。   概要設(shè)計(jì)里的功能應(yīng)該是重點(diǎn)在功能描述,對需求的解釋和整合,整體劃分功能模塊,并對各功能模塊進(jìn)行詳細(xì)的圖文描述,應(yīng)該讓讀者大致了解系統(tǒng)作完后大體的結(jié)構(gòu)和操作模式。詳細(xì)設(shè)計(jì)則是重點(diǎn)在描述系統(tǒng)的實(shí)現(xiàn)方式,各模塊詳細(xì)說明實(shí)現(xiàn)功能所需的類及具體的方法函數(shù),包括涉及到的sql語句等。概要設(shè)計(jì),詳細(xì)設(shè)計(jì)之間的關(guān)系是什么?Q:我的看法:    概要設(shè)計(jì)只說明系統(tǒng)有多少個(gè)模塊,各模塊之間的接口和個(gè)模塊本身

11、的功能    詳細(xì)設(shè)計(jì)說明某個(gè)具體模塊如何實(shí)現(xiàn),粒度應(yīng)該比程序略高一些    但是問題來了,各個(gè)模塊之間是有層次關(guān)系的,也有先后邏輯關(guān)系。這就說明,在概要設(shè)計(jì)中,還必須考慮模塊的實(shí)現(xiàn)細(xì)節(jié),否則,你怎么知道這個(gè)模塊下面要?jiǎng)澐肿幽K?你怎么知道各子模塊的調(diào)用順序?    這就說明,概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)是重疊進(jìn)行的,而軟件工程書上說的確是順序進(jìn)行的,不知道是不是我的理解有問題。舉個(gè)例子,例如排序程序,如果設(shè)計(jì)2個(gè)模塊:一個(gè)主模塊用于排序子模塊用于交換2個(gè)變量,主模塊調(diào)用子模塊,但是子模塊是怎么設(shè)計(jì)出來的呢?肯定是

12、你先想到了用冒泡等排序方式的時(shí)候需要交換數(shù)據(jù),這已經(jīng)考慮了主模塊足夠多的細(xì)節(jié),似乎屬于"詳細(xì)設(shè)計(jì)"了,但是目前進(jìn)行的是概要設(shè)計(jì),這就產(chǎn)生了我所說的重疊的情況。A:看看上面的帖子,有意思的居多。上面也有朋友說到用建筑的例子來比喻。軟件的概要設(shè)計(jì),主要是建立軟件系統(tǒng)的整體架構(gòu),也就是我們在蓋房子時(shí)候,需要先將房子的整個(gè)架子構(gòu)建起來。軟件的詳細(xì)設(shè)計(jì),主要是將軟件系統(tǒng)的各個(gè)部分的具體設(shè)計(jì)方法、邏輯、功能采用文字方式進(jìn)行表述。這樣在實(shí)現(xiàn)過程中,Coding人員原則上嚴(yán)格按此進(jìn)行代碼實(shí)現(xiàn)即可。這樣的一個(gè)最為簡單的例證:我們可以將代碼交付第三方來做。驗(yàn)證與跟蹤采取設(shè)計(jì)來。我看上面還有一個(gè)朋友說:快速做代碼。這個(gè)本身沒有值得批評之處。但只要想一下,你寫的代碼沒有任何

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論