乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      讀書日志:代碼大全之第七章

       cupid8505 2012-06-30
      第七章 高級(jí)程序設(shè)計(jì)
      模塊設(shè)計(jì)和子程序設(shè)計(jì)的好壞在很大程度上取決于系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)好壞。

      7.1 軟件設(shè)計(jì)引論
      “軟件設(shè)計(jì)”一詞的意思是指,把一個(gè)計(jì)算機(jī)程序的定義轉(zhuǎn)變成可以運(yùn)行程序的設(shè)計(jì)方法。

      層次的設(shè)計(jì)
      層次1:劃分成子系統(tǒng)
      層次2:劃分成模塊
      層次3:劃分成子程序
      層次4:子程序內(nèi)部的設(shè)計(jì)

      7.2 結(jié)構(gòu)化設(shè)計(jì)
      結(jié)構(gòu)化設(shè)計(jì)是由以下部分組成的:
      · 系統(tǒng)組織,系統(tǒng)將被設(shè)計(jì)成幾個(gè)黑盒子,明確定義的子程序和模塊、接口的實(shí)現(xiàn)細(xì)節(jié)對(duì)其它子程序來說都是隱含的。
      · 開發(fā)設(shè)計(jì)的策略。
      · 評(píng)估設(shè)計(jì)準(zhǔn)則。
      · 關(guān)于問題的明確說明,這是解決問題的指導(dǎo)原則。
      · 表達(dá)設(shè)計(jì)的圖形和語言工具,包括PDL和結(jié)構(gòu)圖。

      選擇需進(jìn)行模塊化的要素
      自頂向下分解原則:
      設(shè)計(jì)高層次。
      · 避免特定語言細(xì)節(jié)。從設(shè)計(jì)中,不應(yīng)該看出打算在程序中使用什么語言,或者說當(dāng)在設(shè)計(jì)中更換要用的語言時(shí),不會(huì)產(chǎn)生任何麻煩。
      · 暫時(shí)不指出下一層次的設(shè)計(jì)細(xì)節(jié)(與信息隱含類似)。
      · 正規(guī)化每個(gè)層次。
      · 檢驗(yàn)每個(gè)層次。
      · 轉(zhuǎn)移到下一個(gè)層次,進(jìn)行新的求精工作。


      自底向上合成原則:
      · 問自己,關(guān)于系統(tǒng)要做什么你都知道哪些?
      · 利用這一問題識(shí)別出某些低層次功能。
      · 識(shí)別出這些低層次功能共同的方面,將其組合到一起。
      · 向上一個(gè)層次,進(jìn)行同樣的工作,或回到頂端開始自頂向下。

      其中自頂向下是從一般到特珠,自底向上是從特殊到一般。

      7.3 面向?qū)ο?/div>
      面向?qū)ο笤O(shè)計(jì)方法的特點(diǎn)是通過對(duì)實(shí)際問題的分析,從中抽象出對(duì)象,然后再用程序語言來表現(xiàn)它,其過程主要是:識(shí)別對(duì)象中的子對(duì)象并識(shí)別出對(duì)于子對(duì)象的操作,然后再根據(jù)子對(duì)象的操作開發(fā)出一個(gè)系統(tǒng)。

      面向?qū)ο笤O(shè)計(jì)的步驟是:
      · 識(shí)別對(duì)象及其屬性,它往往是數(shù)據(jù)。
      · 確定對(duì)每個(gè)對(duì)象可以做些什么。
      · 確定每一個(gè)對(duì)象可以對(duì)其它對(duì)象做些什么。
      · 確定每個(gè)對(duì)象對(duì)其它對(duì)象來說是可見的部分——哪一部分是開放的,哪一部分是專用的。
      · 確定每個(gè)對(duì)象的公共接口。

      7.4 對(duì)目前流行方法的討論
      從事結(jié)構(gòu)化設(shè)計(jì)的人與從事面向?qū)ο笤O(shè)計(jì)的人會(huì)發(fā)現(xiàn)他們進(jìn)行交流非常困難,原因是他們沒有意識(shí)到是在不同層次上討論設(shè)計(jì)的,因此主題也是不同的。從事結(jié)構(gòu)化設(shè)計(jì)的Tom說:“我想這個(gè)系統(tǒng)應(yīng)該分解成50個(gè)子程序?!泵嫦?qū)ο笤O(shè)計(jì)的Joh則說:“我認(rèn)為系統(tǒng)應(yīng)劃分成7個(gè)對(duì)象”。如果你仔細(xì)觀察,可能會(huì)發(fā)現(xiàn)這7個(gè)對(duì)象中可能共含有50個(gè)子程序,而Tom的子程序或許可以分成7組。

      結(jié)構(gòu)化設(shè)計(jì)主要是一種把程序分解成子程序的方法。它強(qiáng)調(diào)功能但不強(qiáng)調(diào)數(shù)據(jù)。如果數(shù)據(jù)變動(dòng)可能性很大,那么采用面向?qū)ο笤O(shè)計(jì)比較合適,因?yàn)樗鼘⒆儎?dòng)可能性較大的數(shù)據(jù)獨(dú)立在對(duì)象(模塊)中。
      面向?qū)ο笤O(shè)計(jì)主要是設(shè)計(jì)模塊數(shù)據(jù)和對(duì)數(shù)據(jù)操作的集合。

      7.5 往返設(shè)計(jì)
      你可能會(huì)有這樣的體驗(yàn):當(dāng)你編寫程序快結(jié)束時(shí),你非常希望能有機(jī)會(huì)再重新編寫一次,因?yàn)樵诰帉戇^程中你對(duì)問題又有了更深的理解。
      設(shè)計(jì)是一個(gè)復(fù)雜的過程
      設(shè)計(jì)是一個(gè)“險(xiǎn)惡”的過程
      設(shè)計(jì)是一個(gè)啟發(fā)的過程

      怎么樣解決問題:
      l.理解問題,你必須理解要解決的問題
      問題是什么?條件是什么?數(shù)據(jù)是什么?有可能滿足條件嗎?已知條件足以確定未知嗎?已知條件是否不夠充分?是否矛盾是否冗余?
      畫一個(gè)圖,引入恰當(dāng)?shù)姆?hào),把條件的不同部分分解開。
      2.設(shè)計(jì)一個(gè)方案。找到已知數(shù)據(jù)和未知之間的聯(lián)系。如果不能找出直接聯(lián)系的話,你可能不得不考慮一些輔助問題,但最后,你應(yīng)該找到一個(gè)解決方案。
      3.執(zhí)行你的計(jì)劃。
      執(zhí)行你解決問題的計(jì)劃,同時(shí)檢查每一步工作。你是否可以認(rèn)定每一步都是正確的?你能證明這點(diǎn)嗎?
      4.回顧,檢查一下答案。
      你能檢查一下答案嗎?能檢查一個(gè)論證嗎?能否用另外一種方法推導(dǎo)出答案?能否一眼就看出答案?

      受歡迎設(shè)計(jì)的特點(diǎn):
      智力上的可管理性。
      低復(fù)雜性。
      維護(hù)的方便性。
      最小的聯(lián)系性。
      可擴(kuò)充性。
      可重復(fù)使用性。
      高扇入。高扇入指的是對(duì)于一個(gè)給定的子程序來說,應(yīng)該有盡可能多的子程序調(diào)用它。
      低或中等程度扇出。低或中等扇出指的是對(duì)一個(gè)確定的子程序來說,它所調(diào)用的子程序應(yīng)該盡可能地少。
      可移植性。
      簡練性。
      成層設(shè)計(jì)。
      標(biāo)準(zhǔn)化技求。

      7.6 小結(jié)
      固執(zhí)地堅(jiān)持某一種方法只會(huì)抑制創(chuàng)造力,從而產(chǎn)生低質(zhì)量的程序。
      好的設(shè)計(jì)是通過迭代逼近得到的:你嘗試過的設(shè)計(jì)方案越多,你最終所確定的設(shè)計(jì)方案也越好。
      設(shè)計(jì)方法僅是一種工具,你對(duì)工具運(yùn)用得好壞決定了你所設(shè)計(jì)的程序的質(zhì)量。但不管怎樣,選擇正確的工具更容易設(shè)計(jì)出高質(zhì)量的軟件。


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多