版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程導(dǎo)論
詳細(xì)設(shè)計(jì)之類圖建模主講:李傳科Tel:152030222481海軟院軟件工程系 第5講面向?qū)ο蟮能浖こ堂嫦驅(qū)ο蠓椒嫦驅(qū)ο蠡靖拍蠲嫦驅(qū)ο蠼n悎D時(shí)序圖2海軟院軟件工程系面向?qū)ο笏枷胩岢霰尘皞鹘y(tǒng)結(jié)構(gòu)化方法學(xué)的缺點(diǎn):1、生產(chǎn)效率低2、不能滿足用戶需求3、軟件復(fù)用程度很低4、軟件仍然很難維護(hù)面向?qū)ο蠓椒ǎ翰皇前殉绦蚩醋魇枪ぷ髟跀?shù)據(jù)上的一系列過程和函數(shù)數(shù)據(jù)的集合,而是把程序看作是相互協(xié)作而彼此獨(dú)立的對(duì)象的集合。每個(gè)對(duì)象就像一個(gè)有數(shù)據(jù)、操作、功能和目的的微型程序3海軟院軟件工程系什么是面向?qū)ο?/p>
面向?qū)ο蟮幕舅枷胧菍⒁粋€(gè)實(shí)際問題看成是一個(gè)對(duì)象或幾個(gè)對(duì)象的集合。按照以下4個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的系統(tǒng),稱為面向?qū)ο蟆?面向?qū)ο?對(duì)象
(object)+類
(classification)+繼承(inheritance)+通信
(communicationwithmessages)5.1軟件工程的新途徑—面向?qū)ο蠓椒?海軟院軟件工程系5.1.1面向?qū)ο笏枷?/p>
OOSD由三部分組成:
OOA(Object-OrientedAnalysis)面向?qū)ο蟮姆治?/p>
OOD(Object-OrientedDesign)面向?qū)ο蟮脑O(shè)計(jì)
OOP(Object-OrientedProgram)面向?qū)ο蟮某绦蛟O(shè)計(jì)5海軟院軟件工程系OOA
過程是在系統(tǒng)所要求解的問題中找出對(duì)象(屬性和行為)以及它所屬的類,并定義對(duì)象與類;OOD
是把系統(tǒng)所要求解的問題分解為一些對(duì)象及對(duì)象間傳遞消息的過程;OOP
是把數(shù)據(jù)和處理數(shù)據(jù)的過程結(jié)合為一個(gè)對(duì)象。對(duì)象既可以像數(shù)據(jù)一樣被處理,又可以像過程一樣被描述處理的流程和細(xì)節(jié)。6海軟院軟件工程系5.1.2面向?qū)ο蟮幕靖拍?.對(duì)象(Object)2.類(Class)3.消息和方法(MessageandMethod)4.繼承性(Inheritance)5.封裝性(Encapsulation)6.多態(tài)性(Polymorphism)7海軟院軟件工程系5.1.2面向?qū)ο蟮幕靖拍?、對(duì)象(Object)
對(duì)象(Object)是客觀事物或概念的抽象表述,即對(duì)客觀存在的事物的描述統(tǒng)稱為對(duì)象,對(duì)象可以是事、物、或抽象概念,是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過程封裝在一起的實(shí)體。8海軟院軟件工程系5.1.2面向?qū)ο蟮幕靖拍?.類(Class)類又稱對(duì)象類(ObjectClass),是一組具有相同屬性和相同操作的對(duì)象的集合。在一個(gè)類中,每個(gè)對(duì)象都是類的實(shí)例(instance),它們都可以使用類中提供的函數(shù)。類具有屬性,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性,類具有操作,它是對(duì)象的行為的抽象,操作實(shí)現(xiàn)的過程稱為方法(method),方法有方法名,方法體和參數(shù)。9海軟院軟件工程系5.1.2面向?qū)ο蟮幕靖拍顜缀螌?duì)象顏色位置移動(dòng)(delta:矢量)選擇(P:指針型):布爾型旋轉(zhuǎn)(角度)圖5.1對(duì)象類的描述人姓名:字符串年齡:整型找工作更換地址文件文件名文件大小最近更新日期打印(人)張紅兵24(人)李軍24圖5.2對(duì)象的描述對(duì)象和類的描述對(duì)象和類一般采用“對(duì)象圖”和“類圖”來描述。類名屬性操作
對(duì)象圖
類圖10海軟院軟件工程系5.1.2面向?qū)ο蟮幕靖拍?.消息和方法(MessageandMethod)消息就是向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求(互相聯(lián)系、協(xié)同工作等)。對(duì)象之間的聯(lián)系可表示為對(duì)象間的消息傳遞,即對(duì)象間的通訊機(jī)制。一個(gè)消息應(yīng)該包含以下信息:消息名、接收消息對(duì)象的標(biāo)識(shí)、服務(wù)標(biāo)識(shí)、消息和方法、輸入信息、回答信息。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,程序的執(zhí)行是靠在對(duì)象間傳遞消息來完成的。11海軟院軟件工程系5.1.2面向?qū)ο蟮幕靖拍?.繼承性(Inheritance)繼承性是共享類、子類和對(duì)象中的方法和數(shù)據(jù)的機(jī)制。當(dāng)類A不但具有類B的屬性,而且還具有自己的獨(dú)特屬性時(shí),這時(shí)稱類A繼承了類B。當(dāng)類A繼承類B時(shí),就表明類A是類B的子類,而類B是類A的超類。12海軟院軟件工程系5.1.2面向?qū)ο蟮幕靖拍罾^承的特性:傳遞性。分為單重繼承和多重繼承兩類。繼承的傳遞性圖5.3簡(jiǎn)單繼承圖5.4多重繼承13海軟院軟件工程系5.1.2面向?qū)ο蟮幕靖拍?.封裝性(Encapsulation)封裝是面向?qū)ο蟮囊粋€(gè)重要概念。封裝是一種信息隱蔽技術(shù),用戶只能見到對(duì)象封裝界面上的信息,對(duì)象內(nèi)部對(duì)用戶是隱蔽的。也就是說,用戶只知道某對(duì)象是“做什么”的,不知道“怎么做”。封裝將外部接口與內(nèi)部實(shí)現(xiàn)分離開來,用戶不必知道行為實(shí)現(xiàn)的細(xì)節(jié),只須用消息來訪問該對(duì)象。優(yōu)點(diǎn):1)封裝體現(xiàn)了良好的模塊性,它將定義模塊和實(shí)現(xiàn)模塊分開。2)封裝使對(duì)象的內(nèi)部軟件的范圍有清楚邊界,有一個(gè)描述該對(duì)象和其他的對(duì)象之間通信的接口;3)使得??靸?nèi)部的數(shù)據(jù)受到很好的保護(hù),避免外部的干擾。4)封裝大大增強(qiáng)了軟件的維護(hù)性、修改性,這也是軟件技術(shù)追求的目標(biāo)。14海軟院軟件工程系5.1.2面向?qū)ο蟮幕靖拍?.多態(tài)性(Polymorphism)當(dāng)同樣的消息可以被送到一個(gè)父類的對(duì)象和它的子類的對(duì)象上時(shí),被稱作多態(tài)性。即相同的操作的消息發(fā)送給不同的對(duì)象時(shí),每個(gè)對(duì)象將根據(jù)自己所屬類中所定義的操作去執(zhí)行,故產(chǎn)生不同的結(jié)果。多態(tài)即一個(gè)名字可具有多種語義。優(yōu)點(diǎn):多態(tài)性機(jī)制不僅增加了面向?qū)ο筌浖到y(tǒng)的靈活性、可理解性和可維護(hù)性,進(jìn)一步減少了信息冗余,而且顯著提高了軟件的可重用性和可擴(kuò)充性。15海軟院軟件工程系5.2面向?qū)ο蠼?.面向?qū)ο竽P兔嫦驅(qū)ο蠼J怯妹嫦驅(qū)ο蠹夹g(shù)和方法來定義、描述問題域中的軟件解的。面向?qū)ο蠓椒ㄗ罨镜脑瓌t,是按照人們習(xí)慣的思維方式,用面向?qū)ο笥^點(diǎn)建立問題域的模型,開發(fā)出盡可能自然地表現(xiàn)求解方法的軟件。16海軟院軟件工程系5.2面向?qū)ο蠼?.面向?qū)ο蠼S妹嫦驅(qū)ο蠓椒ㄩ_發(fā)軟件,通常需要建立對(duì)象模型、動(dòng)態(tài)模型和功能模型三種模型。1)對(duì)象模型是描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的,它始終都是目標(biāo)系統(tǒng)中最關(guān)鍵、最基本、最核心的;2)動(dòng)態(tài)模型是描述系統(tǒng)控制結(jié)構(gòu)的;3)功能模型是描述系統(tǒng)功能的。17海軟院軟件工程系UML和對(duì)象建模UML(統(tǒng)一建模語言)是一個(gè)通用的可視化建模語言,用于對(duì)軟件進(jìn)行描述、可視化處理、構(gòu)造和建立軟件系統(tǒng)制品的文檔。它可以把人們對(duì)所需要構(gòu)建系統(tǒng)的想法和理解記錄下來,以便用于對(duì)系統(tǒng)的分析、設(shè)計(jì)、研究、配置和維護(hù)。18海軟院軟件工程系UML常用視圖UsecaseDiagram(用例圖、用況圖)ClassDiagram(類圖)ObjectDiagram(對(duì)象圖)SequenceDiagram(順序圖、時(shí)序圖)CollaborationDiagram(協(xié)作圖)StatusDiagram(狀態(tài)圖)ActivityDiagram(活動(dòng)圖)ComponentDiagram(組件圖)DeploymentDiagram(部署圖)19海軟院軟件工程系5.3靜態(tài)模型—類圖類圖(ClassDiagram)顯示了系統(tǒng)的靜態(tài)結(jié)構(gòu),而系統(tǒng)的靜態(tài)結(jié)構(gòu)構(gòu)成了系統(tǒng)的概念基礎(chǔ)。類名(Name)屬性(Attribute)方法(Operation)20海軟院軟件工程系1.類名(Name)一般的類帶路徑名的類21海軟院軟件工程系2.類屬性和方法的可見性可見性用來表示類中屬性和方法對(duì)類以外元素是否可見。Public:以+表示;能夠被系統(tǒng)中的其他類的方法使用。Private:以–表示;只能由本類的方法使用,其他類不可使用。Protected:以#表示;不僅可以被本類的方法使用,也可以被該類的子類使用,但不能被其他類的方法使用。22海軟院軟件工程系23海軟院軟件工程系3.類的職責(zé)在標(biāo)準(zhǔn)的UML定義中,有時(shí)還可指明類的另一種信息,那就是類的職責(zé)(角色)。4.類的約束類的約束指定了該類所要滿足的一個(gè)或多個(gè)規(guī)則。24海軟院軟件工程系5.接口(Interface)接口是在沒有給出對(duì)象的實(shí)現(xiàn)和狀態(tài)的情況下對(duì)對(duì)象行為的描述。接口是一種特殊的類,所有接口都是有構(gòu)造型<<interface>>的類。在UML中,接口使用一個(gè)帶有名稱的小圓圈來進(jìn)行表示,并且可以通過一條Realize(實(shí)現(xiàn)關(guān)系)線與實(shí)現(xiàn)它的類相連接。25海軟院軟件工程系當(dāng)接口被其他類依賴的時(shí)候,即一個(gè)接口是在某個(gè)特定類中實(shí)現(xiàn)后,一個(gè)類通過一個(gè)依賴關(guān)系與該接口相連接。26海軟院軟件工程系6.類與類之間的關(guān)系(1)依賴(Dependency)
(2)泛化(Generalization)
(3)關(guān)聯(lián)(Association)(4)實(shí)現(xiàn)(Realize)27海軟院軟件工程系(1)類之間的依賴關(guān)系對(duì)于兩個(gè)相對(duì)獨(dú)立的對(duì)象,當(dāng)一個(gè)對(duì)象負(fù)責(zé)構(gòu)造另一個(gè)對(duì)象的實(shí)例,或者依賴另一個(gè)對(duì)象的服務(wù)時(shí),這兩個(gè)對(duì)象之間主要體現(xiàn)為依賴關(guān)系。28海軟院軟件工程系(2)類之間的泛化關(guān)系泛化其實(shí)就是我們面向?qū)ο笾械睦^承。29海軟院軟件工程系(3)類之間的關(guān)聯(lián)關(guān)系關(guān)聯(lián):對(duì)于兩個(gè)相對(duì)獨(dú)立的對(duì)象,當(dāng)一個(gè)對(duì)象的實(shí)例與另一個(gè)對(duì)象的一些特定實(shí)例存在固定的對(duì)應(yīng)關(guān)系時(shí),這兩個(gè)對(duì)象之間為關(guān)聯(lián)關(guān)系。關(guān)聯(lián)關(guān)系還可以表示類之間的名稱、角色、多重性、聚合、組合。30海軟院軟件工程系(3.1)類之間的聚合(組合)關(guān)系當(dāng)對(duì)象A被加入到對(duì)象B中,成為對(duì)象B的組成部分時(shí),對(duì)象B和對(duì)象A之間為聚合關(guān)系。聚合是關(guān)聯(lián)關(guān)系的一種,是較強(qiáng)的關(guān)聯(lián)關(guān)系,強(qiáng)調(diào)的是整體與部分之間的關(guān)系。31海軟院軟件工程系例、選課管理系統(tǒng)創(chuàng)建類圖示例32海軟院軟件工程系1.確定類和關(guān)聯(lián) 進(jìn)行系統(tǒng)建模的很重要的一個(gè)挑戰(zhàn)就是決定需要哪些類來構(gòu)建系統(tǒng)。類的識(shí)別是一個(gè)需要大量技巧的工作。33海軟院軟件工程系2.確定屬性和操作 創(chuàng)建好相關(guān)的類和初步的關(guān)聯(lián)后,可以開始添加屬性和操作,以便提供數(shù)據(jù)存儲(chǔ)和需要的功能。34海軟院軟件工程系管理員和用戶的用例圖
類圖示例—圖書館管理系統(tǒng)35海軟院軟件工程系用戶的用例圖
36海軟院軟件工程系系統(tǒng)管理員注冊(cè)用戶未注冊(cè)用戶37海軟院軟件工程系38海軟院軟件工程系圖書館管理系統(tǒng)簡(jiǎn)單需求描述圖書管理系統(tǒng)主要給借閱者提供書籍的借閱和還書等,這些操作都是通過圖書管理員進(jìn)行的,以及系統(tǒng)管理員對(duì)讀者信息進(jìn)行統(tǒng)一的管理。1.識(shí)別參與者以及他們的屬性借閱者:Borrower圖書管理員:Librarian系統(tǒng)管理員:Administrator39海軟院軟件工程系40海軟院軟件工程系2.系統(tǒng)中用到的其他類以及屬性
具體某書籍
借書
書庫(kù)單條記錄
圖書預(yù)訂
41海軟院軟件工程系注:在定義類、類的方法和屬性時(shí),對(duì)后面建立動(dòng)態(tài)模型的時(shí)序圖是很有幫助的,類圖和時(shí)序圖的建立是相輔相成的,因?yàn)闀r(shí)序圖中出現(xiàn)的消息基本上都會(huì)成為類中的方法,因此在設(shè)計(jì)階段繪制系統(tǒng)的時(shí)序圖時(shí),要盡量使用類的已識(shí)別出的方法來描述消息,若出現(xiàn)無法用類的已識(shí)別出的方法來描述的消息,就要考慮消息是否是類的一個(gè)待識(shí)別的方法,若是,就要將這個(gè)方法及時(shí)添加到類的操作類表中,并用這個(gè)新方法來描述消息。
42海軟院軟件工程系2.確定各個(gè)類之間的關(guān)系
43海軟院軟件工程系對(duì)象圖(ObjectDiagram)對(duì)象圖的組成
對(duì)象圖是由對(duì)象(Object)和鏈(Link)組成。對(duì)象圖的目的在于描述系統(tǒng)中參與交互的各個(gè)對(duì)象在某一時(shí)刻的狀態(tài)。44海軟院軟件工程系
對(duì)象是類的實(shí)例,創(chuàng)建一個(gè)對(duì)象通??梢詮囊韵聝煞N情況來考慮:第一種情況是將對(duì)象作為一個(gè)實(shí)體,它在某個(gè)時(shí)刻具有明確的值;另一種情況是作為一個(gè)身份持有者,不同時(shí)刻有不同的值。1.對(duì)象(Object)45海軟院
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東東莞市婦幼保健院招聘納入崗位管理編制外人員54人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年云南昆明市第二人民醫(yī)院緊急招聘神經(jīng)(創(chuàng)傷)外科醫(yī)師1人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年下半年廣東揭陽市市直事業(yè)單位專項(xiàng)招聘博(碩)士研究生134人(醫(yī)療崗69人)筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025貴州漳州市凌波酒店管理集團(tuán)有限公司招聘勞務(wù)派遣人員157人筆試參考題庫(kù)附帶答案詳解
- 2025江蘇鹽城市海興控股集團(tuán)有限公司招聘13人筆試參考題庫(kù)附帶答案詳解
- 小學(xué)生食堂員工衛(wèi)生制度
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院院長(zhǎng)輪轉(zhuǎn)制度
- 幼兒園衛(wèi)生防疫上報(bào)制度
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院內(nèi)部規(guī)章制度
- 中外衛(wèi)生保健制度
- 道路工程檢測(cè)培訓(xùn)大綱
- 鋰離子電池用再生黑粉編制說明
- (正式版)DB61∕T 5033-2022 《居住建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)》
- 公路工程質(zhì)量風(fēng)險(xiǎn)識(shí)別及控制措施
- 2025年育嬰師三級(jí)試題及答案
- 2025年陜西省中考數(shù)學(xué)試題【含答案、解析】
- 民間敘事理論建構(gòu)-洞察及研究
- 征地拆遷部管理制度
- 2025至2030年中國(guó)機(jī)器人關(guān)節(jié)模組行業(yè)市場(chǎng)競(jìng)爭(zhēng)態(tài)勢(shì)及前景戰(zhàn)略研判報(bào)告
- 水箱清洗服務(wù)合同范本
- TCQAE11011-2019軟件工程造價(jià)評(píng)估指南
評(píng)論
0/150
提交評(píng)論