版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 掌握面向?qū)ο笙到y(tǒng)分析的過程 掌握系統(tǒng)用例模型的設(shè)計方法 了解類和對象的概念、類與對象的關(guān)系等 重點(diǎn)掌握系統(tǒng)用例模型的設(shè)計和對象與類圖的設(shè)計4.1 面向?qū)ο笙到y(tǒng)分析l 面向?qū)ο蠓治?,就是抽取和整理用戶需求并建立問題域精確模型的過程。l 面向?qū)ο蠓治鲞^程從分析陳述用戶需求的文件開始l 可能由用戶(包括出資開發(fā)該軟件的業(yè)主代表及最終用戶)單方面寫出需求陳述,也可能由系統(tǒng)分析員配合用戶,共同寫出需求陳述l 當(dāng)軟件項目采用招標(biāo)方式確定開發(fā)單位時,“標(biāo)書”往往可以作為初步的需求陳述。面向?qū)ο蠓治龅倪^程4.2 系統(tǒng)用例建模l4.2.1分析系統(tǒng)用例1.業(yè)務(wù)用例與系統(tǒng)用例l業(yè)務(wù)用例著重于業(yè)務(wù)操作。表示實(shí)現(xiàn)業(yè)務(wù)
2、目標(biāo)的業(yè)務(wù)中的具體工作流。業(yè)務(wù)過程可能涉及手工和自動過程,并且在一段長期的時間內(nèi)進(jìn)行。l系統(tǒng)用例著重于要設(shè)計的軟件系統(tǒng)。參與者如何與軟件系統(tǒng)進(jìn)行交互?在系統(tǒng)用例說明中書寫的事件流應(yīng)該足夠詳細(xì),便于用作編寫系統(tǒng)測試腳本的出發(fā)點(diǎn)。l系統(tǒng)用例的執(zhí)行者為操作人員所代表的崗位角色,可以是實(shí)際與系統(tǒng)交互的操作人員、外部銜接系統(tǒng)、自動服務(wù)、定時器等。銀行的業(yè)務(wù)建模銀行的軟件系統(tǒng)建模業(yè)務(wù)用例模型與系統(tǒng)用例區(qū)別 設(shè)計范圍業(yè)務(wù)用例的設(shè)計范圍是業(yè)務(wù)操作,組織外部的業(yè)務(wù)參與者實(shí)現(xiàn)與業(yè)務(wù)組織相關(guān)的業(yè)務(wù)目標(biāo)。系統(tǒng)用例著重于要設(shè)計的軟件系統(tǒng),參與者如何與軟件系統(tǒng)進(jìn)行交互 系統(tǒng)測試業(yè)務(wù)用例常常是以白盒形式編寫系統(tǒng)用例幾乎總是
3、以黑盒形式編寫 業(yè)務(wù)角色。業(yè)務(wù)參與者是業(yè)務(wù)之外的人在系統(tǒng)用例圖中,參與者與用例進(jìn)行交互2.系統(tǒng)用例的確定l 將每個業(yè)務(wù)用例都繪制出相應(yīng)的活動圖,再將其中的“活動”進(jìn)行整合,就得出所有備選系統(tǒng)用例l 找出所有的備選系統(tǒng)用例后,要對它們進(jìn)行合并和篩選。合并就是將相同的用例合并成一個,篩選就是將不符合系統(tǒng)用例條件的備選用例去掉。如在銷售管理系統(tǒng)中,系統(tǒng)用例有采購、供應(yīng)商管理、客戶管理、進(jìn)貨查詢、入庫管理、出庫管理、庫存盤點(diǎn)、庫存查詢、銷售、退貨處理、價格管理、銷售查詢等。l 一個系統(tǒng)用例應(yīng)該是實(shí)際使用系統(tǒng)的用戶所進(jìn)行的一個操作,例如,“查看新聞列表”就不能算一個系統(tǒng)用例,因為它只是某系統(tǒng)用例的一個序
4、列項。4.2.2構(gòu)造系統(tǒng)用例模型l分析出參與者、用例和用例之間關(guān)系后,就可以繪制系統(tǒng)的用例模型4.3類與對象建模概述l 面向?qū)ο蠓治霎a(chǎn)生分析模型。l 分析時用例模型作為輸入,對用例模型進(jìn)行分析,把系統(tǒng)分解為相互協(xié)作的分析類,通過類圖、對象圖來描述對象、對象的屬性和對象之間的關(guān)系。l 類圖用于對系統(tǒng)的靜態(tài)結(jié)構(gòu)建模,l 在系統(tǒng)分析階段,類圖主要用于顯示角色和提供系統(tǒng)行為的實(shí)體的職責(zé);l 在系統(tǒng)設(shè)計階段,類圖主要用于捕捉組成系統(tǒng)體系結(jié)構(gòu)的類結(jié)構(gòu);l 在系統(tǒng)編碼階段,根據(jù)類圖中的類及它們之間的關(guān)系實(shí)現(xiàn)系統(tǒng)的功能。 類圖與其他的關(guān)系4.3.1 類圖及對象圖的圖符1.類的表示方法l類是任何面向?qū)ο笙到y(tǒng)中最
5、重要的構(gòu)造塊。類是對一組具有相同屬性、操作、關(guān)系和語義對象的描述。一個類可以實(shí)現(xiàn)一個或多個接口。類可以是作為問題域一部分的抽象,也可以是構(gòu)成實(shí)現(xiàn)的類。 類的定義 類的屬性l 在UML中,屬性的完整語法形式為:l 可見性 屬性名稱:類型多重性=默認(rèn)值特性串(類別)性質(zhì)-字符串l visibility name:type multiplicity = default property-stringl 類的內(nèi)容表示可選項。l 下列的屬性都是合法的:student 只有屬性名+student 可見性和屬性名origin : point屬性名和類型name : string0.1屬性名、類型和多重性or
6、igin : point=(0,0)屬性名、類型而后初始值id:Integerreadonly 屬性名、類型和特性可見性表示 類的操作類的操作,也稱為類的方法,它描述了類的動態(tài)行為,用于修改、檢索類的屬性或執(zhí)行某些動作。在大多數(shù)抽象層次上,對類的行為特征建模時,只需簡單地寫下每個操作的名稱。在UML中,操作的完整語法形式為:可見性 操作名稱(參數(shù)名稱) :返回值類型特性串(類別)性質(zhì)-字符串visibility name (parameter-list) :return-type property-string操作的可見性與屬性相同,命名規(guī)則也與屬性相同。參數(shù)名稱中的參數(shù)是用跟屬性類似的方式來
7、表示的。 類的操作其語法如下:方向名稱:類型 = 默認(rèn)值direction name:type = default value方向可以取下述值之一:in輸入?yún)?shù),不能對它進(jìn)行修改。out輸出參數(shù),為了向調(diào)用者傳送信息可以對它進(jìn)行修改。inout輸入?yún)?shù),為了向調(diào)用者傳送信息可以對它進(jìn)行修改。下列操作是合法的ldisplay 操作名 l+display 可見性和操作名lset(n:Name,s:String) 操作名和參數(shù)lrestart()gaurded 操作名和特性lgetID():interger 操作名和返回類型l+balanceOn(date:Date):Money 類的范圍l特征的范
8、圍指的是類目的每一個實(shí)例都有自己獨(dú)特的特征值,還是類目的所有實(shí)例都共同擁有單獨(dú)一個特征值。l在UML中有兩種范圍:實(shí)例范圍是指對于一個特征,類目的每個實(shí)例均有它自己的值。這是默認(rèn)的,不需要附加符號。靜態(tài)范圍是指對于類目的所有特征,特征的值是唯一的,也把它稱作類范圍,通過對特性串加下劃線來表示。靜態(tài)范圍的特征大多用于私有屬性,它們必須為一個類的所有實(shí)例所共有。 類的分類l 類有具體類、抽象類和模板類。具體類可以定義其實(shí)例 接口lUML類圖元素中接口是一系列操作的集合,它指定了一個類所提供的服務(wù),如所示。接口既可用的那個圖標(biāo)來表示,也可由附加了的一個標(biāo)準(zhǔn)類來表示,它直接對應(yīng)于Java中的一個接口類
9、型。通常,根據(jù)接口在類圖上的樣子,就能知道與其他類的關(guān)系。 類的版型lUML中有三種主要的類版型:邊界類、控制類和實(shí)體類。l邊界類位于系統(tǒng)與外界的交界處,包括:用戶界面類,如窗口、對話框、報表類等。通訊協(xié)議類,如TCP/IP的類。直接與外部設(shè)備交互的類和直接與外部系統(tǒng)交互的類。實(shí)體類l實(shí)體類通過事件流和交互圖發(fā)現(xiàn),采用目標(biāo)領(lǐng)域術(shù)語命名。通常實(shí)體類對應(yīng)數(shù)據(jù)庫中的表,其屬性對應(yīng)表的字段,但實(shí)體類與數(shù)據(jù)庫中的表不一定是一一對應(yīng)關(guān)系。控制類是負(fù)責(zé)管理或控制其他類工作的類。l每個用例通常有一個控制類,控制用例中的事件順序,控制類也可以在多個用例間共用??刂戚^少接收消息,發(fā)出較多消息。 類圖的抽象層次l按
10、照Steve Cook和John Dianiels的觀點(diǎn),類圖分為概念層、說明層和實(shí)現(xiàn)層。2.對象的表示方法l 對象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識。l 對象圖的兩個基本元素是對象和它們之間的關(guān)系。展示的是一個對象圖中表示對象的圖標(biāo)。l 與類圖相似,水平線將圖標(biāo)內(nèi)的文字分成了兩部分,上邊代表對象的名稱,下邊代表對象的屬性和值。對象的名稱表示l objectName 只有對象名;l :ClassName 只有類名;l objectName:ClassName 對象名和類名。l 所有的對象名稱都加了下劃線,目的是區(qū)分對象名稱和類名稱。l 如果沒有指定一個對象的類,既沒有用上面的語法顯示
11、地指定,也沒有在對象的說明中隱式地指定,那么這個對象的類就被認(rèn)為是匿名的。l 如果只指定了類名稱,那么這個沒有對象名的圖標(biāo)代表的就是一個明顯的匿名對象。4.3.2 對象/類的關(guān)系1.關(guān)聯(lián)關(guān)系關(guān)聯(lián)(association)是一種結(jié)構(gòu)關(guān)系,說明一個事物的對象與另一個事物的對象相聯(lián)系。關(guān)聯(lián)關(guān)系是對象之間一種引用關(guān)系,比如客戶類與訂單類之間的關(guān)系。這種關(guān)系通常使用類的屬性表達(dá)。給定一個連接兩類的關(guān)聯(lián),可以從一個類的對象導(dǎo)航到另一個類的對象。關(guān)聯(lián)關(guān)系是實(shí)例之間的結(jié)構(gòu)關(guān)系,關(guān)聯(lián)又分為一般關(guān)聯(lián)、聚合關(guān)聯(lián)與組合關(guān)聯(lián)。UML類關(guān)系中關(guān)聯(lián)關(guān)系有6種對應(yīng)的修飾,它們分別是:名稱、角色、多重性、聚合、組合和導(dǎo)航性。
12、名稱(name)l關(guān)聯(lián)可以有一個名稱,用來描述關(guān)聯(lián)的性質(zhì),通常使用一個動詞或動詞短語來命名關(guān)聯(lián)。l名稱以前綴或后綴一個指引閱讀的方向指示符以消除名稱含義上可能存在的歧義,方向指示符用一個實(shí)心的三角形箭頭表示。l雖然關(guān)聯(lián)可以有名稱,但在明確給出關(guān)聯(lián)的端點(diǎn)名的情況下不需要給出名稱。 角色(role)l當(dāng)一個類參與了一個關(guān)聯(lián)時,它就在這個關(guān)系中扮演了一個特定的角色。角色是關(guān)聯(lián)關(guān)系中一個類對另一個類所表現(xiàn)出來的職責(zé)。l角色名稱是名詞或名詞短語,以解釋對象是如何參與關(guān)聯(lián)的。l把關(guān)聯(lián)端點(diǎn)扮演的角色稱為端點(diǎn)名,在UML中稱為角色名。 多重性(multiplicity)l 關(guān)聯(lián)的多重性是指有多少對象可以參與該
13、關(guān)聯(lián),多重性可以用來表達(dá)一個取值范圍、特定值、無限定的范圍或一組離散值。l 將多重性寫成一個表示取值范圍的表達(dá)式,其最大值和最小值可以相同,用兩個圓點(diǎn)把它們分開。l 多重性說明對于關(guān)聯(lián)另一端的類的每個對象,本端的類可能有多少個對象出現(xiàn),對象的數(shù)目必須是在給定的范圍內(nèi)??梢跃_地表示多重性為:一個(1);多個(0.*);一個或多個(1.*);整數(shù)范圍, l 聚合關(guān)系是關(guān)聯(lián)的一種形式,是強(qiáng)的關(guān)聯(lián)關(guān)系。代表兩個類之間的整體/局部關(guān)系,如汽車類與引摯類、輪胎類之間的關(guān)系就是整體與個體的關(guān)系。l 聚合關(guān)系描述了“has a”的關(guān)系,即整體對象擁有部分對象,是一種不穩(wěn)定的包含關(guān)系。l 較強(qiáng)于一般關(guān)聯(lián),有整
14、體與局部的關(guān)系,并且沒有了整體,局部也可單獨(dú)存在。l 在UML中使用空心的菱形表示,菱形從局部指向整體l組合關(guān)系是聚合關(guān)系中的一種特殊情況,是更強(qiáng)形式的聚合,又被稱為強(qiáng)聚合。l組合表示contains-a的關(guān)系,是一種強(qiáng)烈的包含關(guān)系。l組合類負(fù)責(zé)被組合類的生命周期,是一種更強(qiáng)的聚合關(guān)系,部分不能脫離整體存在。 導(dǎo)航性(nevigation)l 關(guān)聯(lián)可以有方向,即導(dǎo)航。l 一般不作說明的時候,導(dǎo)航是雙向的,不需要在線上標(biāo)出箭頭。l 大部分情況下導(dǎo)航是單向的,可以加一個箭頭表示。l 導(dǎo)航性描述的是一個對象通過鏈(關(guān)聯(lián)的實(shí)例)進(jìn)行導(dǎo)航訪問另一個對象,即對一個關(guān)聯(lián)端點(diǎn)設(shè)置導(dǎo)航屬性意味著本端的對象可以被
15、另一端的對象訪問。l 可以在關(guān)聯(lián)關(guān)系上加箭頭表示導(dǎo)航方向。l 只在一個方向上可以導(dǎo)航的關(guān)聯(lián)稱為單向關(guān)聯(lián),用一條帶箭頭的實(shí)線來表示。l 在兩個方向上都可以導(dǎo)航的關(guān)聯(lián)稱為雙向關(guān)聯(lián),用一條沒有箭頭的實(shí)線來表示。2.依賴關(guān)系l依賴(Dependency)關(guān)系是對象之間最弱的一種關(guān)聯(lián)方式,是臨時性的關(guān)聯(lián)。代碼中一般指由局部變量、函數(shù)參數(shù)、返回值建立的對于其他對象的調(diào)用關(guān)系。一個類調(diào)用被依賴類中的某些方法而得以完成這個類的一些職責(zé)。關(guān)聯(lián)和依賴的區(qū)別:l 從類之間關(guān)系的強(qiáng)弱程度來分,關(guān)聯(lián)表示類之間的很強(qiáng)的關(guān)系;l 依賴表示類之間的較弱的關(guān)系;l 從類之間關(guān)系的時間角度來分,關(guān)聯(lián)表示類之間的“持久”關(guān)系,這種
16、關(guān)系一般表示一種重要的業(yè)務(wù)之間的關(guān)系,需要保存的,或者說需要“持久化”的,或者說需要保存到數(shù)據(jù)庫中的。3.泛化關(guān)系l 泛化(Generalization)把一般類連接到較為特殊的類,表示is-a的關(guān)系,表示一個更泛化的元素和一個更具體的元素之間的關(guān)系,也稱為繼承關(guān)系。l 是對象之間耦合度最大的一種關(guān)系,子類繼承父類的所有細(xì)節(jié)。l 直接使用語言中的繼承表達(dá)。在類圖中使用帶三角箭頭的實(shí)線表示,箭頭從子類指向父類。l 泛化表示的是模型元素之間抽象和具體的關(guān)系,也就是模型元素之間的繼承關(guān)系。l 繼承者具有被繼承者相同的特性,同時還能在被繼承者的基礎(chǔ)上進(jìn)行擴(kuò)展3.泛化關(guān)系4.實(shí)現(xiàn)關(guān)系l 實(shí)現(xiàn)(Reali
17、zation)關(guān)系在類圖中就是接口和實(shí)現(xiàn)的關(guān)系。l UML模型圖中類圖實(shí)現(xiàn)關(guān)系表示一個模型元素實(shí)現(xiàn)了另一個模型元素定義的操作,一般是指一個類實(shí)現(xiàn)了一個接口定義的方法。l 實(shí)現(xiàn)關(guān)系通常在兩種情況下被使用:在接口與實(shí)現(xiàn)該接口的類之間;在用例以及實(shí)現(xiàn)該用例的協(xié)作之間。l 在面向?qū)ο蟮母拍钪?,接口就是只定義方法,并不實(shí)現(xiàn)這個方法。它用來給別的類繼承它,并用類的操作實(shí)現(xiàn)它定義方法,通過這樣的方法就能夠?qū)⒍x和抽象分開,利于代碼的維護(hù)。4.實(shí)現(xiàn)關(guān)系4.4類與對象建模4.4.1類圖的構(gòu)建1)研究分析問題領(lǐng)域,確定系統(tǒng)的需求。2)確定類,明確類的含義和責(zé)任,確定屬性和操作。3)確定類之間的關(guān)系。著重分析找出類
18、之間的一般和特殊關(guān)系,部分與整體關(guān)系,研究類的繼承性和多態(tài)性,把類之間的靜態(tài)聯(lián)系用關(guān)聯(lián)、泛化、聚合、組合、依賴等聯(lián)系表達(dá)出來4)調(diào)整和細(xì)化類及類之間的關(guān)系。5)繪制類圖并編制相應(yīng)的說明。1確定系統(tǒng)類識別類的方法l 可以根據(jù)用例描述中的名詞用例描述中的名詞確定候選類;l 根據(jù)用例確定類用例確定類;l 使用CRC分析法分析法尋找類;根據(jù)邊界類、控制類和實(shí)體類的劃分來幫助發(fā)現(xiàn)類;l 參考設(shè)計模式來確定類;l 對領(lǐng)域進(jìn)行分析或利用已有領(lǐng)域分析結(jié)構(gòu)得到類;l 利用RUP在分析和設(shè)計中尋找類。l 常用的類識別方法有名詞識別法名詞識別法;系統(tǒng)實(shí)體識別法;從用例中識別類;用分解與抽象技術(shù)識別類和CRC卡分析方
19、法。名詞識別法l名稱識別法的關(guān)鍵是識別系統(tǒng)問題域的實(shí)體,l從系統(tǒng)描述中標(biāo)識出名詞及名詞詞組l其中單數(shù)名詞可以標(biāo)識為對象l復(fù)數(shù)名詞可以標(biāo)識為類l如在學(xué)校管理信息系統(tǒng)中有學(xué)生、教師、學(xué)校和課程部門等類。用例識別法通過分析用例圖幫助建立類l 用例描述中出現(xiàn)了哪些實(shí)體(實(shí)體類),這里的實(shí)體不是Actor,而是Actor使用系統(tǒng)時所調(diào)用的實(shí)體,是處在系統(tǒng)邊界之內(nèi)的實(shí)體;l 用例完成需要哪些實(shí)體配合(協(xié)作類);l 用例執(zhí)行過程中會產(chǎn)生并存儲哪些信息;l 用例要求與之關(guān)聯(lián)的每個角色輸入什么;l 用例反饋與之關(guān)聯(lián)的每個角色輸出什么;l 用例需要操作哪些設(shè)備(通訊類)。如在教學(xué)管理系統(tǒng)中教學(xué)干事,是一個參與者C
20、RC分析法,l CRC(Class-Responsibility-Collaboration)建模提供了一種簡單的標(biāo)識和組織與系統(tǒng)或產(chǎn)品需求相關(guān)的類的手段。l CRC是目前比較流行的面向?qū)ο蠓治鼋7椒?。l 要識別一個候選類是否是一個真正的類,應(yīng)該先確定這個候選類是否擔(dān)負(fù)著職責(zé),同時是否有協(xié)作關(guān)系。l 在CRC建模中,用戶、設(shè)計者、開發(fā)人員都要參與,完成對整個面向?qū)ο蠊こ痰脑O(shè)計。l CRC卡是一個標(biāo)準(zhǔn)索引卡集合,包括三個部分:類名、類的職責(zé)、類的協(xié)作關(guān)系,每一張卡片表示一個類。 銷售類Class:銷售類說明:完成一次銷售職責(zé):協(xié)作類:創(chuàng)建商品商品類計算總價商品列表類創(chuàng)建支付支付類計算找零無 C
21、RC卡片類名:類的類型:(如設(shè)備,角色,場所,)類的特征:(如確切的,原子的,并發(fā)的,)責(zé)任協(xié)作者CRC的建模步驟l(1) 標(biāo)識潛在的對象類l(2) 篩選對象類,確定最終對象類l(3) 標(biāo)識責(zé)任l(4) 標(biāo)識協(xié)作者l(5) 復(fù)審CRC卡UML 支持的可見性類型的標(biāo)志標(biāo)志可見性類型+Public#Protected-PrivatePackage2組織類并確定其關(guān)系l關(guān)聯(lián)關(guān)系表示不同類的對象之間的結(jié)構(gòu)關(guān)系,它在一段時間內(nèi)將多個類的實(shí)例連接在一起。l關(guān)聯(lián)描述的是類的對象之間邏輯上的關(guān)系,這些對象可以是同類的,也可以不是,關(guān)聯(lián)的兩端稱為角色,如客戶和訂單就存在一種關(guān)聯(lián)。l在UML中關(guān)聯(lián)主要有三種形式用
22、一條線段標(biāo)識雙向的關(guān)聯(lián),稱為關(guān)聯(lián);用一個有箭頭的線段標(biāo)識單向的關(guān)聯(lián);用一個帶菱形頭的線段表示關(guān)聯(lián)的兩端的類是整體和部分的關(guān)系,這種關(guān)聯(lián)也稱為聚合或組合。小王是一個愛書之人,家里各類書籍已過千冊,而平時小王是一個愛書之人,家里各類書籍已過千冊,而平時又時常有朋友外借,因此需要一個個人圖書管理系統(tǒng)。又時常有朋友外借,因此需要一個個人圖書管理系統(tǒng)。該系統(tǒng)應(yīng)該能夠?qū)幕拘畔从嬎銠C(jī)類、非計算該系統(tǒng)應(yīng)該能夠?qū)幕拘畔从嬎銠C(jī)類、非計算機(jī)類分別建檔,實(shí)現(xiàn)按書名、作者、類別、出版社等關(guān)機(jī)類分別建檔,實(shí)現(xiàn)按書名、作者、類別、出版社等關(guān)鍵字的組合查詢功能。在使用該系統(tǒng)錄入新書籍時系統(tǒng)鍵字的組合查詢功
23、能。在使用該系統(tǒng)錄入新書籍時系統(tǒng)會自動按規(guī)則生成書號,可以修改信息,但一經(jīng)創(chuàng)建就會自動按規(guī)則生成書號,可以修改信息,但一經(jīng)創(chuàng)建就不允許刪除。該系統(tǒng)還應(yīng)該能夠?qū)耐饨枨闆r進(jìn)行不允許刪除。該系統(tǒng)還應(yīng)該能夠?qū)耐饨枨闆r進(jìn)行記錄,可對外借情況列表打印。另外,還希望能夠?qū)涗洠蓪ν饨枨闆r列表打印。另外,還希望能夠?qū)馁徺I金額、冊數(shù)按特定時間周期進(jìn)行統(tǒng)計籍的購買金額、冊數(shù)按特定時間周期進(jìn)行統(tǒng)計 小王小王是一個愛書之是一個愛書之人人,家里家里各類各類書籍書籍已過千冊,而平時已過千冊,而平時又時常有又時常有朋友朋友外借,因此需要一個外借,因此需要一個個人圖書管理系統(tǒng)個人圖書管理系統(tǒng)。該系統(tǒng)應(yīng)該
24、能夠?qū)脑撓到y(tǒng)應(yīng)該能夠?qū)幕拘畔⒒拘畔窗从嬎銠C(jī)類計算機(jī)類、非計算非計算機(jī)類機(jī)類分別建檔,實(shí)現(xiàn)按分別建檔,實(shí)現(xiàn)按書名書名、作者作者、類別類別、出版社出版社等等關(guān)關(guān)鍵字鍵字的組合查詢的組合查詢功能功能。在使用該系統(tǒng)錄入。在使用該系統(tǒng)錄入新書籍新書籍時時系統(tǒng)系統(tǒng)會自動按會自動按規(guī)則規(guī)則生成生成書號書號,可以修改,可以修改信息信息,但一經(jīng)創(chuàng)建就,但一經(jīng)創(chuàng)建就不允許刪除。該系統(tǒng)還應(yīng)該能夠?qū)耐饨枨闆r進(jìn)行不允許刪除。該系統(tǒng)還應(yīng)該能夠?qū)耐饨枨闆r進(jìn)行記錄記錄,可對,可對外借情況列表外借情況列表打印。另外,還希望能夠?qū)蛴 A硗?,還希望能夠?qū)募馁徺I金額購買金額、冊數(shù)冊數(shù)按按特定
25、時間周期特定時間周期進(jìn)行統(tǒng)計進(jìn)行統(tǒng)計 “小王小王”、“人人”、“家里家里”很明顯是系統(tǒng)外的概念,無須對其建很明顯是系統(tǒng)外的概念,無須對其建模;模;而而“個人圖書管理系統(tǒng)個人圖書管理系統(tǒng)”、“系統(tǒng)系統(tǒng)”指的就是將要開發(fā)的系統(tǒng),即指的就是將要開發(fā)的系統(tǒng),即系統(tǒng)本身,也無須對其進(jìn)行建模;系統(tǒng)本身,也無須對其進(jìn)行建模;很明顯很明顯“書籍書籍”是一個很重要的類,而是一個很重要的類,而“書名書名”、“作者作者”、“類類別別”、“出版社出版社”、“書號書號”則都是用來描述書籍的基本信息的,則都是用來描述書籍的基本信息的,因此應(yīng)該作為因此應(yīng)該作為“書籍書籍”類的屬性處理,而類的屬性處理,而“規(guī)則規(guī)則”是指書號
26、的生成是指書號的生成規(guī)則,而書號則是書籍的一個屬性,因此規(guī)則,而書號則是書籍的一個屬性,因此“規(guī)則規(guī)則”可以作為編寫可以作為編寫“書籍書籍”類構(gòu)造函數(shù)的指南。類構(gòu)造函數(shù)的指南?!盎拘畔⒒拘畔ⅰ眲t是書名、作者、類別等描述書籍的基本信息統(tǒng)稱,則是書名、作者、類別等描述書籍的基本信息統(tǒng)稱,“關(guān)鍵字關(guān)鍵字”則是代表其中之一,因此無需對其建模;則是代表其中之一,因此無需對其建模;“功能功能”、“新書籍新書籍”、“信息信息”、“記錄記錄”都是在描述需求時使都是在描述需求時使用到的一些相關(guān)詞語,并不是問題域的本質(zhì),因此先可以將其淘汰用到的一些相關(guān)詞語,并不是問題域的本質(zhì),因此先可以將其淘汰掉;掉;“計算
27、機(jī)類計算機(jī)類”、“非計算機(jī)類非計算機(jī)類”是該系統(tǒng)中圖書的兩大分類,因此是該系統(tǒng)中圖書的兩大分類,因此應(yīng)該對其建模,并改名為應(yīng)該對其建模,并改名為“計算機(jī)類書籍計算機(jī)類書籍”和和“非計算機(jī)類書籍非計算機(jī)類書籍”,以減少歧義;以減少歧義;“外借情況外借情況”則是用來表示一次借閱行為,應(yīng)該成為一個候選類,則是用來表示一次借閱行為,應(yīng)該成為一個候選類,多個外借情況將組成多個外借情況將組成“外借情況列表外借情況列表”,而外借情況中一個很重要,而外借情況中一個很重要的角色是的角色是“朋友朋友”借閱主體。雖然到本系統(tǒng)中并不需要建立借閱主體。雖然到本系統(tǒng)中并不需要建立“朋朋友友”的資料庫,但考慮到可能會需要列
28、出某個朋友的借閱情況,因的資料庫,但考慮到可能會需要列出某個朋友的借閱情況,因此還是將其列為候選類。為了能夠更好地表述,將此還是將其列為候選類。為了能夠更好地表述,將“外借情況外借情況”改改名為名為“借閱記錄借閱記錄”,而將,而將“外借情況列表外借情況列表”改名為改名為“借閱記錄列借閱記錄列表表”;“購買金額購買金額”、“冊數(shù)冊數(shù)”都是統(tǒng)計的結(jié)果,都是一個數(shù)字,因此不都是統(tǒng)計的結(jié)果,都是一個數(shù)字,因此不用將其建模,而用將其建模,而“特定時限特定時限”則是統(tǒng)計的范圍,也無需將其建模;則是統(tǒng)計的范圍,也無需將其建模;不過從這里的分析中,我們可以發(fā)現(xiàn),在該需求描述中隱藏著一個不過從這里的分析中,我們
29、可以發(fā)現(xiàn),在該需求描述中隱藏著一個關(guān)鍵類關(guān)鍵類書籍列表,也就是執(zhí)行統(tǒng)計的主體。書籍列表,也就是執(zhí)行統(tǒng)計的主體。在使用在使用“名詞動詞法名詞動詞法”尋找類的時候,很多團(tuán)隊會在此耗費(fèi)大量的時間,尋找類的時候,很多團(tuán)隊會在此耗費(fèi)大量的時間,特別是對于中大型項目,這樣很容易迷失方向。其實(shí)在此主要的目的是對特別是對于中大型項目,這樣很容易迷失方向。其實(shí)在此主要的目的是對問題領(lǐng)域建立概要的了解,無需太過咬文嚼字問題領(lǐng)域建立概要的了解,無需太過咬文嚼字 書籍 計算機(jī)類書籍 非計算機(jī)類書籍借閱記錄 借閱記錄列表 書籍列表導(dǎo)航性分析:導(dǎo)航性分析:Book與與BookList之間、之間、BorrowRecord和
30、和BorrowList之間是組合關(guān)系均無需添加方向描述,而之間是組合關(guān)系均無需添加方向描述,而Book與與BorrowRecord之間則是雙方關(guān)聯(lián),也無需添加之間則是雙方關(guān)聯(lián),也無需添加約束:約束:Book對象創(chuàng)建后就不能夠?qū)ο髣?chuàng)建后就不能夠被刪除只能被修改,因此在被刪除只能被修改,因此在Book類邊上加上用自由文本寫的約束類邊上加上用自由文本寫的約束 ;一本書要么屬于計算機(jī)類,要么一本書要么屬于計算機(jī)類,要么屬于非計算機(jī)類,因此在屬于非計算機(jī)類,因此在ItBook和和OtherBook間加了間加了 “Xor”約束約束限定符:一本書只有一冊,因此只限定符:一本書只有一冊,因此只能夠被借一次,因
31、此對于一本能夠被借一次,因此對于一本Book而言只能有一個而言只能有一個RecordId與其對應(yīng)與其對應(yīng) l 例1:確定銀行網(wǎng)絡(luò)系統(tǒng)ATM(Auto Trade Machine)的類,l 系統(tǒng)簡要描述l 銀行網(wǎng)絡(luò)系統(tǒng)包括人工出納和分行共享的自動出納機(jī);各分理處用自己的計算機(jī)處理l 業(yè)務(wù)(保存帳戶、處理事務(wù)等);各分理處與出納站通過網(wǎng)絡(luò)通信;出納站錄入帳戶和事l 務(wù)數(shù)據(jù);自動出納機(jī)與分行計算機(jī)通信;自動出納機(jī)與用戶接口,接受現(xiàn)金卡;發(fā)放現(xiàn)金;l 打印收據(jù);分行計算機(jī)與撥款分理處結(jié)帳。l 要求系統(tǒng)正確處理同一帳戶的并發(fā)訪問;網(wǎng)絡(luò)費(fèi)用平均攤派給各分理處。l 類的識別l 采用名詞識別法:檢查問題陳述中
32、的所有名詞,得到初始類:l 軟件 銀行網(wǎng)絡(luò) 分行計算機(jī) 系統(tǒng) 分行 出納站l 出納員 分理處 分理處計算機(jī) 自動出納機(jī) 帳戶 帳戶數(shù)據(jù) 現(xiàn)金卡 事務(wù) 事務(wù)數(shù)據(jù) 用戶 顧客 現(xiàn)金l 收據(jù) 訪問 費(fèi)用 安全措施 記錄保管根據(jù)下述原則進(jìn)一步確定類: 去掉冗余類:如兩個類表述同一信息,應(yīng)保留最具有描述能力的類,如“用戶”與“顧客”是重復(fù)的描述,由于“顧客”更具有描述性,故保留它,刪除“用戶”。去掉不相干的類:刪除與問題無關(guān)或關(guān)系不大的類,如“費(fèi)用”。 刪除模糊的類:有些初始類邊界定義不確切,或范圍太廣,應(yīng)該刪除。如“系統(tǒng)”、“安全措施”、“記錄保管”、“銀行網(wǎng)絡(luò)”。 刪除那些性質(zhì)獨(dú)立性不強(qiáng)的,而應(yīng)該是
33、類“屬性”的候選類:如“帳戶數(shù)據(jù)”、“收據(jù)”、“現(xiàn)金”、“事務(wù)數(shù)據(jù)”。 所描述的操作不適宜作為對象類,并被其自身所操縱,所描述的只是實(shí)現(xiàn)過程中的暫時的對象,應(yīng)刪去。如“軟件”,“訪問”。4.4.2對象圖的構(gòu)建l 對象圖(Object Diagram)是表示在某一時刻一組對象以及它們之間的關(guān)系的圖,對象圖由節(jié)點(diǎn)以及連接這些節(jié)點(diǎn)之間的連線組成。l 如果把類圖實(shí)例化后就得到對象圖,所以說對象圖是對包含在類圖中的事物的實(shí)例建模,是類圖的一個特例,其表示方法也類似于類圖。l 它們的不同點(diǎn)在于對象圖顯示類的多個對象實(shí)例,而不是實(shí)際的類。l 一個對象圖是類圖的一個實(shí)例。l 由于對象存在生命周期,因此對象圖只能在系統(tǒng)某一時間段
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國防滑膠帶和防滑條行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球3D口內(nèi)掃描儀行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國裝運(yùn)前檢驗(PSI)服務(wù)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國可編程勻膠機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球智能暖霧和冷霧加濕器行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國防爆傳送帶開關(guān)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年房地產(chǎn)貸款服務(wù)及協(xié)作合同2篇
- 二零二五版吊車租賃企業(yè)信息化管理服務(wù)協(xié)議3篇
- 二零二五年度航空航天產(chǎn)業(yè)員工試用期勞動合同范本3篇
- 二零二五年度電梯門套安裝與環(huán)保評估合同3篇
- 建設(shè)單位如何做好項目管理
- 三年級上遞等式計算400題
- 一次性餐具配送投標(biāo)方案
- 2024年原發(fā)性肝癌中醫(yī)診療指南
- 選煤廠安全知識培訓(xùn)課件
- 2024醫(yī)療建筑韌性設(shè)計導(dǎo)則
- 軍隊文職半年述職報告
- 鑄牢中華民族共同體意識-考試復(fù)習(xí)題庫(含答案)
- 2024年浙江首考高考選考生物試卷試題真題(含答案詳解)
- 天津市紅橋區(qū)2023-2024學(xué)年七年級上學(xué)期期末地理試題
- 西門子數(shù)字化工廠-數(shù)字化車間-先進(jìn)制造技術(shù)
評論
0/150
提交評論