軟件設(shè)計(jì)和體系結(jié)構(gòu)(第2版)-微課視頻版(高等學(xué)校軟件工程專業(yè)系列教材)
定 價(jià):69.8 元
叢書名:高等學(xué)校軟件工程專業(yè)系列教材
- 作者:秦航 編
- 出版時(shí)間:2021/2/1
- ISBN:9787302564294
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP311.5
- 頁碼:361
- 紙張:膠版紙
- 版次:2
- 開本:16開
《軟件設(shè)計(jì)和體系結(jié)構(gòu)(第2版)-微課視頻版(高等學(xué)校軟件工程專業(yè)系列教材)》全面、系統(tǒng)地講述軟件設(shè)計(jì)和體系結(jié)構(gòu)的思想、理論和方法,并提供了來自業(yè)界新的內(nèi)容和進(jìn)展。全書共14章,第1章為引言,第2章~第14章分別講述軟件模型和描述、軟件體系結(jié)構(gòu)建模和UML、軟件設(shè)計(jì)過程、軟件體系結(jié)構(gòu)風(fēng)格、面向?qū)ο蠓椒、面向?shù)據(jù)流的設(shè)計(jì)方法、用戶界面、設(shè)計(jì)模式、Web服務(wù)體系結(jié)構(gòu)、基于分布構(gòu)件的體系結(jié)構(gòu)、軟件體系結(jié)構(gòu)評(píng)估、軟件設(shè)計(jì)的進(jìn)化、云計(jì)算和大數(shù)據(jù)系統(tǒng)體系結(jié)構(gòu)等內(nèi)容。
該書條理清晰、語言流暢、通俗易懂,在內(nèi)容組織上力求自然合理、循序漸進(jìn),并提供了豐富的實(shí)例和實(shí)踐要點(diǎn),更好地把握了軟件工程學(xué)科的特點(diǎn),使讀者更容易理解所學(xué)的理論知識(shí),掌握軟件設(shè)計(jì)和體系結(jié)構(gòu)的應(yīng)用之道。
《軟件設(shè)計(jì)和體系結(jié)構(gòu)(第2版)-微課視頻版(高等學(xué)校軟件工程專業(yè)系列教材)》可作為高等學(xué)校軟件工程專業(yè)、計(jì)算機(jī)應(yīng)用專業(yè)和相關(guān)專業(yè)的教材,也可作為其他各類軟件工程技術(shù)人員的參考書。
軟件正在改變?nèi)藗兊纳。作?1世紀(jì)偉大的工程實(shí)踐,軟件已經(jīng)滲透到當(dāng)今社會(huì)生活的方方面面。人們的生活離不開軟件,大多數(shù)人每天早晨起床后的第一件事,很可能就是打開某個(gè)手機(jī)App。計(jì)算機(jī)C++語言的發(fā)明人Bjarne Stroustrup所謂“人類的文明運(yùn)行于軟件之上”,就道盡了此間情景。軟件技術(shù)是新一輪制造業(yè)革命的核心競爭力,我們正進(jìn)入一個(gè)軟件定義的時(shí)代,“軟件無處不在、軟件定義一切、軟件使能一切”正是這個(gè)時(shí)代的特征。
軟件中的程序取自工業(yè)工程?v觀歷史,程序起源于工廠的操作列表,軟件工程則類似于工業(yè)工程,對(duì)于工業(yè)工程師來說,程序就是一天工作的規(guī)劃和操作。以前,軟件工程師操縱計(jì)算機(jī),使其正確工作并求解問題,當(dāng)時(shí)軟件的核心是數(shù)據(jù)的組織和算法的實(shí)現(xiàn)。直到今天,越來越多的底層工作,如內(nèi)存管理、網(wǎng)絡(luò)通信等都已實(shí)現(xiàn)自動(dòng)化,或者可以實(shí)現(xiàn)代碼重用。這樣,軟件工程師無須直面機(jī)器代碼,而是使用高級(jí)語言、集成工具,把更多思考留給軟件問題本身。軟件制造復(fù)雜多變,其難度遠(yuǎn)超傳統(tǒng)工業(yè)工程。隨著軟件的功能越來越強(qiáng)、使用越來越方便、規(guī)模越來越大、復(fù)雜程度越來越高,現(xiàn)在構(gòu)建軟件系統(tǒng)注定比以前更加困難。
在解決上述復(fù)雜、困難的問題過程中,出現(xiàn)了軟件設(shè)計(jì)和體系結(jié)構(gòu)。復(fù)雜性是軟件開發(fā)過程中固有的特質(zhì),而軟件設(shè)計(jì)在于幫助軟件工程師駕馭這種復(fù)雜性。
作為軟件開發(fā)的核心活動(dòng)之一,軟件設(shè)計(jì)對(duì)開發(fā)出滿足需求的高質(zhì)量軟件起著關(guān)鍵作用。軟件設(shè)計(jì)需要綜合考慮軟件系統(tǒng)的各種約束條件,并給出最優(yōu)方案。設(shè)計(jì)方法的快速發(fā)展和應(yīng)用程序的大量部署,使得現(xiàn)有計(jì)算機(jī)系統(tǒng)內(nèi)部的代碼構(gòu)成差異很大。隨著應(yīng)用軟件市場競爭越來越激烈,用戶需求交付越來越快、系統(tǒng)功能越來越多、性能要求越來越可靠,結(jié)果就有了復(fù)用現(xiàn)有系統(tǒng)代碼、代碼外包、采購商品化構(gòu)件進(jìn)行系統(tǒng)集成。在這種大環(huán)境下,軟件工程師不能僅憑一種程序設(shè)計(jì)方法,按照設(shè)計(jì)書逐步進(jìn)行開發(fā),而是要從閱讀、維護(hù)、遷移各種已有的系統(tǒng)和外包代碼開始進(jìn)行程序設(shè)計(jì)。程序設(shè)計(jì)方法隱藏在不同來源的代碼中,軟件工程師需要理解、復(fù)用、改造這些代碼,并應(yīng)全面了解各種方法的優(yōu)缺點(diǎn)。這中間不存在一種放之四海而皆準(zhǔn)的程序設(shè)計(jì)方法,各種方法都有其長處和短處。例如,相對(duì)抽象和高級(jí)的方法,在提高開發(fā)效率的同時(shí),往往會(huì)導(dǎo)致執(zhí)行效率的降低;相對(duì)低級(jí)和離硬件近的方法,盡管可能學(xué)習(xí)時(shí)間較短,但是適應(yīng)面卻受到了限制。適合的才是最好的,軟件工程師需要根據(jù)自己的情況,選擇適合的程序設(shè)計(jì)方法。
軟件如同建筑物,軟件設(shè)計(jì)不能脫離實(shí)用價(jià)值。今天,“軟件架構(gòu)師”這個(gè)在軟件領(lǐng)域負(fù)責(zé)軟件設(shè)計(jì)、分析、處理來自不同涉眾、不同關(guān)注點(diǎn)和需求關(guān)系的職位,已經(jīng)被普遍認(rèn)為是軟件開發(fā)團(tuán)隊(duì)的核心。在軟件工程方法中,軟件需求與軟件設(shè)計(jì)之間存在著一道很難逾越的鴻溝,從而很難有效地將需求轉(zhuǎn)換為相應(yīng)的設(shè)計(jì),而軟件體系結(jié)構(gòu)的出現(xiàn),恰好在需求與設(shè)計(jì)之間架起一座“橋梁”,由此實(shí)現(xiàn)了軟件系統(tǒng)的需求向?qū)崿F(xiàn)的平坦過渡。軟件體系結(jié)構(gòu)是軟件架構(gòu)師洞見系統(tǒng)內(nèi)部結(jié)構(gòu)、規(guī)律、原則、邏輯的過程,并對(duì)軟件開發(fā)的各種外在因素、內(nèi)在動(dòng)力、人本屬性進(jìn)行集中關(guān)注和深入剖析。作為整體設(shè)計(jì)的刻畫,軟件體系結(jié)構(gòu)包括全局組織和控制結(jié)構(gòu),有關(guān)通信、同步、數(shù)據(jù)存取的協(xié)議,設(shè)計(jì)構(gòu)件功能定義和物理分布,設(shè)計(jì)方案的選擇、評(píng)估、實(shí)現(xiàn)等。軟件設(shè)計(jì)的成功,在于有一個(gè)健壯、優(yōu)雅、靈活、易維護(hù)的軟件體系結(jié)構(gòu)。圍繞著比“類”更大的粒度、更高的抽象,軟件體系結(jié)構(gòu)刻畫了系統(tǒng)的構(gòu)件組成、構(gòu)件的關(guān)聯(lián)結(jié)構(gòu)、構(gòu)件的交互行為,并給出軟件設(shè)計(jì)的動(dòng)機(jī),即其在功能目標(biāo)、非功能目標(biāo)、制約因素之間的權(quán)衡取舍。
智能制造業(yè)需要硬件、工藝、流程、知識(shí)的軟件化,進(jìn)而實(shí)現(xiàn)軟件的平臺(tái)化。伴隨“軟件定義”的挑戰(zhàn),不得不說,軟件系統(tǒng)無處不在,需要設(shè)計(jì)出在應(yīng)用形態(tài)上滿足新要求的軟件體系結(jié)構(gòu)來,這就是軟件給未來世界達(dá)成的目標(biāo),也是軟件架構(gòu)師的機(jī)遇所在。
本書由秦航任主編,第1章、第14章由秦航編寫,第2章由包小軍編寫,第3章、第9章由夏浩波編寫,第4章、第6章由邱林編寫,第5章、第7章、第11章由張健編寫,第8章、第10章由徐杏芳編寫,第12章、第13章由胡森森編寫,全書由秦航負(fù)責(zé)統(tǒng)稿,由王同喜任主審。借此機(jī)會(huì),編者謹(jǐn)向?yàn)楸緯冻鲂燎趧趧?dòng)和智慧的老師及全體同仁表示誠摯的謝意。
本書可作為高等院!败浖O(shè)計(jì)與體系結(jié)構(gòu)”課程的教材或教學(xué)參考書,也可供有一定實(shí)際經(jīng)驗(yàn)的軟件工程人員和需要開發(fā)應(yīng)用軟件的廣大計(jì)算機(jī)用戶閱讀參考。
由于作者水平有限,書中不當(dāng)之處在所難免,敬請(qǐng)廣大讀者和專家提出寶貴意見,以幫助作者不斷地改進(jìn)和完善。
第1章 引言
1.1 軟件
1.1.1 軟件本質(zhì)
1.1.2 軟件神話
1.2 軟件工程
1.2.1 工程師文化
1.2.2 軟件過程和工程實(shí)踐
1.2.3 網(wǎng)絡(luò)環(huán)境帶來的影響
1.3 軟件設(shè)計(jì)
1.3.1 從分析到設(shè)計(jì)
1.3.2 設(shè)計(jì)過程和設(shè)計(jì)質(zhì)量
1.3.3 軟件設(shè)計(jì)的基本原則
1.4 軟件體系結(jié)構(gòu)
1.4.1 軟件體系結(jié)構(gòu)概述
1.4.2 軟件體系結(jié)構(gòu)的內(nèi)容
1.4.3 設(shè)計(jì)階段的體系結(jié)構(gòu)
1.5 小結(jié)
1.6 思考題
第2章 軟件模型和描述
2.1 軟件模型概述
2.2 軟件模型的發(fā)展脈絡(luò)
2.3 軟件模型解析
2.3.1 功能模型
2.3.2 對(duì)象模型
2.3.3 組件模型
2.3.4 配置型組件模型
2.3.5 服務(wù)模型
2.3.6 抽象模型
2.4 軟件模型的深入認(rèn)識(shí)
2.4.1 軟件體系結(jié)構(gòu)的描述
2.4.2 軟件體系結(jié)構(gòu)的設(shè)計(jì)
2.5 體系結(jié)構(gòu)描述語言
2.5.1 ADL簡介
2.5.2 典型ADL的比較
2.5.3 體系結(jié)構(gòu)行為的描述
2.6 小結(jié)
2.7 思考題
第3章 軟件體系結(jié)構(gòu)建模和UML
3.1 軟件體系結(jié)構(gòu)建模概述
3.2 基于軟件體系結(jié)構(gòu)的開發(fā)
3.3 UML概述
3.3.1 UML的發(fā)展歷程
3.3.2 UML的特點(diǎn)
3.3.3 UML 2.5分類
3.4 面向?qū)ο蟾攀?br>3.4.1 基本概念
3.4.2 面向?qū)ο蠓椒ǖ膬?yōu)勢(shì)
3.5 UML中的結(jié)構(gòu)建模
3.5.1 類圖
3.5.2 對(duì)象圖
3.5.3 構(gòu)件圖
3.5.4 部署圖
3.6 UML中的行為建模
3.6.1 用例圖
3.6.2 順序圖
3.6.3 通信圖
3.6.4 交互概覽圖
3.6.5 時(shí)序圖
3.6.6 狀態(tài)圖
3.6.7 活動(dòng)圖
3.7 UML工具
3.8 小結(jié)
3.9 思考題
第4章 軟件設(shè)計(jì)過程
4.1 軟件設(shè)計(jì)基礎(chǔ)
4.2 軟件體系結(jié)構(gòu)設(shè)計(jì)方法
4.3 高可信軟件設(shè)計(jì)
……
第5章 軟件體系結(jié)構(gòu)風(fēng)格
第6章 面向?qū)ο蠓椒?br>第7章 面向數(shù)據(jù)流的設(shè)計(jì)方法
第8章 用戶界面
第9章 設(shè)計(jì)模式
第10章 Web服務(wù)體系結(jié)構(gòu)
第11章 基于分布構(gòu)件的體系結(jié)構(gòu)
第12章 軟件體系結(jié)構(gòu)評(píng)估
第13章 軟件設(shè)計(jì)的進(jìn)化
第14章 云計(jì)算和大數(shù)據(jù)系統(tǒng)體系結(jié)構(gòu)
參考文獻(xiàn)