軟件工程課件全總復(fù)習(xí)full_第1頁
軟件工程課件全總復(fù)習(xí)full_第2頁
軟件工程課件全總復(fù)習(xí)full_第3頁
軟件工程課件全總復(fù)習(xí)full_第4頁
軟件工程課件全總復(fù)習(xí)full_第5頁
已閱讀5頁,還剩94頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

知識(shí)點(diǎn)總結(jié)

舒新峰

西安郵電學(xué)院計(jì)算機(jī)學(xué)院現(xiàn)代軟件工程西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第一章

OO&軟件建模概述1.模型:模型是現(xiàn)實(shí)系統(tǒng)的簡化,它是抓住現(xiàn)實(shí)系統(tǒng)的主要方面而忽略次要方面的一種抽象,是對(duì)事物的一種無歧義的書面描述。

符號(hào)+規(guī)則組成,理解、分析、開發(fā)或改造現(xiàn)實(shí)的手段。2.軟件開發(fā)模型:

軟件開發(fā)模型是軟件開發(fā)全部過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。軟件開發(fā)模型能清晰、直觀的表達(dá)開發(fā)全部過程,明確規(guī)定了要完成的主要活動(dòng)和任務(wù),可以作為軟件項(xiàng)目開發(fā)工作的基礎(chǔ)。常見模型:瀑布模型、增量模型、迭代模型、原型模型、螺旋模型、UP。西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第一章

OO&軟件建模概述3.軟件開發(fā)方法(1)結(jié)構(gòu)化方法。(2)面向?qū)ο蠓椒ǎ簩?duì)象+類+繼承+通信。特點(diǎn):繼承、封裝、多態(tài)、消息

面向過程VS.面向?qū)ο螈貽OM與人類習(xí)慣的思維方法一致②OOM穩(wěn)定性好③OOM可重用性好④可維護(hù)性好⑤較易開發(fā)大型軟件產(chǎn)品西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第一章

OO&軟件建模概述4.UML(UnifiedModelingLanguage)通用的標(biāo)準(zhǔn)建模語言,可以對(duì)任何具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)進(jìn)行建模。標(biāo)準(zhǔn)建模語言UML適用于以面向?qū)ο蠹夹g(shù)來描述任何類型的系統(tǒng),而且適用于系統(tǒng)開發(fā)的不同階段,從需求規(guī)格描述直至系統(tǒng)完成后的測試和維護(hù)。統(tǒng)一標(biāo)準(zhǔn)面向?qū)ο罂梢暬?、表達(dá)能力強(qiáng)獨(dú)立于過程UML很適合于以體系結(jié)構(gòu)中心的、用例驅(qū)動(dòng)的、迭代式和漸增式的軟件開發(fā)過程西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第二章

UML構(gòu)成1.UML的“4+1視圖”從某個(gè)角度觀察系統(tǒng)構(gòu)成系統(tǒng)的一個(gè)視圖,每個(gè)視圖都是系統(tǒng)描述的一個(gè)投影,說明了系統(tǒng)某個(gè)側(cè)面的特征。(1)用例視圖(2)邏輯視圖(3)組件視圖(4)進(jìn)程視圖(并發(fā)視圖)(5)配置視圖(部署視圖)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第二章

UML構(gòu)成2.UML的構(gòu)成:(1)基本模型元素:對(duì)模型中最具有代表性元素的抽象,是模型圖上包含的基本符號(hào)。結(jié)構(gòu)模型元素(structuralthings)行為模型元素(behavioralthings)分組模型元素(groupingthings)注解元素(annotationalthings)

(2)關(guān)系:結(jié)構(gòu)模型元素之間存在著語義上的聯(lián)系關(guān)聯(lián)關(guān)系(association)依賴關(guān)系(dependency)泛化關(guān)系(generalization)

實(shí)現(xiàn)關(guān)系(realization)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第二章

UML構(gòu)成3.UML的模型圖:模型圖是一組UML模型元素構(gòu)成的有向圖表示,它通常由一組節(jié)點(diǎn)(UML基本模型元素),及節(jié)點(diǎn)之間的連線(關(guān)系)組成。(1)用例視圖:用例圖(2)靜態(tài)模型:類圖、對(duì)象圖、包圖、構(gòu)件圖和配置圖(3)動(dòng)態(tài)模型:活動(dòng)圖、順序圖、狀態(tài)圖和協(xié)作圖西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第三章

UnifiedProcess西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第三章

UnifiedProcessUP的構(gòu)成:二維的面向?qū)ο箝_發(fā)模型,兼顧技術(shù)和管理。9工作流:6過程工作流(業(yè)務(wù)建模+需求+分析與設(shè)計(jì)+實(shí)施+測試+部署)和3個(gè)支持工作流(配置和變更管理+項(xiàng)目管理+環(huán)境)4個(gè)階段:初始+細(xì)化+構(gòu)造+交付UP的迭代策略。UP的迭代開發(fā)策略:以體系結(jié)構(gòu)為中心,以質(zhì)量管理和風(fēng)險(xiǎn)控制為目標(biāo),以用例為驅(qū)動(dòng),采用迭代式以螺旋上升的模式進(jìn)行軟件開發(fā)。西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第四章

初始階段(Inception)1.初始階段的目標(biāo)和任務(wù):

做適當(dāng)?shù)恼{(diào)研,以形成對(duì)新系統(tǒng)的整體目的和可行性形成一個(gè)合理的意見。建立項(xiàng)目的軟件范圍和邊界條件,包括一個(gè)操作“前景”,“接受準(zhǔn)則”和產(chǎn)品中包含什么,不包含什么確定核心的用例,這是系統(tǒng)運(yùn)行的主要場景,它將決定系統(tǒng)設(shè)計(jì)的方案針對(duì)主要的場景,確定或者演示至少一個(gè)備選的系統(tǒng)結(jié)構(gòu)對(duì)整個(gè)項(xiàng)目估計(jì)總成本和計(jì)劃(更詳細(xì)的估計(jì)將安排在細(xì)化階段中)估計(jì)可能的風(fēng)險(xiǎn)(不可預(yù)計(jì)性的來源)為項(xiàng)目準(zhǔn)備支持環(huán)境西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第四章

初始階段(Inception)2.初始階段的制品:用例模型+用例描述詞匯表補(bǔ)充性規(guī)格說明前景業(yè)務(wù)規(guī)則西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第四章

初始階段(Inception)3.用例:“一組用例的實(shí)例(場景),其中每個(gè)實(shí)例都是系統(tǒng)執(zhí)行的一系列活動(dòng),這些活動(dòng)產(chǎn)生了對(duì)每個(gè)參與者而言可觀察的返回值”。描述了從參與者角度看系統(tǒng)(黑盒子)做了什么用例模型本身不是面向?qū)ο蠼<夹g(shù)。用例的作用可作為計(jì)劃的基礎(chǔ)。估算每個(gè)用例所需的時(shí)間和資源可用來捕獲功能需求。是分析、設(shè)計(jì)和實(shí)現(xiàn)的基礎(chǔ)可作為軟件測試的基礎(chǔ)。測試人員可將那些在用例中描述的消息序列以及動(dòng)作序列作為測試腳本來驗(yàn)證系統(tǒng)的功能可作為文檔的基礎(chǔ)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第四章

初始階段(Inception)3.用例(續(xù))參與者Actor:

是某些具有行為的事物,可以是人(由角色標(biāo)識(shí)),計(jì)算機(jī)系統(tǒng)或組織,例如收銀員場景Scenario:

參與者和系統(tǒng)之間的一系列特定的活動(dòng)和交互,也稱為用例實(shí)例。場景是使用系統(tǒng)的一個(gè)特定情節(jié)或用例的一條執(zhí)行路徑。用例UseCase:

一組相關(guān)的成功和失敗場景集合,用來描述參與者如何使用系統(tǒng)實(shí)現(xiàn)其目標(biāo)

用例是需求,而且主要是功能需求。用例是需求,而不是功能或者特征列表用例是文檔,而不是圖,用例建模主要是寫文字,而不是畫圖西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第四章

初始階段(Inception)4.用例描述摘要:簡介描述用例,通常只給出主成功場景。非正式:用若干非正式段落來描述用例,通常給出多個(gè)不同場景。詳述:詳細(xì)描述用例,通常給出所有的步驟及場景,并給出前置和后置條件等細(xì)節(jié)注意:用例描述的方法西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第四章

初始階段(Inception)5.用例的獲取過程(1)選擇系統(tǒng)邊界(2)尋找參與者

(3)確定每個(gè)參與者的目標(biāo)(4)定義用例6.用例的定義:一般為每一個(gè)用戶目標(biāo)定義用例

確定用例的經(jīng)驗(yàn)方法: (1)老板測試:必須看到可量化的價(jià)值 (2)EBP:能夠增加可量化的業(yè)務(wù)價(jià)值,并且以持久狀態(tài)留下數(shù)據(jù)

(3)規(guī)模測試:西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第四章

初始階段(Inception)7.用例圖.

用例圖是表達(dá)用例和參與者及其關(guān)系的載體。關(guān)系包括:關(guān)聯(lián)關(guān)系,依賴關(guān)系,實(shí)現(xiàn)關(guān)系:西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第四章

初始階段(Inception)7.用例圖(續(xù))——用例之間關(guān)系1(包含與擴(kuò)展).西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第四章

初始階段(Inception)7.用例圖(續(xù))——用例之間關(guān)系2(泛化).西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第四章

初始階段(Inception)8.RUP與用例(1)意義:記錄功能需求;迭代計(jì)劃的重要部分,預(yù)算的關(guān)鍵輸入;實(shí)現(xiàn)驅(qū)動(dòng)設(shè)計(jì);影響用戶手冊(cè)和測試(2)初始階段:確定系統(tǒng)目標(biāo)、范圍、涉眾;絕大部分摘要描述、10~20%詳述;確定是否繼續(xù)開發(fā)(3)細(xì)化階段:80~90%被細(xì)化描述;分多次迭代(4)構(gòu)造階段:多次時(shí)間定量迭代;補(bǔ)充次要用例西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第五章細(xì)化階段(Elaboration)1.細(xì)化階段的目標(biāo)和任務(wù):

構(gòu)建核心體系架構(gòu),解決高風(fēng)險(xiǎn)問題,完成絕大部分需求的定義,并估計(jì)并估計(jì)總體計(jì)劃和資源保證架構(gòu),需求和計(jì)劃足夠穩(wěn)定,風(fēng)險(xiǎn)被充分規(guī)避確定和解決項(xiàng)目中所有與架構(gòu)密切相關(guān)的風(fēng)險(xiǎn)從與架構(gòu)密切相關(guān)的場景中確定一個(gè)基準(zhǔn)體系架構(gòu)產(chǎn)生一個(gè)達(dá)到產(chǎn)品級(jí)質(zhì)量水準(zhǔn)的演化性原型,也可以是一個(gè)或更多個(gè)探索型\拋棄型原型能夠展示基準(zhǔn)的體系架構(gòu)以合理的價(jià)格和合適的時(shí)間支持系統(tǒng)需求建立一個(gè)支持環(huán)境西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第五章細(xì)化階段(Elaboration)2.核心活動(dòng):

盡快定義和驗(yàn)證體系架構(gòu),并確定體系架構(gòu)基線細(xì)化設(shè)想(Vision)為構(gòu)造階段建立詳細(xì)的迭代計(jì)劃并建立基線細(xì)化開發(fā)用例并將其部署到開發(fā)環(huán)境中細(xì)化體系架構(gòu)并選擇組件3.關(guān)鍵思想和實(shí)踐實(shí)行短時(shí)間定量、風(fēng)險(xiǎn)驅(qū)動(dòng)的迭代及早開始編程對(duì)架構(gòu)核心和風(fēng)險(xiǎn)部分進(jìn)行適應(yīng)性設(shè)計(jì),實(shí)現(xiàn)和測試盡早,頻繁,實(shí)際的測試基于來自測試,用戶,開發(fā)者的反饋進(jìn)行調(diào)整通過一系列討論會(huì),詳細(xì)編寫大部分用例和其他需求,每個(gè)細(xì)化迭代舉行一次西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第五章細(xì)化階段(Elaboration)4.制定迭代計(jì)劃:

通過風(fēng)險(xiǎn)、覆蓋范圍和關(guān)鍵程度組織需求和迭代。風(fēng)險(xiǎn):技術(shù)復(fù)雜性;其他因素覆蓋性:在早期迭代中,系統(tǒng)中主要的部分都有所涉及關(guān)鍵性:具有高業(yè)務(wù)價(jià)值的功能在每個(gè)迭代前將用例和特征進(jìn)行排序迭代單位:(1)用例;(2)場景西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第五章細(xì)化階段(Elaboration)5.細(xì)化階段的制品:

領(lǐng)域模型設(shè)計(jì)模型軟件架構(gòu)文檔數(shù)據(jù)模型用例示意板,用戶界面模型西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第五章細(xì)化階段(Elaboration)6.領(lǐng)域模型(DomainModel)領(lǐng)域模型是對(duì)真實(shí)世界中概念類的表示,而不是軟件對(duì)象的表示。它不是用來描述軟件類、軟件架構(gòu)領(lǐng)域?qū)踊蛴新氊?zé)軟件對(duì)象的一組圖。領(lǐng)域模型用一套類圖表示,但類沒有操作。領(lǐng)域模型可以顯示:領(lǐng)域?qū)ο蠡蛘吒拍铑?;概念類之間的關(guān)聯(lián);概念類的屬性概念類來源:現(xiàn)實(shí)(組織、地點(diǎn)、設(shè)備等)對(duì)象;業(yè)務(wù)(業(yè)務(wù)實(shí)體和概念)對(duì)象;過程(需要記錄的時(shí)間)對(duì)象。西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第五章細(xì)化階段(Elaboration)7.領(lǐng)域模型建模對(duì)象類對(duì)象類限定符關(guān)聯(lián)對(duì)象類多重性角色名:類限定符角色名:類多重性關(guān)聯(lián)名nameMultiplicityexpressionnavigability西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第五章細(xì)化階段(Elaboration)8.系統(tǒng)順序圖表述系統(tǒng)是什么,而不解釋它是如何做的將系統(tǒng)作為黑盒子系統(tǒng)順序圖它展示了對(duì)一個(gè)特定的用例,外部的參與者產(chǎn)生的事件,它們的順序以及系統(tǒng)內(nèi)的事件西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第五章細(xì)化階段(Elaboration)8.系統(tǒng)順序圖(續(xù))enterItem(itemID,quantity):CashierendSale()makePayment(amount)systemboundary:SystemmakeNewSale()西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第五章細(xì)化階段(Elaboration)9.操作契約

通過領(lǐng)域模型中的對(duì)象的狀態(tài)變換(實(shí)例創(chuàng)建或刪除;屬性修改;關(guān)聯(lián)形成或者打破),定義了系統(tǒng)操作執(zhí)行后的詳細(xì)的系統(tǒng)行為.契約CO2:enterItem操作:enterItem(itemID:ItemID,quantity:integer)前提(Preconditions):Thereisasaleunderway后置條件(Postconditions):一個(gè)SalesLineItem的實(shí)例sli被創(chuàng)建;Sli與當(dāng)前的Sale對(duì)象相關(guān)聯(lián);sli.quantity的數(shù)值被賦值依據(jù)itemID的匹配,sli與ProductSpecification相關(guān)聯(lián)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)1.軟件的邏輯體系結(jié)構(gòu)邏輯架構(gòu)(LogicalArchitecture)是軟件類的宏觀組織結(jié)構(gòu),它將軟件類組織成包(命名空間),子系統(tǒng)和層等。層(Layer):對(duì)類、包或子系統(tǒng)的粗粒度的分組,具有對(duì)系統(tǒng)主要方面加以內(nèi)聚的職責(zé)。較高的層可以調(diào)用較低的層。常見的層:用戶界面應(yīng)用邏輯和領(lǐng)域?qū)ο蠹夹g(shù)服務(wù)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@典型的分層模式DomainUISwingnottheJavaSwinglibrariesbutourGUIclassesbasedonSwingWebSalesPaymentsTaxesTechnicalServicesPersistenceLoggingRulesEngine西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)2.軟件架構(gòu)架構(gòu)是一組重要決策,其中涉及軟件系統(tǒng)的組織,對(duì)結(jié)構(gòu)元素及其組成系統(tǒng)的接口的選擇,這些元素特定于其相互協(xié)作的行為,這些結(jié)構(gòu)和行為元素到規(guī)模更大的子系統(tǒng)的組成,以及指導(dǎo)該組織結(jié)構(gòu)的架構(gòu)風(fēng)格。

3.分層設(shè)計(jì)模式(模型-視圖分離,如MVC架構(gòu))系統(tǒng)的大型邏輯結(jié)構(gòu)組織為獨(dú)立的,職責(zé)相關(guān)的離散層,具有清晰內(nèi)聚的關(guān)注分離。較低的層是低級(jí)別和一般性服務(wù),較高的層則是與應(yīng)用相關(guān)。協(xié)作與耦合從較高層到較低層進(jìn)行,避免從較低層到較高層的耦合西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)4.包圖(PackageDiagram)概念性的模型管理工具,用于將大型的軟件系統(tǒng)中大量的建模元素有序的組織起來。

運(yùn)用包可以把語義上相近的可能一起變更的模型元素組織在同一個(gè)包中,對(duì)包中的元素作為一個(gè)整體對(duì)待,并且控制它們的可視性和存取。

包擁有內(nèi)容,包括類、接口、組件、節(jié)點(diǎn)、協(xié)同。UseCase、圖,甚至其它包。

西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)4.包圖(續(xù)):模型元素前可以有可視性標(biāo)志,其表示方法與類中的屬性和操作的可視性表示一樣對(duì)于輸入該包的任何包的模型元素都可見-,對(duì)于外包不可見#,只對(duì)其子包可見包可以嵌套,但嵌套層次不能太多,一般最多不超過2~3層+訂貨表+追蹤表-訂貨客戶機(jī)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)6.基于交互圖(順序圖、協(xié)作圖)進(jìn)行系統(tǒng)設(shè)計(jì)1)協(xié)作圖:采用圖的形式展示對(duì)象間的交互

objectlink順序號(hào)消息1:makePayment(cashTendered)1.1:create(cashTendered):Register:Sale:PaymentmakePayment(cashTendered)消息方向西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)6.基于交互圖(順序圖、協(xié)作圖)進(jìn)行系統(tǒng)設(shè)計(jì)2)順序圖:采用柵欄格式展示對(duì)象間的交互

:Register:SalemakePayment(cashTendered)makePayment(cashTendered):Paymentcreate(cashTendered)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@6.基于交互圖(順序圖、協(xié)作圖)進(jìn)行系統(tǒng)設(shè)計(jì)

順序圖Vs.協(xié)作圖:順序圖(優(yōu)點(diǎn))強(qiáng)調(diào)消息的時(shí)間順序及對(duì)象生命線(優(yōu)點(diǎn))大量詳細(xì)表示法選項(xiàng)(缺點(diǎn))強(qiáng)制在右側(cè)增加新對(duì)象,消耗空間大協(xié)作圖(優(yōu)點(diǎn))強(qiáng)調(diào)結(jié)構(gòu)組織,復(fù)雜交互表達(dá)更容易(優(yōu)點(diǎn))空間利用率高,和方便添加新對(duì)象(缺點(diǎn))不宜查詢消息的順序,表示法選項(xiàng)少6.3交互圖西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)6.基于交互圖(順序圖、協(xié)作圖)進(jìn)行系統(tǒng)設(shè)計(jì)3)公共機(jī)制——類和實(shí)例

underlined西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)6.基于交互圖(順序圖、協(xié)作圖)進(jìn)行系統(tǒng)設(shè)計(jì)3)公共機(jī)制——消息[序號(hào)][警戒條件]*[重復(fù)次數(shù)][返回值表:=]操作名(參數(shù)表)

簡單同步異步返回發(fā)消息的原因:創(chuàng)建或銷毀對(duì)象調(diào)用本(其他)對(duì)象的操作發(fā)送信息給另外一個(gè)對(duì)象給調(diào)用者返回值。西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)順序圖:{processcard<1minutes}

:OrderClerk:OrderTaker:OrderFulfillment:BillingAgent:CreditCardAgentsubmitOrderplaceOrderprocessCardacknowledgeOrdertriggerBillTimeobjectslifelineFocusofcontrol西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)順序圖——特殊形式1::Sale:Paymentcreate(cashTendered)...?destroy?X西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)順序圖——特殊形式2:calculate:Baryyxx[color=red]opt:Foo西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)順序圖——特殊形式3::B:AcalculatedoX:Ccalculate[x<10]alt[else]西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)順序圖——特殊形式4:st=getSubtotallineItems[i]

:SalesLineItemt=getTotal[i<lineItemsSize.]loop:SaleAnactionboxmaycontainarbitrarylanguage

statements(inthiscaseincrementing‘i’,)itisplacedoverthelifelinetowhichitappliesi++西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)順序圖——特殊形式5:st=getSubtotallineItems[i]

:SalesLineItemt=getTotal[i<lineItemsSize.]loop:SaleAnactionboxmaycontainarbitrarylanguage

statements(inthiscaseincrementing‘i’,)itisplacedoverthelifelinetowhichitappliesi++西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)順序圖——特殊形式6:西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)interactionoccurrencenoteitcoversasetoflifelinesnotethatthesdframeitrelatestohasthesamelifelines:BandCdoA:A:B:CdoBsdAuthenticateUserrefAuthenticateUserauthenticate(id)doXdoM1:B:Cauthenticate(id)doM2refDoFoosdDoFoodoX:B:CdoYdoZ順序圖——特殊形式7:西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)8.協(xié)作圖ObjectLinkMessage

:OrderClerk:OrderTaker:OrderFulfillment:CreditCardAgen:BillingAgent1:submitOrder3:placeOrder2:processCard5:acknowledgeOrder4:triggerBill西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)8.協(xié)作圖——特殊形式西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)8.協(xié)作圖——特殊形式2西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)8.協(xié)作圖——特殊形式3西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@9、類圖1)類的描述

類圖表示系統(tǒng)中類及類和類之間的關(guān)系,用于對(duì)系統(tǒng)的靜態(tài)結(jié)構(gòu)進(jìn)行描述。類用來表示系統(tǒng)中需要處理的事物.

+public-private#protected[可見性]屬性名[:類型][=初值][可見性]操作名[(參數(shù)列表)][:返回類型]第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@9、類圖2)類的關(guān)系

(1)關(guān)聯(lián):關(guān)聯(lián)表示兩個(gè)類的對(duì)象之間存在某種語義上的聯(lián)系。(2)聚集:聚集也稱為聚合,關(guān)聯(lián)的特例。聚集表示類與類之間的關(guān)系是整體與部分的關(guān)系。(3)泛化:UML中的泛化關(guān)系就是通常所說的繼承關(guān)系,它是通用元素和具體元素之間的一種分類關(guān)系。(4)依賴和細(xì)化。第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@2)類的關(guān)系——關(guān)聯(lián)訂貨顧客*1PersonCompany+employer+employee第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@2)類的關(guān)系——關(guān)聯(lián)2顧客供應(yīng)商商品訂貨商品編號(hào)商品名單價(jià)***第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@2)類的關(guān)系——聚集

聚集也稱為聚合,是關(guān)聯(lián)的特例。聚集表示類與類之間的關(guān)系是整體與部分的關(guān)系。(1)共享聚集(聚合):聚集關(guān)系中處于部分方的對(duì)象可同時(shí)參與多個(gè)處于整體方對(duì)象的構(gòu)成。(2)組合聚集(組合):部分類完全隸屬于整體類,部分與整體共存,整體不存在部分也隨之消失。第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@2)類的關(guān)系——聚集

CompanyDepartment*1..1多邊形點(diǎn)圓格式顏色填充否1*1*13…*{ordered}第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@2)類的關(guān)系——泛化

UML中的泛化關(guān)系就是通常所說的繼承關(guān)系(或一般與特殊關(guān)系)。第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@2)類的關(guān)系——依賴

兩個(gè)類之間有依賴,表明其中一個(gè)類(客戶類)依賴于另一個(gè)類(供應(yīng)類)所提供的某些服務(wù)。FilmClipChannel客戶類服務(wù)類第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@2)類的關(guān)系——細(xì)化當(dāng)對(duì)同一個(gè)事物在不同抽象層次上描述時(shí),這些描述之間具有細(xì)化關(guān)系。細(xì)化用來協(xié)調(diào)不同階段模型之間的關(guān)系。第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@3)特殊類——接口

接口是一組外部可訪問的操作,用于為對(duì)象類或組件提供服務(wù)。接口可以看作一種特殊的抽象類,它不含屬性,操作也沒有方法,即沒有操作的實(shí)現(xiàn)。接口常用來定義或者限制軟件構(gòu)建的對(duì)外運(yùn)算。接口和正常類一樣可以繼承。第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@3)特殊類——抽象類(AbstractClass)抽象類是不能直接產(chǎn)生實(shí)例的對(duì)象類抽象類的實(shí)例只能通過一個(gè)非抽象類的子類產(chǎn)生第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@3)特殊類——抽象類Vs.接口抽象類一般在繼承結(jié)構(gòu)中作為一個(gè)公共接口。但是在UML中的抽象類與接口是不同的模型元素。一個(gè)抽象類可以有屬性,接口不含有屬性,而且接口既可以由對(duì)象類實(shí)現(xiàn)(邏輯模型元素),也可以由組件實(shí)現(xiàn)(物理抽象元素)第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@3)特殊類——參數(shù)類(ParameterizedClass)帶有形式參數(shù)的類描述符,它定義一個(gè)類的家族。在參數(shù)類中屬性和操作都是以形式化參數(shù)來定義。不能直接使用,只有通過把參數(shù)類的形式參數(shù)綁定到實(shí)在參數(shù)時(shí)才得到一個(gè)類。第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@3)特殊類——單實(shí)例類(SingletonClass)Singleton是一種創(chuàng)建性模型,它用來確保只產(chǎn)生一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn).對(duì)一些類來說,保證只有一個(gè)實(shí)例是很重要的,比如有的時(shí)候,數(shù)據(jù)庫連接或Socket連接要受到一定的限制,必須保持同一時(shí)間只能有一個(gè)連接的存在.

第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@3)特殊類——單實(shí)例類(SingletonClass)第六章從需求到設(shè)計(jì)

1ServicesFactoryinstance:ServicesFactoryaccountingAdapter:IAccountingAdapterinventoryAdapter:IInventoryAdaptertaxCalculatorAdapter:ITaxCalculatorAdaptergetInstance():ServicesFactorygetAccountingAdapter():IAccountingAdaptergetInventoryAdapter():IInventoryAdaptergetTaxCalculatorAdapter():ITaxCalculatorAdapter...西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@10活動(dòng)圖活動(dòng)圖用于表示完成一個(gè)操作所需要的活動(dòng),或者是一個(gè)用例實(shí)例(場景)的活動(dòng)?;顒?dòng)圖適合描述動(dòng)作流和并發(fā)處理行為。相比于用例的文字描述,更加直觀與準(zhǔn)確?;顒?dòng)圖實(shí)際上為一種流程圖,描述了活動(dòng)的序列,即系統(tǒng)從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流。第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@10活動(dòng)圖——活動(dòng)圖的構(gòu)成

活動(dòng)名起點(diǎn)終點(diǎn)遷移活動(dòng)判斷并發(fā)分劈

并發(fā)結(jié)合第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)10活動(dòng)圖——實(shí)例

西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@10活動(dòng)圖——泳道圖泳道將活動(dòng)圖中的活動(dòng)化分為若干組,并把每一組指定給負(fù)責(zé)這組活動(dòng)的業(yè)務(wù)組織即對(duì)象。泳道區(qū)分了負(fù)責(zé)活動(dòng)的對(duì)象,明確地表示了哪些活動(dòng)是由哪些對(duì)象進(jìn)行的。每個(gè)活動(dòng)只能明確地屬于一個(gè)泳道。

第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@11狀態(tài)圖(狀態(tài)機(jī))狀態(tài)圖(StateDiagram)一個(gè)對(duì)象在其生存期間的動(dòng)態(tài)行為,表現(xiàn)對(duì)象響應(yīng)事件所經(jīng)歷的狀態(tài)序列以及伴隨的動(dòng)作。并不是所有類都有相應(yīng)的狀態(tài)圖。狀態(tài)圖只適用于:具有若干個(gè)確定狀態(tài),類的行為在這些狀態(tài)下會(huì)受到影響且被不同的狀態(tài)改變。第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第六章從需求到設(shè)計(jì)11狀態(tài)圖——基本符號(hào)

西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@11狀態(tài)圖——狀態(tài)(state)對(duì)象生命期中的某個(gè)條件或狀況,在此期間對(duì)象將滿足某些條件、執(zhí)行某些活動(dòng)或等待某些事件。狀態(tài)的幾種類型●初態(tài)●終態(tài)●中間狀態(tài)●組合狀態(tài)●歷史狀態(tài)第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@11狀態(tài)圖——遷移(Transition)某個(gè)特定事件發(fā)生或某些條件滿足時(shí),一個(gè)源狀態(tài)下的對(duì)象完成一些特定動(dòng)作,使得對(duì)象從源狀態(tài)遷移到新狀態(tài)。格式:事件[條件]/動(dòng)作表達(dá)式發(fā)送子句轉(zhuǎn)換的五要素源狀態(tài)目標(biāo)狀態(tài)觸發(fā)事件監(jiān)護(hù)條件動(dòng)作第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@11狀態(tài)圖——遷移(Transition)-分類遷移類型描述自遷移源狀態(tài)與目標(biāo)為同一狀態(tài)。自遷移中有入口事件和出口事件,分別調(diào)用入口動(dòng)作和出口動(dòng)作。外部遷移對(duì)事件做出響應(yīng),引起狀態(tài)變化或自身轉(zhuǎn)換,同時(shí)引發(fā)一個(gè)特定動(dòng)作,如果離開或進(jìn)入狀態(tài)將引發(fā)進(jìn)入轉(zhuǎn)換、離開轉(zhuǎn)換。內(nèi)部遷移對(duì)事件做出響應(yīng),并執(zhí)行一個(gè)特定的活動(dòng),但并不引起狀態(tài)變化或進(jìn)入轉(zhuǎn)換、離開轉(zhuǎn)換。自動(dòng)遷移遷移線上沒有條件和觸發(fā)事件。動(dòng)作完成后自動(dòng)觸發(fā)遷移進(jìn)入下一狀態(tài)復(fù)合遷移由條件判定、并發(fā)分劈和并發(fā)結(jié)合將一些簡單遷移組合而成。第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@狀態(tài)圖活動(dòng)圖的區(qū)別與聯(lián)系

(1)相同的圖形符號(hào)。(2)描述一個(gè)系統(tǒng)或?qū)ο笤谏嬷芷诘臓顟B(tài)或行為。(3)描述系統(tǒng)或?qū)ο笤诙噙M(jìn)程中同步或異步操作并發(fā)行為。(4)用條件分支來描述系統(tǒng)或?qū)ο蟮男袨榭刂屏?。?)觸發(fā)狀態(tài)(活動(dòng))發(fā)生遷移的機(jī)制不同?;顒?dòng)狀態(tài)遷移不需要事件觸發(fā),活動(dòng)執(zhí)行完畢可以直接進(jìn)入下一個(gè)活動(dòng)狀態(tài)。(2)描述多個(gè)對(duì)象共同完成一個(gè)操作的機(jī)制不同?;顒?dòng)圖置于責(zé)任區(qū)(泳道)中,責(zé)任區(qū)將活動(dòng)按責(zé)任目標(biāo)和組織歸屬的原則分類。狀態(tài)圖采用狀態(tài)嵌套方式描述多對(duì)象協(xié)作。第六章從需求到設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第七章模式與對(duì)象設(shè)計(jì)1職責(zé)和職責(zé)驅(qū)動(dòng)設(shè)計(jì)

類的契約和責(zé)任,分為:行為職責(zé)和認(rèn)知職責(zé)。在對(duì)象設(shè)計(jì)中,職責(zé)被分配給對(duì)象,稱為RDD。2設(shè)計(jì)模式設(shè)計(jì)模式:對(duì)被用來在特定場景下解決一般設(shè)計(jì)問題的類和相互通信的對(duì)象的描述。即,對(duì)特定問題的描述或解決方案。目的:易于理解,維護(hù),擴(kuò)展和重用西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第七章模式與對(duì)象設(shè)計(jì)3GRASP模式控制器(Controller)創(chuàng)建者(Creator)信息專家(InformationExpert)高度內(nèi)聚(HighCohesion)低耦合(LowCoupling)……西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第七章模式與對(duì)象設(shè)計(jì)4控制器模式(Controller)將接收和處理系統(tǒng)事件消息的責(zé)任分配給代表下列方面的類:方面控制器:代表整個(gè)系統(tǒng),設(shè)備或子系統(tǒng)用例控制器:代表與系統(tǒng)事件相應(yīng)的用例場景優(yōu)點(diǎn):提高了重用的可能性,提供了可插拔的接口。它保證了接口層不處理應(yīng)用邏輯對(duì)用例的狀態(tài)進(jìn)行推理:保證系統(tǒng)操作以合法的順序發(fā)生。西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第七章模式與對(duì)象設(shè)計(jì)5信息專家(InformationExpert)

將責(zé)任分配給信息專家,所謂的信息專家是擁有完成責(zé)任的信息的類.優(yōu)點(diǎn):實(shí)現(xiàn)了信息封裝,因?yàn)閷?duì)象使用它們自己的信息完成任務(wù)行為分布在擁有所需要的信息的類上西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第七章模式與對(duì)象設(shè)計(jì)6創(chuàng)建者(Creator)將創(chuàng)建類A的實(shí)例的責(zé)任分配給類B,如果一個(gè)或多個(gè)下面的條件為真:B聚合了(aggregates)A對(duì)象B包含了(contains)A對(duì)象B記錄了(records)A對(duì)象的實(shí)例B密切使用(closelyuses)A對(duì)象B擁有傳遞給創(chuàng)建A所需要的初始化數(shù)據(jù)(因此B是創(chuàng)建A的專家)B是A對(duì)象的創(chuàng)建者西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第七章模式與對(duì)象設(shè)計(jì)7低耦合(LowCoupling)

耦合是對(duì)一個(gè)元素與其他元素的連接,擁有知識(shí),依賴等關(guān)系的強(qiáng)烈程度的度量。分配責(zé)任使得耦合度比較低使A,B兩個(gè)類產(chǎn)生耦合的情況:1)A具有一個(gè)B的屬性,或調(diào)用一個(gè)B的方法;2)A的方法包括對(duì)B的引用,例如返值是B類型,或參數(shù)是B類型;3)A是B的子類,或者A是B的實(shí)現(xiàn)類;不對(duì)陌生人講話(Don‘tTalktoStrangers):不要相連不需要通信的兩個(gè)對(duì)象,不要做無為的耦合.西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第七章模式與對(duì)象設(shè)計(jì)8高內(nèi)聚(HighCohesion)

內(nèi)聚是對(duì)一個(gè)元素的責(zé)任之間的關(guān)系是否密切相關(guān)和集中的度量。責(zé)任分配以保證高內(nèi)聚低內(nèi)聚的類包含了很多無關(guān)的事情,或者承擔(dān)了太多的工作。它們有下面這些的問題:代碼行過多,語義復(fù)雜,過多的屬性和方法.難于實(shí)現(xiàn)類的重用.系統(tǒng)變得脆弱,不斷地需要修改!西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第七章模式與對(duì)象設(shè)計(jì)9構(gòu)件圖(ComponentDiagram

)構(gòu)件圖由構(gòu)件、接口及構(gòu)件之間的關(guān)系組成。構(gòu)件圖主要用于系統(tǒng)的靜態(tài)實(shí)現(xiàn)視圖模型,通過構(gòu)件的依賴關(guān)系描述系統(tǒng)軟件的組織結(jié)構(gòu),展示系統(tǒng)不同物理構(gòu)件及其關(guān)系。系統(tǒng)業(yè)務(wù)模型:業(yè)務(wù)過程和文檔。

系統(tǒng)開發(fā)管理模型:開發(fā)期間產(chǎn)物及關(guān)系

系統(tǒng)實(shí)現(xiàn)模型:系統(tǒng)實(shí)現(xiàn)的構(gòu)件建模系統(tǒng)物理配置模型:數(shù)據(jù)文件、日志、安裝/卸載等文件構(gòu)件建模集成系統(tǒng)模型:對(duì)API建模,幫助利用已有組件。西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第七章模式與對(duì)象設(shè)計(jì)9構(gòu)件圖(ComponentDiagram)

(1)構(gòu)件:系統(tǒng)中遵從并實(shí)現(xiàn)一組接口的物理的、可替換的軟件模塊。構(gòu)件是軟件復(fù)用的基本物理實(shí)現(xiàn)單元,是邏輯元素模型(類、接口、協(xié)同等)的物理包西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第七章模式與對(duì)象設(shè)計(jì)9構(gòu)件圖(ComponentDiagram)

(2)構(gòu)件的接口:一個(gè)構(gòu)件可以定義對(duì)其他構(gòu)件可見的接口。構(gòu)件間依賴通過指向所使用的構(gòu)件接口來表示。接口描述一個(gè)構(gòu)件能提供服務(wù)的操作,是一個(gè)有操作而無實(shí)現(xiàn)的類。包括輸入和輸出接口。西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@第七章模式與對(duì)象設(shè)計(jì)10部署圖(DeploymentDiagram

)由節(jié)點(diǎn)和節(jié)點(diǎn)之間的聯(lián)系組成,描述了處理器、設(shè)備和軟件構(gòu)件運(yùn)行時(shí)的體系結(jié)構(gòu)。

。西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@10部署圖——結(jié)點(diǎn)節(jié)點(diǎn)是存在于運(yùn)行時(shí)的代表計(jì)算資源的物理元素,可以代表一種物理硬件設(shè)備或軟件元素。包含:處理器和設(shè)備兩種類型第七章模式與對(duì)象設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@10部署圖——結(jié)點(diǎn)間聯(lián)系節(jié)點(diǎn)間通過物理連接發(fā)生聯(lián)系,以從硬件方面保證系統(tǒng)各節(jié)點(diǎn)之間的協(xié)同運(yùn)行。包括通訊關(guān)聯(lián)、依賴聯(lián)系等。第七章模式與對(duì)象設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@11命令——查詢分類原則CQS(Command-QuerySeparationPrinciple)是針對(duì)方法的經(jīng)典OO設(shè)計(jì)原則[Meyer88]。該原則指出,任何方法都可能使如下情況之一:

執(zhí)行動(dòng)作(更新、調(diào)整,……)的命令方法,這種方法通常具有改變對(duì)象狀態(tài)等副作用,并且是void的(沒有返回值)。向調(diào)用者返回?cái)?shù)據(jù)的查詢,這種方法沒有副作用,不會(huì)永久性的改變?nèi)魏螌?duì)象的狀態(tài)。一個(gè)方法不應(yīng)該同時(shí)屬于以上兩種類型。第七章模式與對(duì)象設(shè)計(jì)西安郵電學(xué)院計(jì)算機(jī)系舒新峰shuxf@12對(duì)象的可見性可見性Visibility

是對(duì)象看到或引用其它對(duì)象的能力

溫馨提示

  • 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)論