版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程
SoftwareEngineering
國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院2004.07齊治昌教授,譚慶平教授,寧洪教授,董威博士2022/12/91國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院
軟件工程
Softwar第六章面向?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)的共用語言。2022/12/92國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院第六章面向?qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖敲嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮母拍钆c思想U(xiǎn)ML概述基于UML的需求分析以“家庭保安系統(tǒng)”為實(shí)例,介紹與需求分析相關(guān)的部分UML語言機(jī)制以及基于UML的面向?qū)ο蟮男枨蠓治龇椒ê瓦^程。第六章面向?qū)ο蟮男枨蠓治?022/12/93國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮母拍钆c思想第六章面向?qū)ο蟮?.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ū)ο蟮男枨蠓治?022/12/94國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.1面向?qū)ο蟮母拍钆c思想客觀世界中的應(yīng)用問題都是由實(shí)體面向?qū)ο蟮母拍钆c思想面向?qū)ο?Object-Oriented,簡(jiǎn)稱OO)的需求分析方法通過提供對(duì)象、對(duì)象間消息傳遞等語言機(jī)制讓分析人員在解空間中直接模擬問題空間中的對(duì)象及其行為,從而削減了語義斷層,為需求建模活動(dòng)提供了直觀、自然的語言支持和方法學(xué)指導(dǎo)。6.1面向?qū)ο蟮母拍钆c思想2022/12/95國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想面向?qū)ο?Object-Oriente面向?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思想2022/12/96國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想為了在解空間模擬現(xiàn)面向?qū)ο蟮母拍钆c思想(2)類。類表示某些對(duì)象在屬性和操作方面的共同特征。例如,直升飛機(jī)、大型客機(jī)、轟炸機(jī)可歸為飛行器類。共同屬性有:位置、速度和顏色等。共同操作有:起飛、降落、加速和維修等。6.1面向?qū)ο蟮母拍钆c思想2022/12/97國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想(2)類。6.1面向?qū)ο蟮母拍钆c思面向?qū)ο蟮母拍钆c思想(3)繼承類之間的繼承關(guān)系是現(xiàn)實(shí)世界中遺傳關(guān)系的模擬,它表示類之間的內(nèi)在聯(lián)系以及對(duì)屬性和操作的共享,即,子類可以沿用父類(被繼承類)的某些特征。子類也可以具有自己獨(dú)有的屬性和操作。例如,飛行器、汽車和輪船可歸于交通工具類,飛行器類可以繼承交通工具類的某些屬性和操作。6.1面向?qū)ο蟮母拍钆c思想2022/12/98國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想(3)繼承6.1面向?qū)ο蟮母拍蠲嫦驅(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思想2022/12/99國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想(4)聚集6.1面向?qū)ο蟮母拍钆c思面向?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思想2022/12/910國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想(5)消息6.1面向?qū)ο蟮?.2UML概述6.2.1UML的語言機(jī)制UML主要以Booch方法、OMT方法[71]和OOSE方法為基礎(chǔ),同時(shí)也吸收了其他面向?qū)ο蠼7椒ǖ膬?yōu)點(diǎn),形成了一種概念清晰、表達(dá)能力豐富、適用范圍廣泛的面向?qū)ο蟮臉?biāo)準(zhǔn)建模語言。第六章面向?qū)ο蟮男枨蠓治?022/12/911國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.2UML概述6.2.1UML的語言機(jī)制第六章面向?qū)ML的語言機(jī)制UML通過圖形化的表示機(jī)制從多個(gè)側(cè)面刻畫系統(tǒng)的分析和設(shè)計(jì)模型。
UML共定義十種視圖,可分四類:(1)用例圖(usecasediagram)從外部用戶的角度描述系統(tǒng)的功能,并指出功能的執(zhí)行者。6.2UML概述2022/12/912國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制UML通過圖形化的表示機(jī)制從多個(gè)側(cè)面刻畫系統(tǒng)UML的語言機(jī)制
(2)靜態(tài)圖類圖(classdiagram)、類圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),類圖的結(jié)點(diǎn)表示系統(tǒng)中的類及其屬性和操作,類圖的邊表示類之間的聯(lián)系,包括繼承、關(guān)聯(lián)、依賴、聚合等。對(duì)象圖(objectdiagram)對(duì)象圖是類圖的一個(gè)實(shí)例。它描述在某種狀態(tài)下,或者在某一時(shí)間段系統(tǒng)中活躍的對(duì)象及其關(guān)系。在對(duì)象圖中,一個(gè)類可以擁有多個(gè)活躍的對(duì)象實(shí)例。包圖(packagediagram)包圖描述系統(tǒng)的分解,表示包(package)以及包之間的關(guān)系。包由子包及類組成。包之間的關(guān)系包括繼承、構(gòu)成與依賴關(guān)系。6.2UML概述2022/12/913國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制(2)靜態(tài)圖6.2UML概述2UML的語言機(jī)制(3)行為圖交互圖(interactivediagram)狀態(tài)圖(statechartdiagram)活動(dòng)圖(activitydiagram)它們從不同的側(cè)面刻畫系統(tǒng)的動(dòng)態(tài)行為。交互圖描述對(duì)象之間的消息傳遞。它又可分為順序圖(sequencediagram)與合作圖(collaborationdiagram)兩種形式。順序圖強(qiáng)調(diào)對(duì)象之間消息發(fā)送的時(shí)間序。合作圖更強(qiáng)調(diào)對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系。合作圖也可通過消息序號(hào)來表示消息傳遞的時(shí)間序,只不過這種表示不如順序圖那樣直觀。6.2UML概述2022/12/914國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制(3)行為圖6.2UML概述2022/12UML的語言機(jī)制狀態(tài)圖描述類的對(duì)象的動(dòng)態(tài)行為。它包含對(duì)象所有可能的狀態(tài)、活動(dòng)圖描述系統(tǒng)為完成某項(xiàng)功能而執(zhí)行的操作序列,這些在每個(gè)狀態(tài)下能夠響應(yīng)的事件以及事件發(fā)生時(shí)的狀態(tài)遷移與響應(yīng)動(dòng)作。操作序列可以并發(fā)和同步?;顒?dòng)圖中包含控制流和信息流??刂屏鞅硎疽粋€(gè)操作完成后對(duì)其后續(xù)操作的觸發(fā),信息流則刻畫操作之間的信息交換。6.2UML概述2022/12/915國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制狀態(tài)圖描述類的對(duì)象的動(dòng)態(tài)行為。6.2UML概UML的語言機(jī)制(4)實(shí)現(xiàn)圖(implementationdiagram)描述軟件系統(tǒng)的實(shí)現(xiàn)。構(gòu)件圖(componentdiagram)描述軟件實(shí)現(xiàn)系統(tǒng)中各組成部件以及它們之間的依賴關(guān)系。一個(gè)部件可能是一個(gè)資源描述文件、一個(gè)二進(jìn)制文件或一個(gè)可執(zhí)行文件。構(gòu)件圖用于理解和分析軟件各部分之間的相互影響程度。
6.2UML概述2022/12/916國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制(4)實(shí)現(xiàn)圖(implementatioUML的語言機(jī)制部署圖(deploymentdiagram)描述軟件系統(tǒng)運(yùn)行環(huán)境的硬件及網(wǎng)絡(luò)的物理體系結(jié)構(gòu)。結(jié)點(diǎn)表示實(shí)際的計(jì)算機(jī)和設(shè)備,邊表示結(jié)點(diǎn)之間的物理連接關(guān)系,也可顯示連接的類型及結(jié)點(diǎn)之間的依賴性。在結(jié)點(diǎn)內(nèi)部,可以放置可執(zhí)行部件和對(duì)象以顯示結(jié)點(diǎn)與可執(zhí)行軟件單元之間的對(duì)應(yīng)關(guān)系。部署圖對(duì)于軟件安裝工程師有重要的參考價(jià)值。6.2UML概述2022/12/917國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制部署圖(deploymentdiagram例:課程注冊(cè)管理系統(tǒng)的用例圖課表維護(hù)、個(gè)人課程規(guī)劃和選課學(xué)生花名冊(cè)查詢。教務(wù)管理人員使用“課表維護(hù)”用例,設(shè)置或修改課程屬性(課程的時(shí)間、地點(diǎn)、上課老師等),增刪課程;學(xué)生使用“個(gè)人課程規(guī)劃”用例選課、修改自己的個(gè)人課表,收費(fèi)管理系統(tǒng)根據(jù)每個(gè)學(xué)生的選課情況計(jì)算其應(yīng)繳費(fèi)用;老師使用“選課學(xué)生花名冊(cè)查詢”用例獲取選定其所開課程的學(xué)生花名冊(cè)。6.2UML概述2022/12/918國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院例:課程注冊(cè)管理系統(tǒng)的用例圖課表維護(hù)、個(gè)人課程規(guī)劃和選課學(xué)課程注冊(cè)管理系統(tǒng)的用例圖圖6.2表示課程注冊(cè)管理系統(tǒng)包括:“教務(wù)管理人員”、“學(xué)生”、“老師”、“課程”、“課程設(shè)置”、“課程注冊(cè)表”、“課程注冊(cè)管理器”、“課程管理器”八個(gè)類。前三個(gè)類為一般化的“用戶”類的子類。一門“課程”可由一到多個(gè)“課程設(shè)置”構(gòu)成,例如,對(duì)于全校性的公共基礎(chǔ)課,由于選修的學(xué)生太多,必須安排不同的老師、不同的教室或者不同的時(shí)間段?!皩W(xué)生”、“老師”與“課程設(shè)置”之間,“課程注冊(cè)表”與“課程注冊(cè)管理器”之間,以及“課程注冊(cè)管理器”與“課程”之間存在著關(guān)聯(lián)關(guān)系。6.2UML概述2022/12/919國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院課程注冊(cè)管理系統(tǒng)的用例圖圖6.2表示課程注冊(cè)管理系統(tǒng)包括:6課程注冊(cè)管理系統(tǒng)的類圖6.2UML概述2022/12/920國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院課程注冊(cè)管理系統(tǒng)的類圖6.2UML概述2022/12/720用UML順序圖表示“個(gè)人課程規(guī)劃”
用例中的學(xué)生選課過程6.2UML概述2022/12/921國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院用UML順序圖表示“個(gè)人課程規(guī)劃”
用例中的學(xué)生選課過程6.用UML協(xié)作圖表示“個(gè)人課程規(guī)劃”
用例中的學(xué)生選課過程
6.2UML概述2022/12/922國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院用UML協(xié)作圖表示“個(gè)人課程規(guī)劃”
用例中的學(xué)生選課過程
6
UML狀態(tài)圖示例
“課程設(shè)置”對(duì)象的狀態(tài)圖表示,每個(gè)“課程設(shè)置”最多只能容納50個(gè)選課學(xué)生。6.2UML概述2022/12/923國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML狀態(tài)圖示例“課程設(shè)置”對(duì)象的狀態(tài)圖表示,每個(gè)“課UML的語言機(jī)制本章的后續(xù)章節(jié)將結(jié)合需求分析過程介紹UML的用例圖、包圖、類圖和活動(dòng)圖第十章將結(jié)合軟件設(shè)計(jì)過程介紹順序圖、協(xié)作圖、狀態(tài)圖和活動(dòng)圖。6.2UML概述2022/12/924國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制本章的后續(xù)章節(jié)將結(jié)合需求分析過程介紹UML的6.2.2基于UML的軟件開發(fā)過程雖然UML是獨(dú)立于軟件開發(fā)過程的,即,UML能夠在幾乎任何一種軟件開發(fā)過程中使用,但是,熟悉一種有代表性的面向?qū)ο蟮能浖_發(fā)過程,并知悉UML各語言要素在過程中不同階段的應(yīng)用,對(duì)于理解UML將大有裨益。圖6.6表示了一種迭代的漸進(jìn)式軟件開發(fā)過程,它包含四個(gè)階段:初啟,細(xì)化,構(gòu)造和移交。6.2UML概述2022/12/925國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.2.2基于UML的軟件開發(fā)過程雖然UML是獨(dú)立于軟件開
面向?qū)ο蟮牡u進(jìn)式軟件開發(fā)過程6.2UML概述2022/12/926國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮牡?、漸進(jìn)式軟件開發(fā)過程6.2UML概述20221初啟在初啟階段,軟件項(xiàng)目的發(fā)起人確定項(xiàng)目的主要目標(biāo)和范圍,并進(jìn)行初步的可行性分析和經(jīng)濟(jì)效益分析。
6.2UML概述2022/12/927國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院1初啟6.2UML概述2022/12/727國(guó)防科技大學(xué)計(jì)2細(xì)化細(xì)化階段的開始標(biāo)志著項(xiàng)目的正式確立。軟件項(xiàng)目組在此階段需要完成以下工作:
(1)初步的需求分析。采用UML的用例描述目標(biāo)軟件系統(tǒng)所有比較重要、比較有風(fēng)險(xiǎn)的用例,利用用例圖表示參與者與用例、以及用例與用例之間的關(guān)系。采用UML的類圖表示目標(biāo)軟件系統(tǒng)所基于的應(yīng)用領(lǐng)域中的概念及概念之間的關(guān)系。這些相互關(guān)聯(lián)的概念構(gòu)成領(lǐng)域模型。領(lǐng)域模型一方面可以幫助軟件項(xiàng)目組理解業(yè)務(wù)背景,與業(yè)務(wù)專家進(jìn)行有效溝通;另一方面,隨著軟件開發(fā)階段的不斷推進(jìn),領(lǐng)域模型將成為軟件結(jié)構(gòu)的主要基礎(chǔ)。如果領(lǐng)域中含有明顯的流程處理成分,可以考慮利用UML的活動(dòng)圖來刻畫領(lǐng)域中的工作流,并標(biāo)識(shí)業(yè)務(wù)流程中的并發(fā)、同步等特征。
6.2UML概述2022/12/928國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院2細(xì)化細(xì)化階段的開始標(biāo)志著項(xiàng)目的正式確立細(xì)化
(2)初步的高層設(shè)計(jì)。如果目標(biāo)軟件系統(tǒng)的規(guī)模比較龐大,那么,經(jīng)初步需求分析獲得的用例、類將會(huì)非常多。此時(shí),可以考慮根據(jù)用例、類在業(yè)務(wù)領(lǐng)域中的關(guān)系,或者根據(jù)業(yè)務(wù)領(lǐng)域中某種有意義的分類方法將整個(gè)軟件系統(tǒng)劃分為若干個(gè)包,利用UML的包圖刻畫這些包及其關(guān)系。如此,用例、用例圖、類、類圖將依據(jù)包的劃分方法分屬于不同的包,從而給出整個(gè)目標(biāo)軟件系統(tǒng)的高層結(jié)構(gòu)。6.2UML概述2022/12/929國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院細(xì)化
(2)初步的高層設(shè)計(jì)。如果目標(biāo)軟件系統(tǒng)的規(guī)模比細(xì)化(3)部分的詳細(xì)設(shè)計(jì)。對(duì)于系統(tǒng)中某些重要的、或者風(fēng)險(xiǎn)比較高的用例,可以采用交互圖進(jìn)一步探討其內(nèi)部實(shí)現(xiàn)過程。同樣,對(duì)于系統(tǒng)中的關(guān)鍵類,也可以詳細(xì)研究其屬性和操作,并在UML類圖中加以表現(xiàn)。因此,這里倡導(dǎo)的軟件開發(fā)過程并不在時(shí)間軸上嚴(yán)格分劃分析與設(shè)計(jì)、總體設(shè)計(jì)與詳細(xì)設(shè)計(jì),而是根據(jù)軟件元素(用例、類等)的重要性和風(fēng)險(xiǎn)程度確立優(yōu)先細(xì)化原則,建議軟件項(xiàng)目組優(yōu)先考慮重要的、比較有風(fēng)險(xiǎn)的用例和類,不能將風(fēng)險(xiǎn)的識(shí)別和解決延遲到細(xì)化階段之后。6.2UML概述2022/12/930國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院細(xì)化(3)部分的詳細(xì)設(shè)計(jì)。對(duì)于系統(tǒng)中某些重要的、(4)部分的原型構(gòu)造。在許多情形下,針對(duì)某些復(fù)雜的用例構(gòu)造可實(shí)際運(yùn)行的原型是解決技術(shù)風(fēng)險(xiǎn)、讓用戶幫助軟件項(xiàng)目組確認(rèn)用戶需求的最有效方法。為了構(gòu)造原型,需要針對(duì)用例生成詳盡的交互圖,對(duì)所有相關(guān)類給出明確的屬性和操作定義。在細(xì)化階段可能需要使用的UML語言機(jī)制包括:描述用戶需求的用例及用例圖,表示領(lǐng)域概念模型的類圖,表示業(yè)務(wù)流程處理的活動(dòng)圖,表示系統(tǒng)高層結(jié)構(gòu)的包圖,表示用例內(nèi)部實(shí)現(xiàn)過程的交互圖等。細(xì)化階段的結(jié)束條件是,所有主要的用戶需求已通過用例和用例圖得以描述;所有重要的風(fēng)險(xiǎn)已被標(biāo)識(shí),并對(duì)風(fēng)險(xiǎn)應(yīng)對(duì)措施了如指掌;能夠比較精確地估算實(shí)現(xiàn)每一用例的時(shí)間。細(xì)化6.2UML概述2022/12/931國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院(4)部分的原型構(gòu)造。在許多情形下,針對(duì)某些復(fù)雜的用例構(gòu)3構(gòu)造在構(gòu)造階段,開發(fā)人員通過一系列的迭代完成對(duì)所有用例的軟件實(shí)現(xiàn)工作,在每次迭代中實(shí)現(xiàn)一部分用例。以迭代方式實(shí)現(xiàn)所有用例的好處在于,用戶可以及早參與對(duì)已實(shí)現(xiàn)用例的實(shí)際評(píng)價(jià),提出改進(jìn)意見,降低大型軟件系統(tǒng)的開發(fā)風(fēng)險(xiǎn)。6.2UML概述2022/12/932國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院3構(gòu)造在構(gòu)造階段,開發(fā)人員通過一系列的迭代完成對(duì)所有用例的構(gòu)造在實(shí)際開始構(gòu)造軟件系統(tǒng)之前,有必要預(yù)先制定迭代計(jì)劃。計(jì)劃的制定需遵循兩項(xiàng)原則:(1)用戶認(rèn)為業(yè)務(wù)價(jià)值較大的用例應(yīng)優(yōu)先安排。(2)開發(fā)人員評(píng)估后認(rèn)為開發(fā)風(fēng)險(xiǎn)較高的用例應(yīng)優(yōu)先安排。在迭代計(jì)劃中,要確定迭代次數(shù)、每次迭代所需時(shí)間,以及每次迭代中應(yīng)完成(或部分完成)的用例。每次迭代過程由針對(duì)用例的分析、設(shè)計(jì)、編碼、測(cè)試、集成共5個(gè)子階段構(gòu)成。在集成之后,用戶可以對(duì)用例的實(shí)現(xiàn)效果進(jìn)行評(píng)價(jià),提出修改意見。這些修改意見可以在本次迭代過程中立即實(shí)現(xiàn),也可以在下次迭代中再予考慮。6.2UML概述2022/12/933國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院構(gòu)造在實(shí)際開始構(gòu)造軟件系統(tǒng)之前,有必要預(yù)先制定迭代計(jì)劃。計(jì)劃構(gòu)造構(gòu)造過程中,需要使用UML的交互圖來設(shè)計(jì)用例的實(shí)現(xiàn)方法。為了與設(shè)計(jì)得出的交互圖協(xié)調(diào)一致,需要修改或精化在細(xì)化階段繪制的作為領(lǐng)域模型的類圖,增加一些為軟件實(shí)現(xiàn)所必需的類、類的屬性或方法。如果一個(gè)類有復(fù)雜的生命周期行為,或者類的對(duì)象在生命周期內(nèi)需要對(duì)各種外部事件的刺激作出反應(yīng),應(yīng)考慮用UML狀態(tài)圖來表述類的對(duì)象的行為。UML的活動(dòng)圖可以在構(gòu)造階段用來表示復(fù)雜的算法過程和有多個(gè)對(duì)象參與的業(yè)務(wù)處理過程?;顒?dòng)圖尤其適用于表示過程中的并發(fā)和同步。在構(gòu)造階段的每次迭代過程中,可以對(duì)細(xì)化階段繪出的包圖進(jìn)行修改或精化,以便包圖切實(shí)反映目標(biāo)軟件系統(tǒng)最頂層的結(jié)構(gòu)劃分狀況。6.2UML概述2022/12/934國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院構(gòu)造構(gòu)造過程中,需要使用UML的交互圖來設(shè)計(jì)用例的實(shí)現(xiàn)方法。構(gòu)造階段可能使用的UML語言機(jī)制(1)用例及用例圖。它們是開發(fā)人員在構(gòu)造階段進(jìn)行分析和設(shè)計(jì)的基礎(chǔ)。(2)類圖。在領(lǐng)域概念模型的基礎(chǔ)上引進(jìn)為軟件實(shí)現(xiàn)所必需的類、屬性和方法。(3)交互圖:表示針對(duì)用例設(shè)計(jì)的軟件實(shí)現(xiàn)方法。(4)狀態(tài)圖:表示類的對(duì)象的狀態(tài)—事件—響應(yīng)行為。(5)活動(dòng)圖:表示復(fù)雜的算法過程,尤其是過程中的并發(fā)和同步。(6)包圖:表示目標(biāo)軟件系統(tǒng)的頂層結(jié)構(gòu)。(7)構(gòu)件圖。(8)部署圖。6.2UML概述2022/12/935國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院構(gòu)造階段可能使用的UML語言機(jī)制(1)用例及用例圖。它們是開4移交在移交階段,開發(fā)人員對(duì)構(gòu)造階段獲得的軟件系統(tǒng)在用戶實(shí)際工作環(huán)境(或接近實(shí)際的模擬環(huán)境)中試運(yùn)行,根據(jù)用戶的修改意見進(jìn)行少量調(diào)整。
6.2UML概述2022/12/936國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院4移交在移交階段,開發(fā)人員對(duì)構(gòu)造階段獲6.3基于UML的需求分析初步業(yè)務(wù)需求描述形成后,基于UML的需求分析分為以下步驟:(1)利用用例及用例圖表示需求:從業(yè)務(wù)需求描述出發(fā)獲取執(zhí)行者和場(chǎng)景;對(duì)場(chǎng)景進(jìn)行匯總、分類、抽象,形成用例;確定執(zhí)行者與用例、用例與用例圖之間的關(guān)系,生成用例圖。
(2)利用包圖及類圖表示目標(biāo)軟件系統(tǒng)的總體框架結(jié)構(gòu):根據(jù)領(lǐng)域知識(shí)、業(yè)務(wù)需求和工作經(jīng)驗(yàn),設(shè)計(jì)目標(biāo)軟件系統(tǒng)的頂層架構(gòu);從業(yè)務(wù)需求描述中提取“關(guān)鍵概念”,形成領(lǐng)域概念模型;從概念模型和用例出發(fā),研究系統(tǒng)中主要的類之間的關(guān)系,生成類圖。第六章面向?qū)ο蟮男枨蠓治?022/12/937國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.3基于UML的需求分析初步業(yè)務(wù)需求描述形成需求分析過程6.3基于UML的需求分析2022/12/938國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院需求分析過程6.3基于UML的需求分析2022/12/7386.3.1開發(fā)場(chǎng)景場(chǎng)景從單個(gè)執(zhí)行者的角度觀察目標(biāo)軟件系統(tǒng)的功能和外部行為。這種功能通過系統(tǒng)與用戶之間的交互表征。場(chǎng)景是用戶與系統(tǒng)進(jìn)行交互的一組具體的動(dòng)作。場(chǎng)景是用例的實(shí)例,而用例是某類場(chǎng)景的共同抽象。對(duì)場(chǎng)景的完整描述包含場(chǎng)景名稱、執(zhí)行者實(shí)例、前置條件、事件流和后置條件。如,“家庭保安系統(tǒng)”的初步需求描述,具有系統(tǒng)配置、開機(jī)、關(guān)機(jī)、門窗監(jiān)測(cè)、煙霧監(jiān)測(cè)、復(fù)位等場(chǎng)景。6.3基于UML的需求分析2022/12/939國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.3.1開發(fā)場(chǎng)景場(chǎng)景從單個(gè)執(zhí)行者的角度觀察目標(biāo)軟件監(jiān)測(cè)場(chǎng)景的描述場(chǎng)景名稱:門窗監(jiān)測(cè)。參與執(zhí)行者實(shí)例:警報(bào)器,報(bào)警電話,顯示器,門窗監(jiān)視器。前置條件:系統(tǒng)已開機(jī)。事件流:
(1)門窗監(jiān)視器發(fā)現(xiàn)門或窗戶發(fā)生異動(dòng),向軟件系統(tǒng)報(bào)告異常事件。(2)軟件系統(tǒng)啟動(dòng)警報(bào)器并撥報(bào)警電話號(hào)碼。
(3)報(bào)警電話接通后,軟件系統(tǒng)播出語音,報(bào)告異常事件發(fā)生的時(shí)間、地點(diǎn)和事件的性質(zhì)(門窗異動(dòng))。
(4)系統(tǒng)在控制面板的顯示器上顯示報(bào)警時(shí)間及當(dāng)前狀態(tài)(報(bào)警:門窗異動(dòng))。后置條件:系統(tǒng)處于“報(bào)警”狀態(tài)。6.3基于UML的需求分析2022/12/940國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院監(jiān)測(cè)場(chǎng)景的描述場(chǎng)景名稱:門窗監(jiān)測(cè)。6.3基于UML的需求分析場(chǎng)景的分類(1)
實(shí)際場(chǎng)景對(duì)實(shí)際的業(yè)務(wù)處理流程或其優(yōu)化流程的描述,是用戶需求的重要組成部分。(2)設(shè)想場(chǎng)景分析人員對(duì)目標(biāo)軟件系統(tǒng)投入應(yīng)用后經(jīng)改進(jìn)或優(yōu)化的業(yè)務(wù)流程的描述。這種場(chǎng)景是紙面原型,幫助分析人員挖掘潛在的用戶需求。(3)評(píng)價(jià)場(chǎng)景確認(rèn)需求或提出改進(jìn)建議為主要目的的業(yè)務(wù)流程描述。評(píng)價(jià)場(chǎng)景可以在用例生成后對(duì)用例進(jìn)行實(shí)例化而形成,以便用戶對(duì)用例進(jìn)行評(píng)價(jià)或改進(jìn)。(4)培訓(xùn)場(chǎng)景:面向開發(fā)人員及用戶解釋系統(tǒng)的功能和外部行為的業(yè)務(wù)流程描述。6.3基于UML的需求分析2022/12/941國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院場(chǎng)景的分類(1)實(shí)際場(chǎng)景6.3基于UML的需求分析2022場(chǎng)景的獲取確定執(zhí)行者和場(chǎng)景的關(guān)鍵在于理解業(yè)務(wù)領(lǐng)域和初步需求描述文檔。下列問題的回答可幫助分析人員獲取場(chǎng)景:(1)目標(biāo)軟件系統(tǒng)有哪些執(zhí)行者?(2)執(zhí)行者希望系統(tǒng)執(zhí)行的任務(wù)有哪些?(3)執(zhí)行者希望獲得哪些信息?這些信息由誰生成?由誰修改?(4)執(zhí)行者需要通知系統(tǒng)哪些事件?系統(tǒng)響應(yīng)這些事件時(shí)會(huì)表現(xiàn)出哪些外部行為?(5)系統(tǒng)將通告執(zhí)行者哪些事件?場(chǎng)景將促成開發(fā)人員和用戶對(duì)于業(yè)務(wù)處理流程和目標(biāo)軟件系統(tǒng)的功能范圍的共同理解。在場(chǎng)景確定之后,通過對(duì)場(chǎng)景的匯總、分類歸并、抽象即可形成用例。6.3基于UML的需求分析2022/12/942國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院場(chǎng)景的獲取確定執(zhí)行者和場(chǎng)景的關(guān)鍵在于理6.3.2生成用例從外部用戶的視角看,一個(gè)用例是執(zhí)行者(actor)與目標(biāo)軟件系統(tǒng)之間一次典型的交互作用。從軟件系統(tǒng)內(nèi)部的視角出發(fā),一個(gè)用例代表著系統(tǒng)執(zhí)行的一系列動(dòng)作,動(dòng)作執(zhí)行的結(jié)果能夠被外部的執(zhí)行者所察覺。執(zhí)行者指外部用戶或外部實(shí)體在系統(tǒng)中扮演的角色。如果多個(gè)用戶在使用目標(biāo)軟件系統(tǒng)時(shí)扮演同一角色,這些用戶用單一執(zhí)行者表示。如果一個(gè)用戶扮演多種角色,則需要用多個(gè)執(zhí)行者來表示同一用戶。6.3基于UML的需求分析2022/12/943國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.3.2生成用例從外部用戶的視角看,一個(gè)用例是執(zhí)行者(a生成用例對(duì)用例的完整描述包括用例名稱、參與執(zhí)行者、前置條件、一個(gè)主事件流、0到多個(gè)輔事件流、后置條件。主事件流表示正常情況下執(zhí)行者與系統(tǒng)之間的信息交互及動(dòng)作序列,輔事件流則表示特殊情況或異常情況下的信息交互及動(dòng)作序列。顯式地分隔主、輔事件流是為了使分析人員首先聚焦于正常的業(yè)務(wù)處理流程,同時(shí)也便于用例的讀者理解業(yè)務(wù)需求。6.3基于UML的需求分析2022/12/944國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院生成用例對(duì)用例的完整描述包括用例名稱、參與執(zhí)行者、前置條件、生成用例用例源于分析人員對(duì)場(chǎng)景的分類和抽象,對(duì)相似場(chǎng)景進(jìn)行歸并,使得一個(gè)用例可以通過實(shí)例化、參數(shù)調(diào)節(jié)而涵蓋多個(gè)場(chǎng)景。例如,“家庭保安系統(tǒng)”中的“開機(jī)”、“關(guān)機(jī)”、“復(fù)位”三個(gè)場(chǎng)景可以歸并為“命令處理”用例,三個(gè)場(chǎng)景之間的差異通過用戶命令區(qū)分。門窗監(jiān)測(cè)、煙霧監(jiān)測(cè)兩個(gè)場(chǎng)景可歸并為統(tǒng)一的“傳感器監(jiān)測(cè)”用例。熟悉業(yè)務(wù)領(lǐng)域的分析師,可以略過場(chǎng)景,直接從業(yè)務(wù)需求描述中獲取用例。在家庭保安系統(tǒng)中,執(zhí)行者有“用戶”、“傳感器”、“警報(bào)器”、“報(bào)警電話”、“顯示器”,用例有“系統(tǒng)配置”、“命令響應(yīng)”和“傳感器監(jiān)測(cè)”。6.3基于UML的需求分析2022/12/945國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院生成用例用例源于分析人員對(duì)場(chǎng)景的分類和抽象,對(duì)相似場(chǎng)景“傳感器監(jiān)測(cè)”用例的描述用例名稱:傳感器監(jiān)測(cè)參與執(zhí)行者:各類傳感器,警報(bào)器,報(bào)警電話,顯示器前置條件:系統(tǒng)已開機(jī)。主事件流:
(1)傳感器向目標(biāo)軟件系統(tǒng)上報(bào)其監(jiān)測(cè)數(shù)據(jù),系統(tǒng)判斷監(jiān)測(cè)數(shù)據(jù)正常。
(2)如果不正常,系統(tǒng)啟動(dòng)警報(bào)器,撥報(bào)警電話號(hào)碼。
(3)報(bào)警電話接通后,軟件系統(tǒng)播出語音,報(bào)告異常事件發(fā)生的時(shí)間、地點(diǎn)和事件的性質(zhì)。
(4)系統(tǒng)在控制面板的顯示器上顯示報(bào)警時(shí)間及當(dāng)前狀態(tài)(報(bào)警)。6.3基于UML的需求分析2022/12/946國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院“傳感器監(jiān)測(cè)”用例的描述用例名稱:傳感器監(jiān)測(cè)6.3基于UML“傳感器監(jiān)測(cè)”用例的描述輔事件流:
(1)如果報(bào)警電話無人接聽,則按照重?fù)苎舆t反復(fù)撥號(hào),直至電話接通,再轉(zhuǎn)入主事件流的步驟(3)。
(2)如果重?fù)艽螖?shù)達(dá)到系統(tǒng)預(yù)設(shè)的最大次數(shù),電話仍無人接聽,則跳過主事件流的步驟(3),轉(zhuǎn)入步驟(4)。后置條件:如果已發(fā)現(xiàn)異常的監(jiān)測(cè)數(shù)據(jù),系統(tǒng)處于“報(bào)警”狀態(tài);否則系統(tǒng)處于正常的“監(jiān)測(cè)”狀態(tài)。6.3基于UML的需求分析2022/12/947國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院“傳感器監(jiān)測(cè)”用例的描述輔事件流:6.3基于UML的需求分析6.3.3用活動(dòng)圖表示用例用例的描述既可采用自然語言,也可采用活動(dòng)圖,活動(dòng)圖表示法更為精確、直觀。下面介紹活動(dòng)圖的語法機(jī)制,然后結(jié)合實(shí)例說明如何用活動(dòng)圖表示用例。6.3基于UML的需求分析2022/12/948國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.3.3用活動(dòng)圖表示用例用例的描述既可采用自然語言,也可1UML活動(dòng)圖用例的事件流或者操作均可表示為一系列的活動(dòng),每個(gè)活動(dòng)在活動(dòng)圖中被表示為一個(gè)結(jié)點(diǎn)。結(jié)點(diǎn)之間的有向邊表示順序執(zhí)行的活動(dòng)。在結(jié)點(diǎn)間的連接邊上可以附加條件表達(dá)式,表示在有向連接邊的源結(jié)點(diǎn)執(zhí)行完成后,如果條件成立,則開始執(zhí)行有向連接邊的目標(biāo)結(jié)點(diǎn)所表示的活動(dòng);如果條件不成立,則目標(biāo)結(jié)點(diǎn)的活動(dòng)不執(zhí)行。菱形在活動(dòng)圖中表示條件判斷,條件表達(dá)式一般出現(xiàn)在以菱形為源結(jié)點(diǎn)的有向邊上?;顒?dòng)圖可以表示過程的并發(fā)?;顒?dòng)圖的同步條(水平或者垂直粗線)可以將一條有向連接邊分叉為多個(gè)并發(fā)執(zhí)行的分支進(jìn)程,或?qū)⒍鄠€(gè)有向連接邊上的進(jìn)程同步合并為一個(gè)進(jìn)程。6.3基于UML的需求分析2022/12/949國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院1UML活動(dòng)圖用例的事件流或者操作均可表示為一系列的活動(dòng),UML活動(dòng)圖泳道為了描述活動(dòng)的責(zé)任對(duì)象,活動(dòng)圖引進(jìn)了“泳道”的概念。泳道是由垂直長(zhǎng)線分割出來的矩形區(qū)域,在泳道上方的對(duì)象負(fù)責(zé)該矩形區(qū)域內(nèi)的所有活動(dòng)。如,在圖6.8中,類“Customer”的對(duì)象負(fù)責(zé)“插入銀行卡”、“輸入密碼”、“選擇功能”、“輸入金額”四項(xiàng)活動(dòng),其余活動(dòng)由類“ATMsystem”的對(duì)象負(fù)責(zé)。6.3基于UML的需求分析2022/12/950國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML活動(dòng)圖泳道6.3基于UML的需求分析2022/12/7典型的活動(dòng)圖6.3基于UML的需求分析2022/12/951國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院典型的活動(dòng)圖6.3基于UML的需求分析2022/12/7512用例的活動(dòng)圖表示
傳感器監(jiān)測(cè)用例活動(dòng)圖6.3基于UML的需求分析2022/12/952國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院2用例的活動(dòng)圖表示6.3基于UML的需求分析2022/126.3.4生成用例圖執(zhí)行者與用例之間的關(guān)系觸發(fā)執(zhí)行信息交換觸發(fā)執(zhí)行與信息交換如,在“家庭保安系統(tǒng)”中,執(zhí)行者“用戶”在觸發(fā)用例“命令響應(yīng)”的同時(shí),還要向用例傳送命令信息。在UML用例圖中,從執(zhí)行者指向用例的邊表示觸發(fā)執(zhí)行和/或信息交換,從用例指向執(zhí)行者的邊則表示用例將生成的信息傳遞給執(zhí)行者。6.3基于UML的需求分析2022/12/953國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.3.4生成用例圖執(zhí)行者與用例之間的關(guān)系6.3基于UMLUML用例與用例之間的關(guān)系(1)使用(use)關(guān)系,如果多個(gè)用例都有一個(gè)公共的動(dòng)作序列,為避免重復(fù)并使模型簡(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)作序列完全包含另一個(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/954國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML用例與用例之間的關(guān)系(1)使用(use)關(guān)系,如果多個(gè)“家庭保安系統(tǒng)”的用例圖6.3基于UML的需求分析2022/12/955國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院“家庭保安系統(tǒng)”的用例圖6.3基于UML的需求分析2022/6.3.5建立頂層架構(gòu)頂層架構(gòu)的主要目的是為后續(xù)的分析和設(shè)計(jì)活動(dòng)建立一種結(jié)構(gòu)和分劃,以便開發(fā)人員在不同的開發(fā)階段,以及同一開發(fā)階段的不同開發(fā)人員,能夠聚焦于系統(tǒng)的不同部分。頂層架構(gòu)是分析和設(shè)計(jì)階段的成果。隨著開發(fā)過程的推進(jìn),框架中的內(nèi)容不斷豐富、翔實(shí),最終演進(jìn)為完整的面向?qū)ο筌浖Y(jié)構(gòu)。6.3基于UML的需求分析2022/12/956國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.3.5建立頂層架構(gòu)頂層架構(gòu)的主要目的是為后續(xù)的分析和設(shè)1UML包圖UML包圖是表示頂層架構(gòu)的機(jī)制。下面首先介紹包圖的語法機(jī)制,然后探討建立頂層架構(gòu)的方法與原則。包是UML支持對(duì)類分組的一種機(jī)制??梢詮哪撤N視角,將某些關(guān)聯(lián)密切的類劃為一個(gè)包,而不同包的兩個(gè)類的關(guān)聯(lián)應(yīng)比較松散。對(duì)于大型軟件系統(tǒng),包的劃分是實(shí)現(xiàn)“分而治之”的重要技術(shù)手段。6.3基于UML的需求分析2022/12/957國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院1UML包圖UML包圖是表示頂層架構(gòu)的機(jī)制。下面首先介紹包UML包圖包的依賴和構(gòu)成關(guān)系如果對(duì)類A的修改將導(dǎo)致類B的改變,則稱B依賴于A。如果兩個(gè)包中存在具有依賴關(guān)系的兩個(gè)類,則稱這兩個(gè)包之間存在依賴關(guān)系。包的構(gòu)成關(guān)系包可以嵌套,包可包含類,也可包含子包。為了表示軟件架構(gòu),還需要在包之間引進(jìn)“連接器”邊,連接器表示包之間的信息傳遞、事件發(fā)送、軟件調(diào)用等關(guān)系。連接器分為單向和雙向(即無向)。6.3基于UML的需求分析2022/12/958國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML包圖包的依賴和構(gòu)成關(guān)系6.3基于UML的需求分析202包圖示例“領(lǐng)域”包由“訂單”和“客戶”兩個(gè)子包構(gòu)成,“訂單”包依賴于“客戶”包。數(shù)據(jù)庫接口類僅定義抽象數(shù)據(jù)訪問,數(shù)據(jù)操作。Oracle接口包和DB2接口包基于具體的數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)通用接口定義的抽象接口函數(shù)。6.3基于UML的需求分析2022/12/959國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院包圖示例“領(lǐng)域”包由“訂單”和“客戶”兩個(gè)子包構(gòu)成,“訂單”2軟件頂層架構(gòu)的設(shè)計(jì)方法結(jié)合實(shí)際需求,選取架構(gòu)模式,再進(jìn)行局部調(diào)整。主要架構(gòu)模式流程處理模式客戶/服務(wù)器模式、模型—視圖—控制器模式分層模式6.3基于UML的需求分析2022/12/960國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院2軟件頂層架構(gòu)的設(shè)計(jì)方法6.3基于UML的需求分析2022軟件頂層架構(gòu)的設(shè)計(jì)(1)流程處理模式。流程處理系統(tǒng)以算法和數(shù)據(jù)結(jié)構(gòu)為中心,其系統(tǒng)功能由一系列的處理步驟構(gòu)成,相鄰處理步驟用數(shù)據(jù)流通管道連接。流程處理模式適用于批處理方式的軟件系統(tǒng),不適合交互式系統(tǒng)。6.3基于UML的需求分析2022/12/961國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院軟件頂層架構(gòu)的設(shè)計(jì)(1)流程處理模式。6.3基于UML的需求流程處理模式流程處理模式具有三個(gè)處理步驟。步驟都使用公共的系統(tǒng)服務(wù)(例如數(shù)據(jù)庫訪問服務(wù)),命令處理和命令處理的進(jìn)度、結(jié)果都通過用戶界面。6.3基于UML的需求分析2022/12/962國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院流程處理模式流程處理模式具有三個(gè)處理步驟。6.3基于UML的客戶/服務(wù)器模式(2)客戶/服務(wù)器模式。客戶端負(fù)責(zé)用戶輸入和處理結(jié)果的呈現(xiàn),服務(wù)端負(fù)責(zé)后臺(tái)業(yè)務(wù)處理。6.3基于UML的需求分析2022/12/963國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院客戶/服務(wù)器模式(2)客戶/服務(wù)器模式。6.3基于UML的需模型—視圖—控制器(MVC)模式(3)模型—視圖—控制器模式軟件系統(tǒng)由模型、視圖和控制器三部分組成。模型負(fù)責(zé)維護(hù)并保存具有持久性的業(yè)務(wù)數(shù)據(jù),實(shí)現(xiàn)業(yè)務(wù)處理功能,并將業(yè)務(wù)數(shù)據(jù)的變化情況及時(shí)通知視圖。視圖負(fù)責(zé)呈現(xiàn)模型中包含的業(yè)務(wù)數(shù)據(jù),響應(yīng)模型變化通知,更新呈現(xiàn)形式,向控制器傳遞用戶的界面動(dòng)作??刂破髫?fù)責(zé)將用戶的界面動(dòng)作映射為模型中的業(yè)務(wù)處理功能并實(shí)際調(diào)用之,然后根據(jù)模型返回的業(yè)務(wù)處理結(jié)果選擇新的視圖。MVC模式特別適合于分布式應(yīng)用軟件,尤其是Web應(yīng)用系統(tǒng)6.3基于UML的需求分析2022/12/964國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院模型—視圖—控制器(MVC)模式(3)模型—視圖—控制器模式分層模式(4)分層模式將整個(gè)軟件系統(tǒng)分為若干層次,最頂層直接面向用戶提供軟件系統(tǒng)的操作界面,其余各層為緊鄰其上的層次提供服務(wù)。分層模式可以有效降低軟件系統(tǒng)的耦合度,應(yīng)用普遍。6.3基于UML的需求分析2022/12/965國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院分層模式(4)分層模式6.3基于UML的需求分析2022/1分層模式層次劃分的主要原則易變化的部分,如用戶界面、與業(yè)務(wù)邏輯緊密相關(guān)的部件,置于高層穩(wěn)定部分,如公共的技術(shù)服務(wù)部件,置于低層;每層都盡量訪問緊鄰的下層,避免越級(jí)訪問,尤其要避免逆向訪問即,上層模塊為下層模塊提供服務(wù);將目標(biāo)軟件系統(tǒng)的外部接口置入較低層次,系統(tǒng)其余部分對(duì)外部系統(tǒng)的訪問或操作通過這些外部接口提供的服務(wù)來完成。6.3基于UML的需求分析2022/12/966國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院分層模式層次劃分的主要原則6.3基于UML的需求分析2022軟件架構(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è)目標(biāo)軟件系統(tǒng)采用分層結(jié)構(gòu),在系統(tǒng)的不同層次內(nèi)再分別使用適宜的其他類型的架構(gòu)模式。6.3基于UML的需求分析2022/12/967國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院軟件架構(gòu)在全面了解軟件架構(gòu)樣式的前提下,對(duì)于具體的應(yīng)用需求而確立軟件架構(gòu)(1)架構(gòu)中包的數(shù)量包中軟件元素過多,應(yīng)對(duì)包進(jìn)一步細(xì)分;如果過少,則說明架構(gòu)過早地陷入細(xì)節(jié)。(2)架構(gòu)中包之間的耦合度包的依賴關(guān)系、連接關(guān)系應(yīng)盡量簡(jiǎn)單、松散,如,在分層結(jié)構(gòu)中,通常要求某一層的軟件元素只與同層及下一層的元素存在依賴關(guān)系。(3)軟件元素的穩(wěn)定性抽取不穩(wěn)定的軟件元素的相對(duì)穩(wěn)定部分,將不穩(wěn)定的軟件元素分類聚集在少數(shù)幾個(gè)包中,以提高軟件系統(tǒng)的可維護(hù)性。6.3基于UML的需求分析2022/12/968國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院確立軟件架構(gòu)(1)架構(gòu)中包的數(shù)量6.3基于UML的需求分析2確立軟件架構(gòu)(4)軟件元素的分類將軟件可選功能和必須實(shí)現(xiàn)功能的軟件元素分別置于架構(gòu)的不同包或子包中。(5)作為軟件系統(tǒng)運(yùn)行環(huán)境的物理網(wǎng)絡(luò)拓樸根據(jù)軟件元素在分布環(huán)境中的布局,劃分頂層架構(gòu)的包,使包的消息傳遞與物理節(jié)點(diǎn)的通信相協(xié)調(diào),頂層架構(gòu)定義的通信關(guān)系支持后續(xù)的分析和設(shè)計(jì)活動(dòng)。6.3基于UML的需求分析2022/12/969國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院確立軟件架構(gòu)(4)軟件元素的分類6.3基于UML的需求分析2確立軟件架構(gòu)(6)軟件元素的安全、保密級(jí)別。根據(jù)安全訪問的權(quán)限劃分頂層架構(gòu)中的包或者子包。(7)開發(fā)團(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ā)。6.3基于UML的需求分析2022/12/970國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院確立軟件架構(gòu)(6)軟件元素的安全、保密級(jí)別。6.3基于UML6.3.6建立領(lǐng)域概念模型在用戶需求和相關(guān)的業(yè)務(wù)領(lǐng)域中,有一些全局性的概念對(duì)于理解需求至關(guān)重要。因此,有必要抽取這些概念,研究這些概念之間的關(guān)系。UML類圖是表示領(lǐng)域概念模型的機(jī)制。下面首先介紹類圖的語法機(jī)制,然后探討建立領(lǐng)域概念模型的方法。6.3基于UML的需求分析2022/12/971國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.3.6建立領(lǐng)域概念模型在用戶需求和相關(guān)的業(yè)務(wù)領(lǐng)域中,有1UML類圖在UML中,用類表示概念,用類圖表示領(lǐng)域概念模型。在需求分析的早期,不需要一次性列舉類的所有屬性和方法。剛開始可以僅標(biāo)識(shí)類名,以后隨著分析、設(shè)計(jì)的不斷推進(jìn)而逐步完善屬性列表和方法列表。6.3基于UML的需求分析2022/12/972國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院1UML類圖在UML中,用類表示概念,用類圖表示領(lǐng)域UML類圖UML的類包含三個(gè)部分:類的名稱屬性列表方法列表表示圖元如圖所示。UML類之間的關(guān)系主要有繼承、聚集、關(guān)聯(lián)和依賴。繼承關(guān)系表示子類重用父類的屬性和操作,子類的對(duì)象也是父類的對(duì)象,有時(shí)也稱父類是子類的泛化(generalization)。6.3基于UML的需求分析2022/12/973國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML類圖UML的類包含三個(gè)部分:6.3基于UML的需求分析UML類圖在課程管理系統(tǒng)中,“教務(wù)管理人員”、“學(xué)生”和“老師”都是泛化的“用戶”類的子類,它們繼承來自“用戶”類的用戶姓名、標(biāo)識(shí)碼、密碼等屬性,以及用戶注冊(cè)、密碼驗(yàn)證、退出系統(tǒng)等操作,見圖6.2。類之間的聚集關(guān)系是現(xiàn)實(shí)世界部分—整體關(guān)系的模擬。6.3基于UML的需求分析2022/12/974國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML類圖在課程管理系統(tǒng)中,“教務(wù)管理人員”、“學(xué)生”和“老聚集和構(gòu)成關(guān)系的表示圖元UML將聚集關(guān)系分為普通聚集關(guān)系:一個(gè)部件對(duì)象可同時(shí)參與多個(gè)整體對(duì)象。構(gòu)成關(guān)系:限定一個(gè)部件對(duì)象在任意時(shí)刻只能參與一個(gè)整體類的對(duì)象,部件類對(duì)象與整體類對(duì)象共存亡。6.3基于UML的需求分析2022/12/975國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院聚集和構(gòu)成關(guān)系的表示圖元UML將聚集關(guān)系分為6.3基于UML關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系表示兩個(gè)類的對(duì)象之間存在著用于消息傳遞的穩(wěn)定通道。如,在課程注冊(cè)管理系統(tǒng)中,“學(xué)生”類、“老師”類與“課程設(shè)置”類之間存在關(guān)聯(lián)關(guān)系,因?yàn)椤罢n程設(shè)置”與選課學(xué)生和授課老師有關(guān),學(xué)生和老師都需要查詢課程設(shè)置的有關(guān)信息。兩個(gè)類的對(duì)象之間往往存在著數(shù)量對(duì)應(yīng)關(guān)系,這種關(guān)系是業(yè)務(wù)規(guī)則的具體表現(xiàn)。因此,當(dāng)分析和設(shè)計(jì)推進(jìn)到一定階段之后,應(yīng)該在聚集、構(gòu)成和關(guān)聯(lián)關(guān)系的表示邊上明確標(biāo)示。如,圖6.2表示每個(gè)“課程設(shè)置”對(duì)象應(yīng)不少于10個(gè)、不多于50個(gè)選課學(xué)生。每個(gè)學(xué)生在一個(gè)學(xué)期中選課的課程不少于4門、不多于8門。6.3基于UML的需求分析2022/12/976國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系6.3基于UML的需求分析2022/12/7依賴關(guān)系依賴關(guān)系依賴類B的對(duì)象需要向被依賴類A的對(duì)象傳遞消息;被依賴類A可作為依賴類B操作的形參類型。依賴關(guān)系表示臨時(shí)性的消息傳遞通道,操作完成通道消失;關(guān)聯(lián)關(guān)系及強(qiáng)化形態(tài)表示消息傳遞通道在整個(gè)對(duì)象的生命周期中穩(wěn)定存在。6.3基于UML的需求分析2022/12/977國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院依賴關(guān)系依賴關(guān)系6.3基于UML的需求分析2022/12/7依賴關(guān)系如,在圖6.11中,“訂單”包中的類僅依賴于“數(shù)據(jù)庫接口”包中的類(接口),并不需要在它們之間建立關(guān)聯(lián)關(guān)系,因?yàn)椋瑢?duì)數(shù)據(jù)庫的訪問和操作僅在訂單處理類的函數(shù)體中的局部進(jìn)行。依賴關(guān)系是關(guān)聯(lián)關(guān)系的弱化,它表示被依賴的類的變化會(huì)影響到依賴類。依賴的強(qiáng)化是關(guān)聯(lián),關(guān)聯(lián)的強(qiáng)化是聚合,聚合的強(qiáng)化是構(gòu)成。6.3基于UML的需求分析2022/12/978國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院依賴關(guān)系如,在圖6.11中,“訂單”包中的類僅依賴于“數(shù)據(jù)庫2建立領(lǐng)域概念模型為建立UML類圖表示的領(lǐng)域概念模型,首先要標(biāo)識(shí)關(guān)鍵概念。關(guān)鍵概念(1)業(yè)務(wù)需求描述、用例說明;(2)業(yè)務(wù)領(lǐng)域中的相關(guān)規(guī)范、標(biāo)準(zhǔn)、術(shù)語定義;(3)反映業(yè)務(wù)領(lǐng)域知識(shí)的既往經(jīng)驗(yàn)?!凹彝ケ0蚕到y(tǒng)”的領(lǐng)域概念模型如圖6.18所示。6.3基于UML的需求分析2022/12/979國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院2建立領(lǐng)域概念模型為建立UML類圖表示的領(lǐng)“家庭保安系統(tǒng)”的領(lǐng)域概念模型6.3基于UML的需求分析2022/12/980國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院“家庭保安系統(tǒng)”的領(lǐng)域概念模型6.3基于UML的需求分析20家庭保安系統(tǒng)”的領(lǐng)域概念模型圖6.18中新引入了“用戶命令處理器”、“系統(tǒng)配置管理器”、“監(jiān)測(cè)器”、“異常事件”和“日志管理器”五個(gè)新類?!坝脩裘钐幚砥鳌苯邮諄碜杂脩舻牟僮髅睿⒚钐幚斫Y(jié)果反饋至顯示面板。“系統(tǒng)配置管理器”保存系統(tǒng)的配置信息,協(xié)助“用戶命令處理器”完成用戶對(duì)系統(tǒng)配置信息修改,還要負(fù)責(zé)向系統(tǒng)中的其他類提供配置信息的查詢服務(wù)。6.3基于UML的需求分析2022/12/981國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院家庭保安系統(tǒng)”的領(lǐng)域概念模型圖6.18中新引入了“用戶命令處家庭保安系統(tǒng)”的領(lǐng)域概念模型“監(jiān)測(cè)器”負(fù)責(zé)接收傳感器的數(shù)據(jù),根據(jù)系統(tǒng)配置信息判別異常狀況,在異常發(fā)生時(shí)生成“異常事件”對(duì)象、觸發(fā)警報(bào)器并拔報(bào)警電話?!叭罩竟芾砥鳌毕蛳到y(tǒng)中的其他類提供日志的記錄和查詢服務(wù),日志信息應(yīng)包括用戶命令及處理結(jié)果、配置更改的歷史記錄,異常狀況的歷史記錄等。6.3基于UML的需求分析2022/12/982國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院家庭保安系統(tǒng)”的領(lǐng)域概念模型“監(jiān)測(cè)器”6.3基于UML的需求小結(jié)本章介紹了面向?qū)ο蟮幕靖拍?,概述了UML的語言機(jī)制和基于UML的軟件開發(fā)過程?;赨ML的需求分析方法和過程是本章的重點(diǎn),主要步驟是:(1)從業(yè)務(wù)需求描述出發(fā)標(biāo)識(shí)用例,生成表示用例內(nèi)容的活動(dòng)圖(可選),生成表示用例之間、用例與執(zhí)行者之間關(guān)系的用例圖。(2)根據(jù)領(lǐng)域知識(shí)、業(yè)務(wù)需求描述和既往經(jīng)驗(yàn),建立以包圖表示的目標(biāo)軟件系統(tǒng)的頂層架構(gòu),形成以類圖表示的領(lǐng)域概念模型。第六章面向?qū)ο蟮男枨蠓治?022/12/983國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院小結(jié)本章介紹了面向?qū)ο蟮幕靖拍?,概述了U謝謝2022/12/984國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院謝謝2022/12/784國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院2022/12/985國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院2022/12/785國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院
軟件工程
SoftwareEngineering
國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院2004.07齊治昌教授,譚慶平教授,寧洪教授,董威博士2022/12/986國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院
軟件工程
Softwar第六章面向?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)的共用語言。2022/12/987國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院第六章面向?qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖敲嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮母拍钆c思想U(xiǎn)ML概述基于UML的需求分析以“家庭保安系統(tǒng)”為實(shí)例,介紹與需求分析相關(guān)的部分UML語言機(jī)制以及基于UML的面向?qū)ο蟮男枨蠓治龇椒ê瓦^程。第六章面向?qū)ο蟮男枨蠓治?022/12/988國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮母拍钆c思想第六章面向?qū)ο蟮?.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ū)ο蟮男枨蠓治?022/12/989國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.1面向?qū)ο蟮母拍钆c思想客觀世界中的應(yīng)用問題都是由實(shí)體面向?qū)ο蟮母拍钆c思想面向?qū)ο?Object-Oriented,簡(jiǎn)稱OO)的需求分析方法通過提供對(duì)象、對(duì)象間消息傳遞等語言機(jī)制讓分析人員在解空間中直接模擬問題空間中的對(duì)象及其行為,從而削減了語義斷層,為需求建?;顒?dòng)提供了直觀、自然的語言支持和方法學(xué)指導(dǎo)。6.1面向?qū)ο蟮母拍钆c思想2022/12/990國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想面向?qū)ο?Object-Oriente面向?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思想2022/12/991國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想為了在解空間模擬現(xiàn)面向?qū)ο蟮母拍钆c思想(2)類。類表示某些對(duì)象在屬性和操作方面的共同特征。例如,直升飛機(jī)、大型客機(jī)、轟炸機(jī)可歸為飛行器類。共同屬性有:位置、速度和顏色等。共同操作有:起飛、降落、加速和維修等。6.1面向?qū)ο蟮母拍钆c思想2022/12/992國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想(2)類。6.1面向?qū)ο蟮母拍钆c思面向?qū)ο蟮母拍钆c思想(3)繼承類之間的繼承關(guān)系是現(xiàn)實(shí)世界中遺傳關(guān)系的模擬,它表示類之間的內(nèi)在聯(lián)系以及對(duì)屬性和操作的共享,即,子類可以沿用父類(被繼承類)的某些特征。子類也可以具有自己獨(dú)有的屬性和操作。例如,飛行器、汽車和輪船可歸于交通工具類,飛行器類可以繼承交通工具類的某些屬性和操作。6.1面向?qū)ο蟮母拍钆c思想2022/12/993國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想(3)繼承6.1面向?qū)ο蟮母拍蠲嫦驅(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思想2022/12/994國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想(4)聚集6.1面向?qū)ο蟮母拍钆c思面向?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思想2022/12/995國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮母拍钆c思想(5)消息6.1面向?qū)ο蟮?.2UML概述6.2.1UML的語言機(jī)制UML主要以Booch方法、OMT方法[71]和OOSE方法為基礎(chǔ),同時(shí)也吸收了其他面向?qū)ο蠼7椒ǖ膬?yōu)點(diǎn),形成了一種概念清晰、表達(dá)能力豐富、適用范圍廣泛的面向?qū)ο蟮臉?biāo)準(zhǔn)建模語言。第六章面向?qū)ο蟮男枨蠓治?022/12/996國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.2UML概述6.2.1UML的語言機(jī)制第六章面向?qū)ML的語言機(jī)制UML通過圖形化的表示機(jī)制從多個(gè)側(cè)面刻畫系統(tǒng)的分析和設(shè)計(jì)模型。
UML共定義十種視圖,可分四類:(1)用例圖(usecasediagram)從外部用戶的角度描述系統(tǒng)的功能,并指出功能的執(zhí)行者。6.2UML概述2022/12/997國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制UML通過圖形化的表示機(jī)制從多個(gè)側(cè)面刻畫系統(tǒng)UML的語言機(jī)制
(2)靜態(tài)圖類圖(classdiagram)、類圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),類圖的結(jié)點(diǎn)表示系統(tǒng)中的類及其屬性和操作,類圖的邊表示類之間的聯(lián)系,包括繼承、關(guān)聯(lián)、依賴、聚合等。對(duì)象圖(objectdiagram)對(duì)象圖是類圖的一個(gè)實(shí)例。它描述在某種狀態(tài)下,或者在某一時(shí)間段系統(tǒng)中活躍的對(duì)象及其關(guān)系。在對(duì)象圖中,一個(gè)類可以擁有多個(gè)活躍的對(duì)象實(shí)例。包圖(packagediagram)包圖描述系統(tǒng)的分解,表示包(package)以及包之間的關(guān)系。包由子包及類組成。包之間的關(guān)系包括繼承、構(gòu)成與依賴關(guān)系。6.2UML概述2022/12/998國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制(2)靜態(tài)圖6.2UML概述2UML的語言機(jī)制(3)行為圖交互圖(interactivediagram)狀態(tài)圖(statechartdiagram)活動(dòng)圖(activitydiagram)它們從不同的側(cè)面刻畫系統(tǒng)的動(dòng)態(tài)行為。交互圖描述對(duì)象之間的消息傳遞。它又可分為順序圖(sequencediagram)與合作圖(collaborationdiagram)兩種形式。順序圖強(qiáng)調(diào)對(duì)象之間消息發(fā)送的時(shí)間序。合作圖更強(qiáng)調(diào)對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系。合作圖也可通過消息序號(hào)來表示消息傳遞的時(shí)間序,只不過這種表示不如順序圖那樣直觀。6.2UML概述2022/12/999國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制(3)行為圖6.2UML概述2022/12UML的語言機(jī)制狀態(tài)圖描述類的對(duì)象的動(dòng)態(tài)行為。它包含對(duì)象所有可能的狀態(tài)、活動(dòng)圖描述系統(tǒng)為完成某項(xiàng)功能而執(zhí)行的操作序列,這些在每個(gè)狀態(tài)下能夠響應(yīng)的事件以及事件發(fā)生時(shí)的狀態(tài)遷移與響應(yīng)動(dòng)作。操作序列可以并發(fā)和同步?;顒?dòng)圖中包含控制流和信息流。控制流表示一個(gè)操作完成后對(duì)其后續(xù)操作的觸發(fā),信息流則刻畫操作之間的信息交換。6.2UML概述2022/12/9100國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制狀態(tài)圖描述類的對(duì)象的動(dòng)態(tài)行為。6.2UML概UML的語言機(jī)制(4)實(shí)現(xiàn)圖(implementationdiagram)描述軟件系統(tǒng)的實(shí)現(xiàn)。構(gòu)件圖(componentdiagram)描述軟件實(shí)現(xiàn)系統(tǒng)中各組成部件以及它們之間的依賴關(guān)系。一個(gè)部件可能是一個(gè)資源描述文件、一個(gè)二進(jìn)制文件或一個(gè)可執(zhí)行文件。構(gòu)件圖用于理解和分析軟件各部分之間的相互影響程度。
6.2UML概述2022/12/9101國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制(4)實(shí)現(xiàn)圖(implementatioUML的語言機(jī)制部署圖(deploymentdiagram)描述軟件系統(tǒng)運(yùn)行環(huán)境的硬件及網(wǎng)絡(luò)的物理體系結(jié)構(gòu)。結(jié)點(diǎn)表示實(shí)際的計(jì)算機(jī)和設(shè)備,邊表示結(jié)點(diǎn)之間的物理連接關(guān)系,也可顯示連接的類型及結(jié)點(diǎn)之間的依賴性。在結(jié)點(diǎn)內(nèi)部,可以放置可執(zhí)行部件和對(duì)象以顯示結(jié)點(diǎn)與可執(zhí)行軟件單元之間的對(duì)應(yīng)關(guān)系。部署圖對(duì)于軟件安裝工程師有重要的參考價(jià)值。6.2UML概述2022/12/9102國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制部署圖(deploymentdiagram例:課程注冊(cè)管理系統(tǒng)的用例圖課表維護(hù)、個(gè)人課程規(guī)劃和選課學(xué)生花名冊(cè)查詢。教務(wù)管理人員使用“課表維護(hù)”用例,設(shè)置或修改課程屬性(課程的時(shí)間、地點(diǎn)、上課老師等),增刪課程;學(xué)生使用“個(gè)人課程規(guī)劃”用例選課、修改自己的個(gè)人課表,收費(fèi)管理系統(tǒng)根據(jù)每個(gè)學(xué)生的選課情況計(jì)算其應(yīng)繳費(fèi)用;老師使用“選課學(xué)生花名冊(cè)查詢”用例獲取選定其所開課程的學(xué)生花名冊(cè)。6.2UML概述2022/12/9103國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院例:課程注冊(cè)管理系統(tǒng)的用例圖課表維護(hù)、個(gè)人課程規(guī)劃和選課學(xué)課程注冊(cè)管理系統(tǒng)的用例圖圖6.2表示課程注冊(cè)管理系統(tǒng)包括:“教務(wù)管理人員”、“學(xué)生”、“老師”、“課程”、“課程設(shè)置”、“課程注冊(cè)表”、“課程注冊(cè)管理器”、“課程管理器”八個(gè)類。前三個(gè)類為一般化的“用戶”類的子類。一門“課程”可由一到多個(gè)“課程設(shè)置”構(gòu)成,例如,對(duì)于全校性的公共基礎(chǔ)課,由于選修的學(xué)生太多,必須安排不同的老師、不同的教室或者不同的時(shí)間段?!皩W(xué)生”、“老師”與“課程設(shè)置”之間,“課程注冊(cè)表”與“課程注冊(cè)管理器”之間,以及“課程注冊(cè)管理器”與“課程”之間存在著關(guān)聯(lián)關(guān)系。6.2UML概述2022/12/9104國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院課程注冊(cè)管理系統(tǒng)的用例圖圖6.2表示課程注冊(cè)管理系統(tǒng)包括:6課程注冊(cè)管理系統(tǒng)的類圖6.2UML概述2022/12/9105國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院課程注冊(cè)管理系統(tǒng)的類圖6.2UML概述2022/12/720用UML順序圖表示“個(gè)人課程規(guī)劃”
用例中的學(xué)生選課過程6.2UML概述2022/12/9106國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院用UML順序圖表示“個(gè)人課程規(guī)劃”
用例中的學(xué)生選課過程6.用UML協(xié)作圖表示“個(gè)人課程規(guī)劃”
用例中的學(xué)生選課過程
6.2UML概述2022/12/9107國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院用UML協(xié)作圖表示“個(gè)人課程規(guī)劃”
用例中的學(xué)生選課過程
6
UML狀態(tài)圖示例
“課程設(shè)置”對(duì)象的狀態(tài)圖表示,每個(gè)“課程設(shè)置”最多只能容納50個(gè)選課學(xué)生。6.2UML概述2022/12/9108國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML狀態(tài)圖示例“課程設(shè)置”對(duì)象的狀態(tài)圖表示,每個(gè)“課UML的語言機(jī)制本章的后續(xù)章節(jié)將結(jié)合需求分析過程介紹UML的用例圖、包圖、類圖和活動(dòng)圖第十章將結(jié)合軟件設(shè)計(jì)過程介紹順序圖、協(xié)作圖、狀態(tài)圖和活動(dòng)圖。6.2UML概述2022/12/9109國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院UML的語言機(jī)制本章的后續(xù)章節(jié)將結(jié)合需求分析過程介紹UML的6.2.2基于UML的軟件開發(fā)過程雖然UML是獨(dú)立于軟件開發(fā)過程的,即,UML能夠在幾乎任何一種軟件開發(fā)過程中使用,但是,熟悉一種有代表性的面向?qū)ο蟮能浖_發(fā)過程,并知悉UML各語言要素在過程中不同階段的應(yīng)用,對(duì)于理解UML將大有裨益。圖6.6表示了一種迭代的漸進(jìn)式軟件開發(fā)過程,它包含四個(gè)階段:初啟,細(xì)化,構(gòu)造和移交。6.2UML概述2022/12/9110國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6.2.2基于UML的軟件開發(fā)過程雖然UML是獨(dú)立于軟件開
面向?qū)ο蟮牡?、漸進(jìn)式軟件開發(fā)過程6.2UML概述2022/12/9111國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院面向?qū)ο蟮牡u進(jìn)式軟件開發(fā)過程6.2UML概述20221初啟在初啟階段,軟件項(xiàng)目的發(fā)起人確定項(xiàng)目的主要目標(biāo)和范圍,并進(jìn)行初步的可行性分析和經(jīng)濟(jì)效益分析。
6.2UML概述2022/12/9112國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院1初啟6.2UML概述2022/12/727國(guó)防科技大學(xué)計(jì)2細(xì)化細(xì)化階段的開始標(biāo)志著項(xiàng)目的正式確立。軟件項(xiàng)目組在此階段需要完成以下工作:
(1)初步的需求分析。采用UML的用例描述目標(biāo)軟件系統(tǒng)所有比較重要、比較有風(fēng)險(xiǎn)的用例,利用用例圖表示參與者與用例、以及用例與用例之間的關(guān)系。采用UML的類圖表示目標(biāo)軟件系統(tǒng)所基于的應(yīng)用領(lǐng)域中的概念及概念之間的關(guān)系。這些相互關(guān)聯(lián)的概念構(gòu)成領(lǐng)域模型。領(lǐng)域模型一方面可以幫助軟件項(xiàng)目組理解業(yè)務(wù)背景,與業(yè)務(wù)專家進(jìn)行有效溝通;另一方面,隨著軟件開發(fā)階段的不斷推進(jìn),領(lǐng)域模型將成為軟件結(jié)構(gòu)的主要基礎(chǔ)。如果領(lǐng)域中含有明顯的流程處理成分,可以考慮利用UML的活動(dòng)圖來刻畫領(lǐng)域中的工作流,并標(biāo)識(shí)業(yè)務(wù)流程中的并發(fā)、同步等特征。
6.2UML概述2022/12/9113國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院2細(xì)化細(xì)化階段的開始標(biāo)志著項(xiàng)目的正式確立細(xì)化
(2)初步的高層設(shè)計(jì)。如果目標(biāo)軟件系統(tǒng)的規(guī)模比較龐大,那么,經(jīng)初步需求分析獲得的用例、類將會(huì)非常多。此時(shí),可以考慮根據(jù)用例、類在業(yè)務(wù)領(lǐng)域中的關(guān)系,或者根據(jù)業(yè)務(wù)領(lǐng)域中某種有意義的分類方法將整個(gè)軟件系統(tǒng)劃分為若干個(gè)包,利用UML的包圖刻畫這些包及其關(guān)系。如此,用例、用例圖、類、類圖將依據(jù)包的劃分方法分屬于不同的包,從而給出整個(gè)目標(biāo)軟件系統(tǒng)的高層結(jié)構(gòu)。6.2UML概述2022/12/9114國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院細(xì)化
(2)初步的高層設(shè)計(jì)。如果目標(biāo)軟件系統(tǒng)的規(guī)模比細(xì)化(3)部分的詳細(xì)設(shè)計(jì)。對(duì)于系統(tǒng)中某些重要的、或者風(fēng)險(xiǎn)比較高的用例,可以采用交互圖進(jìn)一步探討其內(nèi)部實(shí)現(xiàn)過程。同樣,對(duì)于系統(tǒng)中的關(guān)鍵類,也可以詳細(xì)研究其屬性和操作,并在UML類圖中加以表現(xiàn)。因此,這里倡導(dǎo)的軟件開發(fā)過程并不在時(shí)間軸上嚴(yán)格分劃分析與設(shè)計(jì)、總體設(shè)計(jì)與詳細(xì)設(shè)計(jì),而是根據(jù)軟件元素(用例、類等)的重要性和風(fēng)險(xiǎn)程度確立優(yōu)先細(xì)化原則,建議軟件項(xiàng)目組優(yōu)先考慮重要的、比較有風(fēng)險(xiǎn)的用例和類,不能將風(fēng)險(xiǎn)的識(shí)別和解決延遲到細(xì)化階段之后。6.2UML概述2022/12/9115國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院細(xì)化(3)部分的詳細(xì)設(shè)計(jì)。對(duì)于系統(tǒng)中某些重要的、(4)部分的原型構(gòu)造。在許多情形下,針對(duì)某些復(fù)雜的用例構(gòu)造可實(shí)際運(yùn)行的原型是解決技術(shù)風(fēng)險(xiǎn)、讓用戶幫助軟件項(xiàng)目組確認(rèn)用戶需求的最有效方法。為了構(gòu)造原型,需要針對(duì)用例生成詳盡的交互圖,對(duì)所有相關(guān)類給出明確的屬性和操作定義。在細(xì)化階段可能需要使用的UML語言機(jī)制包括:描述用戶需求的用例及用例圖,表示領(lǐng)域概念模型的類圖,表示業(yè)務(wù)流程處理的活動(dòng)圖,表示系統(tǒng)高層結(jié)構(gòu)的包圖,表示用例內(nèi)部實(shí)現(xiàn)過程的交互圖等。細(xì)化階段的結(jié)束條件是,所有主要的用戶需求已通過用例和用例圖得以描述;所有重要的風(fēng)險(xiǎn)已被標(biāo)識(shí),并對(duì)風(fēng)險(xiǎn)應(yīng)對(duì)措施了如指掌;能夠比較精確地估算實(shí)現(xiàn)每一用例的時(shí)間。細(xì)化6.2UML概述2022/12/9116國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院(4)部分的原型構(gòu)造。在許多情形下,針對(duì)某些復(fù)雜的用例構(gòu)3構(gòu)造在構(gòu)造階段,開發(fā)人員通過一系列的迭代完成對(duì)所有用例的軟件實(shí)現(xiàn)工作,在每次迭代中實(shí)現(xiàn)一部分用例。以迭代方式實(shí)現(xiàn)所有用例的好處在于,用戶可以及早參與對(duì)已實(shí)現(xiàn)用例的實(shí)際評(píng)價(jià)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《市場(chǎng)營(yíng)銷策劃概述》課件
- 《社區(qū)康復(fù)知識(shí)講座》課件
- 單位管理制度集合大全【員工管理篇】
- 單位管理制度集粹選集【人員管理篇】
- 單位管理制度范文大全人力資源管理篇
- 單位管理制度范例匯編【職員管理】
- 《藥學(xué)專業(yè)知識(shí)(二)》高頻考點(diǎn)
- 《證人與證人證言》課件
- 農(nóng)學(xué)新篇章模板
- 酒店設(shè)施維護(hù)與管理培訓(xùn)
- GB/T 20200-2022α-烯基磺酸鈉
- 光伏電池組件跟蹤光源的PLC控制課件
- 圓周率1000000位-完整版
- 廣東某監(jiān)理公司檢測(cè)儀器設(shè)備管理規(guī)定
- 2023財(cái)務(wù)部年度工作總結(jié)(7篇)
- ZL50型輪胎裝載機(jī)液壓系統(tǒng)
- 在線投票管理系統(tǒng)的開題報(bào)告
- 媒介融合概論
- 2023-2024學(xué)年廣東省深圳市小學(xué)數(shù)學(xué)五年級(jí)上冊(cè)期末評(píng)估試卷
- 新求精中級(jí)I聽力原文
- 煤礦安全管理機(jī)構(gòu)結(jié)構(gòu)圖
評(píng)論
0/150
提交評(píng)論