軟件工程概論_第1頁(yè)
軟件工程概論_第2頁(yè)
軟件工程概論_第3頁(yè)
軟件工程概論_第4頁(yè)
軟件工程概論_第5頁(yè)
已閱讀5頁(yè),還剩99頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第一講軟件工程概論與需求分析9/21/20241內(nèi)容軟件危機(jī)軟件工程傳統(tǒng)開(kāi)發(fā)模式面向?qū)ο竽J経ML需求分析基于用例的需求分析9/21/202421.軟件危機(jī)1.1從千年蟲問(wèn)題談起千年蟲如同一個(gè)定時(shí)炸彈一樣,十幾年前就有人提出了預(yù)警,但是無(wú)人注意直到日期到來(lái)的前兩年,才引起了恐慌9/21/202441.2軟件危機(jī)的提出“軟件危機(jī)”是1958年在NATO會(huì)議上作為一個(gè)正式的議題被提出來(lái)軟件項(xiàng)目不成功的例子比比即是:1999年10月,耗資1.25億美元的NASA的火星氣象衛(wèi)星失蹤,據(jù)信這是由于簡(jiǎn)單的數(shù)據(jù)轉(zhuǎn)換錯(cuò)誤所導(dǎo)致的。人們發(fā)現(xiàn)衛(wèi)星軟件中,有些數(shù)據(jù)使用英制,它們應(yīng)被轉(zhuǎn)換成公制。這個(gè)衛(wèi)星應(yīng)當(dāng)充當(dāng)另一項(xiàng)任務(wù)中的火星極地著陸項(xiàng)目的通信轉(zhuǎn)發(fā)器,那個(gè)任務(wù)也失敗了,原因不明。9/21/20245美國(guó)IBM公司在1963年至1966年開(kāi)發(fā)的IBM360機(jī)的操作系統(tǒng)。這一項(xiàng)目花了5000人一年的工作量,最多時(shí)有1000人投入開(kāi)發(fā)工作,寫出了近100萬(wàn)行源程序。......據(jù)統(tǒng)計(jì),這個(gè)操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個(gè)程序錯(cuò)誤而修正的結(jié)果。......

這個(gè)項(xiàng)目的負(fù)責(zé)人F.D.Brooks事后總結(jié)了他在組織開(kāi)發(fā)過(guò)程中的沉痛教訓(xùn)時(shí)說(shuō):“......正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深,最后無(wú)法逃脫滅頂?shù)臑?zāi)難。......程序設(shè)計(jì)工作正像這樣一個(gè)泥潭,......一批批程序員被迫在泥潭中拼命掙扎,......誰(shuí)也沒(méi)有料到問(wèn)題竟會(huì)陷入這樣的困境......”。IBM360操作系統(tǒng)的歷史教訓(xùn)成為軟件開(kāi)發(fā)項(xiàng)目的典型事例為人們所記取。9/21/202469/21/202479/21/20248一些數(shù)據(jù):大約70%的軟件開(kāi)發(fā)項(xiàng)目超出了估算的時(shí)間,大型項(xiàng)目平均超出計(jì)劃交付時(shí)間20%到50%,90%以上的軟件項(xiàng)目開(kāi)發(fā)費(fèi)用超出預(yù)算,并且項(xiàng)目越大,超出項(xiàng)目計(jì)劃的程度越高美國(guó)政府審計(jì)局:只有不到2%的合同定購(gòu)軟件在發(fā)布時(shí)具有可用性——98%以上的項(xiàng)目都失敗了9/21/202492.軟件工程2.1定義Boehm:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識(shí)來(lái)設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開(kāi)發(fā)、運(yùn)行和維護(hù)這些程序所必需的相關(guān)文件資料IEEE:軟件工程是開(kāi)發(fā)、運(yùn)行、維護(hù)和修復(fù)軟件的系統(tǒng)方法FritzBauer:建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法9/21/2024112.2要素軟件工程三要素:方法、工具和過(guò)程軟件工程方法為軟件開(kāi)發(fā)提供了“如何做”的技術(shù)軟件工具為軟件工程方法提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境軟件工程過(guò)程定義了:

方法使用的順序要求交付的文檔資料為保證質(zhì)量和適應(yīng)變化所需要的管理軟件開(kāi)發(fā)各個(gè)階段完成的里程碑9/21/2024122.3原理⑴用分階段的生命周期計(jì)劃嚴(yán)格管理

項(xiàng)目概要計(jì)劃

里程碑計(jì)劃

項(xiàng)目控制計(jì)劃

產(chǎn)品控制計(jì)劃

驗(yàn)證計(jì)劃

運(yùn)行維護(hù)計(jì)劃⑵堅(jiān)持進(jìn)行階段評(píng)審⑶實(shí)行嚴(yán)格的產(chǎn)品控制——基準(zhǔn)配置管理(Baselineconfigurationmanagement)⑹開(kāi)發(fā)小組的成員應(yīng)該少而精1+1<2⑷采用現(xiàn)代程序設(shè)計(jì)技術(shù)⑸結(jié)果應(yīng)能清楚地審查—setstandards⑺承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性9/21/2024133.傳統(tǒng)開(kāi)發(fā)模式3.1瀑布模型瀑布模型(WaterfallModel)

維護(hù)開(kāi)發(fā)定義DefinitionFeasibilityStudyRequirementsAnalysisProgramDesignCoding&ModuleTestingIntegration&SystemTestingDelivery&MaintenanceSystemDesign9/21/202415(1)問(wèn)題定義和可行性研究確定要開(kāi)發(fā)軟件系統(tǒng)的總目標(biāo)給出功能、性能、可靠性以及接口等方面的要求完成該軟件任務(wù)的可行性研究估計(jì)可利用的資源(計(jì)算機(jī)硬件,軟件,人力等)、成本、效益、開(kāi)發(fā)進(jìn)度制定出完成開(kāi)發(fā)任務(wù)的實(shí)施計(jì)劃,連同可行性研究報(bào)告,提交管理部門審查9/21/202416(2)需求分析對(duì)待開(kāi)發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義編寫軟件需求說(shuō)明書或系統(tǒng)功能說(shuō)明書及初步的系統(tǒng)用戶手冊(cè)提交管理機(jī)構(gòu)評(píng)審9/21/202417(3)設(shè)計(jì)總體設(shè)計(jì)—“如何解決問(wèn)題”可以列出多種解決方案進(jìn)行比較把各項(xiàng)需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu)。結(jié)構(gòu)中每一組成部分都是意義明確的模塊,每個(gè)模塊都和某些需求相對(duì)應(yīng)詳細(xì)設(shè)計(jì)—對(duì)每個(gè)模塊要完成的工作進(jìn)行具體的描述,為源程序編寫打下基礎(chǔ)編寫設(shè)計(jì)說(shuō)明書,提交評(píng)審。9/21/202418(4)編碼把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫成以某一種特定程序設(shè)計(jì)語(yǔ)言表示的“源程序清單”寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計(jì)相一致的9/21/202419(5)測(cè)試單元測(cè)試,查找各模塊在功能和結(jié)構(gòu)上存在的問(wèn)題并加以糾正組裝測(cè)試,將已測(cè)試過(guò)的模塊按一定順序組裝起來(lái)按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行有效性測(cè)試,決定已開(kāi)發(fā)的軟件是否合格,能否交付用戶使用9/21/202420(6)運(yùn)行和維護(hù)改正性維護(hù)運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正適應(yīng)性維護(hù)為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更完善性維護(hù)為了增強(qiáng)軟件的功能需做變更9/21/2024213.2瀑布模型的特點(diǎn)⑴順序性、依賴性⑵推遲程序的物理實(shí)現(xiàn)⑶質(zhì)量保證的觀點(diǎn)——階段文檔與評(píng)審的要求,利于盡早發(fā)現(xiàn)錯(cuò)誤。易于組織,易于管理缺點(diǎn)?需求變化后引起的代價(jià)將很高9/21/202422結(jié)構(gòu)分析設(shè)計(jì)過(guò)程

階段關(guān)鍵問(wèn)題結(jié)束標(biāo)準(zhǔn)問(wèn)題定義問(wèn)題是什么?關(guān)于規(guī)模和目標(biāo)的報(bào)告書可行性研究有可行的解嗎?系統(tǒng)的高層邏輯模型數(shù)據(jù)流圖成本/效益分析需求分析系統(tǒng)必須做什么?系統(tǒng)的邏輯模型數(shù)據(jù)流圖數(shù)據(jù)字典算法描述

9/21/202423結(jié)構(gòu)分析設(shè)計(jì)過(guò)程

階段關(guān)鍵問(wèn)題結(jié)束標(biāo)準(zhǔn)總體設(shè)計(jì)概括地說(shuō),應(yīng)該如何解決這個(gè)問(wèn)題?可能的解法:系統(tǒng)流程圖成本/效益分析推薦的系統(tǒng)結(jié)構(gòu);層次圖或結(jié)構(gòu)圖詳細(xì)設(shè)計(jì)怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)?編碼規(guī)格說(shuō)明:HIPO圖或PDL編碼和單元測(cè)試正確的程序模塊源程序清單;單元測(cè)試方案和結(jié)果綜合測(cè)試符合要求的軟件綜合測(cè)試方案和結(jié)果;完整一致的軟件配置維護(hù)持久地滿足用戶需要的軟件完整準(zhǔn)確的維護(hù)記錄9/21/202424本質(zhì)上是功能分解,以實(shí)現(xiàn)功能的過(guò)程為中心,而用戶的需求變化主要是針對(duì)功能的。這就使基于過(guò)程的設(shè)計(jì)不易被理解;且功能變化往往引起結(jié)構(gòu)變化較大,穩(wěn)定性不好。系統(tǒng)有明確的邊界定義,且系統(tǒng)結(jié)構(gòu)依賴于系統(tǒng)邊界的定義,這樣的系統(tǒng)不易擴(kuò)充和修改。數(shù)據(jù)與操作分開(kāi)處理,可能造成軟構(gòu)件對(duì)具體應(yīng)用環(huán)境的依賴,可重用性(reusability)較差.結(jié)構(gòu)化技術(shù)的缺點(diǎn)9/21/2024254.面向?qū)ο竽J?.1面向?qū)ο蠓治觥⒃O(shè)計(jì)與編碼面向?qū)ο蟮姆治觯∣OA)分析問(wèn)題論域,找出問(wèn)題解決方案,發(fā)現(xiàn)對(duì)象,分析對(duì)象的內(nèi)部構(gòu)成和外部關(guān)系,建立軟件系統(tǒng)的對(duì)象模型面向?qū)ο蟮脑O(shè)計(jì)(OOD)根據(jù)已確定的系統(tǒng)對(duì)象模型,運(yùn)用面向?qū)ο蠹夹g(shù),進(jìn)行系統(tǒng)軟件設(shè)計(jì)面向?qū)ο蟮木幋a9/21/202427(1)面向?qū)ο蟮姆治鰡?wèn)題論域分析業(yè)務(wù)范圍,業(yè)務(wù)規(guī)則,業(yè)務(wù)處理過(guò)程,確定系統(tǒng)的責(zé)任,范圍和邊界,確定系統(tǒng)的需求發(fā)現(xiàn)和定義對(duì)象和類識(shí)別對(duì)象和類,確定它們的內(nèi)部特征:屬性和操作,這是一個(gè)抽象過(guò)程識(shí)別對(duì)象的外部聯(lián)系對(duì)象與對(duì)象,類與類之間的各種外部聯(lián)系,包括一般與特殊,整體與部分,實(shí)例連接(關(guān)聯(lián)),消息連接等建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型對(duì)象類圖和對(duì)象圖,系統(tǒng)與子系統(tǒng)結(jié)構(gòu)圖等,繪制相應(yīng)的圖建立系統(tǒng)的動(dòng)態(tài)行為模型對(duì)象之間的交互關(guān)系等9/21/202428(2)面向?qū)ο蟮脑O(shè)計(jì)設(shè)計(jì)對(duì)象和類具體設(shè)計(jì)對(duì)象和類的屬性,操作,設(shè)計(jì)對(duì)象與類的各種外部聯(lián)系的實(shí)現(xiàn)結(jié)構(gòu),設(shè)計(jì)消息與事件的內(nèi)容、格式等設(shè)計(jì)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)組件與子系統(tǒng),以及它們的相互的靜態(tài)和動(dòng)態(tài)關(guān)系設(shè)計(jì)問(wèn)題論域子系統(tǒng)負(fù)責(zé)領(lǐng)域的業(yè)務(wù)服務(wù)設(shè)計(jì)人機(jī)交互系統(tǒng)設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng)設(shè)計(jì)任務(wù)管理子系統(tǒng)進(jìn)程管理設(shè)計(jì)優(yōu)化,提高系統(tǒng)性能9/21/202429(3)比較結(jié)構(gòu)化設(shè)計(jì)方法以功能分解為中心面向?qū)ο蠓椒ㄗ匀坏匾哉撚蛑械膶?duì)象作為軟件的基本分析和設(shè)計(jì)單元,改善了軟件的可理解性,可重用性9/21/2024305.UML5.1UML歷史面向?qū)ο蟮姆治雠c設(shè)計(jì)(OOA&D)方法的發(fā)展在80年代末至90年代中出現(xiàn)了一個(gè)高潮.UML是這個(gè)高潮的產(chǎn)物。它不僅統(tǒng)一了Booch、Rumbaugh和Jacobson的表示方法,而且對(duì)其作了進(jìn)一步的發(fā)展,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語(yǔ)言。9/21/202432三個(gè)好朋友

9/21/2024335.2UML定義UML(統(tǒng)一建模語(yǔ)言)是為軟件系統(tǒng)的制品進(jìn)行描述(specifying)、可視化(visualizing)、構(gòu)造(constructing)、文檔化(documenting)的一種語(yǔ)言。它同樣適用于商業(yè)模塊和其他非軟件系統(tǒng)。在大型和復(fù)雜系統(tǒng)的建模中,UML成功地描述一些優(yōu)秀的工程實(shí)施。9/21/202434曹操孫權(quán)Environment

話說(shuō)三國(guó)演義OOAD

適用于社會(huì)組織法分析(Domain)西蜀9/21/202435曹操孫權(quán)Environment

劉備關(guān)羽孔明張飛赤壁之戰(zhàn)其它流程(Domain)西蜀曹操進(jìn)兵引發(fā)西蜀的流程誰(shuí)來(lái)執(zhí)行流程呢?9/21/202436

OOAD最關(guān)心流程與元素

1.描述流程(劇情)----分析

赤壁之戰(zhàn)其它流程2.安排主/配角(元素)演出----設(shè)計(jì)劉備關(guān)羽孔明張飛9/21/202437

OOAD最主要的工具

UML(Unified

Modeling

Language)

OMG

認(rèn)可的世界標(biāo)準(zhǔn)

19979/21/202438

為什么需要

UML呢?

貝多芬作曲時(shí)使用五線譜您設(shè)計(jì)軟件時(shí)使用UML9/21/202439

為什么需要

UML呢?

五線譜有多種音符UML也有多種符號(hào)劉備孔明關(guān)羽曹操赤壁之戰(zhàn)其它流程空城計(jì)退敵

UseCase圖

Sequence圖9/21/202440

UseCase敘述

曹操舉兵南下,西蜀就擬定策略,展開(kāi)部署並聯(lián)絡(luò)孫權(quán),鼎力對(duì)抗曹操大軍.曹操赤壁之戰(zhàn)孫權(quán)西蜀

把西蜀看成黑箱!!

準(zhǔn)備打開(kāi)西蜀黑箱9/21/202441

Scenario敘述

曹操赤壁之戰(zhàn)孫權(quán)

把西蜀黑箱打開(kāi)

!!

劉備關(guān)羽孔明張飛9/21/202442

Scenario敘述

曹操赤壁之戰(zhàn)孫權(quán)劉備關(guān)羽孔明張飛

曹操舉兵南下,劉備請(qǐng)孔明擬定策略.派遣關(guān)羽和張飛防守荊州,同時(shí)請(qǐng)孔明聯(lián)絡(luò)孫權(quán),共同對(duì)抗曹操.孔明聯(lián)合孫權(quán),借東風(fēng),火燒曹軍于赤壁.9/21/202443

Scenario敘述

使用UML

表示之9/21/202444

Scenario敘述

劉備孔明關(guān)羽求戰(zhàn)請(qǐng)擬定策略張飛請(qǐng)防守荊州請(qǐng)防守荊州前線孫權(quán)曹操請(qǐng)聯(lián)絡(luò)孫權(quán)請(qǐng)孫權(quán)領(lǐng)兵相助借東風(fēng)火攻火攻曹軍9/21/202445劉備的責(zé)任?

劉備求戰(zhàn)請(qǐng)擬定策略請(qǐng)防守荊州請(qǐng)聯(lián)絡(luò)孫權(quán)我必需迎戰(zhàn)曹操!!9/21/202446使用UML表示-----類圖

劉備求戰(zhàn)劉備迎戰(zhàn)曹操迎戰(zhàn)曹操迎戰(zhàn)曹操迎戰(zhàn)曹操迎戰(zhàn)曹操迎戰(zhàn)曹操9/21/202447使用UML表示

孔明請(qǐng)擬定策略請(qǐng)聯(lián)絡(luò)孫權(quán)請(qǐng)孫權(quán)領(lǐng)兵相助借東風(fēng)火攻火攻曹軍孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻9/21/202448使用UML表示

關(guān)羽張飛請(qǐng)防守荊州請(qǐng)防守荊州前線關(guān)羽防守荊州張飛防守荊州前線9/21/202449

關(guān)羽防守荊州張飛防守荊州前線劉備迎戰(zhàn)曹操孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻UML的Class圖

您已熟悉UseCaseSequence圖Class圖現(xiàn)在準(zhǔn)備進(jìn)入OOP階段9/21/2024503.

認(rèn)識(shí)

OOP

OOP階段的任務(wù)

----銜接OOAD的工作----從UML到Java----從Java

到組件9/21/202451

使用Java

劉備迎戰(zhàn)曹操寫Java程序‘Class劉備Method

迎戰(zhàn)曹操()……EndMethod9/21/202452

孔明擬定策略聯(lián)合孫權(quán)借東風(fēng)火攻使用Java

寫Java程序‘Class孔明Method

擬定策略()……EndMethodMethod

聯(lián)合孫權(quán)()……EndMethodMethod

借東風(fēng)火攻()……EndMethod9/21/202453‘Class劉備Method

迎戰(zhàn)曹操()……EndMethod使用VisualBasic‘Class孔明Method

擬定策略()……EndMethodMethod

聯(lián)合孫權(quán)()……EndMethodMethod

借東風(fēng)火攻()……EndMethod‘Class關(guān)羽Method

防守荊州()……EndSub‘Class張飛Method

防守前線()……EndMethod依樣畫葫蘆準(zhǔn)備填寫Method內(nèi)容9/21/202454

寫Java程序內(nèi)容

劉備求戰(zhàn)請(qǐng)擬定策略請(qǐng)防守荊州請(qǐng)聯(lián)絡(luò)孫權(quán)寫Java程序‘Class劉備孔明

k;關(guān)羽

g;Public劉備(孔明k1,關(guān)羽g1)Public

迎戰(zhàn)曹操(){

k.擬定策略

g.防守荊州

k.聯(lián)合孫權(quán)}9/21/202455寫Java程序內(nèi)容

孔明請(qǐng)擬定策略請(qǐng)聯(lián)絡(luò)孫權(quán)請(qǐng)孫權(quán)領(lǐng)兵相助借東風(fēng)火攻借東風(fēng)火攻寫Java程序‘Class孔明DimsAs孫權(quán)Function

擬定策略()……EndFunctionSub

聯(lián)合孫權(quán)()

s.請(qǐng)領(lǐng)兵相助

s.借東風(fēng)火攻EndSubSub

借東風(fēng)火攻()……EndSub9/21/202456寫VB代碼

‘Class劉備DimkAsNew孔明DimgasNew關(guān)羽Sub

迎戰(zhàn)曹操()

k.擬定策略

g.防守荊州

k.聯(lián)合孫權(quán)EndSub‘Class孔明DimsAs孫權(quán)Function

擬定策略()……EndFunctionSub

聯(lián)合孫權(quán)()

s.請(qǐng)領(lǐng)兵相助

s.借東風(fēng)火攻EndSubSub

借東風(fēng)火攻()……EndSub9/21/202457寫Java代碼

把Java類編譯為Class組件JVM9/21/2024586.需求分析6.1概述軟件產(chǎn)品建造的第一步:需求分析根據(jù)用戶對(duì)產(chǎn)品的功能的期望,提取出產(chǎn)品外部功能的描述。9/21/2024606.2需求分析的困難性9/21/2024617.需求分析與UML7.1需求分析的途徑:用例視圖用例視圖——支持產(chǎn)品外部功能描述的視圖用例視圖從軟件產(chǎn)品的使用者的角度而不是開(kāi)發(fā)者的角度,描述用戶對(duì)待開(kāi)發(fā)的產(chǎn)品的需求,分析產(chǎn)品所需的功能、動(dòng)態(tài)行為因此需要容易理解9/21/2024637.2軟件的外部特征當(dāng)軟件的使用者考查一個(gè)軟件產(chǎn)品的功能時(shí),其考慮的內(nèi)容通常包括:軟件的功能的設(shè)置的合理性軟件的運(yùn)行效率軟件功能使用的方便程度這些內(nèi)容是軟件產(chǎn)品的外部特性,是軟件系統(tǒng)通過(guò)其邊界呈現(xiàn)給用戶的特性

外部特性通常是動(dòng)態(tài)的,通過(guò)外部特性,軟件系統(tǒng)的使用價(jià)值得到了體現(xiàn)呈現(xiàn)在軟件系統(tǒng)的邊界上的外部特征,是由軟件系統(tǒng)的內(nèi)部實(shí)現(xiàn)決定的,但是,對(duì)于軟件系統(tǒng)的使用者而言,軟件功能的內(nèi)部實(shí)現(xiàn)不是他們關(guān)心的問(wèn)題,他們所關(guān)心的只是其所需要的功能是否以令其滿意的方式得到了實(shí)現(xiàn)9/21/2024647.3需求分析原則分析軟件系統(tǒng)的功能設(shè)置時(shí),應(yīng)該把重點(diǎn)放在描述軟件系統(tǒng)的外部邊界上,即重點(diǎn)考慮用戶對(duì)軟件系統(tǒng)的功能設(shè)置的合理性、方便性和運(yùn)行效率的要求,而不應(yīng)該在需求分析階段就過(guò)多地考慮軟件系統(tǒng)的結(jié)構(gòu)和內(nèi)部實(shí)現(xiàn)機(jī)制。這是在對(duì)軟件系統(tǒng)進(jìn)行需求分析時(shí),應(yīng)該遵循的一個(gè)重要原則

9/21/2024657.4需求分析內(nèi)容/1軟件系統(tǒng)不是孤立存在的,不但需要分析共有哪些用戶將要使用軟件系統(tǒng),而且還需要分析軟件系統(tǒng)的運(yùn)行結(jié)果將要對(duì)哪些對(duì)象產(chǎn)生影響,這包括:指定運(yùn)行結(jié)果的輸出和存儲(chǔ)的媒介指定被軟件系統(tǒng)運(yùn)行結(jié)果控制的硬件設(shè)備如顯示器、打印機(jī)、工業(yè)機(jī)器人、數(shù)控機(jī)床等9/21/202466當(dāng)提取出了軟件系統(tǒng)運(yùn)行的外部環(huán)境中與之交互的對(duì)象之后,需要為這些對(duì)象與軟件系統(tǒng)進(jìn)行的交互指定具體內(nèi)容。這包括:對(duì)交互中包含的動(dòng)態(tài)行為進(jìn)行詳細(xì)描述還包括對(duì)這些動(dòng)態(tài)行為進(jìn)行合理的分類和組織使得這些動(dòng)態(tài)行為所代表的軟件系統(tǒng)的功能的設(shè)置能為用戶提供其所需的價(jià)值,并具備令用戶滿意的易用性和效率媒介:交互圖狀態(tài)圖9/21/2024678.用例建模8.1活動(dòng)者(1)概述對(duì)軟件產(chǎn)品的需求分析就是定義軟件系統(tǒng)的邊界,包括兩個(gè)方面的內(nèi)容:分析軟件產(chǎn)品與外界的聯(lián)系確定軟件產(chǎn)品與外界的聯(lián)系時(shí)包含動(dòng)態(tài)行為及其相互關(guān)系在UML中,下列建模元素為上述兩個(gè)方面的內(nèi)容提供支持:活動(dòng)者(actor)用例(usecase)它們存在于用例視圖中,所在模型圖:用例圖(usecasediagram)

9/21/202470(2)定義活動(dòng)者:位于系統(tǒng)之外并和系統(tǒng)進(jìn)行交互的一類對(duì)象用它可以對(duì)軟件系統(tǒng)與外界發(fā)生的交互進(jìn)行分析和描述軟件系統(tǒng)在和外界發(fā)生交互時(shí)涉及的具體的對(duì)象,在UML里,用活動(dòng)者來(lái)建模9/21/202471(3)活動(dòng)者建模的對(duì)象軟件系統(tǒng)的使用者:

軟件系統(tǒng)的使用者要通過(guò)使用軟件和系統(tǒng)交互,使用者處于系統(tǒng)之外隨著軟件系統(tǒng)的應(yīng)用領(lǐng)域的不同,在用例視圖模型中代表系統(tǒng)使用者的活動(dòng)者的數(shù)目也有可能不同對(duì)于那些通用的軟件產(chǎn)品,如:文字處理軟件、網(wǎng)絡(luò)通訊軟件、圖形繪制軟件,它們的使用者通常是不需要分類的,只需要一個(gè)活動(dòng)者就可以代表其所有的用戶對(duì)于那些專業(yè)化較強(qiáng)的專用軟件系統(tǒng),如,管理信息系統(tǒng)、工業(yè)生產(chǎn)流程控制系統(tǒng)等,它們的使用者隨其在軟件的應(yīng)用領(lǐng)域的職責(zé)的不同,對(duì)軟件的使用方式也會(huì)有所不同,例如,在一個(gè)公司的管理信息系統(tǒng)中,公司的管理者對(duì)信息系統(tǒng)的存取權(quán)限將高于公司的普通員工,有必要對(duì)軟件系統(tǒng)的使用者進(jìn)行分類,多個(gè)不同的活動(dòng)者將同時(shí)出現(xiàn)在用例視圖模型中9/21/202472活動(dòng)者除了可以代表作為人的軟件使用者之外,還可以代表直接和軟件系統(tǒng)交互的軟件系統(tǒng)賴以運(yùn)行的軟/硬件平臺(tái)以及與軟件系統(tǒng)有信息交換的計(jì)算機(jī)外部設(shè)備例如,繪圖軟件它調(diào)用操作系統(tǒng)提供的圖形繪制接口,控制圖形在顯示設(shè)備上的輸出,這時(shí)可以把操作系統(tǒng)的的圖形接口和圖形輸出設(shè)備用一個(gè)活動(dòng)者來(lái)建模類似的情形也可以應(yīng)用于描述軟件系統(tǒng)的計(jì)算結(jié)果的保存上,軟件系統(tǒng)的計(jì)算結(jié)果通常都是通過(guò)操作系統(tǒng)的文件存取接口以文件的形式存放在計(jì)算機(jī)的外部存儲(chǔ)器上的,在為軟件系統(tǒng)的邊界建模時(shí),如果需要強(qiáng)調(diào)軟件系統(tǒng)的結(jié)果的保存,就可以把操作系統(tǒng)的文件存取接口和文件本身用一個(gè)活動(dòng)者來(lái)代表9/21/2024739/21/2024748.2用例1)概述指定活動(dòng)者以后,需要詳細(xì)描述活動(dòng)者和軟件系統(tǒng)交互的具體內(nèi)容,對(duì)交互所代表的軟件系統(tǒng)的功能進(jìn)行分類,對(duì)這些功能詳細(xì)指定其代表的軟件系統(tǒng)的動(dòng)態(tài)行為在UML里,軟件系統(tǒng)的功能和其代表的動(dòng)態(tài)行為是用用例來(lái)建模的9/21/2024762)什么是用例用例代表系統(tǒng)為響應(yīng)活動(dòng)者引發(fā)的一個(gè)事件而執(zhí)行的一系列的處理,而且這處理應(yīng)該為系統(tǒng)作用者產(chǎn)生一種可見(jiàn)的價(jià)值用例描述了當(dāng)活動(dòng)者和軟件系統(tǒng)進(jìn)行交互時(shí),軟件系統(tǒng)所執(zhí)行的一系列的動(dòng)作序列,這些動(dòng)作序列不但應(yīng)包含正常使用的各種動(dòng)作序列,而且應(yīng)包含對(duì)非正常使用時(shí)軟件系統(tǒng)的動(dòng)作序列的描述用例用來(lái)為軟件系統(tǒng)所提供的功能及其動(dòng)態(tài)特征建模,在考慮軟件系統(tǒng)的功能劃分時(shí),要考慮功能設(shè)置的合理性和使用的方便性一個(gè)用例代表活動(dòng)者和系統(tǒng)的一次交互,用例視圖中用例的設(shè)置,就代表了軟件系統(tǒng)的功能的劃分為了得到合理而方便的軟件系統(tǒng)的功能設(shè)置,必須仔細(xì)考慮每個(gè)用例代表的動(dòng)態(tài)行為的內(nèi)容,使得每個(gè)用例都能產(chǎn)生一個(gè)有價(jià)值的結(jié)果在通過(guò)用例考慮軟件系統(tǒng)的功能劃分時(shí),應(yīng)使得功能的分布較為均衡、易于理解、易于使用,這也是用例的定義中所謂“產(chǎn)生可見(jiàn)的價(jià)值”的含義9/21/2024773)用例的例子假定設(shè)計(jì)開(kāi)發(fā)一個(gè)名為“位圖觀察器(bmpviewer)”的軟件產(chǎn)品,它為用戶提供圖像顯示和瀏覽的功能。經(jīng)過(guò)對(duì)用戶提出的功能需求的分析和整理,得出的用戶期望得到的產(chǎn)品的功能如下:打開(kāi)一個(gè)bitmap文件可對(duì)文件進(jìn)行放大顯示(Zoom-in)可對(duì)文件進(jìn)行縮小顯示(Zoom-out)可對(duì)文件進(jìn)行瀏覽(Pan)可將文件繼續(xù)保存到磁盤9/21/202478利用用例和活動(dòng)者的概念,把上述功能在通過(guò)用例在用例圖上加以表達(dá)在這里把上列的每項(xiàng)功能都用一個(gè)用例表示9/21/2024794)用例與活動(dòng)者的關(guān)聯(lián)關(guān)系活動(dòng)者和軟件系統(tǒng)的交互是具體地和特定的某項(xiàng)功能相聯(lián)系的,而軟件系統(tǒng)的功能在UML模型是用例,所以系統(tǒng)作用者和軟件系統(tǒng)的交互表明了活動(dòng)者和用戶之間存在著某種對(duì)應(yīng)為了表達(dá)活動(dòng)者通過(guò)某項(xiàng)功能與系統(tǒng)交互,在UML模型中,可以通過(guò)用一條直線把活動(dòng)者和用例相連接來(lái)表示9/21/202480這條直線在UML里代表關(guān)聯(lián)關(guān)系例如,圖中“用戶”和“打開(kāi)文件”用例之間的關(guān)聯(lián)關(guān)系代表用戶對(duì)軟件系統(tǒng)的打開(kāi)文件功能的使用9/21/202481關(guān)聯(lián)關(guān)系是UML的關(guān)系的一種,它代表兩個(gè)類的對(duì)象之間的語(yǔ)義連接未經(jīng)過(guò)修飾的關(guān)聯(lián)關(guān)系是雙向的兩個(gè)類之間有關(guān)聯(lián)關(guān)系,代表兩個(gè)類之間可以互相訪問(wèn),因而提供了它們進(jìn)行交互的基礎(chǔ)在用例圖中使用的關(guān)聯(lián)關(guān)系通常被修飾為單向的關(guān)聯(lián)關(guān)系,它在模型圖被表示為一條帶箭頭的直線單向關(guān)聯(lián)關(guān)系是關(guān)聯(lián)關(guān)系的一個(gè)特例,它由關(guān)聯(lián)關(guān)系經(jīng)修飾而得,它意味著訪問(wèn)是有向的在處于有向關(guān)聯(lián)關(guān)系中的兩個(gè)類中,位于箭頭所指方向的類的對(duì)象可以被另一個(gè)類的對(duì)象訪問(wèn),反之則不然9/21/202482和系統(tǒng)打交道的外部對(duì)象有3個(gè),其中“用戶”代表軟件的使用者,它通過(guò)訪問(wèn)這項(xiàng)用例啟動(dòng)軟件“打開(kāi)文件”的功能。系統(tǒng)對(duì)這些事件應(yīng)采取一系列的動(dòng)作進(jìn)行響應(yīng),響應(yīng)的過(guò)程中,將訪問(wèn)硬盤中的數(shù)據(jù),并更新顯示因此,有兩個(gè)系統(tǒng)作用者與此相對(duì)應(yīng),“位圖文件”,“顯示窗口”:“顯示窗口”代表用來(lái)顯示位圖的操作系統(tǒng)圖形用戶界面的一個(gè)窗口,“位圖文件”代表保存在計(jì)算機(jī)外部存儲(chǔ)器的位圖文件從這個(gè)例子也可以看到,活動(dòng)者不僅僅代表人,還可以是軟件或硬件系統(tǒng)

9/21/202483關(guān)聯(lián)關(guān)系的有向性在圖中所示的用例中,“打開(kāi)文件”對(duì)應(yīng)的系統(tǒng)所采取的動(dòng)作序列中涉及文件“讀取”,但關(guān)聯(lián)關(guān)系的箭頭仍指向文件而不是反之。這是因?yàn)橛邢蜿P(guān)聯(lián)關(guān)系的箭頭代表的是訪問(wèn)的方向,而不是數(shù)據(jù)的流向數(shù)據(jù)文件不會(huì)(主動(dòng)地)訪問(wèn)用例,所以對(duì)讀取或保存文件,都應(yīng)有同樣的訪問(wèn)方向9/21/2024845)事件流與場(chǎng)景

事件流用例代表系統(tǒng)和活動(dòng)者之間發(fā)生的一系列的事件,這些事件流構(gòu)成了用戶對(duì)系統(tǒng)功能的一次使用在用例圖中必須對(duì)事件流進(jìn)行描述,以構(gòu)成一個(gè)完備的用例模型對(duì)事件流的描述包括四種形式,即:形式文本非形式文本交互圖狀態(tài)圖相應(yīng)的UML成員作為這些描述的載體文本和正式文本可用注標(biāo)(note)表示交互圖和活動(dòng)圖本身即是一個(gè)標(biāo)準(zhǔn)的UML成員9/21/202486

主事件流(mainflowofevents)和次要事件流(alternativeflowofevents)用來(lái)區(qū)分對(duì)系統(tǒng)功能的合法使用和非法使用主事件流(mainflowofevents)合法使用只有一個(gè)次要事件流(alternativeflowofevents)可包含若干個(gè)在描繪事件流時(shí),必須用足夠清晰的語(yǔ)言以使得一個(gè)普通的用戶能夠理解9/21/202487場(chǎng)景(Scenario)一個(gè)用例可以有多個(gè)事件流,每一個(gè)事件流是一個(gè)完整的用戶對(duì)系統(tǒng)的功能的使用。它們出于同一個(gè)目的,但出于事件流不同,使得系統(tǒng)產(chǎn)生的響應(yīng)不同 這樣的用例/事件流的對(duì)應(yīng)關(guān)系正是前面講到的UML公用劃分機(jī)制的一個(gè)例子,它是對(duì)系統(tǒng)功能使用的特例(合法或非法的),

因此事件流是用例的實(shí)例(instance)用例的實(shí)例在UML中被稱為場(chǎng)景(Scenario)9/21/2024886)用例圖中的關(guān)系(1)概述在分析和整理活動(dòng)者和系統(tǒng)用例的時(shí)候,可能用到:使用關(guān)系泛化關(guān)系包含關(guān)系擴(kuò)展關(guān)系9/21/202490(2)使用關(guān)聯(lián)使用關(guān)聯(lián)是指一個(gè)用例使用另一個(gè)用例的功能行為使用關(guān)聯(lián)用于在用例之間共享公共的功能行為使用關(guān)聯(lián)是一種泛化關(guān)聯(lián),在用例圖上用一個(gè)基本用例指向公共的用例的泛化箭頭表示,并在箭線上標(biāo)有構(gòu)造型<<Use>>9/21/202491(3)泛化關(guān)系在UML中,兩個(gè)類之間的泛化關(guān)系代表子類共享了超類的行為和結(jié)構(gòu)。它實(shí)際上就是C++里面的類之間的繼承和導(dǎo)出關(guān)系在用例圖中,活動(dòng)者是類的變體用例是具有類的特征的建模元素(分類符),因此,可以用泛化關(guān)系描述活動(dòng)者或用例之間的繼承9/21/202492在一個(gè)帳單管理系統(tǒng)中,用例

PhoneOrder和InternetOrder在結(jié)構(gòu)和行為方面存在很多相似之處。因此可以定義一個(gè)通用的用例PlaceOrder,來(lái)表示結(jié)構(gòu)和公共的行為。抽象的用例PlaceOrder自身并不一定要是完整的,但是它提供了一個(gè)公共的行為框架,子用例可以使自己完整9/21/202493(4)包含關(guān)系包含關(guān)系(include):位于兩個(gè)用例之間的包含關(guān)系意味著基用例顯式地在其指定位置將另一個(gè)用例包含進(jìn)來(lái),使其成為自己的行為的一部分包含關(guān)系可用于提取共用的用例在具有包含關(guān)系的兩個(gè)用例中,被包含的那個(gè)用例不能單獨(dú)存在,它只能以實(shí)例的形式存在于包含它的用例之中9/21/202494在一個(gè)ATM系統(tǒng)中,用例WithdrawCash,DepositCash和TransferFunds都需要包含系統(tǒng)識(shí)別客戶這一功能。該行為可以提取出來(lái)作為一個(gè)新的包含用例,稱為IdentifyCustomer,它被其它三個(gè)基用例所包含。這些基用例獨(dú)立于具體的識(shí)別方法,該方法被封裝在包含用例中。從基用例的觀點(diǎn)看,它們不關(guān)心用戶識(shí)別是從銀行磁卡上識(shí)別出來(lái)的還是從視網(wǎng)膜掃描上識(shí)別出來(lái)的。它們只需要IdentifyCustomer的結(jié)果,就是客戶的標(biāo)識(shí)符另一方面,從IdentifyCustomer用例的角度看,它不關(guān)心基用例是如何使用客戶標(biāo)識(shí)的或者在執(zhí)行它之前,發(fā)生了什么——識(shí)別的方法始終是一樣的9/21/2024959/21/202496(5)擴(kuò)展關(guān)系擴(kuò)展關(guān)系:兩個(gè)用例之間的擴(kuò)展關(guān)系,代表基用例可以隱式地包含另一個(gè)用例作為其行為的一部分,包含的位置間接地由另一個(gè)用例(擴(kuò)展用例)確定?;美梢元?dú)立于擴(kuò)展用例單獨(dú)存在當(dāng)一個(gè)用例有多個(gè)子流程時(shí),可以用擴(kuò)展關(guān)系對(duì)其進(jìn)行擴(kuò)展,使得此基用例的不同子流程能在不同的情形下以擴(kuò)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論