軟件工程齊志昌_第1頁
軟件工程齊志昌_第2頁
軟件工程齊志昌_第3頁
軟件工程齊志昌_第4頁
軟件工程齊志昌_第5頁
已閱讀5頁,還剩81頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件工程

SoftwareEngineering

國防科技大學(xué)計(jì)算機(jī)學(xué)院2004.07齊治昌教授,譚慶平教授,寧洪教授,董威博士2023/1/161第六章面向?qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語言機(jī)制以及用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?960年代中期的仿真程序設(shè)計(jì)語言Simula67。1980年代初出現(xiàn)的Smalltalk語言及其程序設(shè)計(jì)環(huán)境對(duì)面向?qū)ο蠹夹g(shù)的推廣應(yīng)用起到了顯著的促進(jìn)作用。1990年代中后期誕生并迅速成熟的UML(統(tǒng)一建模語言,UnifiedModelingLanguage)是面向?qū)ο蠹夹g(shù)發(fā)展的一個(gè)重要里程碑。UML統(tǒng)一了面向?qū)ο蠼5幕靖拍?、術(shù)語和表示方法,不僅為面向?qū)ο蟮能浖_發(fā)過程提供了能力豐富的表達(dá)手段,而且也為軟件開發(fā)人員提供了互相交流、分享經(jīng)驗(yàn)的共用語言。2023/1/162面向?qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮母拍钆c思想U(xiǎn)ML概述基于UML的需求分析以“家庭保安系統(tǒng)”為實(shí)例,介紹與需求分析相關(guān)的部分UML語言機(jī)制以及基于UML的面向?qū)ο蟮男枨蠓治龇椒ê瓦^程。第六章面向?qū)ο蟮男枨蠓治?023/1/1636.1面向?qū)ο蟮母拍钆c思想客觀世界中的應(yīng)用問題都是由實(shí)體及其相互關(guān)系構(gòu)成的??梢詫⒖陀^世界中與應(yīng)用問題有關(guān)的實(shí)體及其屬性抽象為問題空間中的對(duì)象。為應(yīng)用問題尋求軟件解,是借助于計(jì)算機(jī)語言對(duì)其提供的實(shí)體施加某些動(dòng)作,以動(dòng)作的結(jié)果給出問題的解。匯編語言提供的實(shí)體是寄存器、存儲(chǔ)單元;過程式程序設(shè)計(jì)語言提供的實(shí)體是變?cè)?、?shù)組、記錄、文件等。這些實(shí)體構(gòu)成解空間中的對(duì)象。問題空間中對(duì)象的行為是豐富多彩的,而軟件解空間中對(duì)象的行為卻是單調(diào)刻板的。例如,存儲(chǔ)單元只能作存取操作,文件只能作讀、寫和定位操作。只有借助于相當(dāng)復(fù)雜的方法操縱解空間中的對(duì)象才能得到問題的軟件解。這就是所謂的“語義斷層”。第六章面向?qū)ο蟮男枨蠓治?023/1/164面向?qū)ο蟮母拍钆c思想面向?qū)ο?Object-Oriented,簡(jiǎn)稱OO)的需求分析方法通過提供對(duì)象、對(duì)象間消息傳遞等語言機(jī)制讓分析人員在解空間中直接模擬問題空間中的對(duì)象及其行為,從而削減了語義斷層,為需求建模活動(dòng)提供了直觀、自然的語言支持和方法學(xué)指導(dǎo)。6.1面向?qū)ο蟮母拍钆c思想2023/1/165面向?qū)ο蟮母拍钆c思想為了在解空間模擬現(xiàn)實(shí)問題并與人類的思維習(xí)慣相一致,OO方法學(xué)包容了以下核心概念:(1)對(duì)象對(duì)象是現(xiàn)實(shí)世界中個(gè)體或事物的抽象表示,是其屬性和相關(guān)操作的封裝。屬性表示對(duì)象的性質(zhì),屬性值規(guī)定了對(duì)象所有可能的狀態(tài)。對(duì)象的操作是指該對(duì)象可以展現(xiàn)的外部服務(wù)。例如,大型客機(jī)可視為對(duì)象,它具有位置、速度、顏色、容量等屬性,對(duì)于該對(duì)象可施行起飛、降落、加速、維修等操作,這些操作將或多或少地改變飛機(jī)的屬性值(狀態(tài))。6.1面向?qū)ο蟮母拍钆c思想2023/1/166面向?qū)ο蟮母拍钆c思想(2)類。類表示某些對(duì)象在屬性和操作方面的共同特征。例如,直升飛機(jī)、大型客機(jī)、轟炸機(jī)可歸為飛行器類。共同屬性有:位置、速度和顏色等。共同操作有:起飛、降落、加速和維修等。6.1面向?qū)ο蟮母拍钆c思想2023/1/167面向?qū)ο蟮母拍钆c思想(3)繼承類之間的繼承關(guān)系是現(xiàn)實(shí)世界中遺傳關(guān)系的模擬,它表示類之間的內(nèi)在聯(lián)系以及對(duì)屬性和操作的共享,即,子類可以沿用父類(被繼承類)的某些特征。子類也可以具有自己獨(dú)有的屬性和操作。例如,飛行器、汽車和輪船可歸于交通工具類,飛行器類可以繼承交通工具類的某些屬性和操作。6.1面向?qū)ο蟮母拍钆c思想2023/1/168面向?qū)ο蟮母拍钆c思想(4)聚集現(xiàn)實(shí)世界普遍存在部分—整體關(guān)系。例如,飛機(jī)可由發(fā)動(dòng)機(jī)、機(jī)身、機(jī)械控制系統(tǒng)、電子控制系統(tǒng)等構(gòu)成。部分—整體關(guān)系在OO方法學(xué)中表示為類之間的聚集關(guān)系。在聚集關(guān)系下,部分類的對(duì)象是整體類對(duì)象的一個(gè)組成部分。6.1面向?qū)ο蟮母拍钆c思想2023/1/169面向?qū)ο蟮母拍钆c思想(5)消息消息傳遞是對(duì)象與其外部世界相互關(guān)聯(lián)的唯一途徑。對(duì)象可以向其它對(duì)象發(fā)送消息以請(qǐng)求服務(wù),也可以響應(yīng)其它對(duì)象傳來的消息,完成自身固有的某些操作,從而服務(wù)于其它對(duì)象。例如,直升飛機(jī)可以響應(yīng)輪船的海難急救信號(hào),起飛,加速,飛赴出事地點(diǎn)并實(shí)施救援作業(yè)。因?yàn)閷?duì)象的操作主要用來響應(yīng)外來消息并為其它對(duì)象提供服務(wù),所以它們也被稱作“外部服務(wù)”。面向?qū)ο?對(duì)象+類+繼承+聚集+消息。6.1面向?qū)ο蟮母拍钆c思想2023/1/16106.2UML概述UML的語言機(jī)制UML主要以Booch方法、OMT方法[71]和OOSE方法為基礎(chǔ),,同時(shí)也吸收收了其他面向向?qū)ο蠼7椒椒ǖ膬?yōu)點(diǎn),,形成了一種種概念清晰、、表達(dá)能力豐豐富、適用范范圍廣泛的面面向?qū)ο蟮臉?biāo)標(biāo)準(zhǔn)建模語言言。第六章面向向?qū)ο蟮男枨笄蠓治?022/12/3111UML的語言機(jī)制UML通過圖形化的的表示機(jī)制從從多個(gè)側(cè)面刻刻畫系統(tǒng)的分分析和設(shè)計(jì)模模型。UML共定義十種視視圖,可分四四類:(1)用例例圖(usecasediagram)從外部用戶戶的角度描描述系統(tǒng)的的功能,并并指出功能能的執(zhí)行者者。6.2UML概述2022/12/3112UML的語言機(jī)制制(2)靜態(tài)態(tài)圖類圖(classdiagram)、類圖描述系系統(tǒng)的靜態(tài)態(tài)結(jié)構(gòu),類類圖的結(jié)點(diǎn)點(diǎn)表示系統(tǒng)統(tǒng)中的類及及其屬性和和操作,類類圖的邊表表示類之間間的聯(lián)系,,包括繼承承、關(guān)聯(lián)、、依賴、聚聚合等。對(duì)象圖(objectdiagram)對(duì)象圖是類類圖的一個(gè)個(gè)實(shí)例。它它描述在某某種狀態(tài)下下,或者在在某一時(shí)間間段系統(tǒng)中中活躍的對(duì)對(duì)象及其關(guān)關(guān)系。在對(duì)對(duì)象圖中,,一個(gè)類可可以擁有多多個(gè)活躍的的對(duì)象實(shí)例例。包圖(packagediagram)包圖描述系系統(tǒng)的分解解,表示包包(package)以及包之間間的關(guān)系。。包由子包及及類組成。。包之間的關(guān)關(guān)系包括繼繼承、構(gòu)成成與依賴關(guān)關(guān)系。6.2UML概述2022/12/3113UML的語語言言機(jī)機(jī)制制(3)行行為為圖圖交互互圖圖(interactivediagram)狀態(tài)態(tài)圖圖(statechartdiagram)活動(dòng)動(dòng)圖圖(activitydiagram)它們們從從不不同同的的側(cè)側(cè)面面刻刻畫畫系系統(tǒng)統(tǒng)的的動(dòng)動(dòng)態(tài)態(tài)行行為為。。交互互圖圖描描述述對(duì)對(duì)象象之之間間的的消消息息傳傳遞遞。。它它又又可可分分為為順順序序圖圖(sequencediagram)與合合作作圖圖(collaborationdiagram)兩種種形形式式。。順順序序圖圖強(qiáng)強(qiáng)調(diào)調(diào)對(duì)對(duì)象象之之間間消消息息發(fā)發(fā)送送的的時(shí)時(shí)間間序序。。合合作作圖圖更更強(qiáng)強(qiáng)調(diào)調(diào)對(duì)對(duì)象象間間的的動(dòng)動(dòng)態(tài)態(tài)協(xié)協(xié)作作關(guān)關(guān)系系。。合作作圖圖也也可可通通過過消消息息序序號(hào)號(hào)來來表表示示消消息息傳傳遞遞的的時(shí)時(shí)間間序序,,只只不不過過這這種種表表示示不不如如順順序序圖圖那那樣樣直直觀觀。。6.2UML概述2022/12/3114UML的語言機(jī)機(jī)制狀態(tài)圖描描述類的的對(duì)象的的動(dòng)態(tài)行行為。它包含對(duì)對(duì)象所有有可能的的狀態(tài)、、活動(dòng)圖圖描述系系統(tǒng)為完完成某項(xiàng)項(xiàng)功能而而執(zhí)行的的操作序序列,這這些在每每個(gè)狀態(tài)態(tài)下能夠夠響應(yīng)的的事件以以及事件件發(fā)生時(shí)時(shí)的狀態(tài)態(tài)遷移與與響應(yīng)動(dòng)動(dòng)作。操操作序列列可以并并發(fā)和同同步?;顒?dòng)圖中中包含控控制流和和信息流流。控制制流表示示一個(gè)操操作完成成后對(duì)其其后續(xù)操操作的觸觸發(fā),信信息流則則刻畫操操作之間間的信息息交換。。6.2UML概述2022/12/3115UML的語言言機(jī)制制(4)實(shí)實(shí)現(xiàn)圖圖(implementationdiagram)描述軟軟件系系統(tǒng)的的實(shí)現(xiàn)現(xiàn)。構(gòu)件圖圖(componentdiagram)描述軟軟件實(shí)實(shí)現(xiàn)系系統(tǒng)中中各組組成部部件以以及它它們之之間的的依賴賴關(guān)系系。一個(gè)部部件可可能是是一個(gè)個(gè)資源源描述述文件件、一一個(gè)二二進(jìn)制制文件件或一一個(gè)可可執(zhí)行行文件件。構(gòu)件圖圖用于于理解解和分分析軟軟件各各部分分之間間的相相互影影響程程度。。6.2UML概述2022/12/3116UML的語言言機(jī)制制部署圖圖(deploymentdiagram)描述軟軟件系系統(tǒng)運(yùn)運(yùn)行環(huán)環(huán)境的的硬件件及網(wǎng)網(wǎng)絡(luò)的的物理理體系系結(jié)構(gòu)構(gòu)。結(jié)點(diǎn)表表示實(shí)實(shí)際的的計(jì)算算機(jī)和和設(shè)備備,邊邊表示示結(jié)點(diǎn)點(diǎn)之間間的物物理連連接關(guān)關(guān)系,也可可顯示示連接接的類類型及及結(jié)點(diǎn)點(diǎn)之間間的依依賴性性。在結(jié)點(diǎn)點(diǎn)內(nèi)部部,可可以放放置可可執(zhí)行行部件件和對(duì)對(duì)象以以顯示示結(jié)點(diǎn)點(diǎn)與可可執(zhí)行行軟件件單元元之間間的對(duì)對(duì)應(yīng)關(guān)關(guān)系。。部署圖圖對(duì)于于軟件件安裝裝工程程師有有重要要的參參考價(jià)價(jià)值。。6.2UML概述2022/12/3117例:課程程注冊(cè)管理理系統(tǒng)的用用例圖課表維護(hù)、、個(gè)人課程程規(guī)劃和選選課學(xué)生花花名冊(cè)查詢?cè)?。教?wù)管管理人員使使用“課表表維護(hù)”用用例,設(shè)置置或修改課課程屬性((課程的時(shí)時(shí)間、地點(diǎn)點(diǎn)、上課老老師等),,增刪課程程;學(xué)生使用““個(gè)人課程程規(guī)劃”用用例選課、、修改自己己的個(gè)人課課表,收費(fèi)費(fèi)管理系統(tǒng)統(tǒng)根據(jù)每個(gè)個(gè)學(xué)生的選選課情況計(jì)計(jì)算其應(yīng)繳繳費(fèi)用;老師使用““選課學(xué)生生花名冊(cè)查查詢”用例例獲取選定定其所開課課程的學(xué)生生花名冊(cè)。。6.2UML概述2022/12/3118課程注冊(cè)冊(cè)管理系系統(tǒng)的用用例圖圖6.2表示課課程注冊(cè)冊(cè)管理系系統(tǒng)包括括:“教務(wù)管管理人員員”、““學(xué)生””、“老老師”、、“課程程”、““課程設(shè)設(shè)置”、、“課程程注冊(cè)表表”、““課程注注冊(cè)管理理器”、、“課程程管理器器”八個(gè)個(gè)類。前三個(gè)類類為一般般化的““用戶””類的子子類。一門“課課程”可可由一到到多個(gè)““課程設(shè)設(shè)置”構(gòu)構(gòu)成,例例如,對(duì)對(duì)于全校校性的公公共基礎(chǔ)礎(chǔ)課,由由于選修修的學(xué)生生太多,,必須安安排不同同的老師師、不同同的教室室或者不不同的時(shí)時(shí)間段。?!皩W(xué)生””、“老老師”與與“課程程設(shè)置””之間,,“課程程注冊(cè)表表”與““課程注注冊(cè)管理理器”之之間,以以及“課課程注冊(cè)冊(cè)管理器器”與““課程””之間存存在著關(guān)關(guān)聯(lián)關(guān)系系。6.2UML概述2022/12/3119課程注冊(cè)冊(cè)管理系系統(tǒng)的類類圖6.2UML概述2022/12/3120用UML順序圖表示““個(gè)人課程規(guī)規(guī)劃”

用例例中的學(xué)生選選課過程6.2UML概述2022/12/3121用UML協(xié)作圖表示““個(gè)人課程規(guī)規(guī)劃”

用例例中的學(xué)生選選課過程6.2UML概述2022/12/3122UML狀態(tài)態(tài)圖圖示示例例“課課程程設(shè)設(shè)置置””對(duì)對(duì)象象的的狀狀態(tài)態(tài)圖圖表表示示,,每每個(gè)個(gè)““課課程程設(shè)設(shè)置置””最最多多只只能能容容納納50個(gè)個(gè)選選課課學(xué)學(xué)生生。。6.2UML概述述2022/12/3123UML的語語言言機(jī)機(jī)制制本章章的的后后續(xù)續(xù)章章節(jié)節(jié)將將結(jié)結(jié)合合需需求求分分析析過過程程介介紹紹UML的用用例例圖圖、、包包圖圖、、類類圖圖和和活活動(dòng)動(dòng)圖圖第十十章章將將結(jié)結(jié)合合軟軟件件設(shè)設(shè)計(jì)計(jì)過過程程介介紹紹順順序序圖圖、、協(xié)協(xié)作作圖圖、、狀狀態(tài)態(tài)圖圖和和活活動(dòng)動(dòng)圖圖。。6.2UML概述述2022/12/3124基于于UML的軟軟件件開開發(fā)發(fā)過過程程雖然然UML是獨(dú)獨(dú)立立于于軟軟件件開開發(fā)發(fā)過過程程的的,,即即,,UML能夠夠在在幾幾乎乎任任何何一一種種軟軟件件開開發(fā)發(fā)過過程程中中使使用用,,但但是是,,熟熟悉悉一一種種有有代代表表性性的的面面向向?qū)?duì)象象的的軟軟件件開開發(fā)發(fā)過過程程,,并并知知悉悉UML各語言言要素素在過過程中中不同同階段段的應(yīng)應(yīng)用,,對(duì)于于理解解UML將大有有裨益益。圖6.6表表示了了一種種迭代代的漸漸進(jìn)式式軟件件開發(fā)發(fā)過程程,它它包含含四個(gè)個(gè)階段段:初初啟,,細(xì)化化,構(gòu)構(gòu)造和和移交交。6.2UML概述2022/12/3125面向?qū)?duì)象的的迭代代、漸漸進(jìn)式式軟件件開發(fā)發(fā)過程程6.2UML概述2022/12/31261初初啟在初啟啟階段段,軟軟件項(xiàng)項(xiàng)目的的發(fā)起起人確確定項(xiàng)項(xiàng)目的的主要要目標(biāo)標(biāo)和范范圍,,并進(jìn)進(jìn)行初初步的的可行行性分分析和和經(jīng)濟(jì)濟(jì)效益益分析析。6.2UML概述2022/12/31272細(xì)化化細(xì)化階段段的開始始標(biāo)志著著項(xiàng)目的的正式確確立。軟軟件項(xiàng)目目組在此此階段需需要完成成以下工工作:(1)初初步的需需求分析析。采用用UML的用例描描述目標(biāo)標(biāo)軟件系系統(tǒng)所有有比較重重要、比比較有風(fēng)風(fēng)險(xiǎn)的用用例,利利用用例例圖表示示參與者者與用例例、以及及用例與與用例之之間的關(guān)關(guān)系。采采用UML的類圖表表示目標(biāo)標(biāo)軟件系系統(tǒng)所基基于的應(yīng)應(yīng)用領(lǐng)域域中的概概念及概概念之間間的關(guān)系系。這些些相互關(guān)關(guān)聯(lián)的概概念構(gòu)成成領(lǐng)域模模型。領(lǐng)領(lǐng)域模型型一方面面可以幫幫助軟件件項(xiàng)目組組理解業(yè)業(yè)務(wù)背景景,與業(yè)業(yè)務(wù)專家家進(jìn)行有有效溝通通;另一一方面,,隨著軟軟件開發(fā)發(fā)階段的的不斷推推進(jìn),領(lǐng)領(lǐng)域模型型將成為為軟件結(jié)結(jié)構(gòu)的主主要基礎(chǔ)礎(chǔ)。如果果領(lǐng)域中中含有明明顯的流流程處理理成分,,可以考考慮利用用UML的活動(dòng)圖圖來刻畫畫領(lǐng)域中中的工作作流,并并標(biāo)識(shí)業(yè)業(yè)務(wù)流程程中的并并發(fā)、同同步等特特征。6.2UML概述2022/12/3128細(xì)化(2)初初步的高高層設(shè)計(jì)計(jì)。如果果目標(biāo)軟軟件系統(tǒng)統(tǒng)的規(guī)模模比較龐龐大,那那么,經(jīng)經(jīng)初步需需求分析析獲得的的用例、、類將會(huì)會(huì)非常多多。此時(shí)時(shí),可以以考慮根根據(jù)用例例、類在在業(yè)務(wù)領(lǐng)領(lǐng)域中的的關(guān)系,,或者根根據(jù)業(yè)務(wù)務(wù)領(lǐng)域中中某種有有意義的的分類方方法將整整個(gè)軟件件系統(tǒng)劃劃分為若若干個(gè)包包,利用用UML的包圖刻畫這這些包及其關(guān)關(guān)系。如此,,用例、用例例圖、類、類類圖將依據(jù)包包的劃分方法法分屬于不同同的包,從而而給出整個(gè)目目標(biāo)軟件系統(tǒng)統(tǒng)的高層結(jié)構(gòu)構(gòu)。6.2UML概述2022/12/3129細(xì)化(3)部分的的詳細(xì)設(shè)計(jì)。。對(duì)于系統(tǒng)中中某些重要的的、或者風(fēng)險(xiǎn)險(xiǎn)比較高的用用例,可以采采用交互圖進(jìn)進(jìn)一步探討其其內(nèi)部實(shí)現(xiàn)過過程。同樣,,對(duì)于系統(tǒng)中中的關(guān)鍵類,,也可以詳細(xì)細(xì)研究其屬性性和操作,并并在UML類圖中加以表表現(xiàn)。因此,,這里倡導(dǎo)的的軟件開發(fā)過過程并不在時(shí)時(shí)間軸上嚴(yán)格格分劃分析與與設(shè)計(jì)、總體體設(shè)計(jì)與詳細(xì)細(xì)設(shè)計(jì),而是是根據(jù)軟件元元素(用例、、類等)的重重要性和風(fēng)險(xiǎn)險(xiǎn)程度確立優(yōu)優(yōu)先細(xì)化原則則,建議軟件件項(xiàng)目組優(yōu)先先考慮重要的的、比較有風(fēng)風(fēng)險(xiǎn)的用例和和類,不能將將風(fēng)險(xiǎn)的識(shí)別別和解決延遲遲到細(xì)化階段段之后。6.2UML概述2022/12/3130(4)部部分的原原型構(gòu)造。。在許多情情形下,針針對(duì)某些復(fù)復(fù)雜的用例例構(gòu)造可實(shí)實(shí)際運(yùn)行的的原型是解解決技術(shù)風(fēng)風(fēng)險(xiǎn)、讓用用戶幫助軟軟件項(xiàng)目組組確認(rèn)用戶戶需求的最最有效方法法。為了構(gòu)構(gòu)造原型,,需要針對(duì)對(duì)用例生成成詳盡的交交互圖,對(duì)對(duì)所有相關(guān)關(guān)類給出明明確的屬性性和操作定定義。在細(xì)化階段段可能需要要使用的UML語言機(jī)制包包括:描述述用戶需求求的用例及及用例圖,,表示領(lǐng)域域概念模型型的類圖,,表示業(yè)務(wù)務(wù)流程處理理的活動(dòng)圖圖,表示系系統(tǒng)高層結(jié)結(jié)構(gòu)的包圖圖,表示用用例內(nèi)部實(shí)實(shí)現(xiàn)過程的的交互圖等等。細(xì)化階段的的結(jié)束條件件是,所有有主要的用用戶需求已已通過用例例和用例圖圖得以描述述;所有重重要的風(fēng)險(xiǎn)險(xiǎn)已被標(biāo)識(shí)識(shí),并對(duì)風(fēng)風(fēng)險(xiǎn)應(yīng)對(duì)措措施了如指指掌;能夠夠比較精確確地估算實(shí)實(shí)現(xiàn)每一用用例的時(shí)間間。細(xì)化6.2UML概述2022/12/31313構(gòu)構(gòu)造造在構(gòu)構(gòu)造造階階段段,,開開發(fā)發(fā)人人員員通通過過一一系系列列的的迭迭代代完完成成對(duì)對(duì)所所有有用用例例的的軟軟件件實(shí)實(shí)現(xiàn)現(xiàn)工工作作,,在在每每次次迭迭代代中中實(shí)實(shí)現(xiàn)現(xiàn)一一部部分分用用例例。。以迭迭代代方方式式實(shí)實(shí)現(xiàn)現(xiàn)所所有有用用例例的的好好處處在在于于,,用用戶戶可可以以及及早早參參與與對(duì)對(duì)已已實(shí)實(shí)現(xiàn)現(xiàn)用用例例的的實(shí)實(shí)際際評(píng)評(píng)價(jià)價(jià),,提提出出改改進(jìn)進(jìn)意意見見,,降降低低大大型型軟軟件件系系統(tǒng)統(tǒng)的的開開發(fā)發(fā)風(fēng)風(fēng)險(xiǎn)險(xiǎn)。。6.2UML概述述2022/12/3132構(gòu)造造在實(shí)實(shí)際際開開始始構(gòu)構(gòu)造造軟軟件件系系統(tǒng)統(tǒng)之之前前,,有有必必要要預(yù)預(yù)先先制制定定迭迭代代計(jì)計(jì)劃劃。。計(jì)計(jì)劃劃的的制制定定需需遵遵循循兩兩項(xiàng)項(xiàng)原原則則::(1))用用戶戶認(rèn)認(rèn)為為業(yè)業(yè)務(wù)務(wù)價(jià)價(jià)值值較較大大的的用用例例應(yīng)應(yīng)優(yōu)優(yōu)先先安安排排。。(2))開開發(fā)發(fā)人人員員評(píng)評(píng)估估后后認(rèn)認(rèn)為為開開發(fā)發(fā)風(fēng)風(fēng)險(xiǎn)險(xiǎn)較較高高的的用用例例應(yīng)應(yīng)優(yōu)優(yōu)先先安安排排。。在迭代計(jì)計(jì)劃中,,要確定定迭代次次數(shù)、每每次迭代代所需時(shí)時(shí)間,以以及每次次迭代中中應(yīng)完成成(或部部分完成成)的用用例。每次迭代代過程由由針對(duì)用用例的分分析、設(shè)設(shè)計(jì)、編編碼、測(cè)測(cè)試、集集成共5個(gè)子階階段構(gòu)成成。在集集成之后后,用戶戶可以對(duì)對(duì)用例的的實(shí)現(xiàn)效效果進(jìn)行行評(píng)價(jià),,提出修修改意見見。這些些修改意意見可以以在本次次迭代過過程中立立即實(shí)現(xiàn)現(xiàn),也可可以在下下次迭代代中再予予考慮。。6.2UML概述2022/12/3133構(gòu)造構(gòu)造過程程中,需需要使用用UML的交互圖圖來設(shè)計(jì)計(jì)用例的的實(shí)現(xiàn)方方法。為為了與設(shè)設(shè)計(jì)得出出的交互互圖協(xié)調(diào)調(diào)一致,,需要修修改或精精化在細(xì)細(xì)化階段段繪制的的作為領(lǐng)領(lǐng)域模型型的類圖圖,增加加一些為為軟件實(shí)實(shí)現(xiàn)所必必需的類類、類的的屬性或或方法。。如果一一個(gè)類有有復(fù)雜的的生命周周期行為為,或者者類的對(duì)對(duì)象在生生命周期期內(nèi)需要要對(duì)各種種外部事事件的刺刺激作出出反應(yīng),,應(yīng)考慮慮用UML狀態(tài)圖圖來表表述類類的對(duì)對(duì)象的的行為為。UML的活動(dòng)動(dòng)圖可可以在在構(gòu)造造階段段用來來表示示復(fù)雜雜的算算法過過程和和有多多個(gè)對(duì)對(duì)象參參與的的業(yè)務(wù)務(wù)處理理過程程?;罨顒?dòng)圖圖尤其其適用用于表表示過過程中中的并并發(fā)和和同步步。在構(gòu)造造階段段的每每次迭迭代過過程中中,可可以對(duì)對(duì)細(xì)化化階段段繪出出的包包圖進(jìn)進(jìn)行修修改或或精化化,以以便包包圖切切實(shí)反反映目目標(biāo)軟軟件系系統(tǒng)最最頂層層的結(jié)結(jié)構(gòu)劃劃分狀狀況。。6.2UML概述2022/12/3134構(gòu)造階階段可可能使使用的的UML語言機(jī)機(jī)制(1))用例例及用用例圖圖。它它們是是開發(fā)發(fā)人員員在構(gòu)構(gòu)造階階段進(jìn)進(jìn)行分分析和和設(shè)計(jì)計(jì)的基基礎(chǔ)。。(2))類圖圖。在在領(lǐng)域域概念念模型型的基基礎(chǔ)上上引進(jìn)進(jìn)為軟軟件實(shí)實(shí)現(xiàn)所所必需需的類類、屬屬性和和方法法。(3))交互互圖::表示示針對(duì)對(duì)用例例設(shè)計(jì)計(jì)的軟軟件實(shí)實(shí)現(xiàn)方方法。。(4))狀態(tài)態(tài)圖::表示示類的的對(duì)象象的狀狀態(tài)——事件件—響響應(yīng)行行為。。(5))活動(dòng)動(dòng)圖::表示示復(fù)雜雜的算算法過過程,,尤其其是過過程中中的并并發(fā)和和同步步。(6))包圖圖:表表示目目標(biāo)軟軟件系系統(tǒng)的的頂層層結(jié)構(gòu)構(gòu)。(7))構(gòu)件件圖。。(8))部署署圖。。6.2UML概述2022/12/31354移交在移交階段段,開發(fā)人人員對(duì)構(gòu)造造階段獲得得的軟件系系統(tǒng)在用戶戶實(shí)際工作作環(huán)境(或或接近實(shí)際際的模擬環(huán)環(huán)境)中試試運(yùn)行,根根據(jù)用戶的的修改意見見進(jìn)行少量量調(diào)整。6.2UML概述2022/12/31366.3基于UML的需求分析析初步業(yè)務(wù)需需求描述形形成后,基基于UML的需求分析析分為以下下步驟:(1)利用用用例及用用例圖表示示需求:從從業(yè)務(wù)需求求描述出發(fā)發(fā)獲取執(zhí)行行者和場(chǎng)景景;對(duì)場(chǎng)景景進(jìn)行匯總總、分類、、抽象,形形成用例;;確定執(zhí)行行者與用例例、用例與與用例圖之之間的關(guān)系系,生成用用例圖。(2)利用用包圖及類類圖表示目目標(biāo)軟件系系統(tǒng)的總體體框架結(jié)構(gòu)構(gòu):根據(jù)領(lǐng)域知知識(shí)、業(yè)務(wù)務(wù)需求和工工作經(jīng)驗(yàn),,設(shè)計(jì)目標(biāo)標(biāo)軟件系統(tǒng)統(tǒng)的頂層架架構(gòu);從業(yè)務(wù)需求求描述中提提取“關(guān)鍵鍵概念”,,形成領(lǐng)域域概念模型型;從概念模型型和用例出出發(fā),研究究系統(tǒng)中主主要的類之之間的關(guān)系系,生成類類圖。第六章面面向?qū)ο蟮牡男枨蠓治鑫?022/12/3137需求求分分析析過過程程6.3基基于于UML的需需求求分分析析2022/12/3138開發(fā)場(chǎng)景場(chǎng)景從從單個(gè)執(zhí)行者者的角度觀察察目標(biāo)軟件系系統(tǒng)的功能和和外部行為。。這種功能通通過系統(tǒng)與用用戶之間的交交互表征。場(chǎng)場(chǎng)景是用戶與與系統(tǒng)進(jìn)行交交互的一組具具體的動(dòng)作。。場(chǎng)景是用例例的實(shí)例,而而用例是某類類場(chǎng)景的共同同抽象。對(duì)場(chǎng)景的完整整描述包含場(chǎng)場(chǎng)景名稱、執(zhí)執(zhí)行者實(shí)例、、前置條件、、事件流和后后置條件。如,“家庭保保安系統(tǒng)”的的初步需求描描述,具有系系統(tǒng)配置、開開機(jī)、關(guān)機(jī)、、門窗監(jiān)測(cè)、、煙霧監(jiān)測(cè)、、復(fù)位等場(chǎng)景景。6.3基于UML的需求分析2022/12/3139監(jiān)測(cè)場(chǎng)景的描描述場(chǎng)景名稱:門窗監(jiān)測(cè)。。參與執(zhí)行者實(shí)實(shí)例:警報(bào)器,報(bào)報(bào)警電話,顯顯示器,門窗窗監(jiān)視器。前置條件:系統(tǒng)已開機(jī)機(jī)。事件流:(1)門窗監(jiān)監(jiān)視器發(fā)現(xiàn)門門或窗戶發(fā)生生異動(dòng),向軟軟件系統(tǒng)報(bào)告告異常事件。。(2)軟件系系統(tǒng)啟動(dòng)警報(bào)報(bào)器并撥報(bào)警警電話號(hào)碼。。(3)報(bào)警電電話接通后,,軟件系統(tǒng)播播出語音,報(bào)報(bào)告異常事件件發(fā)生的時(shí)間間、地點(diǎn)和事事件的性質(zhì)((門窗異動(dòng)))。(4)系統(tǒng)在在控制面板的的顯示器上顯顯示報(bào)警時(shí)間間及當(dāng)前狀態(tài)態(tài)(報(bào)警:門門窗異動(dòng))。。后置條件:系統(tǒng)處于““報(bào)警”狀態(tài)態(tài)。6.3基于于UML的需求求分析析2022/12/3140場(chǎng)景的的分類類(1)實(shí)際場(chǎng)場(chǎng)景對(duì)實(shí)際際的業(yè)業(yè)務(wù)處處理流流程或或其優(yōu)優(yōu)化流流程的的描述述,是是用戶戶需求求的重重要組組成部部分。。(2)設(shè)想場(chǎng)場(chǎng)景分析人人員對(duì)對(duì)目標(biāo)標(biāo)軟件件系統(tǒng)統(tǒng)投入入應(yīng)用用后經(jīng)經(jīng)改進(jìn)進(jìn)或優(yōu)優(yōu)化的的業(yè)務(wù)務(wù)流程程的描描述。。這種種場(chǎng)景景是紙紙面原原型,,幫助助分析析人員員挖掘掘潛在在的用用戶需需求。。(3)評(píng)價(jià)場(chǎng)場(chǎng)景確認(rèn)需需求或或提出出改進(jìn)進(jìn)建議議為主主要目目的的的業(yè)務(wù)務(wù)流程程描述述。評(píng)評(píng)價(jià)場(chǎng)場(chǎng)景可可以在在用例例生成成后對(duì)對(duì)用例例進(jìn)行行實(shí)例例化而而形成成,以以便用用戶對(duì)對(duì)用例例進(jìn)行行評(píng)價(jià)價(jià)或改改進(jìn)。。(4)培訓(xùn)場(chǎng)場(chǎng)景::面向向開發(fā)發(fā)人員員及用用戶解解釋系系統(tǒng)的的功能能和外外部行行為的的業(yè)務(wù)務(wù)流程程描述述。6.3基基于于UML的需需求求分分析析2022/12/3141場(chǎng)景景的的獲獲取取確定定執(zhí)執(zhí)行行者者和和場(chǎng)場(chǎng)景景的的關(guān)關(guān)鍵鍵在在于于理理解解業(yè)業(yè)務(wù)務(wù)領(lǐng)領(lǐng)域域和和初初步步需需求求描描述述文文檔檔。。下下列列問問題題的的回回答答可可幫幫助助分分析析人人員員獲獲取取場(chǎng)場(chǎng)景景::(1))目標(biāo)標(biāo)軟軟件件系系統(tǒng)統(tǒng)有有哪哪些些執(zhí)執(zhí)行行者者??(2))執(zhí)行行者者希希望望系系統(tǒng)統(tǒng)執(zhí)執(zhí)行行的的任任務(wù)務(wù)有有哪哪些些??(3))執(zhí)行行者者希希望望獲獲得得哪哪些些信信息息??這這些些信信息息由由誰誰生生成成??由由誰誰修修改改??(4))執(zhí)行行者者需需要要通通知知系系統(tǒng)統(tǒng)哪哪些些事事件件??系系統(tǒng)統(tǒng)響響應(yīng)應(yīng)這這些些事事件件時(shí)時(shí)會(huì)會(huì)表表現(xiàn)現(xiàn)出出哪哪些些外外部部行行為為??(5))系統(tǒng)統(tǒng)將將通通告告執(zhí)執(zhí)行行者者哪哪些些事事件件??場(chǎng)景景將將促促成成開開發(fā)發(fā)人人員員和和用用戶戶對(duì)對(duì)于于業(yè)業(yè)務(wù)務(wù)處處理理流流程程和和目目標(biāo)標(biāo)軟軟件件系系統(tǒng)統(tǒng)的的功功能能范范圍圍的的共共同同理理解解。。在在場(chǎng)場(chǎng)景景確確定定之之后后,,通通過過對(duì)對(duì)場(chǎng)場(chǎng)景景的的匯匯總總、、分分類類歸歸并并、、抽抽象象即即可可形形成成用用例例。。6.3基基于于UML的需需求求分分析析2022/12/3142生成用例從外部用戶戶的視角看看,一個(gè)用用例是執(zhí)行行者(actor)與目標(biāo)軟件件系統(tǒng)之間間一次典型型的交互作作用。從軟件系統(tǒng)統(tǒng)內(nèi)部的視視角出發(fā),,一個(gè)用例例代表著系系統(tǒng)執(zhí)行的的一系列動(dòng)動(dòng)作,動(dòng)作作執(zhí)行的結(jié)結(jié)果能夠被被外部的執(zhí)執(zhí)行者所察察覺。執(zhí)行者指外外部用戶或或外部實(shí)體體在系統(tǒng)中中扮演的角角色。如果多個(gè)用用戶在使用用目標(biāo)軟件件系統(tǒng)時(shí)扮扮演同一角角色,這些些用戶用單單一執(zhí)行者者表示。如果一個(gè)用用戶扮演多多種角色,,則需要用用多個(gè)執(zhí)行行者來表示示同一用戶戶。6.3基于于UML的需求分析析2022/12/3143生成用例對(duì)用例的完完整描述包包括用例名名稱、參與與執(zhí)行者、、前置條件件、一個(gè)主主事件流、、0到多個(gè)輔事事件流、后后置條件。。主事件流表表示正常情情況下執(zhí)行行者與系統(tǒng)統(tǒng)之間的信信息交互及及動(dòng)作序列列,輔事件件流則表示示特殊情況況或異常情情況下的信信息交互及及動(dòng)作序列列。顯式地分隔隔主、輔事事件流是為為了使分析析人員首先先聚焦于正正常的業(yè)務(wù)務(wù)處理流程程,同時(shí)也也便于用例例的讀者理理解業(yè)務(wù)需需求。6.3基于于UML的需求分析析2022/12/3144生成用例用例源于分分析人員對(duì)對(duì)場(chǎng)景的分分類和抽象象,對(duì)相似似場(chǎng)景進(jìn)行行歸并,使使得一個(gè)用用例可以通通過實(shí)例化化、參數(shù)調(diào)調(diào)節(jié)而涵蓋蓋多個(gè)場(chǎng)景景。例如,“家家庭保安系系統(tǒng)”中的的“開機(jī)””、“關(guān)機(jī)機(jī)”、“復(fù)復(fù)位”三個(gè)個(gè)場(chǎng)景可以以歸并為““命令處理理”用例,,三個(gè)場(chǎng)景景之間的差差異通過用用戶命令區(qū)區(qū)分。門窗監(jiān)測(cè)、、煙霧監(jiān)測(cè)測(cè)兩個(gè)場(chǎng)景景可歸并為為統(tǒng)一的““傳感器監(jiān)監(jiān)測(cè)”用例例。熟悉業(yè)務(wù)領(lǐng)領(lǐng)域的分析析師,可以以略過場(chǎng)景景,直接從從業(yè)務(wù)需求求描述中獲獲取用例。。在家庭保安安系統(tǒng)中,,執(zhí)行者有有“用戶””、“傳感感器”、““警報(bào)器””、“報(bào)警警電話”、、“顯示器器”,用例例有“系統(tǒng)統(tǒng)配置”、、“命令響響應(yīng)”和““傳感器監(jiān)監(jiān)測(cè)”。6.3基于于UML的需求分析析2022/12/3145“傳感器監(jiān)測(cè)測(cè)”用例的描描述用例名稱:傳感器監(jiān)測(cè)測(cè)參與執(zhí)行者:各類傳感器器,警報(bào)器,,報(bào)警電話,,顯示器前置條件:系統(tǒng)已開機(jī)機(jī)。主事件流:(1)傳感器器向目標(biāo)軟件件系統(tǒng)上報(bào)其其監(jiān)測(cè)數(shù)據(jù),,系統(tǒng)判斷監(jiān)監(jiān)測(cè)數(shù)據(jù)正常常。(2)如果不不正常,系統(tǒng)統(tǒng)啟動(dòng)警報(bào)器器,撥報(bào)警電電話號(hào)碼。(3)報(bào)警電電話接通后,,軟件系統(tǒng)播播出語音,報(bào)報(bào)告異常事件件發(fā)生的時(shí)間間、地點(diǎn)和事事件的性質(zhì)。。(4)系統(tǒng)在在控制面板的的顯示器上顯顯示報(bào)警時(shí)間間及當(dāng)前狀態(tài)態(tài)(報(bào)警)。。6.3基于UML的需求分析2022/12/3146“傳感感器監(jiān)監(jiān)測(cè)””用例例的描描述輔事件件流:(1))如果果報(bào)警警電話話無人人接聽聽,則則按照照重?fù)軗苎舆t遲反復(fù)復(fù)撥號(hào)號(hào),直直至電電話接接通,,再轉(zhuǎn)轉(zhuǎn)入主主事件件流的的步驟驟(3)。(2))如果果重?fù)軗艽螖?shù)數(shù)達(dá)到到系統(tǒng)統(tǒng)預(yù)設(shè)設(shè)的最最大次次數(shù),,電話話仍無無人接接聽,,則跳跳過主主事件件流的的步驟驟(3),轉(zhuǎn)轉(zhuǎn)入步步驟((4)。后置條條件:如果已已發(fā)現(xiàn)現(xiàn)異常常的監(jiān)監(jiān)測(cè)數(shù)數(shù)據(jù),,系統(tǒng)統(tǒng)處于于“報(bào)報(bào)警””狀態(tài)態(tài);否否則系系統(tǒng)處處于正正常的的“監(jiān)監(jiān)測(cè)””狀態(tài)態(tài)。6.3基于于UML的需求求分析析2022/12/3147用活動(dòng)動(dòng)圖表表示用用例用例的的描述述既可可采用用自然然語言言,也也可采采用活活動(dòng)圖圖,活活動(dòng)圖圖表示示法更更為精精確、、直觀觀。下面介介紹活活動(dòng)圖圖的語語法機(jī)機(jī)制,,然后后結(jié)合合實(shí)例例說明明如何何用活活動(dòng)圖圖表示示用例例。6.3基于于UML的需求求分析析2022/12/31481UML活動(dòng)動(dòng)圖圖用例例的的事事件件流流或或者者操操作作均均可可表表示示為為一一系系列列的的活活動(dòng)動(dòng),,每每個(gè)個(gè)活活動(dòng)動(dòng)在在活活動(dòng)動(dòng)圖圖中中被被表表示示為為一一個(gè)個(gè)結(jié)結(jié)點(diǎn)點(diǎn)。。結(jié)點(diǎn)點(diǎn)之之間間的的有有向向邊邊表表示示順順序序執(zhí)執(zhí)行行的的活活動(dòng)動(dòng)。。在結(jié)結(jié)點(diǎn)點(diǎn)間間的的連連接接邊邊上上可可以以附附加加條條件件表表達(dá)達(dá)式式,,表表示示在在有有向向連連接接邊邊的的源源結(jié)結(jié)點(diǎn)點(diǎn)執(zhí)執(zhí)行行完完成成后后,,如如果果條條件件成成立立,,則則開開始始執(zhí)執(zhí)行行有有向向連連接接邊邊的的目目標(biāo)標(biāo)結(jié)結(jié)點(diǎn)點(diǎn)所所表表示示的的活活動(dòng)動(dòng);;如如果果條條件件不不成成立立,,則則目目標(biāo)標(biāo)結(jié)結(jié)點(diǎn)點(diǎn)的的活活動(dòng)動(dòng)不不執(zhí)執(zhí)行行。。菱形形在在活活動(dòng)動(dòng)圖圖中中表表示示條條件件判判斷斷,,條條件件表表達(dá)達(dá)式式一一般般出出現(xiàn)現(xiàn)在在以以菱菱形形為為源源結(jié)結(jié)點(diǎn)點(diǎn)的的有有向向邊邊上上。?;顒?dòng)動(dòng)圖圖可可以以表表示示過過程程的的并并發(fā)發(fā)。?;罨顒?dòng)動(dòng)圖圖的的同同步步條條(水平平或或者者垂垂直直粗粗線線)可以以將將一一條條有有向向連連接接邊邊分分叉叉為為多多個(gè)個(gè)并并發(fā)發(fā)執(zhí)執(zhí)行行的的分分支支進(jìn)進(jìn)程程,,或或?qū)⒍喽鄠€(gè)個(gè)有有向向連連接接邊邊上上的的進(jìn)進(jìn)程程同同步步合合并并為為一一個(gè)個(gè)進(jìn)進(jìn)程程。。6.3基基于于UML的需需求求分分析析2022/12/3149UML活動(dòng)圖圖泳道為了描描述活活動(dòng)的的責(zé)任任對(duì)象象,活活動(dòng)圖圖引進(jìn)進(jìn)了““泳道道”的的概念念。泳泳道是是由垂垂直長(zhǎng)長(zhǎng)線分分割出出來的的矩形形區(qū)域域,在在泳道道上方方的對(duì)對(duì)象負(fù)負(fù)責(zé)該該矩形形區(qū)域域內(nèi)的的所有有活動(dòng)動(dòng)。如,在在圖6.8中,類類“Customer”的對(duì)象象負(fù)責(zé)責(zé)“插插入銀銀行卡卡”、、“輸輸入密密碼””、““選擇擇功能能”、、“輸輸入金金額””四項(xiàng)項(xiàng)活動(dòng)動(dòng),其其余活活動(dòng)由由類““ATMsystem”的對(duì)象象負(fù)責(zé)責(zé)。6.3基于于UML的需求求分析析2022/12/3150典型的的活動(dòng)動(dòng)圖6.3基于于UML的需求求分析析2022/12/31512用例的活動(dòng)動(dòng)圖表示傳感器監(jiān)測(cè)測(cè)用例活動(dòng)動(dòng)圖6.3基于于UML的需求分析析2022/12/3152生成用例圖圖執(zhí)行者與用用例之間的的關(guān)系觸發(fā)執(zhí)行信息交換觸發(fā)執(zhí)行與與信息交換換如,在“家家庭保安系系統(tǒng)”中,,執(zhí)行者““用戶”在在觸發(fā)用例例“命令響響應(yīng)”的同同時(shí),還要要向用例傳傳送命令信信息。在UML用例例圖圖中中,,從從執(zhí)執(zhí)行行者者指指向向用用例例的的邊邊表表示示觸觸發(fā)發(fā)執(zhí)執(zhí)行行和和/或信信息息交交換換,,從從用用例例指指向向執(zhí)執(zhí)行行者者的的邊邊則則表表示示用用例例將將生生成成的的信信息息傳傳遞遞給給執(zhí)執(zhí)行行者者。。6.3基基于于UML的需需求求分分析析2022/12/3153UML用例與用例之之間的關(guān)系(1)使用((use)關(guān)系,如果多多個(gè)用例都有有一個(gè)公共的的動(dòng)作序列,,為避免重復(fù)復(fù)并使模型簡(jiǎn)簡(jiǎn)潔,可以將將公共動(dòng)作序序列抽取出來來,構(gòu)成新的的獨(dú)立用例。。原來的多個(gè)用用例與新的用用例之間通過過使用關(guān)系連連接。如,“家庭保保安系統(tǒng)”中中,“系統(tǒng)配配置”和“命命令響應(yīng)”兩兩個(gè)用例都使使用公共的““密碼驗(yàn)證””子用例。(2)擴(kuò)展((extend)關(guān)系。如果一一個(gè)用例的動(dòng)動(dòng)作序列完全全包含另一個(gè)個(gè)用例的動(dòng)作作序列,且前前者含有后者者所不具備的的一些特殊情情況下的處理理動(dòng)作,則稱稱前者擴(kuò)展后后者。例如,,圖6.10中的“傳感器器監(jiān)測(cè)”用例例僅包含正常常的處理流程程,而“報(bào)警警電話未接通通”用例除正正常流程外還還增加了“重重復(fù)撥號(hào)”以以及“重?fù)艽未螖?shù)達(dá)到最大大次數(shù)仍無人人接聽”這兩兩種異常處理理動(dòng)作。6.3基于UML的需求分析2022/12/3154“家庭保安系系統(tǒng)”的用例例圖6.3基于UML的需求分析2022/12/3155建立頂頂層架架構(gòu)頂層架架構(gòu)的的主要要目的的是為為后續(xù)續(xù)的分分析和和設(shè)計(jì)計(jì)活動(dòng)動(dòng)建立立一種種結(jié)構(gòu)構(gòu)和分分劃,,以便便開發(fā)發(fā)人員員在不不同的的開發(fā)發(fā)階段段,以以及同同一開開發(fā)階階段的的不同同開發(fā)發(fā)人員員,能能夠聚聚焦于于系統(tǒng)統(tǒng)的不不同部部分。。頂層架架構(gòu)是是分析析和設(shè)設(shè)計(jì)階階段的的成果果。隨隨著開開發(fā)過過程的的推進(jìn)進(jìn),框框架中中的內(nèi)內(nèi)容不不斷豐豐富、、翔實(shí)實(shí),最最終演演進(jìn)為為完整整的面面向?qū)?duì)象軟軟件結(jié)結(jié)構(gòu)。。6.3基于于UML的需求求分析析2022/12/31561UML包圖UML包圖是表示示頂層架構(gòu)構(gòu)的機(jī)制。。下面首先先介紹包圖圖的語法機(jī)機(jī)制,然后后探討建立立頂層架構(gòu)構(gòu)的方法與與原則。包是UML支持對(duì)類分組的的一種機(jī)制制??梢詮膹哪撤N視角角,將某些些關(guān)聯(lián)密切切的類劃為為一個(gè)包,,而不同包包的兩個(gè)類類的關(guān)聯(lián)應(yīng)應(yīng)比較松散散。對(duì)于大型軟軟件系統(tǒng),,包的劃分分是實(shí)現(xiàn)““分而治之之”的重要要技術(shù)手段段。6.3基于于UML的需求分析析2022/12/3157UML包圖包的依賴和和構(gòu)成關(guān)系系如果對(duì)類A的修改將導(dǎo)導(dǎo)致類B的改變,則則稱B依賴于A。如果兩個(gè)包包中存在具具有依賴關(guān)關(guān)系的兩個(gè)個(gè)類,則稱稱這兩個(gè)包包之間存在在依賴關(guān)系系。包的構(gòu)成關(guān)關(guān)系包可以嵌套套,包可包包含類,也也可包含子子包。為了表示軟軟件架構(gòu),,還需要在在包之間引引進(jìn)“連接接器”邊,,連接器表表示包之間間的信息傳傳遞、事件件發(fā)送、軟軟件調(diào)用等等關(guān)系。連接器分為為單向和雙雙向(即無無向)。6.3基于于UML的需求分析析2022/12/3158包圖示例例“領(lǐng)域””包由““訂單””和“客客戶”兩兩個(gè)子包包構(gòu)成,,“訂單單”包依依賴于““客戶””包。數(shù)據(jù)庫接接口類僅僅定義抽抽象數(shù)據(jù)據(jù)訪問,,數(shù)據(jù)操操作。Oracle接口包和和DB2接口包基基于具體體的數(shù)據(jù)據(jù)庫管理理系統(tǒng)實(shí)實(shí)現(xiàn)通用用接口定定義的抽抽象接口口函數(shù)。。6.3基基于UML的需求分分析2022/12/31592軟件頂層架構(gòu)構(gòu)的設(shè)計(jì)方法結(jié)合實(shí)際需求求,選取架構(gòu)構(gòu)模式,再進(jìn)進(jìn)行局部調(diào)整整。主要架構(gòu)模式式流程處理模式式客戶/服務(wù)器模式、、模型—視圖——控制器模式式分層模式6.3基于UML的需求分析2022/12/3160軟件頂層架構(gòu)構(gòu)的設(shè)計(jì)(1)流程處理模模式。流程處理系統(tǒng)統(tǒng)以算法和數(shù)數(shù)據(jù)結(jié)構(gòu)為中中心,其系統(tǒng)統(tǒng)功能由一系系列的處理步步驟構(gòu)成,相相鄰處理步驟驟用數(shù)據(jù)流通通管道連接。。流程處理模式式適用于批處處理方式的軟軟件系統(tǒng),不不適合交互式式系統(tǒng)。6.3基于UML的需求分析2022/12/3161流程處理模模式流程處理模模式具有三三個(gè)處理步步驟。步驟都使用用公共的系系統(tǒng)服務(wù)((例如數(shù)據(jù)據(jù)庫訪問服服務(wù)),命命令處理和和命令處理理的進(jìn)度、、結(jié)果都通通過用戶界界面。6.3基于于UML的需求分析析2022/12/3162客戶戶/服務(wù)務(wù)器器模模式式(2)客客戶戶/服務(wù)務(wù)器器模模式式。??蛻魬舳硕素?fù)負(fù)責(zé)責(zé)用用戶戶輸輸入入和和處處理理結(jié)結(jié)果果的的呈呈現(xiàn)現(xiàn),,服服務(wù)務(wù)端端負(fù)負(fù)責(zé)責(zé)后后臺(tái)臺(tái)業(yè)業(yè)務(wù)務(wù)處處理理。。6.3基基于于UML的需需求求分分析析2022/12/3163模型——視圖圖—控控制器器(MVC)模式(3)模型型—視視圖——控制制器模模式軟件系系統(tǒng)由由模型型、視視圖和和控制制器三三部分分組成成。模型負(fù)負(fù)責(zé)維維護(hù)并并保存存具有有持久久性的的業(yè)務(wù)務(wù)數(shù)據(jù)據(jù),實(shí)實(shí)現(xiàn)業(yè)業(yè)務(wù)處處理功功能,,并將將業(yè)務(wù)務(wù)數(shù)據(jù)據(jù)的變變化情情況及及時(shí)通通知視視圖。。視圖負(fù)負(fù)責(zé)呈呈現(xiàn)模模型中中包含含的業(yè)業(yè)務(wù)數(shù)數(shù)據(jù),,響應(yīng)應(yīng)模型型變化化通知知,更更新呈呈現(xiàn)形形式,,向控控制器器傳遞遞用戶戶的界界面動(dòng)動(dòng)作。。控制器器負(fù)責(zé)責(zé)將用用戶的的界面面動(dòng)作作映射射為模模型中中的業(yè)業(yè)務(wù)處處理功功能并并實(shí)際際調(diào)用用之,,然后后根據(jù)據(jù)模型型返回回的業(yè)業(yè)務(wù)處處理結(jié)結(jié)果選選擇新新的視視圖。。MVC模式特特別適適合于于分布式式應(yīng)用用軟件件,尤其是是Web應(yīng)用系系統(tǒng)6.3基于于UML的需求求分析析2022/12/3164分層模模式(4)分層層模式式將整個(gè)個(gè)軟件件系統(tǒng)統(tǒng)分為為若干干層次次,最最頂層層直接接面向向用戶戶提供供軟件件系統(tǒng)統(tǒng)的操操作界界面,,其余余各層層為緊緊鄰其其上的的層次次提供供服務(wù)務(wù)。分層模模式可可以有有效降降低軟軟件系系統(tǒng)的的耦合合度,,應(yīng)用用普遍遍。6.3基于于UML的需求求分析析2022/12/3165分層模模式層次劃劃分的的主要要原則則易變化化的部部分,,如用用戶界界面、、與業(yè)業(yè)務(wù)邏邏輯緊緊密相相關(guān)的的部件件,置置于高高層穩(wěn)定部部分,,如公公共的的技術(shù)術(shù)服務(wù)務(wù)部件件,置置于低低層;;每層都盡盡量訪問問緊鄰的的下層,,避免越越級(jí)訪問問,尤其其要避免免逆向訪訪問即,,上層模模塊為下下層模塊塊提供服服務(wù);將目標(biāo)軟軟件系統(tǒng)統(tǒng)的外部部接口置置入較低低層次,,系統(tǒng)其其余部分分對(duì)外部部系統(tǒng)的的訪問或或操作通通過這些些外部接接口提供供的服務(wù)務(wù)來完成成。6.3基基于UML的需求分分析2022/12/3166軟件架構(gòu)在全面了解軟軟件架構(gòu)樣式式的前提下,,對(duì)于具體的的應(yīng)用需求而而言,影響頂頂層架構(gòu)選取取的主要因素素在于分析人人員的經(jīng)驗(yàn)以以及他們對(duì)每每種架構(gòu)樣式式與當(dāng)前軟件件項(xiàng)目之間匹匹配程度的判判斷。大型軟件的的頂層架構(gòu)構(gòu)往往需要要使用多種種架構(gòu)樣式式。如,整整個(gè)目標(biāo)軟軟件系統(tǒng)采采用分層結(jié)結(jié)構(gòu),在系系統(tǒng)的不同同層次內(nèi)再再分別使用用適宜的其其他類型的的架構(gòu)模式式。6.3基于于UML的需求分析析2022/12/3167確立軟件架架構(gòu)(1)架構(gòu)構(gòu)中包的數(shù)數(shù)量包中軟件元元素過多,,應(yīng)對(duì)包進(jìn)進(jìn)一步細(xì)分分;如果過過少,則說說明架構(gòu)過過早地陷入入細(xì)節(jié)。(2)架構(gòu)構(gòu)中包之間間的耦合度度包的依賴關(guān)關(guān)系、連接接關(guān)系應(yīng)盡盡量簡(jiǎn)單、、松散,如如,在分層層結(jié)構(gòu)中,,通常要求求某一層的的軟件元素素只與同層層及下一層層的元素存存在依賴關(guān)關(guān)系。(3)軟件件元素的穩(wěn)穩(wěn)定性抽取不穩(wěn)定定的軟件元元素的相對(duì)對(duì)穩(wěn)定部分分,將不穩(wěn)穩(wěn)定的軟件件元素分類類聚集在少少數(shù)幾個(gè)包包中,以提提高軟件系系統(tǒng)的可維維護(hù)性。6.3基于于UML的需求分析析2022/12/3168確立軟件架構(gòu)構(gòu)(4)軟件元元素的分類將軟件可選功功能和必須實(shí)實(shí)現(xiàn)功能的軟軟件元素分別別置于架構(gòu)的的不同包或子子包中。(5)作為軟軟件系統(tǒng)運(yùn)行行環(huán)境的物理理網(wǎng)絡(luò)拓樸根據(jù)軟件元素素在分布環(huán)境境中的布局,,劃分頂層架架構(gòu)的包,使使包的消息傳傳遞與物理節(jié)節(jié)點(diǎn)的通信相相協(xié)調(diào),頂層層架構(gòu)定義的的通信關(guān)系支支持后續(xù)的分分析和設(shè)計(jì)活活動(dòng)。6.3基于UML的需求分析2022/12/3169確立軟件架構(gòu)構(gòu)(6)軟件元元素的安全、、保密級(jí)別。。根據(jù)安全訪問問的權(quán)限劃分分頂層架構(gòu)中中的包或者子子包。(7)開發(fā)團(tuán)團(tuán)隊(duì)的技術(shù)專專長(zhǎng)。根據(jù)開發(fā)人員員在問題和技技術(shù)領(lǐng)域的專專長(zhǎng)劃分頂層層架構(gòu),使得得每個(gè)包的開開發(fā)都能充分分發(fā)揮開發(fā)人人員和團(tuán)隊(duì)的的技術(shù)專長(zhǎng)(8)調(diào)整軟軟件架構(gòu),支支持并行開發(fā)發(fā)。6.3基于UML的需求分析2022/12/3170建立領(lǐng)領(lǐng)域概概念模模型在用戶戶需求求和相相關(guān)的的業(yè)務(wù)務(wù)領(lǐng)域域中,,有一一些全全局性性的概概念對(duì)對(duì)于理理解需需求至至關(guān)重重要。。因此此,有有必要要抽取取這些些概念念,研研究這這些概概念之之間的的關(guān)系系。UML類圖是是表示示領(lǐng)域域概念念模型型的機(jī)機(jī)制。。下面面首先先介紹紹類圖圖的語語法機(jī)機(jī)制,,然后后探討討建立立領(lǐng)域域概念念模型型的方方法。。6.3基于于UML的需求求分析析2022/12/31711UML類圖在UML中,用類表表示概念,,用類圖表表示領(lǐng)域概概念模型。。在需求分析析的早期,,不需要一一次性列舉舉類的所有有屬性和方方法。剛開開始可以僅僅標(biāo)識(shí)類名名,以后隨隨著分析、、設(shè)計(jì)的不不斷推進(jìn)而而逐步完善善屬性列表表和方法列列表。6.3基于于UML的需求分析析2022/12/3172UML類圖UML的類包含含三個(gè)部部分:類的名稱稱屬性列表表方法列表表表示圖元元如圖所所示。UML類之間的的關(guān)系主主要有繼繼承、聚聚集、關(guān)關(guān)聯(lián)和依依賴。繼承關(guān)系系表示子子類重用用父類的的屬性和和操作,,子類的的對(duì)象也也是父類類的對(duì)象象,有時(shí)時(shí)也稱父父類是子子類的泛泛化(generalization)。6.3基基于UML的需求分分析2022/12/3173UML類圖在課程管理系系統(tǒng)中,“教教務(wù)管理人員員”、“學(xué)生生”和“老師師”都是泛化化的“用戶””類的子類,,它們繼承來來自“用戶””類的用戶姓姓名、標(biāo)識(shí)碼碼、密碼等屬屬性,以及用用戶注冊(cè)、密密碼驗(yàn)證、退退出系統(tǒng)等操操作,見圖6.2。類之間的聚集集關(guān)系是現(xiàn)實(shí)實(shí)世界部分——整體關(guān)系的的模擬。6.3基于UML的需求分析2022/12/3174聚集和和構(gòu)成成關(guān)系系的表表示圖圖元UML將聚集集關(guān)系系分為為普通聚聚集關(guān)關(guān)系:一個(gè)個(gè)部件件對(duì)象象可同同時(shí)參參與多多個(gè)整整體對(duì)對(duì)象。。構(gòu)成關(guān)關(guān)系:限定定一個(gè)個(gè)部件件對(duì)象象在任任意時(shí)時(shí)刻只只能參參與一一個(gè)整整體類類的對(duì)對(duì)象,,部件件類對(duì)對(duì)象與與整體體類對(duì)對(duì)象共共存亡亡。6.3基于于UML的需求求分析析2022/12/3175關(guān)聯(lián)聯(lián)關(guān)關(guān)系系關(guān)聯(lián)聯(lián)關(guān)關(guān)系系表示示兩兩個(gè)個(gè)類類的的對(duì)對(duì)象象之之間間存存在在著著用用于于消消息息傳傳遞遞的的穩(wěn)穩(wěn)定定通通道道。。如,,在在課課程程注注冊(cè)冊(cè)管管理理系系統(tǒng)統(tǒng)中中,,““學(xué)學(xué)生生””類類、、““老老師師””類類與與““課課程程設(shè)設(shè)置置””類類之之間間存存在在關(guān)關(guān)聯(lián)聯(lián)關(guān)關(guān)系系,,因因?yàn)闉椤啊罢n課程程設(shè)設(shè)置置””與與選選課課學(xué)學(xué)生生和和授授課課老老師師有有關(guān)關(guān),,學(xué)學(xué)生生和和老老師師都都需需

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論