本書根據(jù)普通高等院校計(jì)算機(jī)、軟件工程等專業(yè)教學(xué)要求,對軟件體系結(jié)構(gòu)和軟件設(shè)計(jì)的基本原理和實(shí)例進(jìn)行了系統(tǒng)論述,包括面向?qū)ο蠓椒、?jīng)典軟件體系結(jié)構(gòu)風(fēng)格、分布式軟件體系結(jié)構(gòu)風(fēng)格、MVC風(fēng)格與Struts框架、軟件設(shè)計(jì)目標(biāo)、設(shè)計(jì)原則、創(chuàng)建型設(shè)計(jì)模式、結(jié)構(gòu)型設(shè)計(jì)模式以及行為型設(shè)計(jì)模式等內(nèi)容。 本書在論述軟件體系結(jié)構(gòu)和軟件設(shè)計(jì)原理的前提下,特別注重實(shí)用性。書中含有大量精心設(shè)計(jì)的程序?qū)嵗,以方便讀者學(xué)習(xí)。本書集作者多年的教學(xué)經(jīng)驗(yàn)編寫而成,內(nèi)容安排合理,講解深入淺出。 本書適合作為普通高等院校軟件工程專業(yè)、計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)以及信息類相關(guān)專業(yè)本科生和研究生的教材,也可作為軟件工程培訓(xùn)教材,以及軟件開發(fā)人員的參考書。
中國共產(chǎn)黨第二十次全國代表大會的政治報(bào)告中提到,要實(shí)施科教興國戰(zhàn)略,強(qiáng)化現(xiàn)代化建設(shè)人才支撐教育、科技、人才是全面建設(shè)社會主義現(xiàn)代化國家的基礎(chǔ)性、戰(zhàn)略性支撐,要全面提高人才自主培養(yǎng)質(zhì)量。其中,人才自主培養(yǎng)、關(guān)鍵核心技術(shù)自主研發(fā),是當(dāng)前教育和科技工作的重點(diǎn)任務(wù),如何做到用國產(chǎn)軟件替代國外軟件也是我國科技領(lǐng)域的當(dāng)務(wù)之急。
軟件設(shè)計(jì)與體系結(jié)構(gòu)是軟件工程專業(yè)的核心課程。根據(jù)教育bu高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會制定的《軟件工程(本科)專業(yè)規(guī)范》,本課程主要是在學(xué)習(xí)軟件工程概論的基礎(chǔ)上,進(jìn)一步深入學(xué)習(xí)軟件體系結(jié)構(gòu)和軟件設(shè)計(jì),從而提高軟件的質(zhì)量。本書面向普通高等院校的學(xué)生和從事軟件開發(fā)以及相關(guān)領(lǐng)域的工程技術(shù)人員,緊密結(jié)合軟件工程專業(yè)規(guī)范,覆蓋規(guī)范中軟件設(shè)計(jì)與體系結(jié)構(gòu)課程要求的知識單元和知識點(diǎn);同時,充分考慮普通高等院校學(xué)生的實(shí)際情況,加強(qiáng)實(shí)踐教學(xué)的內(nèi)容。
編者根據(jù)多年的教學(xué)和軟件開發(fā)經(jīng)驗(yàn),對本書的內(nèi)容取舍、組織編排和實(shí)例都進(jìn)行了精心設(shè)計(jì)。在難易程度上遵循由淺入深、循序漸進(jìn)的原則,特別考慮了普通高等院校學(xué)生的實(shí)際理解和接受能力。與以往許多軟件工程相關(guān)教材主要以理論為主不同,本書突出實(shí)踐性,將復(fù)雜的理論融于具體的實(shí)例和程序之中。書中的實(shí)例都是經(jīng)過精心設(shè)計(jì)的,對程序代碼都認(rèn)真做了調(diào)試,可以直接運(yùn)行,方便學(xué)生理解和使用。同時,為了培養(yǎng)學(xué)生自學(xué)的能力、獲取知識的能力,在編寫本書的過程中,編者力圖在內(nèi)容編排、敘述方法上留有教師發(fā)揮的空間和學(xué)生自學(xué)的空間。
本書在保留上述特色的基礎(chǔ)上,將第一版的第2章和第7章整合為一章,并增加部分內(nèi)容;其他章節(jié)進(jìn)行了適當(dāng)刪減、補(bǔ)充和修訂。全書共分10章,第1章講述基本概念;第2章講述面向?qū)ο蠓治龌A(chǔ)、軟件體系結(jié)構(gòu)、面向?qū)ο笤O(shè)計(jì)等內(nèi)容;第3章講述經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格,包括主程序-子程序風(fēng)格、面向?qū)ο箫L(fēng)格、批處理風(fēng)格、管道/過濾器風(fēng)格、基于事件的隱式調(diào)用風(fēng)格、層次風(fēng)格等;第4章講述分布式軟件體系結(jié)構(gòu)風(fēng)格,包括兩層C/S體系結(jié)構(gòu)風(fēng)格、三層C/S體系結(jié)構(gòu)風(fēng)格、B/S體系結(jié)構(gòu)風(fēng)格等;第5章講述MVC風(fēng)格的概念及其應(yīng)用、Struts框架的原理;第6章講述軟件設(shè)計(jì)的目標(biāo),包括健壯性、可復(fù)用性、可維護(hù)性和可維護(hù)性復(fù)用等;第7章講述軟件設(shè)計(jì)原則,包括開-閉原則、里氏代換原則、依賴倒轉(zhuǎn)原則、合成/聚合復(fù)用原則、迪米特法則、單一職責(zé)原則和接口隔離原則等;第8章從原理、結(jié)構(gòu)和示意源代碼三方面論述主要的創(chuàng)建型設(shè)計(jì)模式;第9章從原理、結(jié)構(gòu)和示意源代碼三方面論述主要的結(jié)構(gòu)型設(shè)計(jì)模式;第10章從原理、結(jié)構(gòu)和示意源代碼三方面論述主要的行為型設(shè)計(jì)模式。
本書由劉其成、畢遠(yuǎn)偉主編。其中,第1~7章由劉其成編寫,第8~10章由畢遠(yuǎn)偉編寫。劉其成設(shè)計(jì)了全書的結(jié)構(gòu),并做了全書的統(tǒng)稿工作。
在本書的編寫過程中,編者參閱了大量書籍和網(wǎng)站等資料,得到了中國鐵道出版社有限公司的支持和幫助,在此表示衷心感謝。
盡管書稿幾經(jīng)修改,但由于編者學(xué)識有限,書中仍難免有疏漏與不當(dāng)之處,懇請各位同仁、讀者不吝賜教。
編 者
劉其成,男,博士研究生,煙臺大學(xué)計(jì)算機(jī)與控制工程學(xué)院教授,碩士生導(dǎo)師,專業(yè)方向?yàn)橛?jì)算機(jī)應(yīng)用。主授課程:軟件設(shè)計(jì)與體系結(jié)構(gòu)、Java與面向?qū)ο蟪绦蛟O(shè)計(jì)、并行計(jì)算技術(shù)等。主編《軟件設(shè)計(jì)與體系結(jié)構(gòu)》、《軟件體系結(jié)構(gòu)與設(shè)計(jì)實(shí)用教程》、《并行計(jì)算與程序設(shè)計(jì)》、《Java程序設(shè)計(jì)基礎(chǔ)》等多本教材。主持山東省自然科學(xué)基金、山東省教育廳科技計(jì)劃項(xiàng)目。作為主要成員參與國家自然科學(xué)基金、山東省科技發(fā)展計(jì)劃項(xiàng)目。發(fā)表學(xué)術(shù)論文幾十篇,其中多篇被SCI/EI收錄。獲煙臺大學(xué)優(yōu)秀科研成果科技進(jìn)步二等獎,獲山東高等學(xué)校優(yōu)秀科研成果獎三等獎。 畢遠(yuǎn)偉,男,碩士研究生,煙臺大學(xué)副教授,現(xiàn)從事計(jì)算機(jī)應(yīng)用技術(shù)方面的教學(xué)和科研工作。主要研究方向有軟件工程、數(shù)據(jù)庫技術(shù)、計(jì)算機(jī)視覺、嵌入式技術(shù)等。主持或參與多項(xiàng)橫向及縱向項(xiàng)目,發(fā)表多篇論文及專利。獲得山東省科學(xué)技術(shù)進(jìn)步獎三等獎、煙臺市科學(xué)技術(shù)進(jìn)步獎三等獎、煙臺大學(xué)專業(yè)技術(shù)拔尖人才、山東省高等學(xué)校優(yōu)秀共產(chǎn)黨員等稱號,獲得煙臺大學(xué)青年教師教學(xué)比賽一等獎。