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