軟件設(shè)計(jì)基礎(chǔ)理論 丁二玉
定 價(jià):49 元
- 作者:丁二玉
- 出版時(shí)間:2024/9/1
- ISBN:9787111760382
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.1
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
軟件設(shè)計(jì)是軟件開發(fā)的核心活動(dòng),軟件設(shè)計(jì)理論的發(fā)展推動(dòng)著軟件工程的發(fā)展。本書梳理了基礎(chǔ)的軟件設(shè)計(jì)理論,可幫助讀者更好地理解各種軟件設(shè)計(jì)技術(shù)。全書共分為5章,第1章介紹軟件設(shè)計(jì)基礎(chǔ)原則;第2章介紹程序設(shè)計(jì),幫助讀者深刻認(rèn)識(shí)程序設(shè)計(jì)工作背后的機(jī)理,而不是僅僅停留在掌握一門或幾門程序設(shè)計(jì)語(yǔ)言上;第3章介紹復(fù)雜軟件設(shè)計(jì),重點(diǎn)包括模塊化設(shè)計(jì)、信息隱藏與設(shè)計(jì)原則;第4章介紹軟件設(shè)計(jì)方法學(xué),指導(dǎo)讀者用系統(tǒng)化、規(guī)范化的方式開展軟件設(shè)計(jì)活動(dòng),解決軟件設(shè)計(jì)問(wèn)題;第5章介紹大規(guī)模軟件系統(tǒng)設(shè)計(jì),關(guān)注可靠性、效率、可移植性、市場(chǎng)特性、人員與分工等各種要素。
本書適合作為軟件工程相關(guān)專業(yè)本科生和研究生的教材,也可作為軟件領(lǐng)域相關(guān)技術(shù)人員的參考書。
本書面向軟件設(shè)計(jì)初學(xué)者和有一定經(jīng)驗(yàn)的軟件設(shè)計(jì)師,介紹和探討軟件設(shè)計(jì)活動(dòng)中蘊(yùn)藏的基礎(chǔ)理論和原則,突出軟件設(shè)計(jì)關(guān)鍵理論和決策中的質(zhì)量和審美追求,包括程序設(shè)計(jì)與正確性、復(fù)雜軟件設(shè)計(jì)與模塊化、信息隱藏及其背后的可修改性等質(zhì)量、大規(guī)模系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)與可靠性等系統(tǒng)質(zhì)量。主要特點(diǎn)總結(jié)和探討了軟件設(shè)計(jì)的基礎(chǔ)要素,包括軟件設(shè)計(jì)的根本目標(biāo)、衡量標(biāo)準(zhǔn)、抽象與分解、物理與邏輯、設(shè)計(jì)決策等;诨A(chǔ)要素分析各種軟件設(shè)計(jì)方法和技術(shù)的關(guān)鍵考慮點(diǎn),包括結(jié)構(gòu)化編程理論、類型、模塊化、信息隱藏、軟件設(shè)計(jì)方法學(xué)、軟件體系結(jié)構(gòu)理論等。始終貫徹軟件設(shè)計(jì)的基礎(chǔ)要素,尤其是質(zhì)量和審美觀念,分析不同規(guī)模軟件設(shè)計(jì)活動(dòng)對(duì)方法和技術(shù)的要求,包括小規(guī)模軟件的程序正確性,中大規(guī)模系統(tǒng)的可修改性,大規(guī)模軟件系統(tǒng)的可靠性、性能、安全等。結(jié)合案例解釋較為晦澀難懂的設(shè)計(jì)方法和技術(shù),力求做到深入淺出。
前 言
軟件設(shè)計(jì)是軟件開發(fā)的核心活動(dòng),軟件設(shè)計(jì)理論的發(fā)展推動(dòng)著軟件工程的發(fā)展。很多基礎(chǔ)的軟件設(shè)計(jì)理論因?yàn)楫a(chǎn)生時(shí)間較早,已經(jīng)很少被人提及,但它們?nèi)匀皇抢斫廛浖O(shè)計(jì)、做好軟件設(shè)計(jì)活動(dòng)的基礎(chǔ)。
本書的目的是重新將這些基礎(chǔ)的軟件設(shè)計(jì)理論梳理出來(lái),作為學(xué)習(xí)軟件設(shè)計(jì)新方法的基礎(chǔ),幫助讀者更好地理解各種軟件設(shè)計(jì)技術(shù)。
本書的基本思路是:
1)介紹最為基礎(chǔ)的軟件設(shè)計(jì)理論,包括結(jié)構(gòu)化編程理論、類型、模塊化、信息隱藏、面向?qū)ο笤O(shè)計(jì)原則、軟件設(shè)計(jì)方法學(xué)、軟件體系結(jié)構(gòu)理論等。這些理論構(gòu)成了不同階段、不同類型軟件設(shè)計(jì)活動(dòng)的基礎(chǔ)。
2)始終貫徹軟件設(shè)計(jì)最為重要的質(zhì)量觀念。從小規(guī)模軟件的程序正確性,到中大規(guī)模系統(tǒng)的可修改性,再到大規(guī)模軟件系統(tǒng)的可靠性、性能、安全性等質(zhì)量,關(guān)注各種設(shè)計(jì)理論對(duì)這些質(zhì)量的滿足能力。
3)書中設(shè)計(jì)了大量案例,通過(guò)案例解釋較為晦澀難懂的設(shè)計(jì)方法和技術(shù),力求做到深入淺出。
4)探索軟件設(shè)計(jì)的根本目標(biāo)、衡量標(biāo)準(zhǔn)、抽象與分解、物理與邏輯等較為深入的內(nèi)容,希望能幫助讀者更深刻地理解軟件設(shè)計(jì)。
在過(guò)去的數(shù)年間,作者多次嘗試寫作本書,都因?yàn)楦鞣N緣由耽擱下來(lái)。直到這次,終于有時(shí)間完成。其中必有不足之處,希望后續(xù)能在讀者的反饋中完善。有建議和意見(jiàn)的讀者可以聯(lián)系eryuding@hotmail.com。
本書寫作過(guò)程中,得到了家人和朋友的大力支持。非常感謝他們,沒(méi)有他們的鼓勵(lì),我可能沒(méi)有毅力堅(jiān)持完成本書的寫作。
作者
2024年1月于南京
曾任職南京大學(xué)軟件學(xué)院教師、院長(zhǎng)助理,主講軟件需求工程和軟件設(shè)計(jì)課程。先后多次獲得國(guó)家級(jí)、省部級(jí)教學(xué)獎(jiǎng)項(xiàng),出版著作多部。
近些年創(chuàng)立源圖品牌,從事軟件產(chǎn)業(yè)的人才數(shù)字化管理工作,包括崗位勝任力定義、能力測(cè)評(píng)、個(gè)性化培養(yǎng)、人才畫像與盤點(diǎn)等,成功服務(wù)于數(shù)十家國(guó)內(nèi)頭部金融企業(yè)和數(shù)百家軟件企業(yè)。
目錄
前言
第1章 軟件設(shè)計(jì)基礎(chǔ)原則 1
1.1 什么是軟件設(shè)計(jì) 1
1.1.1 設(shè)計(jì)是一種“規(guī)劃” 1
1.1.2 軟件的材料載體與廣義的軟件設(shè)計(jì)內(nèi)涵 2
1.1.3 狹義的軟件設(shè)計(jì)內(nèi)涵 2
1.2 為什么要進(jìn)行軟件設(shè)計(jì) 2
1.3 復(fù)雜度控制的關(guān)鍵之一: 設(shè)計(jì)分層 3
1.3.1 分層抽象方法 3
1.3.2 軟件設(shè)計(jì)的分層 3
1.3.3 設(shè)計(jì)層次驗(yàn)證 4
1.3.4 軟件設(shè)計(jì)分層要點(diǎn) 4
1.3.5 產(chǎn)品設(shè)計(jì)與工程設(shè)計(jì) 5
1.4 復(fù)雜度控制的關(guān)鍵之二:關(guān)注點(diǎn)分離 6
1.4.1 分離設(shè)計(jì)主題 6
1.4.2 多視點(diǎn)方法 6
1.5 軟件設(shè)計(jì)的目標(biāo)與衡量標(biāo)準(zhǔn) 7
1.5.1 根本標(biāo)準(zhǔn):功能、質(zhì)量、審美 8
1.5.2 設(shè)計(jì)目標(biāo)和衡量標(biāo)準(zhǔn)應(yīng)用示例 8
1.5.3 功能是設(shè)計(jì)方案的特征 12
1.5.4 質(zhì)量是工程設(shè)計(jì)的重點(diǎn) 12
1.5.5 審美是超越合格達(dá)到優(yōu)秀的路徑 14
1.5.6 軟件設(shè)計(jì)的結(jié)果是一種折中與妥協(xié) 16
1.6 外部表現(xiàn)與內(nèi)部結(jié)構(gòu) 17
1.6.1 軟件設(shè)計(jì)的重點(diǎn)是堅(jiān)固、優(yōu)雅的內(nèi)部結(jié)構(gòu) 17
1.6.2 外部表現(xiàn)和內(nèi)部結(jié)構(gòu)的區(qū)分示例 17
1.6.3 抽象、分解與層次結(jié)構(gòu) 21
1.6.4 常見(jiàn)的設(shè)計(jì)對(duì)象及其外部表現(xiàn)和內(nèi)部結(jié)構(gòu) 23
1.6.5 設(shè)計(jì)整個(gè)系統(tǒng)時(shí)區(qū)分外部表現(xiàn)和內(nèi)部結(jié)構(gòu) 24
1.6.6 設(shè)計(jì)模塊時(shí)區(qū)分外部表現(xiàn)和內(nèi)部結(jié)構(gòu) 25
1.6.7 設(shè)計(jì)類時(shí)區(qū)分外部表現(xiàn)和內(nèi)部結(jié)構(gòu) 29
1.6.8 設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)時(shí)區(qū)分外部表現(xiàn)和內(nèi)部結(jié)構(gòu) 33
1.6.9 設(shè)計(jì)代碼時(shí)區(qū)分外部表現(xiàn)和內(nèi)部結(jié)構(gòu) 34
1.7 邏輯設(shè)計(jì)與物理設(shè)計(jì) 35
1.7.1 載體介質(zhì)及其匹配 35
1.7.2 區(qū)分邏輯設(shè)計(jì)與物理設(shè)計(jì) 35
1.7.3 設(shè)計(jì)數(shù)據(jù)類型時(shí)邏輯設(shè)計(jì)與物理設(shè)計(jì)的失配 36
1.7.4 設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)時(shí)邏輯設(shè)計(jì)與物理設(shè)計(jì)的失配 37
1.7.5 設(shè)計(jì)面向?qū)ο髾C(jī)制時(shí)邏輯設(shè)計(jì)與物理設(shè)計(jì)的失配 37
1.7.6 設(shè)計(jì)模塊時(shí)邏輯設(shè)計(jì)與物理設(shè)計(jì)的失配 38
1.7.7 設(shè)計(jì)質(zhì)量時(shí)邏輯設(shè)計(jì)與物理設(shè)計(jì)的失配 38
1.8 軟件設(shè)計(jì)是持續(xù)決策的過(guò)程 39
1.8.1 設(shè)計(jì)結(jié)果與設(shè)計(jì)過(guò)程 39
1.8.2 決策的要素 39
1.8.3 設(shè)計(jì)是一個(gè)跳躍性過(guò)程,驗(yàn)證設(shè)計(jì)是一個(gè)推理過(guò)程 40
1.8.4 選擇一個(gè)可行答案,沒(méi)有唯一正確答案 40
1.8.5 設(shè)計(jì)決策有順序影響,而且影響不可逆 41
1.8.6 設(shè)計(jì)約束:是友非敵 41
1.9 工程與藝術(shù) 42
1.9.1 工程設(shè)計(jì)與藝術(shù)設(shè)計(jì) 42
1.9.2 理性主義與經(jīng)驗(yàn)主義 42
1.9.3 設(shè)計(jì)兼具科學(xué)性與藝術(shù)性 43
1.10 總結(jié) 43
第2章 程序設(shè)計(jì) 44
2.1 如何保證程序正確性 44
2.1.1 像設(shè)計(jì)硬件一樣設(shè)計(jì)軟件嗎 44
2.1.2 測(cè)試不能保證正確性 45
2.1.3 用程序設(shè)計(jì)方法實(shí)現(xiàn)正確性 45
2.2 結(jié)構(gòu)化編程與功能正確性 46
2.2.1 使用簡(jiǎn)單結(jié)構(gòu)—三種控制結(jié)構(gòu) 46
2.2.2 使用塊結(jié)構(gòu)組織復(fù)雜代碼 48
2.2.3 兼顧正確性與復(fù)雜度控制:函數(shù)/方法 54
2.3 數(shù)據(jù)抽象、類型與數(shù)據(jù)操作正確性 55
2.3.1 類型 55
2.3.2 結(jié)構(gòu)化類型:強(qiáng)正確性保證 56
2.3.3 非結(jié)構(gòu)化類型:弱正確性保證 57
2.3.4 復(fù)雜抽象數(shù)據(jù)類型(數(shù)據(jù)結(jié)構(gòu))及其質(zhì)量 60
2.4 程序契約與正確性 62
2.4.1 前置條件與后置條件 62
2.4.2 不變量 63
2.4.3 程序契約的局限性 64
2.5 面向?qū)ο缶幊膛c可復(fù)用性 64
2.5.1 可復(fù)用性需要的出現(xiàn) 64
2.5.2 面向?qū)ο缶幊膛c可復(fù)用性 65
2.5.3 類和對(duì)象 65
2.5.4 封裝 68
2.5.5 繼承 71
2.5.6 多態(tài) 73
2.6 軟件構(gòu)造與更多代碼質(zhì)量 73
2.6.1 什么是軟件構(gòu)造 73
2.6.2 軟件構(gòu)造技術(shù)與代碼質(zhì)量 74
2.6.3 軟件構(gòu)造技術(shù)示例 75
2.7 總結(jié) 81
第3章 復(fù)雜軟件設(shè)計(jì) 82
3.1 控制更高的復(fù)雜度需要模塊 82
3.1.1 模塊 82
3.1.2 模塊分解質(zhì)量與模塊化、信息隱藏 83
3.2 模塊化 83
3.2.1 模塊分割的質(zhì)量考慮 83
3.2.2 理想中的模塊分割—完全獨(dú)立 83
3.2.3 現(xiàn)實(shí)中的模塊分割—低耦合、高內(nèi)聚 84
3.2.4 代碼組織及聯(lián)系方式分析 84
3.3 (結(jié)構(gòu)化)函數(shù)/方法之間的耦合 86
3.3.1 內(nèi)容耦合 86
3.3.2 公共耦合 88
3.3.3 控制耦合 90
3.3.4 印記耦合 92
3.3.5 數(shù)據(jù)耦合 95
3.3.6 隱式的耦合 97
3.3.7 函數(shù)/方法之間的耦合小結(jié) 100
3.4。ńY(jié)構(gòu)化)函數(shù)/方法的內(nèi)聚 101
3.4.1 偶然內(nèi)聚 102
3.4.2 邏輯內(nèi)聚 102
3.4.3 時(shí)間內(nèi)聚 103
3.4.4 過(guò)程內(nèi)聚 104
3.4.5 通信內(nèi)聚 106
3.4.6 順序內(nèi)聚 107
3.4.7 功能內(nèi)聚 108
3.4.8 函數(shù)/方法的內(nèi)聚小結(jié) 110
3.5 (面向?qū)ο螅╊?對(duì)象之間的耦合 110
3.5.1 類/對(duì)象之間的耦合類型 110
3.5.2 方法之間的