版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
“十三五”職業(yè)教育國家規(guī)劃教材
軟件工程與UML案例解析
何曉蓉羅佳張嬋◎主編
車書陳建潮◎副主編
李洛◎主審
文前.indd12022/7/1411:24:48
內(nèi)容簡介
為了滿足廣大讀者對軟件工程應(yīng)用技術(shù)的學(xué)習(xí)需求,特別是為了提高高等職業(yè)院校軟件技術(shù)專業(yè)學(xué)
生的UML(統(tǒng)一建模語言)建模能力,本書在介紹軟件開發(fā)各階段所涉及的基本理論的基礎(chǔ)上,以實
際的開發(fā)項目為案例,重點介紹了用例模型、分析模型、系統(tǒng)架構(gòu)設(shè)計、設(shè)計模型等UML全程建模過程,
并對軟件開發(fā)所必需的項目管理工具M(jìn)SProject(項目開發(fā)時間、資源和成本計劃的編制與監(jiān)控管理)、
數(shù)據(jù)庫建模工具PowerDesigner、測試工具(LoadRunner、NUnit、QuickTest)等關(guān)鍵技術(shù)分別進(jìn)行了詳
細(xì)的闡述。
本書按“問題引入-解答問題-分析問題”的方式設(shè)計情境,注重理論與實踐相結(jié)合,內(nèi)容選取難
度適中,全書結(jié)構(gòu)嚴(yán)謹(jǐn)、布局合理、重點突出,具有很強(qiáng)的實用性?!绊椖繉崙?zhàn)”環(huán)節(jié)讓學(xué)生可以學(xué)以
致用,培養(yǎng)學(xué)生軟件開發(fā)的職業(yè)能力。
本書適合作為高等職業(yè)院校軟件技術(shù)專業(yè)軟件工程課程的教材和參考書,也可作為軟件開發(fā)人員的
自學(xué)用書。
圖書在版編目(CIP)數(shù)據(jù)
軟件工程與UML案例解析/何曉蓉,羅佳,張嬋主編.—4版.—
北京:中國鐵道出版社有限公司,2022.4
“十三五”職業(yè)教育國家規(guī)劃教材
ISBN978-7-113-28919-5
Ⅰ.①軟…Ⅱ.①何…②羅…③張…Ⅲ.①軟件工程-高等職業(yè)
教育-教材②面向?qū)ο笳Z言-程序設(shè)計-高等職業(yè)教育-教材
Ⅳ.①TP311.5②TP312
中國版本圖書館CIP數(shù)據(jù)核字(2022)第031411號
書名:軟件工程與UML案例解析
作者:何曉蓉?羅?佳?張?嬋
策劃:王春霞???????????????編輯部電話:(010)63551006
責(zé)任編輯:王春霞繩?超
封面設(shè)計:劉穎
責(zé)任校對:孫玫
責(zé)任印制:樊啟鵬
出版發(fā)行:中國鐵道出版社有限公司(100054,北京市西城區(qū)右安門西街8號)
網(wǎng)址:/51eds/
印刷:北京銘成印刷有限公司
版次:2010年3月第1版2022年4月第4版2022年4月第1次印刷
開本:850mm×1168mm1/16印張:18.75字?jǐn)?shù):430千
書號:ISBN978-7-113-28919-5
定價:58.00元
版權(quán)所有侵權(quán)必究
凡購買鐵道版圖書,如有印制質(zhì)量問題,請與本社教材圖書營銷部聯(lián)系調(diào)換。電話:(010)63550836
打擊盜版舉報電話:(010)63549461
文前.indd22022/7/2116:37:29
前言
隨著計算機(jī)科學(xué)與網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,計算機(jī)的應(yīng)用范圍越來越廣泛,軟件的規(guī)模
及社會需求量在迅速增大,軟件工程化方法的重要性日益突出,這從客觀上迫切需要眾多
既具有軟件工程理論知識,又掌握軟件工程實際應(yīng)用技能的人才。特別是高等職業(yè)院校軟
件技術(shù)專業(yè)的學(xué)生,更需要一本注重軟件工程實際應(yīng)用技術(shù)的教材。本書正是在“理論夠
用、實戰(zhàn)為本”的思想指導(dǎo)下,特為高等職業(yè)院校軟件技術(shù)專業(yè)學(xué)生學(xué)習(xí)和掌握軟件工程
應(yīng)用技術(shù)而編寫的。
為培養(yǎng)軟件開發(fā)實用型專門人才,本書在介紹軟件工程理論知識基礎(chǔ)上,以實際的軟
件項目“客戶服務(wù)系統(tǒng)”的建模過程為主線,按照軟件開發(fā)的實際工作過程及流程,重點
闡述面向?qū)ο蟮能浖_發(fā)技術(shù)以及UML全程建模。注重對學(xué)生實際應(yīng)用技能和動手能力
的培養(yǎng)。書中內(nèi)容按“問題引入—解答問題—分析問題”的方式設(shè)計情境,打破了傳統(tǒng)的
“提出問題—分析問題—解決問題”的問題解決模式,更符合人們的認(rèn)知過程。
本書共分9章,主要內(nèi)容包括:
第1章?概述。主要介紹軟件開發(fā)中存在的缺陷、軟件工程及軟件工程的目標(biāo)、過程
和原則、UML及UML建模工具等方面的問題和基本概念,并對作為全書案例的軟件項目
做了簡要描述。
第2章?軟件項目管理。主要介紹項目管理的概念、組成部分以及工期的計算公式、
WBS等基本知識,重點介紹了項目管理范圍、項目時間管理、項目成本管理、項目質(zhì)量管
理和項目人力資源管理等概念,項目的時間、資源和成本計劃的編制與監(jiān)控管理,以及用
MSProject項目管理軟件來管理與跟蹤這些計劃。
第3章?軟件系統(tǒng)開發(fā)方法。主要介紹軟件生命周期及傳統(tǒng)的生命周期模型、傳統(tǒng)軟
件開發(fā)方法與面向?qū)ο筌浖_發(fā)技術(shù)、RUP統(tǒng)一軟件開發(fā)過程、敏捷軟件開發(fā)技術(shù)等方面
的問題及基本概念。
第4章?建立用例模型。主要介紹建立用例模型的過程及相關(guān)知識,包括需求獲取、
分析需求、用例在需求分析中的使用、識別參與者、確定用例、用例的粒度、用例間的關(guān)
系、用例描述和客戶服務(wù)系統(tǒng)用例模型等方面的內(nèi)容。
第5章?建立分析模型。主要介紹建立分析模型的過程及相關(guān)知識,包括對象、類和
對象、類的UML表示、確定關(guān)鍵抽象、類之間的關(guān)系及其UML表示、建立領(lǐng)域模型、分
I
文前.indd12022/7/1411:24:48
軟件工程與UML案例解析
布模式的選擇與應(yīng)用、構(gòu)建分析類、職責(zé)分配、定義類屬性,以及構(gòu)建客戶服務(wù)系統(tǒng)分析
模型等方面的知識。
第6章?數(shù)據(jù)庫建模。主要介紹建立數(shù)據(jù)庫模型的過程及相關(guān)知識,包括從業(yè)務(wù)需求
創(chuàng)建數(shù)據(jù)模型的流程、定義數(shù)據(jù)需求、定義概念模型、設(shè)計邏輯數(shù)據(jù)模型、設(shè)計物理數(shù)據(jù)
模型、數(shù)據(jù)模型的優(yōu)化與發(fā)布等方面的內(nèi)容。
第7章?系統(tǒng)架構(gòu)設(shè)計。主要介紹系統(tǒng)架構(gòu)的設(shè)計過程及相關(guān)知識,包括活動圖、狀
態(tài)圖、業(yè)務(wù)架構(gòu)及業(yè)務(wù)架構(gòu)的分析、軟件架構(gòu)及軟件架構(gòu)的設(shè)計、軟件架構(gòu)與框架的區(qū)別、
軟件架構(gòu)的“4+1”視圖模型、組件圖和部署圖等方面的內(nèi)容。
第8章?建立設(shè)計模型。主要介紹建立系統(tǒng)設(shè)計模型的過程及相關(guān)知識,包括設(shè)計模
式的選擇與應(yīng)用、設(shè)計類的包結(jié)構(gòu)、定義設(shè)計類、設(shè)計類間的關(guān)系、客戶服務(wù)系統(tǒng)的設(shè)計
模型,以及自動生成程序代碼等方面的內(nèi)容。
第9章?軟件測試。主要介紹軟件測試的基本概念、測試方法和測試過程等方面的
知識。
本書注重理論與實際應(yīng)用相結(jié)合,具有很強(qiáng)的實用性,并在第三版的基礎(chǔ)上做了一些
改進(jìn),增加了國產(chǎn)UML建模工具的介紹,對軟件開發(fā)模型進(jìn)行了調(diào)整,增加介紹了目前
常用的“快速原型模型”,對軟件測試章節(jié)進(jìn)行了結(jié)構(gòu)優(yōu)化,更直觀地介紹了軟件測試的基
本概念、測試方法、測試過程和測試的各個階段。
本書由何曉蓉、羅佳、張嬋任主編,車書、陳建潮任副主編,李洛主審。參加修訂的
有何曉蓉、車書(第4章),羅佳(第1章~第3章、第8章),張嬋(第5章~第7章),
陳建潮(第9章)。本書由何曉蓉擬定大綱,羅佳進(jìn)行統(tǒng)稿和定稿。在編寫過程中,軟件企
業(yè)通力協(xié)作,軟件企業(yè)開發(fā)人員余穎給予了大力支持與幫助,并提供了真實的軟件開發(fā)案
例,在此表示衷心的感謝!
由于編者水平有限,書中難免會有不足之處,敬請廣大讀者不吝賜教。編者電子郵箱:
xrhe@163.com。
編者
2022年1月
II
文前.indd22022/7/1411:24:48
目錄
第1章概述???????????????????????????????????12.2.4范圍確認(rèn)25
1.1?當(dāng)前軟件開發(fā)中存在的缺陷???????????????22.2.5范圍控制26
1.2?軟件工程????????????????????????????????????????????32.3?項目時間管理??????????????????????????????????27
1.2.1軟件工程的定義32.3.1項目時間管理的意義27
1.2.2軟件工程的目標(biāo)32.3.2制訂進(jìn)度計劃28
1.2.3軟件工程過程52.3.3進(jìn)度控制30
1.2.4軟件工程的原則52.4?項目成本管理??????????????????????????????????31
1.3?UML簡介??????????????????????????????????????????62.4.1項目成本管理的意義31
1.4?UML建模工具簡介????????????????????????????72.4.2成本估算32
1.4.1RationalRose簡介72.4.3成本預(yù)算32
1.4.2StarUML簡介82.4.4成本控制33
1.4.3國產(chǎn)TrufunPlato簡介102.5?項目質(zhì)量管理??????????????????????????????????34
1.5?案例描述??????????????????????????????????????????112.5.1項目質(zhì)量管理的意義34
2.5.2質(zhì)量規(guī)劃35
第2章軟件項目管理?????????????????????14
2.5.3質(zhì)量保證35
2.1?項目管理概述??????????????????????????????????14
2.5.4質(zhì)量控制36
2.1.1項目管理定義14
2.6?項目人力資源管理???????????????????????????38
2.1.2項目管理的組成部分15
2.6.1項目人力資源管理的意義38
2.1.3項目生命期和模型16
2.6.2人力資源計劃編制39
2.1.4項目管理方法體系18
2.6.3人力資源團(tuán)隊建設(shè)40
2.2?項目范圍管理??????????????????????????????????19
2.7?項目集成管理??????????????????????????????????42
2.2.1范圍規(guī)劃19
2.7.1編制項目計劃42
2.2.2范圍定義21
2.7.2編制項目的時間計劃42
2.2.3創(chuàng)建工作分解結(jié)構(gòu)22
I
文前.indd12022/7/1411:24:49
軟件工程與UML案例解析
2.7.3編制項目資源計劃504.6?用例的粒度????????????????????????????????????104
2.7.4編制項目成本計劃534.7?用例間的關(guān)系????????????????????????????????106
2.7.5項目監(jiān)控管理554.8?用例描述????????????????????????????????????????108
4.9?客戶服務(wù)系統(tǒng)用例模型??????????????????112
第3章軟件系統(tǒng)開發(fā)方法???????????????63
3.1?軟件開發(fā)生命周期???????????????????????????64第5章建立分析模型????????????????????119
3.2?軟件開發(fā)模型??????????????????????????????????655.1?類和對象、類的UML表示????????????120
3.2.1瀑布模型665.2?確定關(guān)鍵抽象????????????????????????????????121
3.2.2快速原型模型675.3?類之間的關(guān)系及其UML表示?????????124
3.2.3演化模型685.3.1關(guān)聯(lián)124
3.2.4螺旋模型695.3.2依賴127
3.2.5增量模型715.3.3泛化128
3.3?傳統(tǒng)軟件開發(fā)方法???????????????????????????725.3.4聚合129
3.4?面向?qū)ο筌浖_發(fā)技術(shù)????????????????????735.3.5組合130
3.4.1面向?qū)ο蟮幕靖拍?45.4?建立領(lǐng)域模型????????????????????????????????131
3.4.2面向?qū)ο蟮拈_發(fā)795.5?分布模式的選擇與應(yīng)用??????????????????132
3.5?RUP統(tǒng)一軟件開發(fā)過程???????????????????805.6?構(gòu)建分析類????????????????????????????????????134
3.5.1RUP生命周期805.7?交互圖???????????????????????????????????????????137
3.5.2RUP統(tǒng)一開發(fā)過程的核心5.7.1順序圖137
工作流程835.7.2協(xié)作圖139
3.6?敏捷軟件開發(fā)技術(shù)???????????????????????????855.8?職責(zé)分配????????????????????????????????????????140
3.6.1敏捷開發(fā)技術(shù)基本概念865.9?定義類的屬性????????????????????????????????142
3.6.2極限編程895.10?客戶服務(wù)系統(tǒng)分析模型????????????????143
第4章建立用例模型?????????????????????95第6章數(shù)據(jù)庫建模???????????????????????150
4.1?需求獲取??????????????????????????????????????????966.1?從業(yè)務(wù)需求創(chuàng)建數(shù)據(jù)模型的流程????150
4.2?分析需求??????????????????????????????????????????986.2?定義數(shù)據(jù)需求????????????????????????????????151
4.3?用例在需求分析中的使用??????????????1006.3?定義概念模型????????????????????????????????153
4.4?識別參與者????????????????????????????????????1016.4?設(shè)計邏輯數(shù)據(jù)模型?????????????????????????154
4.5?確定用例????????????????????????????????????????1036.5?設(shè)計物理數(shù)據(jù)模型?????????????????????????156
II
文前.indd22022/7/1411:24:49
目?錄
6.6?數(shù)據(jù)模型的優(yōu)化與發(fā)布??????????????????1588.4.2設(shè)計類接口212
6.7?客戶服務(wù)系統(tǒng)數(shù)據(jù)庫表結(jié)構(gòu)???????????1598.4.3設(shè)計屬性和操作213
8.5?設(shè)計類間關(guān)系????????????????????????????????219
第7章系統(tǒng)架構(gòu)設(shè)計???????????????????165
8.5.1設(shè)計繼承219
7.1?活動圖???????????????????????????????????????????166
8.5.2設(shè)計聚合/組合221
7.2?狀態(tài)圖???????????????????????????????????????????168
8.5.3設(shè)計關(guān)聯(lián)222
7.3?業(yè)務(wù)架構(gòu)????????????????????????????????????????170
8.6?客戶服務(wù)系統(tǒng)設(shè)計模型??????????????????222
7.4?業(yè)務(wù)架構(gòu)分析????????????????????????????????171
8.7?自動生成程序代碼?????????????????????????227
7.4.1客戶服務(wù)系統(tǒng)業(yè)務(wù)架構(gòu)
分析172第9章軟件測試??????????????????????????234
7.4.2客戶服務(wù)系統(tǒng)子模塊劃分1739.1?軟件測試基本概念?????????????????????????234
7.5?軟件架構(gòu)????????????????????????????????????????1769.1.1軟件測試的定義234
7.6?軟件架構(gòu)設(shè)計????????????????????????????????1779.1.2軟件測試與軟件質(zhì)量的
7.7?軟件架構(gòu)與框架?????????????????????????????181關(guān)系236
7.8?軟件架構(gòu)的“4+1”視圖模型?????1829.1.3軟件缺陷的內(nèi)涵238
7.9?組件圖???????????????????????????????????????????1839.1.4軟件測試的目的239
7.10?部署圖?????????????????????????????????????????1869.1.5測試用例定義239
9.2?軟件測試過程????????????????????????????????241
第8章建立設(shè)計模型???????????????????190
9.2.1軟件測試過程模型介紹241
8.1?設(shè)計模式的選擇與應(yīng)用??????????????????190
9.2.2軟件測試工作流程244
8.1.1Facade(門面)模式192
9.3?軟件測試方法????????????????????????????????247
8.1.2Adapter(適配器)模式194
9.3.1白盒子測試247
8.1.3Factory(工廠)模式196
9.3.2黑盒子測試257
8.2?設(shè)計類的包結(jié)構(gòu)?????????????????????????????203
9.4?軟件測試的各個階段??????????????????????269
8.3?構(gòu)建設(shè)計類????????????????????????????????????206
9.4.1單元測試269
8.3.1分析類映射到設(shè)計
9.4.2集成測試279
模型的包206
9.4.3確認(rèn)測試282
8.3.2從分析類生成設(shè)計類208
9.4.4系統(tǒng)測試285
8.3.3確定類的大小209
9.4.5驗收測試288
8.4?詳細(xì)設(shè)計類????????????????????????????????????211
8.4.1設(shè)計公用類211參考文獻(xiàn)???????????????????????????????????????292
III
文前.indd32022/7/1411:24:49
文前.indd42022/7/1411:24:49
第1章
概述
在近代科學(xué)技術(shù)發(fā)展的歷史中,工程學(xué)科的發(fā)展一直是產(chǎn)業(yè)發(fā)展的極大動力。
筆記欄
傳統(tǒng)的工程學(xué)科,如建筑工程、機(jī)械工程、水利工程、電力工程等對各行各業(yè)的發(fā)
展都有非常深遠(yuǎn)的影響。近年來人們開始對環(huán)境工程、生物工程、軟件工程等有了
極大的關(guān)注,許多高等院校都增設(shè)了這些專業(yè),以培養(yǎng)研究這些新興學(xué)科的專門人
才。然而,由于人們對這些新興工程學(xué)科認(rèn)識不足,還處在一個艱難的探索階段,
如軟件工程。國內(nèi)許多軟件企業(yè)對軟件工程還沒有引起足夠的重視,事實上,軟件
工程在計算機(jī)的發(fā)展和應(yīng)用中的地位非常顯著,它對軟件產(chǎn)業(yè)的形成和發(fā)展起著決
定性的推動作用,是現(xiàn)代信息產(chǎn)業(yè)的支柱。
本章將對軟件缺陷現(xiàn)狀、軟件工程及軟件工程的目標(biāo)、過程和原則、UML等
方面的問題和基本概念給出簡要的介紹,以便讀者對軟件工程的一些基本知識獲得
一定的理解。書中各個部分是以一個項目為主線,按任務(wù)驅(qū)動的方式進(jìn)行,提供了
基本完整的分析設(shè)計過程和UML全程建模。本章還給出了貫穿全書的案例項目描
述,以便讓讀者在進(jìn)入軟件工程專題之前,對本書所要解析的軟件工程項目有全面
的了解。
本章學(xué)習(xí)內(nèi)容
?當(dāng)前軟件開發(fā)中存在的缺陷;
?軟件工程;
?UML簡介;
?UML建模工具簡介;
?案例描述。
本章學(xué)習(xí)目標(biāo)
?了解軟件缺陷現(xiàn)狀;
?了解軟件工程的基本概念、軟件工程的目標(biāo)、過程和原則;
?了解UML的幾種圖形;
?了解RationalRose、StarUML和國產(chǎn)TrufunPlato建模工具的基本內(nèi)容;
?了解教學(xué)案例的用戶需求。
1
01-05.indd12022/7/1410:52:04
軟件工程與UML案例解析
學(xué)習(xí)筆記
1.1??當(dāng)前軟件開發(fā)中存在的缺陷
問題引入
軟件質(zhì)量是軟件的生命。為了提高軟件質(zhì)量,人們采取了多種方法,如軟件開
發(fā)過程控制與管理、軟件測試等,這些方法在一定程度上促進(jìn)了軟件質(zhì)量的提高。
然而,軟件產(chǎn)品不同于普通的產(chǎn)品,它是人類最復(fù)雜的腦力勞動的產(chǎn)物,由于軟件
掃一掃?看視頻要解決的問題越來越復(fù)雜,軟件中存在缺陷是必然的。軟件開發(fā)過程實際上是一個
不斷實現(xiàn)用戶需求與修正軟件中出現(xiàn)的缺陷交替進(jìn)行的過程。那么,當(dāng)前軟件開發(fā)
中究竟存在哪些缺陷呢?
解答問題
筆者匯總了如下10條軟件缺陷現(xiàn)狀。雖然其中涉及的統(tǒng)計數(shù)據(jù)可能并不是非
常準(zhǔn)確,但這些缺陷卻具有代表性。
(1)在項目發(fā)布后發(fā)現(xiàn)和修復(fù)缺陷的成本是需求和設(shè)計階段所需成本的100倍。
(2)在時下的軟件項目中有40%~50%的人力都花在了可以避免的重復(fù)勞動
中,避免重復(fù)勞動可以顯著提高勞動生產(chǎn)率。
(3)80%可避免的重復(fù)勞動源自20%的缺陷,其中兩大主要來源包括草率的
需求定制和象征性的案例設(shè)計和開發(fā)。
(4)大約80%的缺陷來自20%的模塊,而約半數(shù)的模塊幾乎沒有缺陷。
(5)90%的軟件的停工期最多來自10%的缺陷。
(6)同行評審能發(fā)現(xiàn)60%的缺陷。
(7)有針對性的評審能比無導(dǎo)向性的評審多發(fā)現(xiàn)35%的缺陷。
(8)個人行為的規(guī)范化可以減少缺陷注入率高達(dá)75%。
(9)在其他因素相同的情況下,開發(fā)高可靠性軟件每條源代碼指令的成本投入
比開發(fā)低可靠性軟件要多出近50%。然而,如果項目需要很高的運行和維護(hù)成本,
這樣的投資是值得的。
(10)40%~50%的用戶程序都存在著很大的缺陷。
分析問題
軟件缺陷(Defect,常常又被稱為Bug),即為計算機(jī)軟件或程序中存在的某
種影響正常運行能力的問題、錯誤,或者隱藏的功能和性能缺陷。缺陷的存在會導(dǎo)
致軟件產(chǎn)品在某種程度上不能滿足用戶的需求。越是進(jìn)行到軟件開發(fā)生命周期后期
才發(fā)現(xiàn)的缺陷,其修復(fù)成本也就越高。也就是說,錯誤越早發(fā)現(xiàn),成本越低。事實
上,大部分錯誤都是在軟件開發(fā)的前面階段引入、后面階段才發(fā)現(xiàn)的,修復(fù)這些錯
誤必將付出巨大的代價。
從上面的軟件缺陷現(xiàn)狀中可知,大部分錯誤都集中在少數(shù)模塊。缺陷集中出現(xiàn)
2
01-05.indd22022/7/1410:52:04
第1章?概述
有兩種可能:第一種可能是大量出現(xiàn)缺陷的模塊特別復(fù)雜,軟件開發(fā)人員難以保證
學(xué)習(xí)筆記
程序沒有錯誤;第二種可能是負(fù)責(zé)這些模塊的開發(fā)人員比負(fù)責(zé)其他模塊的開發(fā)人員
水平要低,或者責(zé)任心不夠強(qiáng),做事比較馬虎。第一種可能情況容易避免。如果模
塊太復(fù)雜,就應(yīng)該由技術(shù)骨干攻關(guān),以保證其正確無誤地順利實現(xiàn)。而出現(xiàn)問題的
往往是第二種可能情況。軟件開發(fā)人員良莠不齊,部分人員質(zhì)量意識和責(zé)任心不夠
強(qiáng),由這部分人員開發(fā)的模塊往往會隱藏許多缺陷。
雖然在開發(fā)的軟件中出現(xiàn)缺陷很正常,但是開發(fā)人員必須盡力減少軟件中隱藏
的各種缺陷,這就要求開發(fā)團(tuán)隊一方面要提高職業(yè)素質(zhì),另一方面還要遵循軟件工
程的思想,在提高軟件開發(fā)效率的同時不忘降低軟件的缺陷率,力爭提交給用戶一
個高質(zhì)量的軟件系統(tǒng)。同時,降低軟件的維護(hù)成本,保證軟件企業(yè)可持續(xù)發(fā)展。
1.2??軟件工程
掃一掃?看視頻
1.2.1?軟件工程的定義
問題引入
計算機(jī)軟件是指計算機(jī)程序、數(shù)據(jù)以及解釋和指導(dǎo)使用程序和數(shù)據(jù)的文檔的總
和。當(dāng)計算機(jī)軟件上升到工程學(xué)的高度后,又如何來定義它,即什么是軟件工程?
解答問題
軟件工程(SoftwareEngineering,SE)是一門研究應(yīng)用工程化方法構(gòu)建和維護(hù)
有效的、實用的和高質(zhì)量的軟件的學(xué)科。
分析問題
工程不僅僅是一個學(xué)科或一個知識體系,它還是解決問題的方法。這里的方法
包括管理、過程和技術(shù)三方面,其中,“過程”是指軟件的開發(fā)、維護(hù)過程以及管
理過程。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時間考驗
而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法相結(jié)合,這就是軟件工
程。它涉及程序設(shè)計語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)平臺、標(biāo)準(zhǔn)、設(shè)計模式等
方面的內(nèi)容。
1.2.2?軟件工程的目標(biāo)
問題引入
軟件工程的主要目標(biāo)是采用工程化方法,提高軟件產(chǎn)品質(zhì)量和軟件生產(chǎn)率,降
低軟件開發(fā)成本,成功地構(gòu)建一個滿足用戶需求的軟件系統(tǒng)。那么,一個成功的軟
件項目需要達(dá)到哪些主要目標(biāo)呢?
3
01-05.indd32022/7/1410:52:04
軟件工程與UML案例解析
學(xué)習(xí)筆記解答問題
一個成功的軟件工程項目需要達(dá)到的主要目標(biāo)有以下幾方面:
(1)達(dá)到要求的軟件功能;
(2)取得較好的軟件性能;
(3)付出較低的開發(fā)成本;
(4)開發(fā)的軟件易于移植;
(5)開發(fā)的軟件易于維護(hù),且維護(hù)費用較低;
(6)能按時完成開發(fā)任務(wù),并交付使用。
分析問題
(1)軟件的功能是指在一般條件下軟件系統(tǒng)能夠為用戶“做什么”,能夠滿足
用戶什么樣的需求。用戶的需要就是軟件開發(fā)人員的目標(biāo),一方面,開發(fā)的軟件必
須實現(xiàn)用戶要求的功能;另一方面,一個軟件項目“做得怎樣”,如開發(fā)的軟件運
行速度、易用性、可靠性、適應(yīng)性等,是否達(dá)到了用戶的需求。這些都是一個軟件
工程項目最基本的目標(biāo),是必須努力實現(xiàn)的。
(2)軟件的研制工作需要投入大量復(fù)雜的、高強(qiáng)度的腦力勞動,它的成本往往
比較高。但隨著軟件技術(shù)的飛速發(fā)展,軟件開發(fā)工具、開發(fā)方法等不斷出現(xiàn),應(yīng)用
先進(jìn)的軟件過程管理手段,使得降低開發(fā)成本成為可能。所以,不斷探索新方法、
新技術(shù),努力減少軟件開發(fā)成本,是軟件工程項目所追求的主要目標(biāo)。
(3)軟件的開發(fā)和運行常常受到計算機(jī)系統(tǒng)的限制,對計算機(jī)系統(tǒng)有著不同程
度的依賴性。軟件不能完全擺脫硬件單獨存在。為了提高軟件的可移植性,在軟件
開發(fā)過程中要盡量使用不依賴于計算機(jī)硬件和操作系統(tǒng)的計算機(jī)語言和方法編寫程
序,這也是軟件工程項目所追求的目標(biāo)。
(4)所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯誤或者滿足新的
需要而修改軟件的過程。其目的是保證系統(tǒng)能持續(xù)地與用戶環(huán)境、數(shù)據(jù)處理操作、
政府或其他有關(guān)部門的請求取得協(xié)調(diào)。在現(xiàn)代軟件開發(fā)過程中,不重視文字資料工
作,使分析、設(shè)計、編碼和支持過程的資料很不完整,兼之,人們常常忽視人與人
之間的溝通部分,發(fā)現(xiàn)問題只知道修修補(bǔ)補(bǔ),這樣的軟件很難維護(hù)。維護(hù)費用的支
出是不可避免的,但怎樣才能降低維護(hù)費用呢?主要有3點:①設(shè)計軟件時,充分
考慮軟件的可修改性、可擴(kuò)展性。②軟件開發(fā)文檔齊備。③加強(qiáng)團(tuán)隊合作精神。提
高軟件的易維護(hù)性、降低其維護(hù)成本也是軟件工程項目所追求的最基本的目標(biāo)。
(5)軟件項目極大的復(fù)雜性與用戶需求高度的不確定性,是軟件項目能按時完
成的困難所在。加之,軟件開發(fā)人員對項目往往按照最樂觀的估計,對于任務(wù)的復(fù)
雜性和難度,對于自己能支配的時間,對于可能的突發(fā)事件的干擾等沒有清楚的認(rèn)
識和估計,在軟件企業(yè)內(nèi)部項目管理混亂的情況之下,軟件項目常常嚴(yán)重超期或超
出預(yù)算。提高軟件項目管理能力,按時完成軟件開發(fā)任務(wù),并交付使用,是許多軟
件企業(yè)力爭實現(xiàn)的目標(biāo)。
在實際的軟件開發(fā)項目中,要同時實現(xiàn)所有這些目標(biāo)往往是比較困難的。甚至
4
01-05.indd42022/7/1410:52:05
第1章?概述
有些目標(biāo)之間很可能相互沖突。比如,若一味降低開發(fā)成本,勢必也同時降低了軟
學(xué)習(xí)筆記
件的性能、減少了軟件的功能。因此,往往需要在這幾大目標(biāo)上做一些取舍。
1.2.3?軟件工程過程
問題引入
在軟件工程的定義中,強(qiáng)調(diào)了過程的概念,例如,開發(fā)過程、維護(hù)過程、管理
過程。過程是一組將輸入轉(zhuǎn)化為輸出的相互關(guān)聯(lián)或相互作用的活動。然而,什么是
軟件工程過程?
解答問題
軟件工程過程是指軟件生命周期(關(guān)于軟件生命周期的相關(guān)知識將在第3章的
3.1節(jié)詳述)所涉及的一系列相關(guān)過程,是生產(chǎn)一個最終能滿足需求且達(dá)到工程目
標(biāo)的軟件產(chǎn)品所需要的步驟。
分析問題
軟件工程過程主要包括開發(fā)過程、運作過程和維護(hù)過程。它們覆蓋了分析、設(shè)
計、編碼、測試以及支持等軟件工程活動。在軟件工程活動中,分析活動包括問題
分析和需求分析。問題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能
規(guī)約。設(shè)計活動一般包括概要設(shè)計和詳細(xì)設(shè)計。概要設(shè)計建立整個軟件系統(tǒng)結(jié)構(gòu),
包括子系統(tǒng)、模塊以及相關(guān)層次的說明、每一個模塊的接口定義。詳細(xì)設(shè)計產(chǎn)生
程序員可用的模塊或者類說明。編碼活動把設(shè)計結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。測
試活動貫穿于整個軟件開發(fā)過程,實現(xiàn)完成后的確認(rèn),保證最終產(chǎn)品滿足用戶的要
求。維護(hù)活動包括使用過程中的擴(kuò)展、修改與完善。伴隨以上這些過程,還包括管
理過程、支持過程和培訓(xùn)過程等。
管理過程、支持過程、培訓(xùn)過程貫穿軟件開發(fā)過程的始終,對軟件開發(fā)過程起
著至關(guān)重要的作用。
1.2.4?軟件工程的原則
問題引入
為了達(dá)到軟件工程的目標(biāo),在軟件開發(fā)過程中針對項目設(shè)計、支持以及管理必
須遵循哪些基本原則?
解答問題
在軟件開發(fā)過程中針對項目設(shè)計、支持以及管理必須遵循的基本原則是:
(1)選取適宜的軟件開發(fā)模型;
(2)采用合適的軟件開發(fā)方法;
(3)提供高效的開發(fā)支撐環(huán)境;
(4)重視軟件開發(fā)過程的管理;
5
01-05.indd52022/7/1410:52:05
軟件工程與UML案例解析
()建設(shè)高素質(zhì)的軟件開發(fā)團(tuán)隊。
學(xué)習(xí)筆記5
分析問題
(1)同其他事物一樣,軟件也有其孕育、誕生、成長、成熟以及衰亡的生命過
程,一般稱其為“軟件生命周期”。軟件生命周期一般分為6個階段,即制訂計劃、
需求分析和定義、設(shè)計、編碼、測試、運行和維護(hù)。軟件開發(fā)的各個階段包含了一
系列的活動,活動之間的關(guān)系可以是順序的、重復(fù)的、并行的、嵌套的或者是有條
件引發(fā)的。在軟件工程中,這個復(fù)雜的過程用軟件開發(fā)模型來描述和表示。在軟件
生命周期中,軟件開發(fā)的各個階段相互關(guān)聯(lián),用戶需求的頻繁變更會對軟件的開發(fā)
過程產(chǎn)生重大影響。因此,必須認(rèn)識需求定義的易變性,采用適宜的軟件開發(fā)模型
予以控制,以保證軟件產(chǎn)品滿足用戶的要求。
(2)在軟件開發(fā)中,通常要考慮軟件的模塊化、抽象與信息隱藏、可移植性、
局部化以及可適應(yīng)性等方面的問題。合適的軟件開發(fā)方法,如面向?qū)ο筌浖_發(fā)方
法等,有助于這些方面的實現(xiàn),以達(dá)到軟件工程的目標(biāo)。
(3)在軟件工程中,軟件開發(fā)工具與開發(fā)環(huán)境對軟件過程的支持尤為重要。軟
件工程項目的質(zhì)量與開發(fā)成本直接取決于對軟件工程所提供的支撐環(huán)境。
(4)軟件工程的管理,直接影響到可用資源的有效利用、滿足目標(biāo)的軟件產(chǎn)品
的生產(chǎn)、軟件組織的生產(chǎn)能力的提高等問題。因此,只有在軟件過程得以有效管理
時,才能實現(xiàn)有效的軟件工程。
(5)正如TomDeMacro和TimothyLister在《人件》中所說的,“人與人之間的
交互是復(fù)雜的,并且其效果從來都難以預(yù)料,但卻是工作中最為重要的方面?!边^
程和方法對于項目的影響只是次要的,而首要的影響是人。因此,只有當(dāng)開發(fā)人員
發(fā)揮其效率時,才能達(dá)到軟件工程的目標(biāo)。
軟件工程的目標(biāo)是生產(chǎn)滿足用戶需求的高質(zhì)量、高生產(chǎn)率、低開銷的軟件產(chǎn)
品;實施一個軟件工程要選取適宜的開發(fā)模型,采用合適的開發(fā)方法,提供高效
的支撐環(huán)境,實行開發(fā)過程的有效管理,建設(shè)能相互溝通、極具社會責(zé)任感的軟件
開發(fā)團(tuán)隊。軟件工程主要包括分析、設(shè)計、編碼、測試和支持等活動,每一個活
動可根據(jù)特定的軟件工程項目,采用合適的開發(fā)模型、方法、支持過程以及過程
管理。
1.3??UML簡介
UML(Uni?edModelingLanguage,統(tǒng)一建模語言)是一種定義良好、易于表
達(dá)、功能強(qiáng)大的用于對軟件密集型系統(tǒng)建模的圖形語言。它支持從需求分析開始的
面向?qū)ο筌浖_發(fā)的全過程。
UML作為一種建模語言,它使軟件開發(fā)人員專注于建立系統(tǒng)的模型和結(jié)構(gòu),
而不是選用具體的程序設(shè)計語言和算法來實現(xiàn)。當(dāng)模型建立之后,模型可以被
6
01-05.indd62022/7/1410:52:05
第1章?概述
工具轉(zhuǎn)化成指定的程序設(shè)計語言代碼和數(shù)據(jù)庫結(jié)構(gòu)。
UML學(xué)習(xí)筆記
UML1.4有9種圖:
(1)用例圖:用于業(yè)務(wù)建模、需求捕獲,作為測試的依據(jù)。
(2)類圖:描述類以及類之間的相互關(guān)系。
(3)對象圖:描述對象以及對象之間的相互關(guān)系。
(4)構(gòu)件圖:描述構(gòu)件及其相互依賴關(guān)系。
(5)部署圖:描述構(gòu)件在各個節(jié)點上的部署情況。
(6)順序圖:強(qiáng)調(diào)時間順序的交互圖。
(7)協(xié)作圖:強(qiáng)調(diào)對象協(xié)作的交互圖。
(8)狀態(tài)圖:描述類所經(jīng)歷的各種狀態(tài)以及狀態(tài)之間的轉(zhuǎn)換關(guān)系。
(9)活動圖:用于對工作流程建模。
對于一般系統(tǒng),常常使用類圖來產(chǎn)生程序代碼;而對于嵌入式系統(tǒng),則用狀態(tài)
圖生成程序代碼。
本書闡述了使用UML全程建立系統(tǒng)模型的過程,并指導(dǎo)讀者應(yīng)用建模工具
StarUML對案例項目建立模型。
1.4??UML建模工具簡介
UML建模工具有很多,早前主流的UML建模工具都是由國外軟件公司開發(fā),
如Together、RationalRose、StarUML等,現(xiàn)在國內(nèi)有很多公司也在不斷成長,開
發(fā)出了優(yōu)秀的UML建模工具,其中包括TrufunPlato和億圖圖示等。這些國內(nèi)外
UML建模工具功能都很強(qiáng),下面僅對RationalRose、StarUML和國產(chǎn)TrufunPlato
做簡單介紹。
1.4.1?RationalRose簡介
RationalRose是一種支持UML1.4的便于進(jìn)行面向?qū)ο蠓治龊驮O(shè)計的可視化的
建模工具。它提供了一個集成化的建模環(huán)境,可以用來創(chuàng)建、查看和修改UML模
型、視圖、圖和模型元素。
RationalRose使用圖形用戶界面,包括如下元素:
(1)菜單欄;
(2)標(biāo)準(zhǔn)工具欄;
(3)圖形工具欄;
(4)瀏覽器窗口;
(5)圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年貴州23年教資筆試及答案
- 2025年學(xué)科教學(xué)筆試及答案
- 民航新疆空管局2026屆畢業(yè)生招聘補(bǔ)充考試備考題庫及答案解析
- 2025年河南省屬企業(yè)招聘筆試及答案
- 2025年長沙地鐵站筆試及答案
- 2026年房企如何應(yīng)對市場不確定性
- 2025年河北人事職稱考試及答案
- 2025年任丘市人事考試及答案
- 2025年平原縣人事考試及答案
- 2025年今年10月事業(yè)單位考試及答案
- GB/T 9706.266-2025醫(yī)用電氣設(shè)備第2-66部分:助聽器及助聽器系統(tǒng)的基本安全和基本性能專用要求
- (一模)株洲市2026屆高三年級教學(xué)質(zhì)量統(tǒng)一檢測地理試卷(含答案詳解)
- 2026年企業(yè)級云服務(wù)器采購合同
- 2026廣西桂林醫(yī)科大學(xué)人才招聘27人備考題庫(第一批)及參考答案詳解一套
- 2026年度黑龍江省生態(tài)環(huán)境廳所屬事業(yè)單位公開招聘工作人員57人備考題庫及答案詳解一套
- 2025安徽省中煤三建國際公司機(jī)關(guān)工作人員內(nèi)部競聘31人筆試歷年參考題庫附帶答案詳解
- 2026國家國防科技工業(yè)局所屬事業(yè)單位第一批招聘62人筆試參考題庫及答案解析
- 北京2025年北京教育科學(xué)研究院公開招聘筆試歷年參考題庫附帶答案詳解
- 2025至2030中國谷氨酸和味精行業(yè)深度研究及發(fā)展前景投資評估分析
- 產(chǎn)品品質(zhì)管理控制模板與實施手冊
- 人教版高二化學(xué)上冊期末真題試題題庫試題附答案完整版
評論
0/150
提交評論