在軟件開發中,軟件的需求設計和架構設計影響軟件的好壞和生命週期,編寫一個清晰直觀的設計文檔對軟件的開發和維護有重要作用,今天總結一下軟件設計>>詳細設計中用到的類圖和時序圖。爲後面的設計模式做一個鋪墊
一、類圖
類圖主要描述類的信息和類之間的關係,分爲類圖和類關係圖
1、類圖
在java中用一下圖形表示,一般包含3個組成部分。第一個是類名;第二個是屬性(attributes);第三個是該類提供的方法( 類的性質可以放在第四部分;如果類中含有內部類,則會出現第五個組成部分)。類名部分是不能省略的,其他組成部分可以省略。以學生爲例:
2、類關係圖
實際開發過程中的類不是獨立存在的,類之間有着多種關係。類與類之間主要有6種關係,包括依賴,關聯,聚合,組合,繼承,實現。他們的耦合度是依次增強的。這些關係在數據庫設計過程中體現尤爲明顯
2.1 依賴關係(dependecy)
依賴關係主要體現在兩個獨立的對象之間存在關聯關係,但是這種關係不太強烈,它是一種臨時性的關係,通常在運行期間產生,並且隨着運行時的變化; 依賴關係也可能發生變化。
依賴關係是用一套帶箭頭的虛線表示的;如下圖表示學生依賴於書和食物;他描述一個對象在運行期間會用到另一個對象的關係;通常體現爲類構造方法及類方法的傳入參數,
2.2 關聯關係(association)
關聯關係和依賴關係很相似,但是關聯關係描述對象之間的關係更強烈而且是靜態的,不會在運行時發生任何變化。
關聯關係 是用一套帶箭頭的實線表示的;如下圖的學生依賴教室,通常體現是將一個類的對象作爲另一個類的成員變量。注意:這種關聯關係有可能是雙向的,也就是數據庫中所說的多對多的關係
2.3 聚合關係(aggregation)
聚合關係的對象之間存在着一種 "弱" 擁有和包容關係,體現的是A對象可以包容B對象,但是B對象不是A對象的一部分。他們之間是“整體-個 體”的關係。
聚合關係使用一套帶空心菱形的實線表示;主要體現成員對象通常作爲構造方法、Setter方法或業務方法的參數注入到整體對象中,如下圖:
2.4 組合關係(composition)
聚合關係的對象之間存在着一種 "強" 擁有關係,描述的是A對象由B對象組成。他們之間是“整體-部分”的關係,單獨存在沒有任何意義。
組合關係使用帶實心菱形的直線表示;通常是講一個對象作爲另一個對象的屬性進行注入,如下圖:
2.5 繼承關係(Generalization)
繼承關係也叫泛化關係,描述的是is A,通過繼承關係來重寫類中的方法
繼承關係使用一套到三角符號的直線表示,在java中用extends體現。
2.6 實現關係(Implementation)
實現關係表現在類的層次關係上,類實現一個接口,來實現接口中的方法。
實現關係使用一套帶三角的虛線表示。
二、序列圖