<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    大魚

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

        軟件設(shè)計(jì)采用自頂向下、逐次功能展開(kāi)的設(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ù)庫(kù)設(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ǔ),必須在詳細(xì)設(shè)計(jì)之前完成,概要設(shè)計(jì)經(jīng)復(fù)查確認(rèn)后才可以開(kāi)始詳細(xì)設(shè)計(jì)。概要設(shè)計(jì),必須完成概要設(shè)計(jì)文檔,包括系統(tǒng)的總體設(shè)計(jì)文檔、以及各個(gè)模塊的概要設(shè)計(jì)文檔。每個(gè)模塊的設(shè)計(jì)文檔都應(yīng)該獨(dú)立成冊(cè)。

        詳細(xì)設(shè)計(jì)必須遵循概要設(shè)計(jì)來(lái)進(jìn)行。詳細(xì)設(shè)計(jì)方案的更改,不得影響到概要設(shè)計(jì)方案;如果需要更改概要設(shè)計(jì),必須經(jīng)過(guò)項(xiàng)目經(jīng)理的同意。詳細(xì)設(shè)計(jì),應(yīng)該完成詳細(xì)設(shè)計(jì)文檔,主要是模塊的詳細(xì)設(shè)計(jì)方案說(shuō)明。和概要設(shè)計(jì)一樣,每個(gè)模塊的詳細(xì)設(shè)計(jì)文檔都應(yīng)該獨(dú)立成冊(cè)。

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

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

    http://blog.csdn.net/skyly84/archive/2009/06/02/4236569.aspx

    概要設(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ù)庫(kù)結(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)化的過(guò)程描述。

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

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

    概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)

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

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

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

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

     

        這樣一來(lái),設(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),但不過(guò)多糾纏于此。主要集中于劃分模塊、分配任務(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)的文字說(shuō)明等。以概要設(shè)計(jì)文檔為依據(jù),各個(gè)模塊的詳細(xì)設(shè)計(jì)就可以并行展開(kāi)了。

    詳細(xì)設(shè)計(jì)階段:

        在這個(gè)階段,各個(gè)模塊可以分給不同的人去并行設(shè)計(jì)。在詳細(xì)設(shè)計(jì)階段,設(shè)計(jì)者的工作對(duì)象是一個(gè)模塊,根據(jù)概要設(shè)計(jì)賦予的局部任務(wù)和對(duì)外接口,設(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)的文字說(shuō)明等。一個(gè)模塊一篇詳細(xì)設(shè)計(jì)文檔。

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

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

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

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

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

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

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

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

        軟件設(shè)計(jì)采用自頂向下、逐次功能展開(kāi)的設(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ù)庫(kù)設(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ǔ),必須在詳細(xì)設(shè)計(jì)之前完成,概要設(shè)計(jì)經(jīng)復(fù)查確認(rèn)后才可以開(kāi)始詳細(xì)設(shè)計(jì)。概要設(shè)計(jì),必須完成概要設(shè)計(jì)文檔,包括系統(tǒng)的總體設(shè)計(jì)文檔、以及各個(gè)模塊的概要設(shè)計(jì)文檔。每個(gè)模塊的設(shè)計(jì)文檔都應(yīng)該獨(dú)立成冊(cè)。

        詳細(xì)設(shè)計(jì)必須遵循概要設(shè)計(jì)來(lái)進(jìn)行。詳細(xì)設(shè)計(jì)方案的更改,不得影響到概要設(shè)計(jì)方案;如果需要更改概要設(shè)計(jì),必須經(jīng)過(guò)項(xiàng)目經(jīng)理的同意。詳細(xì)設(shè)計(jì),應(yīng)該完成詳細(xì)設(shè)計(jì)文檔,主要是模塊的詳細(xì)設(shè)計(jì)方案說(shuō)明。和概要設(shè)計(jì)一樣,每個(gè)模塊的詳細(xì)設(shè)計(jì)文檔都應(yīng)該獨(dú)立成冊(cè)。

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

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

    概要設(shè)計(jì),詳細(xì)設(shè)計(jì)之間的關(guān)系是什么?

    Q:

    我的看法:

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

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

        但是問(wèn)題來(lái)了,各個(gè)模塊之間是有層次關(guān)系的,也有先后邏輯關(guān)系。這就說(shuō)明,在概要設(shè)計(jì)中,還必須考慮模塊的實(shí)現(xiàn)細(xì)節(jié),否則,你怎么知道這個(gè)模塊下面要?jiǎng)澐肿幽K?你怎么知道各子模塊的調(diào)用順序?

        這就說(shuō)明,概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)是重疊進(jìn)行的,而軟件工程書上說(shuō)的確是順序進(jìn)行的,不知道是不是我的理解有問(wèn)題。

    舉個(gè)例子,例如排序程序,如果設(shè)計(jì)2個(gè)模塊:

    一個(gè)主模塊用于排序子模塊用于交換2個(gè)變量,主模塊調(diào)用子模塊,但是子模塊是怎么設(shè)計(jì)出來(lái)的呢?肯定是你先想到了用冒泡等排序方式的時(shí)候需要交換數(shù)據(jù),這已經(jīng)考慮了主模塊足夠多的細(xì)節(jié),似乎屬于"詳細(xì)設(shè)計(jì)"了,但是目前進(jìn)行的是概要設(shè)計(jì),這就產(chǎn)生了我所說(shuō)的重疊的情況。

    A:

    看看上面的帖子,有意思的居多。

    上面也有朋友說(shuō)到用建筑的例子來(lái)比喻。

    軟件的概要設(shè)計(jì),主要是建立軟件系統(tǒng)的整體架構(gòu),也就是我們?cè)谏w房子時(shí)候,需要先將房子的整個(gè)架子構(gòu)建起來(lái)。

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

    這樣的一個(gè)最為簡(jiǎn)單的例證:我們可以將代碼交付第三方來(lái)做。驗(yàn)證與跟蹤采取設(shè)計(jì)來(lái)。

    我看上面還有一個(gè)朋友說(shuō):快速做代碼。這個(gè)本身沒(méi)有值得批評(píng)之處。但只要想一下,你寫的代碼沒(méi)有任何設(shè)計(jì)思想、文檔留下的情況,一旦你離開(kāi),如何維護(hù)?重新設(shè)計(jì)嗎?還是花費(fèi)幾倍人力去研究你寫的幾千/萬(wàn),甚至幾十萬(wàn)行代碼?如果是這樣的,你沒(méi)錯(cuò),關(guān)鍵是你們老板太對(duì)了,錢算什么。

    另外的一個(gè)問(wèn)題是:中國(guó)人如此聰明,但中國(guó)為什么沒(méi)有出現(xiàn)巨型軟件產(chǎn)品呢?個(gè)人英雄主義依然很嚴(yán)重,老板的短視利益行為大行其道。

    posted on 2011-06-04 22:58 大魚 閱讀(300) 評(píng)論(0)  編輯  收藏 所屬分類: 軟件工程

    主站蜘蛛池模板: 亚洲国产成人精品无码久久久久久综合| 精品无码无人网站免费视频 | 337P日本欧洲亚洲大胆艺术图| 99久久免费中文字幕精品| 亚洲熟女一区二区三区| 一二三区免费视频| 国外亚洲成AV人片在线观看| 免费手机在线看片| 国产亚洲精品拍拍拍拍拍| 久久国产精品免费一区| 亚洲男人的天堂www| 99久久精品毛片免费播放| 国产亚洲av片在线观看18女人 | 亚洲福利视频网址| 国产成人yy免费视频| 久久亚洲精品国产亚洲老地址 | 日韩电影免费在线| 曰批全过程免费视频观看免费软件| 国产在线观看免费视频播放器| 羞羞视频免费网站含羞草| 国产午夜亚洲精品理论片不卡 | 中文字幕亚洲乱码熟女一区二区| 国产一级黄片儿免费看| 久久综合亚洲色HEZYO社区| 色婷婷7777免费视频在线观看| 亚洲av无码偷拍在线观看| 亚洲国产成人精品女人久久久| 丁香花在线视频观看免费| 亚洲精品白色在线发布| 日韩视频免费在线| 久久WWW免费人成—看片| 亚洲精品熟女国产| 一级毛片直播亚洲| 日韩精品久久久久久免费| 亚洲另类无码专区首页| 亚洲啪啪综合AV一区| 国拍在线精品视频免费观看 | 18禁黄网站禁片免费观看不卡| 亚洲日本va一区二区三区 | 亚洲黄色中文字幕| 国产一区二区三区在线免费 |