軟件工程(二)UML與面向?qū)ο蠓治?/span>軟件工程的第二篇文章,依然還是跟需求相關的內(nèi)容,依然也全部都是重點。而且這一部分的內(nèi)容會更偏技術一些。在需求采集分析結(jié)束之后,形成了 SRS ,接下來就是再將需求轉(zhuǎn)化成開發(fā)人員的需求,也就是技術語言描述的需求。在這里,我們會使用 UML 這種圖形語言進行系統(tǒng)的描述,同時 UML 也是面向?qū)ο蟮?,因此,緊接著我們就可以進行面向?qū)ο蟮姆治觯瑥亩鵀橄到y(tǒng)架構的搭建做好準備。 UMLUML 是一種定義良好、易于表達、功能強大且普遍適用的建模語言,它的作用不僅限于支持 OOA 和 OOD ,還支持從需求分析開始的軟件開發(fā)的全過程。從總體上看,UML 包括構造塊、規(guī)則和公共機制三個部分。其中在構造塊中,包括事物(thing)、關系(relationship)、和圖(diagram)。 事物主要就是對現(xiàn)實世界的抽象,也稱為建模元素,包括結(jié)構事物、行為事物、分組事物和注釋事物。其實事物就是我們要操作的對象,包括類、接口、協(xié)作、用例、活動、構件、節(jié)點等,也包括交互和狀態(tài)機。(了解即可) 關系UML 用關系把事物結(jié)合在一起,主要有下列四種關系:
圖UML 主要的表現(xiàn)形式就是各種各樣的圖,從圖的動靜表示來看,可以分為 動態(tài) 和 靜態(tài) 兩種類型的圖。 1. 靜態(tài)圖包括如下 7 種。類圖:給出了系統(tǒng)的靜態(tài)設計視圖。在系統(tǒng)建模中,最常見的就是類圖,主要是描述一組類、接口、協(xié)作和它們之間的關系。
對象圖:給出系統(tǒng)的靜態(tài)設計視圖或靜態(tài)進程視圖。對象圖就是不顯示方法屬性的類圖。 包圖:描述由模型本身分解而成的組織單元,以及它們之間的依賴關系,比如類圖更細。 組合結(jié)構圖:描述結(jié)構化類的內(nèi)部結(jié)構,用于畫出結(jié)構化類的內(nèi)部內(nèi)容。 構件圖:描述一個封閉的類和它的接口、端口,以及由內(nèi)嵌的構件和連接件構成的內(nèi)部結(jié)構。用于表示系統(tǒng)的靜態(tài)設計實現(xiàn)視圖。 部署圖:描述對運行時的處理節(jié)點及在其中的構件配置。在下圖中,大框內(nèi)部并在左側(cè)帶兩個小長方形的就是 構件圖 ,整個一起就是 部署圖 。
制品圖:描述計算機中一個系統(tǒng)的物理結(jié)構。 2. 動態(tài)圖包括以下 7 種。用例圖:描述一組用例、參與者與它們之間的關系。給出系統(tǒng)的靜態(tài)用例視圖,描述需求。用例圖最明顯的特征是里面一定有小人,然后用例都是橢圓形的。
順序圖/序列圖:是一種交互圖,展現(xiàn)了一種交互,由一組對象或參與者以及它們之間可能發(fā)送的消息構成,是強調(diào)消息的時間次序的交互圖,也可以叫時序圖。順序圖肯定有消息從左向右傳遞的過程,有很多圖也會有消息從右向左返回的過程。微信、支付寶的支付接入文檔中都有這個時序圖的展現(xiàn)。
通信圖/協(xié)作圖:也是一種交互圖,強調(diào)收發(fā)消息的對象或參與者的結(jié)構組織。它與時序圖的區(qū)別就是沒有順序的概念,而是一種對象之間的組織結(jié)構。
定時圖:一種交互圖,強調(diào)消息跨越不同對象或參與者的實際時間,而不僅僅只是關心消息的相對順序。 狀態(tài)圖:描述一個狀態(tài)機,它由狀態(tài)、轉(zhuǎn)移、事件和活動組成,給出了對象的視圖,強調(diào)事件導致的對象行為,這非常有助于對反應式的系統(tǒng)建模。在狀態(tài)圖中,我們會看到當前的狀態(tài)、以后的狀態(tài),以及觸發(fā)的條件。
活動圖:將進程或其他計算結(jié)構展示為計算內(nèi)部一步步的控制流和數(shù)據(jù)流,專注于系統(tǒng)的動態(tài)視圖?;顒訄D其實非常類似于 產(chǎn)品經(jīng)理 或者我們在進行業(yè)務分析時畫的的 流程圖 。
交互概覽圖:是活動圖和順序圖的混合物。 以上 14 種 UML 相關的圖,我們給出了圖示的都是重點要關注的,要能夠看到類似的圖就知道它是什么圖。其它的只需要了解它是屬于靜態(tài)還是動態(tài)圖就好了。 UML 視圖UML 對系統(tǒng)架構的定義是系統(tǒng)的組織結(jié)構,包括系統(tǒng)分解的組成部分,以及它們的關聯(lián)性、交互機制和指導原則等提供系統(tǒng)設計的信息。具體來說,就是指以下 5 個系統(tǒng)視圖: 1)邏輯視圖,即類、子系統(tǒng)、包和用例實現(xiàn)的子集。 2)進程視圖:它是邏輯視圖的一次執(zhí)行實例,描述了并發(fā)與同步結(jié)構。 3)實現(xiàn)視圖:對組成基于系統(tǒng)的物理代碼的文件和構件進行建模。 4)部署視圖:把構件部署到一組物理節(jié)點上,表示軟件到硬件的映射和分布結(jié)構。 5)用例視圖:最基本的需求分析模型。 面向?qū)ο蠓治?/span>OOA,面向?qū)ο蠓治?,它的基本任務是運用 OO 方法,對問題域進行分析和理解,正確認識其中的事物及它們之間的關系,找出描述問題域和系統(tǒng)功能所需的類和對象,定義它們的屬性和職責,以及它們之間的各種聯(lián)系。核心工作也是兩個,建立系統(tǒng)使用的 用例模型 和 分析模型 。 用例模型用例方法是一種動態(tài)的需求合成技術,先獲取需求,記錄下來,然后從這些零散的要求和期望中進行整理與提煉,從而建立用例模型。用例模型以 用例圖 為主要表現(xiàn)形式。它包括四個階段:識別參與者、合并需求獲得用例、細化用例描述、調(diào)整用例模型。其中前三個階段是必需的,但是第四個階段有一個很重要的概念,就是用例之間的關系,它包括以下三種關系。
泛化關系我們在后面的分析模型中還會看到,在用例圖中展示泛化關系的情況還是比較少的,如果需要展示的話,連接線和我們下面看到的類圖中的泛化關系的連接線是一致的。 分析模型分析模型通過靜態(tài)的方式描述系統(tǒng)的基本軟件結(jié)構,展現(xiàn)類和對象如何組成系統(tǒng),以及它們?nèi)绾伪3滞ㄐ?,實現(xiàn)系統(tǒng)行為。分析模型以 類圖 為主要表現(xiàn)形式。建立分析模型的過程包括:定義概念類、確定類之間的關系、為類添加職責、建立交互圖等,其中可以將前三個步驟統(tǒng)稱為 CRC(類、責任、協(xié)作) 建模。在這里,確定類之間的關系是分析模型中的重點內(nèi)容,類之間的關系包括以下六種。
注意到上述六個圖示的連接線是不同的,這個也是要關注的內(nèi)容,除了定義之外,要能看圖就知道當前的類圖表示的是哪種關系。 總結(jié)今天的內(nèi)容,如果沒猜錯的話,應該是整個系列的文章教程中圖片最多的,而且也是記憶量最大的。UML 14 個圖的概念含義,其中重點的幾個圖形;用例圖的關系的含義及圖形表示;類圖的六種關系的含義及連接線的表示。這三大塊的內(nèi)容,說實話,即使你在大學的時候?qū)W過軟件工程,如果上班以后沒有接觸過的話,那估計用不了兩三年也能忘得差不多了。在文章開頭也說過,這一篇也是整篇都是重點內(nèi)容,是需要我們深入學習理解并記憶的。 關于 UML 相關的內(nèi)容可以通過下方參考鏈接中的內(nèi)容繼續(xù)去深入地學習。就像之前網(wǎng)絡中的 TCP/IP 之類的知識點一樣,UML 以及 面向?qū)ο蠓治?隨隨便便都是可以寫一本書的,而我們學習的內(nèi)容,其實都只是皮毛,或者說是它們最淺顯的核心知識點而已。沒別的,硬記下來吧,而且這部分知識對各位不管是做開發(fā)的小伙伴,還是期望和開發(fā)人員溝通的好基友們,都是非常有用的。 參考資料: UML實踐詳細經(jīng)典教程----用例圖、順序圖、狀態(tài)圖、類圖、包圖、協(xié)作圖:http://www./oobject/201609092.asp UML圖中類之間的關系:依賴,泛化,關聯(lián),聚合,組合,實現(xiàn):http://www./oobject/201409232.asp UML用例圖之泛化(generalization)、擴展(extend)和包含(include)關系:http://www./oobject/201104211.asp 《信息系統(tǒng)項目管理師教程》 《某機構培訓資料》 |
|
|
來自: 硬核項目經(jīng)理 > 《待分類》