EA介紹:EA是一個(gè)對(duì)于軟件系統(tǒng)開發(fā)有著極好支持的CASE軟件吗冤,他可以支撐系統(tǒng)開發(fā)的全過程硕淑。
用例圖:
用例圖各部分:
- 操作者Actor(其他圖比如說類圖中速客,需要對(duì)構(gòu)造型進(jìn)行設(shè)置)
- 空心三角代表泛化關(guān)系张峰,三角指向的對(duì)象是父類
- 關(guān)聯(lián)關(guān)系(帶箭頭的實(shí)線趟据,箭頭指向用例)include(虛線箭頭+<<include>>字樣泵肄,箭頭由基礎(chǔ)用例指向被包含的用例)驮吱、extend關(guān)系(虛線箭頭+<<extend>>字樣雕憔,箭頭指向被擴(kuò)展的用例(基礎(chǔ)用例),添加新的行為到已有用例-可能不執(zhí)行)
- 區(qū)別include和extend:include包含的用例對(duì)基礎(chǔ)用例可見身笤,并且去掉被包含的用例后基礎(chǔ)用例將不完整豹悬。Extend擴(kuò)展的用例對(duì)基礎(chǔ)用例不可見,并且去掉擴(kuò)展的用例后基礎(chǔ)用力依然完整液荸。
**繪制注意事項(xiàng):
- 用例是動(dòng)賓短語瞻佛,要體現(xiàn)系統(tǒng)功能
- 參與者不一定是人**
- 不必要的時(shí)候不使用include、extend
甘特圖
也稱為條狀圖娇钱,是一種按照時(shí)間進(jìn)度標(biāo)出工作活動(dòng)伤柄,用于項(xiàng)目管理的圖表。甘特圖用橫軸表示時(shí)間文搂,縱軸表示活動(dòng)适刀,線條表示在計(jì)劃期間活動(dòng)的安排以及完成情況。以圖示的方式通過活動(dòng)列表和時(shí)間刻度形象地表示出任何特定項(xiàng)目的活動(dòng)順序與持續(xù)時(shí)間煤蹭。
類圖
類圖是軟件的藍(lán)圖笔喉,用于詳細(xì)描述系統(tǒng)內(nèi)各個(gè)對(duì)象的相關(guān)的類,以及這些類之間的靜態(tài)關(guān)系硝皂。設(shè)計(jì)類是已經(jīng)完成了規(guī)格說明并且達(dá)到能夠被實(shí)現(xiàn)程度的類常挚。
類組件:類名-如果是抽象類需要斜體
類屬性:可見性 名稱:類型 [=缺省值]
+(public) –(private) #(protected) ~(package)
** 六種類間關(guān)系(耦合度由低到高)**
依賴關(guān)系use-a、關(guān)聯(lián)關(guān)系has-a稽物、聚合關(guān)系奄毡、組合關(guān)系、泛化關(guān)系is-a贝或、實(shí)現(xiàn)關(guān)系(類與接口)
- 關(guān)聯(lián)關(guān)系-單向關(guān)聯(lián):一個(gè)類知道另一個(gè)類的屬性和方法
- 關(guān)聯(lián)關(guān)系-雙向關(guān)聯(lián):互相知道
- 關(guān)聯(lián)關(guān)系-多元關(guān)聯(lián)
- 關(guān)聯(lián)關(guān)系-聚集:整體包含部分秧倾,但是部分可以脫離整體單獨(dú)存在。(圖書館與圖書)【空心菱形傀缩,菱形在整體的那一邊】
- 關(guān)聯(lián)關(guān)系-組合:整體包含部分那先,部分不可以脫離整體單獨(dú)存在。(圖書與目錄)【實(shí)心菱形】
- 關(guān)聯(lián)關(guān)系-關(guān)聯(lián)類:基于關(guān)聯(lián)關(guān)系赡艰,既是關(guān)聯(lián)也是類(比如一個(gè)方法不知道放到那個(gè)類的時(shí)候可以使用)【面向?qū)ο蟮木幊滩恢С质鄣梢赞D(zhuǎn)化】
- 依賴關(guān)系:被依賴對(duì)象改變的時(shí)候會(huì)影響到依賴對(duì)象
區(qū)分依賴和關(guān)聯(lián):某個(gè)類以成員變量的形式出現(xiàn)在另一個(gè)類中,這就是關(guān)聯(lián)慷垮;而若是以一個(gè)局部變量的形式出現(xiàn)揖闸,則是依賴關(guān)系。(他的耦合度比關(guān)聯(lián)關(guān)系低料身,相當(dāng)于短暫使用關(guān)聯(lián))是一個(gè)臨時(shí)的使用關(guān)系汤纸,不是靜態(tài)關(guān)系,是非結(jié)構(gòu)化的【比如借閱列表和圖書的關(guān)系】或者用引用的概念來加以區(qū)分:屬性引用-關(guān)聯(lián)關(guān)系芹血;參數(shù)引用-依賴關(guān)系贮泞;局部聲明引用-依賴關(guān)系楞慈;全局引用(B對(duì)象是一個(gè)全局對(duì)象)-依賴關(guān)系。 - 泛化關(guān)系:繼承是耦合程度最高的啃擦,對(duì)絕大多數(shù)語言來說囊蓝,繼承是一種靜態(tài)關(guān)系(注意LSP原則、從抽象類繼承)
注:只要有可能令蛉,不要從具體類繼承聚霜。行為集中的方向是向上;數(shù)據(jù)集中的方向是向下 - 實(shí)現(xiàn)關(guān)系:將一個(gè)類和一個(gè)接口連接起來珠叔,類是對(duì)接口的實(shí)現(xiàn)蝎宇。
- 類間關(guān)系的多重性:1-一個(gè);-0或多個(gè)祷安;1..一個(gè)或多個(gè)夫啊;0..1零或一個(gè)
順序圖
描述了一組對(duì)象的交互方式,它表示完成某項(xiàng)行為的對(duì)象和這些對(duì)象之間傳遞消息的時(shí)間順序辆憔。
組成元素:參與者、對(duì)象报嵌、生命線虱咧、控制焦點(diǎn)、消息
用例圖是系統(tǒng)外部對(duì)象(參與者)與系統(tǒng)這兩大對(duì)象之間的互動(dòng)锚国,而類圖是對(duì)系統(tǒng)中涉及到得所有對(duì)象腕巡,進(jìn)行抽象描述。順序圖是參與者和系統(tǒng)進(jìn)行交互血筑、系統(tǒng)內(nèi)部對(duì)象之間具體互動(dòng)的實(shí)現(xiàn)绘沉。所以,順序圖關(guān)聯(lián)了類圖與用例圖豺总,可以通過用例圖和類圖進(jìn)行整合车伞。
【順序:參與者-邊界類-控制類-實(shí)體類,控制類只有一個(gè)喻喳,邊界類和實(shí)體類可以有多個(gè)另玖。】
- 邊界類:位于系統(tǒng)與外界的交界處表伦,窗體谦去、報(bào)表、以及表示通訊協(xié)議的類蹦哼、直接與外部設(shè)備交互的類鳄哭、直接與外部系統(tǒng)交互的類等都是邊界類。
- 控制類:控制其他類工作的類纲熏。每個(gè)用例通常有一個(gè)控制類妆丘,控制用例中的事件順序锄俄,控制類也可以在多個(gè)用例間共用。
- 實(shí)體類:保存要放進(jìn)持久存儲(chǔ)體的信息飘痛,就是數(shù)據(jù)庫珊膜、文件等可以永久存儲(chǔ)數(shù)據(jù)的介質(zhì)。通常每個(gè)實(shí)體類在數(shù)據(jù)庫中有相應(yīng)的表宣脉,實(shí)體類中的屬性對(duì)應(yīng)數(shù)據(jù)庫表中的字段车柠。
EA操作
- 用例圖
新建一個(gè).eap文件:打開EA-文件新建項(xiàng)目-不選模板-Module右鍵添加-新建增圖-用例圖
繪制用例圖:右鍵新建的圖-添加圖-選擇UML Behavioral-Use Case - 類圖
-模板-core modeling-class
-新建圖-structural-class
-新建類-右鍵功能屬性
-關(guān)聯(lián)-右鍵多重值 - 順序圖
-新建圖-behavioral-sequence
-關(guān)聯(lián)-右鍵特性-設(shè)置同步異步等等 - 圖導(dǎo)出
選中需要導(dǎo)出的Model-右鍵僅僅圖報(bào)告-BMP格式-運(yùn)行
操作舉例
題目:
游客可以通過輸入關(guān)鍵詞①檢索美食、②店鋪塑猖。③注冊(cè)后竹祷,游客獲得平臺(tái)賬號(hào)
登錄后,游客成為正式用戶
正式用戶除①檢索外羊苟,還可以對(duì)美食②發(fā)布評(píng)價(jià)塑陵、點(diǎn)贊其他用戶評(píng)價(jià)以及舉報(bào)違規(guī)評(píng)價(jià)正式用戶還可以③收藏店鋪
用戶如果想要④申請(qǐng)店鋪主頁,可以在填寫店鋪基本信息后提交申請(qǐng)
系統(tǒng)管理員負(fù)責(zé)①處理主頁申請(qǐng)以及②舉報(bào)信息蜡励。
附加:面向?qū)ο笤O(shè)計(jì)7大原則
- 單一職責(zé)原則:一個(gè)類只應(yīng)該做和一個(gè)職責(zé)相關(guān)的事情令花,不要把過多的業(yè)務(wù)放在一個(gè)類中完成。
- 迪米特法則:軟件實(shí)體之間應(yīng)該做到最少的交互凉倚。不要和陌生人說話兼都。調(diào)用方只關(guān)心他需要使用的方法。
- 接口隔離原則:使用專門的接口稽寒,比用統(tǒng)一的接口要好扮碧。便于分工,在實(shí)現(xiàn)接口時(shí)杏糙,不應(yīng)該看到自己不用關(guān)心的方法慎王。
- 開閉原則:軟件實(shí)體應(yīng)該對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉宏侍。開閉原則是設(shè)計(jì)原則的核心原則赖淤,其他的設(shè)計(jì)原則都是開閉原則表現(xiàn)和補(bǔ)充。實(shí)現(xiàn)開閉原則的方法就是抽象谅河。
- 合成復(fù)用原則:多使用聚合/組合達(dá)到代碼的重用漫蛔,少使用繼承復(fù)用。
- 依賴倒置原則:面向抽象編程旧蛾,不要面向具體編程莽龟。
- 里氏替換原則:子類可以擴(kuò)展父類的功能,但不能改變父類原有的功能锨天。