一柴淘、需求分析圖表說明
-
用例圖:
用例圖(Use Case Diagram)是由軟件需求分析到最終實(shí)現(xiàn)的第一步迫淹,它描述人們?nèi)绾问褂靡粋€(gè)系統(tǒng)。用例視圖顯示誰是相關(guān)的用戶为严、用戶希望系統(tǒng)提供什么樣的服務(wù)敛熬,以及用戶需要為系統(tǒng)提供的服務(wù),以便使系統(tǒng)的用戶更容易理解這些元素的用途第股,也便于軟件開發(fā)人員最終實(shí)現(xiàn)這些元素应民。
用例圖包含3個(gè)元素,分別是:參與者(Actor)夕吻、用例(Use Case)诲锹、用例間關(guān)系
1)參與者是系統(tǒng)外部的一個(gè)實(shí)體,它以某種方式參與用例的執(zhí)行過程涉馅。參與者通過向系統(tǒng)輸入或請求系統(tǒng)輸入某些事件來觸發(fā)系統(tǒng)的執(zhí)行归园。參與著由參與用例時(shí)所擔(dān)當(dāng)?shù)慕巧珌肀硎尽T赨ML中控漠,參與者用名字寫在下面的人形圖標(biāo)表示蔓倍。
2)用例是外部可見的系統(tǒng)功能單元,這些系統(tǒng)功能由系統(tǒng)單元所提供盐捷,并通過一系列系統(tǒng)單元與一個(gè)或多個(gè)參與者之間交換的消息所表達(dá)偶翅。用例的用途是,在不揭示系統(tǒng)內(nèi)部構(gòu)造的前提下定義連貫的行為碉渡。
3)用例之間關(guān)系有4中:關(guān)聯(lián)關(guān)系(Association)聚谁、包含關(guān)系(Include)、擴(kuò)展關(guān)系(Extend)以及泛化關(guān)系(Generalization)滞诺。- 關(guān)聯(lián)關(guān)系:表示參與者與用例之間的通信形导,用箭頭來表示。
- 包含關(guān)系:一個(gè)用例可以簡單地包含其它用例具有的行為习霹,并把它所包含的用例行為作為自身行為的一部分朵耕,這被稱作包含關(guān)系。在這種情況下淋叶,新用例不是初始用例的一個(gè)特殊例子阎曹,并且不能被初始用例所代替。包含關(guān)系表示為虛線箭頭交<<include>>字樣,箭頭指向被包含的用例处嫌。包含關(guān)系表示用例之間是“has a”關(guān)系栅贴。
- 擴(kuò)展關(guān)系:一個(gè)用例也可以被定義為基礎(chǔ)用例的增量擴(kuò)展,這被稱作擴(kuò)展關(guān)系熏迹,擴(kuò)展關(guān)系是把新的行為插入到已有的用例中的方法檐薯。同一個(gè)基礎(chǔ)用例的幾個(gè)擴(kuò)展用例可以在一起應(yīng)用∽担基礎(chǔ)用例的擴(kuò)展增加了原有的語義坛缕,此時(shí)基礎(chǔ)用例而不是擴(kuò)展用例被作為例子使用。擴(kuò)展關(guān)系表示為虛線箭頭加<<extend>>字樣友存,箭頭指向被擴(kuò)展展的用例祷膳。
- 泛化關(guān)系:一個(gè)用例可以被特別列舉為一個(gè)或多個(gè)用例陶衅,這被稱為用例泛化屡立。當(dāng)父用例能夠被使用時(shí),任何子用例也可以被使用搀军。在UML中用例泛化與其它泛化關(guān)系的表示法相同膨俐,用一個(gè)三角箭頭從子用例指向父用例。
活動(dòng)圖:
活動(dòng)圖(Activity Diagram)可以實(shí)現(xiàn)對系統(tǒng)動(dòng)態(tài)行為的建模罩句,主要是將用例細(xì)化焚刺,即用例內(nèi)部的細(xì)節(jié)可以以活動(dòng)圖的方式描述∶爬茫活動(dòng)圖描述活動(dòng)的順序乳愉,主要表活動(dòng)之間的控制流,是內(nèi)部處理驅(qū)動(dòng)的流程屯远,在本質(zhì)上是一種流程圖蔓姚。
二、概要設(shè)計(jì)
1.程序流程圖
-
類圖
類圖(Class diagram)是顯示了模型的靜態(tài)結(jié)構(gòu)慨丐,特別是模型中存在的類坡脐、類的內(nèi)部結(jié)構(gòu)以及它們與其他類的關(guān)系等。類圖不顯示暫時(shí)性的信息房揭。類圖是面向?qū)ο蠼5闹饕M成部分备闲。它既用于應(yīng)用程序的系統(tǒng)分類的一般概念建模,也用于詳細(xì)建模捅暴,將模型轉(zhuǎn)換成編程代碼恬砂。類圖也可用于數(shù)據(jù)建模。
類圖(Class diagram)由許多(靜態(tài))說明性的模型元素(例如類蓬痒、包和它們之間的關(guān)系泻骤,這些元素和它們的內(nèi)容互相連接)組成。類圖可以組織在(并且屬于)包中,僅顯示特定包中的相關(guān)內(nèi)容瞪讼。
類圖(Class diagram)是最常用的UML圖钧椰,顯示出類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系符欠;它用于描述系統(tǒng)的結(jié)構(gòu)化設(shè)計(jì)嫡霞。
類圖組成:類、包希柿、接口诊沪、關(guān)系
1)類:類名(必須)、屬性曾撤、方法端姚、性質(zhì)、內(nèi)部類
類名書寫規(guī)范:正體字說明類是可被實(shí)例化的挤悉,斜體字說明類為抽象類渐裸。
屬性和方法書寫規(guī)范:修飾符 [描述信息] 屬性、方法名稱 [參數(shù)] [:返回類型|類型]
屬性和方法之前可附加的可見性修飾符:
加號(+)表示public装悲;減號(-)表示private昏鹃;井號(#)表示protected;省略這些修飾符表示具有package(包)級別的可見性诀诊。
如果屬性或方法具有下劃線洞渤,則說明它是靜態(tài)的。
描述信息使用 << 開頭属瓣,使用 >> 結(jié)尾载迄。
類的性質(zhì)是由一個(gè)屬性、一個(gè)賦值方法和一個(gè)取值方法組成抡蛙。書寫方式和方法類似护昧。
2)包
包是一種常規(guī)用途的組合機(jī)制。UML中的一個(gè)包直接對應(yīng)于Java中的一個(gè)包溜畅。在Java中捏卓,一個(gè)包可能含有其他包、類或者同時(shí)含有這兩者慈格。進(jìn)行建模時(shí)怠晴,通常使用邏輯性的包,用于對模型進(jìn)行組織浴捆;使用物理性的包蒜田,用于轉(zhuǎn)換成系統(tǒng)中的Java包。每個(gè)包的名稱對這個(gè)包進(jìn)行了惟一性的標(biāo)識选泻。
3)接口
接口是一系列操作的集合冲粤,它指定了一個(gè)類所提供的服務(wù)美莫。它直接對應(yīng)于Java中的一個(gè)接口類型。接口的表示有大概兩種方式梯捕。
4)關(guān)系:
常見的關(guān)系有:繼承(Inheritance)厢呵,關(guān)聯(lián)關(guān)系(Association),聚合關(guān)系(Aggregation)傀顾,復(fù)合關(guān)系(Composition)襟铭,依賴關(guān)系(Dependency),實(shí)現(xiàn)關(guān)系(Realization/Implementation)。
其中短曾,聚合關(guān)系(Aggregation)寒砖,復(fù)合關(guān)系(Composition)屬于關(guān)聯(lián)關(guān)系(Association)。
一般關(guān)系表現(xiàn)為繼承或?qū)崿F(xiàn)關(guān)系(is a)嫉拐,關(guān)聯(lián)關(guān)系表現(xiàn)為變量(has a )哩都,依賴關(guān)系表現(xiàn)為函數(shù)中的參數(shù)(use a)。
一般化關(guān)系:表示為類與類之間的繼承關(guān)系婉徘,接口與接口之間的繼承漠嵌,類對接口的實(shí)現(xiàn)關(guān)系喉恋。
表示方法: 用一個(gè)空心箭頭+實(shí)線,箭頭指向父類鲤屡“云欤或空心箭頭+虛線,如果父類是接口犀勒。關(guān)聯(lián)關(guān)系:類與類之間的聯(lián)接,它使一個(gè)類知道另一個(gè)類的屬性和方法。
表示方法:用 實(shí)線+箭頭锌仅, 箭頭指向被使用的類。聚合關(guān)系:是關(guān)聯(lián)關(guān)系的一種墙贱,是強(qiáng)的關(guān)聯(lián)關(guān)系热芹。聚合關(guān)系是整體和個(gè)體的關(guān)系。關(guān)聯(lián)關(guān)系的兩個(gè)類處于同一層次上惨撇,而聚合關(guān)系兩個(gè)類處于不同的層次伊脓,一個(gè)是整體,一個(gè)是部分魁衙。
表示方法:空心菱形+實(shí)線+箭頭报腔,箭頭指向個(gè)體。合成關(guān)系:是關(guān)聯(lián)關(guān)系的一種剖淀,是比聚合關(guān)系強(qiáng)的關(guān)系纯蛾。它要求普通的聚合關(guān)系中代表整體的對象負(fù)責(zé)代表部分的對象的生命周期,合成關(guān)系不能共享纵隔。
表示方法:實(shí)心菱形+實(shí)線+箭頭翻诉,依賴關(guān)系:是類與類之間的連接炮姨,表示一個(gè)類依賴于另一個(gè)類的定義。例如如果A依賴于B碰煌,則B體現(xiàn)為局部變量舒岸,方法的參數(shù)、或靜態(tài)方法的調(diào)用芦圾。
表示方法:虛線+箭頭 箭頭指向被依賴的一方吁津,也就是指向局部變量。
三堕扶、詳細(xì)設(shè)計(jì)
1.IPO圖:
2.時(shí)序圖:通過描述對象之間發(fā)送消息的時(shí)間順序顯示多個(gè)對象之間的動(dòng)態(tài)協(xié)作
備注:
統(tǒng)一建模語言(英語:Unified Modeling Language碍脏,縮寫 UML)
在UML系統(tǒng)開發(fā)中有三個(gè)主要的模型:
- 功能模型:從用戶的角度展示系統(tǒng)的功能,包括用例圖稍算。
- 對象模型:采用對象典尾,屬性,操作糊探,關(guān)聯(lián)等概念展示系統(tǒng)的結(jié)構(gòu)和基礎(chǔ)钾埂,包括類別圖、對象圖科平。
- 動(dòng)態(tài)模型:展現(xiàn)系統(tǒng)的內(nèi)部行為褥紫。包括序列圖,活動(dòng)圖瞪慧,狀態(tài)圖髓考。