一、需求分析圖表說(shuō)明
-
用例圖:
用例圖(Use Case Diagram)是由軟件需求分析到最終實(shí)現(xiàn)的第一步,它描述人們?nèi)绾问褂靡粋€(gè)系統(tǒng)。用例視圖顯示誰(shuí)是相關(guān)的用戶、用戶希望系統(tǒng)提供什么樣的服務(wù),以及用戶需要為系統(tǒng)提供的服務(wù),以便使系統(tǒng)的用戶更容易理解這些元素的用途,也便于軟件開(kāi)發(fā)人員最終實(shí)現(xiàn)這些元素。
用例圖包含3個(gè)元素,分別是:參與者(Actor)、用例(Use Case)、用例間關(guān)系
1)參與者是系統(tǒng)外部的一個(gè)實(shí)體,它以某種方式參與用例的執(zhí)行過(guò)程。參與者通過(guò)向系統(tǒng)輸入或請(qǐng)求系統(tǒng)輸入某些事件來(lái)觸發(fā)系統(tǒng)的執(zhí)行。參與著由參與用例時(shí)所擔(dān)當(dāng)?shù)慕巧珌?lái)表示。在UML中,參與者用名字寫在下面的人形圖標(biāo)表示。
2)用例是外部可見(jiàn)的系統(tǒng)功能單元,這些系統(tǒng)功能由系統(tǒng)單元所提供,并通過(guò)一系列系統(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)系:表示參與者與用例之間的通信,用箭頭來(lái)表示。
- 包含關(guān)系:一個(gè)用例可以簡(jiǎn)單地包含其它用例具有的行為,并把它所包含的用例行為作為自身行為的一部分,這被稱作包含關(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)用?;A(chǔ)用例的擴(kuò)展增加了原有的語(yǔ)義,此時(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)對(duì)系統(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))說(shuō)明性的模型元素(例如類、包和它們之間的關(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)部類
類名書(shū)寫規(guī)范:正體字說(shuō)明類是可被實(shí)例化的,斜體字說(shuō)明類為抽象類。
屬性和方法書(shū)寫規(guī)范:修飾符 [描述信息] 屬性、方法名稱 [參數(shù)] [:返回類型|類型]
屬性和方法之前可附加的可見(jiàn)性修飾符:
加號(hào)(+)表示public;減號(hào)(-)表示private;井號(hào)(#)表示protected;省略這些修飾符表示具有package(包)級(jí)別的可見(jiàn)性。
如果屬性或方法具有下劃線,則說(shuō)明它是靜態(tài)的。
描述信息使用 << 開(kāi)頭,使用 >> 結(jié)尾。
類的性質(zhì)是由一個(gè)屬性、一個(gè)賦值方法和一個(gè)取值方法組成。書(shū)寫方式和方法類似。
2)包
包是一種常規(guī)用途的組合機(jī)制。UML中的一個(gè)包直接對(duì)應(yīng)于Java中的一個(gè)包。在Java中,一個(gè)包可能含有其他包、類或者同時(shí)含有這兩者。進(jìn)行建模時(shí),通常使用邏輯性的包,用于對(duì)模型進(jìn)行組織;使用物理性的包,用于轉(zhuǎn)換成系統(tǒng)中的Java包。每個(gè)包的名稱對(duì)這個(gè)包進(jìn)行了惟一性的標(biāo)識(shí)。
3)接口
接口是一系列操作的集合,它指定了一個(gè)類所提供的服務(wù)。它直接對(duì)應(yīng)于Java中的一個(gè)接口類型。接口的表示有大概兩種方式。
4)關(guān)系:
常見(jià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)系,接口與接口之間的繼承,類對(duì)接口的實(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)系中代表整體的對(duì)象負(fù)責(zé)代表部分的對(duì)象的生命周期,合成關(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í)序圖:通過(guò)描述對(duì)象之間發(fā)送消息的時(shí)間順序顯示多個(gè)對(duì)象之間的動(dòng)態(tài)協(xié)作
備注:
統(tǒng)一建模語(yǔ)言(英語(yǔ):Unified Modeling Language,縮寫 UML)
在UML系統(tǒng)開(kāi)發(fā)中有三個(gè)主要的模型:
- 功能模型:從用戶的角度展示系統(tǒng)的功能,包括用例圖。
- 對(duì)象模型:采用對(duì)象,屬性,操作,關(guān)聯(lián)等概念展示系統(tǒng)的結(jié)構(gòu)和基礎(chǔ),包括類別圖、對(duì)象圖。
- 動(dòng)態(tài)模型:展現(xiàn)系統(tǒng)的內(nèi)部行為。包括序列圖,活動(dòng)圖,狀態(tài)圖。