本書從實用的角度出發(fā),通過一個案例項目新聞發(fā)布系統(tǒng)的開發(fā)過程來引領學習過程,進行教學內(nèi)容的整合。通過引導學生完成一系列工作任務來實現(xiàn)本課程的學習目標,重點培養(yǎng)學生運用所學知識解決實際問題的能力。實現(xiàn)了項目導向、任務驅(qū)動、理論與實踐教、學、做一體化。本書注重內(nèi)容的先進性和系統(tǒng)性,注重實際應用。本書內(nèi)容包括選擇軟件開發(fā)模型,認識統(tǒng)一建模語言,新聞發(fā)布系統(tǒng)可行性研究與軟件開發(fā)計劃、需求分析與建模、概要設計、詳細設計、編碼的實現(xiàn)、軟件的測試、項目的發(fā)布與維護,軟件項目管理等,并都有同步習題。 本書內(nèi)容適量,難度適中,既可作為高職高專院校計算機類相關專業(yè)學生的教材,也可供應用型本科、軟件工程師、軟件項目管理人員和軟件開發(fā)人員使用。
本書將新聞發(fā)布系統(tǒng)項目分解為若干項任務,每項任務又劃分為若干項典型子任務。使學生在完成每項任務的過程中完成相關知識點和技術的學習,讓學生帶著問題學習,用解決實際問題的過程驅(qū)動學習過程,減少學習的盲目性,提高學習效率。
軟件工程是計算機軟件、計算機應用等相關專業(yè)的一門理論與實踐并重的專業(yè)技術平臺課程,是學生學習軟件開發(fā)和維護的基本方法、基本技術,掌握軟件項目開發(fā)規(guī)范的工程類課程。
傳統(tǒng)的軟件工程教材,教學內(nèi)容龐雜、抽象,教學實踐環(huán)節(jié)薄弱,教學實施方面存在較大的難度,不適合高職院校的學生使用。本書是編者在總結近幾年教學經(jīng)驗的基礎上,根據(jù)高職教育的職業(yè)性、實踐性和先進性的要求進行編寫的。以案例項目新聞發(fā)布系統(tǒng)為例,按照可行性研究需求分析概要設計詳細設計編碼的實現(xiàn)測試發(fā)布與維護項目管理這樣一個項目開發(fā)過程展開教學過程。把該項目自始至終設計開發(fā)過程的文檔展現(xiàn)出來,對涉及的知識和技術進行了說明。將軟件項目開發(fā)實踐與軟件工程理論自然地融為一體,將面向?qū)ο蠓椒ㄅc傳統(tǒng)方法融為一體。學生通過學習可以了解軟件項目開發(fā)和維護的一般過程和項目開發(fā)規(guī)范,掌握結構化方法和面向?qū)ο蠓椒ǖ溶浖_發(fā)方法,能夠規(guī)范地開發(fā)、維護軟件,規(guī)范地編寫軟件工程文檔資料,具備應用所學知識解決實際問題的實踐能力,能夠參與中小型規(guī)模軟件的需求分析、設計、編碼的實現(xiàn)、測試和維護,為以后更深入地學習和從事軟件工程實踐打下良好的基礎。
本書將新聞發(fā)布系統(tǒng)項目分解為若干項任務,每項任務又劃分為若干項典型子任務。使學生在完成每項任務的過程中完成相關知識點和技術的學習,讓學生帶著問題學習,用解決實際問題的過程驅(qū)動學習過程,減少學習的盲目性,提高學習效率。
根據(jù)高等職業(yè)教育培養(yǎng)高級技能型人才的要求,本書適當削減了理論敘述方面的內(nèi)容,增加了一些簡單、易于理解的實例。這些實例與貫穿全書的案例項目新聞發(fā)布系統(tǒng)相輔相成,共同使抽象的理論變得形象、具體、直觀,更利于學生學習、理解和掌握。
本書的特點如下。
(1) 案例項目導向,任務驅(qū)動,項目貫穿課程的始終。圍繞項目整合與規(guī)范教學內(nèi)容,以解決實際問題的過程驅(qū)動學習過程。(2) 把面向?qū)ο蠓椒ê徒Y構化方法自然地融為一體,增加了面向?qū)ο蠓椒ㄔ诒緯兴嫉谋戎兀怀隽嗣嫦驅(qū)ο蠓椒ê蚒ML技術的應用。
(3) 理論與實踐緊密結合,實用性強、實踐性強、實現(xiàn)了教、學、做一體化。
(4) 介紹了最新的軟件文檔編制規(guī)范,供讀者參考使用。
本課程適宜在程序設計語言、數(shù)據(jù)庫原理等專業(yè)課之后,畢業(yè)實習、畢業(yè)設計之前開設,建議學時數(shù)為72學時,適當安排實踐環(huán)節(jié),邊學邊做,分階段逐步完成實踐課題。為方便教師的教學與學生的學習,本書配有新聞發(fā)布系統(tǒng)demo和電子課件免費供讀者參考使用。
本書由濱州職業(yè)學院劉振華編著,竇家勇審核,任務1和任務2由王曉蓓編寫,任務3~任務10由劉振華編寫,大綱的編制和全書的統(tǒng)稿與修訂由劉振華完成。在本書的編寫過程中,得到了山東師創(chuàng)軟件工程有限公司和同事的大力支持,在此向提供幫助的各位同人一并表示感謝。
第2版在第1版的基礎上增加了部分內(nèi)容、調(diào)整了部分內(nèi)容的位置、增加和重新繪制了一部分圖表,教材內(nèi)容變得更豐富、更翔實、更具體、更規(guī)范。
由于編者水平有限,書中難免有疏漏和不當之處,敬請廣大讀者和同人批評指正,我們將不勝感激。Email: liuzhenhua6688@163.com。
編者2019年4月
劉振華,女,碩士,53歲,天津大學計算機應用技術專業(yè)工學碩士,在《計算機應用》、《微處理機》、《教育信息化》和《中國成人教育》等發(fā)表學術論文31篇,編寫教材5部.
任務1選擇軟件開發(fā)模型1
1.1對軟件的認知2
1.1.1軟件的概念和特點2
1.1.2軟件的分類2
1.1.3軟件的發(fā)展過程4
1.2對軟件危機的認知5
1.2.1軟件危機的主要表現(xiàn)5
1.2.2軟件危機產(chǎn)生的原因6
1.2.3軟件危機的解決途徑6
1.3對軟件工程的認知6
1.3.1軟件工程的基本概念7
1.3.2軟件工程的目標7
1.3.3軟件工程的發(fā)展歷程8
1.3.4軟件工程的原則9
1.3.5軟件工程方法學9
1.3.6軟件工程過程10
1.4對軟件生命周期的認知11
1.4.1軟件生命周期的基本概念11
1.4.2軟件生命周期的八個階段11
1.5對軟件開發(fā)模型的認知12
1.5.1瀑布模型12
1.5.2快速原型模型13
1.5.3螺旋模型14
1.5.4增量模型15
1.5.5噴泉模型16
1.5.6基于構件的軟件開發(fā)模型17
1.6對計算機輔助軟件工程的認知17
1.7習題19軟件工程與UML項目化實用教程(第2版)目錄任務2認識統(tǒng)一建模語言21
2.1初識UML22
2.1.1UML簡介22
2.1.2UML發(fā)展簡史22
2.1.3UML的特點和用途23
2.2UML的表示方法25
2.2.1UML視圖25
2.2.2UML圖25
2.2.3UML模型元素26
2.2.4UML通用機制30
2.3UML靜態(tài)建模31
2.3.1用例圖31
2.3.2類圖33
2.3.3對象圖34
2.3.4包圖36
2.3.5組件圖37
2.3.6配置圖38
2.4UML動態(tài)建模40
2.4.1狀態(tài)圖40
2.4.2活動圖43
2.4.3順序圖47
2.4.4協(xié)作圖50
2.5統(tǒng)一過程RUP51
2.6習題53
任務3新聞發(fā)布系統(tǒng)可行性研究與軟件開發(fā)計劃54
3.1案例新聞發(fā)布系統(tǒng)可行性研究報告55
3.1.1引言55
3.1.2可行性研究的前提55
3.1.3所建議技術可行性研究56
3.1.4經(jīng)濟可行性分析56
3.1.5社會因素可行性分析56
3.1.6結論57
3.2軟件定義57
3.3項目的可行性研究57
3.3.1可行性研究的任務58
3.3.2可行性研究的步驟60
3.3.3可行性研究的結果60
3.4可行性研究工具系統(tǒng)流程圖的使用62
3.5制訂軟件開發(fā)計劃64
3.6習題65
任務4新聞發(fā)布系統(tǒng)需求分析與建模66
4.1案例新聞發(fā)布系統(tǒng)產(chǎn)品需求規(guī)格說明67
4.1.1系統(tǒng)說明67
4.1.2功能性需求67
4.1.3非功能性需求72
4.2需求分析任務、步驟和方法74
4.2.1需求獲取74
4.2.2需求建模76
4.2.3需求描述76
4.2.4需求驗證77
4.3面向?qū)ο笮枨蠓治?8
4.3.1基于用例的需求分析方法79
4.3.2繪制業(yè)務流程圖81
4.3.3繪制活動圖84
4.3.4繪制實體關系圖86
4.4結構化分析方法89
4.4.1繪制數(shù)據(jù)流圖89
4.4.2編制數(shù)據(jù)字典92
4.5習題96
任務5新聞發(fā)布系統(tǒng)概要設計97
5.1案例新聞發(fā)布系統(tǒng)模塊設計報告98
5.1.1文檔介紹98
5.1.2模塊命名規(guī)則98
5.1.3模塊設計99
5.2面向?qū)ο笤O計108
5.2.1面向?qū)ο笤O計內(nèi)容109
5.2.2面向?qū)ο笤O計原則109
5.3新聞發(fā)布系統(tǒng)體系結構設計111
5.4開發(fā)環(huán)境及運行平臺的選擇111
5.5新聞發(fā)布系統(tǒng)模式設計112
5.5.1MVC設計模式112
5.5.2DAO設計模式114
5.6新聞發(fā)布系統(tǒng)類設計115
5.7新聞發(fā)布系統(tǒng)包設計116
5.8新聞發(fā)布系統(tǒng)接口設計118
5.9新聞發(fā)布系統(tǒng)數(shù)據(jù)庫設計119
5.10新聞發(fā)布系統(tǒng)動態(tài)結構設計121
5.10.1繪制狀態(tài)圖121
5.10.2繪制順序圖123
5.10.3繪制協(xié)作圖125
5.11編寫文檔126
5.11.1編制軟件測試計劃126
5.11.2編制軟件概要設計說明127
5.11.3編制數(shù)據(jù)庫設計說明127
5.12習題128
任務6新聞發(fā)布系統(tǒng)詳細設計129
6.1案例新聞發(fā)布系統(tǒng)用戶界面設計報告130
6.1.1應當遵循的界面設計規(guī)范130
6.1.2界面設計131
6.2繪制新聞發(fā)布系統(tǒng)程序流程圖138
6.2.1程序流程圖基本知識138
6.2.2繪制程序流程圖的方法138
6.3設計數(shù)據(jù)代碼140
6.4輸入、輸出設計142
6.4.1輸入設計142
6.4.2輸出設計143
6.4.3新聞發(fā)布系統(tǒng)部分輸入/輸出數(shù)據(jù)說明143
6.5用戶界面設計144
6.6數(shù)據(jù)安全設計148
6.7編寫軟件詳細設計說明并復審149
6.8拓展提高其他詳細設計工具150
6.9習題153
任務7新聞發(fā)布系統(tǒng)編碼的實現(xiàn)155
7.1代碼結構建模繪制新聞發(fā)布系統(tǒng)組件圖156
7.1.1組件圖的用途156
7.1.2組件圖建模技術156
7.1.3新聞發(fā)布系統(tǒng)組件圖156
7.2系統(tǒng)物理結構建模繪制新聞發(fā)布系統(tǒng)配置圖157
7.2.1配置圖建模技術158
7.2.2新聞發(fā)布系統(tǒng)配置圖158
7.3選擇程序設計語言158
7.3.1程序設計語言的分類159
7.3.2選擇程序設計語言的標準160
7.4熟悉編碼規(guī)范,編寫符合要求的代碼162
7.5面向?qū)ο蟪绦蛟O計164
7.5.1面向?qū)ο蟪绦蛟O計概念164
7.5.2面向?qū)ο蟪绦蛟O計準則164
7.6拓展提高軟件重用165
7.6.1軟件重用的優(yōu)點與級別166
7.6.2軟件構件的標準規(guī)范、組織和檢索166
7.6.3基于構件的軟件開發(fā)過程169
7.6.4面向?qū)ο筌浖赜眉夹g169
7.7習題171
任務8新聞發(fā)布系統(tǒng)軟件的測試172
8.1案例新聞發(fā)布系統(tǒng)測試用例設計173
8.1.1測試環(huán)境173
8.1.2測試用例173
8.2軟件測試基礎知識177
8.2.1測試的概念、目標和對象177
8.2.2軟件測試的基本原則177
8.2.3軟件測試方法178
8.2.4軟件測試步驟179
8.2.5設計測試方案181
8.3面向?qū)ο鬁y試187
8.3.1面向?qū)ο笳Z境對測試的影響187
8.3.2面向?qū)ο蟮臏y試策略188
8.3.3面向?qū)ο鬁y試用例設計188
8.4使用軟件測試工具189
8.4.1白盒測試工具189
8.4.2黑盒測試工具190
8.4.3測試管理工具191
8.5軟件調(diào)試192
8.5.1軟件調(diào)試方法192
8.5.2常用調(diào)試策略192
8.6編寫軟件測試分析文檔193
8.7拓展提高度量程序的復雜性194
8.8習題196
任務9新聞發(fā)布系統(tǒng)項目的發(fā)布與維護197
9.1案例新聞發(fā)布系統(tǒng)用戶手冊198
9.1.1欄目管理198
9.1.2類別管理199
9.1.3新聞管理200
9.2發(fā)布產(chǎn)品201
9.3維護軟件202
9.3.1軟件維護類型202
9.3.2軟件維護方式203
9.3.3軟件維護實施204
9.3.4軟件可維護性度量207
9.3.5軟件維護的副作用208
9.4習題209
任務10軟件項目管理211
10.1軟件項目管理概述212
10.2估算軟件規(guī)模213
10.2.1代碼行技術213
10.2.2功能點技術214
10.3使用COCOMO 2模型估算軟件開發(fā)工作量215
10.4進度管理217
10.4.1估算開發(fā)時間217
10.4.2進度控制218
10.4.3甘特圖219
10.4.4工程網(wǎng)絡圖219
10.5人員組織220
10.5.1確定項目組成員220
10.5.2確定項目組組織方式221
10.6軟件質(zhì)量保證223
10.6.1軟件質(zhì)量223
10.6.2軟件質(zhì)量保證措施224
10.7軟件配置管理225
10.8軟件工程的文檔管理227
10.8.1軟件文檔及其使用對象227
10.8.2軟件生存周期各階段文檔的編制228
10.8.3面向?qū)ο筌浖鞣N文檔的編制229
10.8.4文檔編制應考慮的因素229
10.9軟件項目管理計劃231
10.10習題233
參考文獻234