日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

【信管1.8】軟件工程(二)UML與面向?qū)ο蠓治?/span>

 硬核項(xiàng)目經(jīng)理 2022-10-28 發(fā)布于湖南

軟件工程(二)UML與面向?qū)ο蠓治?/span>

軟件工程的第二篇文章,依然還是跟需求相關(guān)的內(nèi)容,依然也全部都是重點(diǎn)。而且這一部分的內(nèi)容會(huì)更偏技術(shù)一些。在需求采集分析結(jié)束之后,形成了 SRS ,接下來就是再將需求轉(zhuǎn)化成開發(fā)人員的需求,也就是技術(shù)語言描述的需求。在這里,我們會(huì)使用 UML 這種圖形語言進(jìn)行系統(tǒng)的描述,同時(shí) UML 也是面向?qū)ο蟮?,因此,緊接著我們就可以進(jìn)行面向?qū)ο蟮姆治觯瑥亩鵀橄到y(tǒng)架構(gòu)的搭建做好準(zhǔn)備。

UML

UML 是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語言,它的作用不僅限于支持 OOA 和 OOD ,還支持從需求分析開始的軟件開發(fā)的全過程。從總體上看,UML 包括構(gòu)造塊、規(guī)則和公共機(jī)制三個(gè)部分。其中在構(gòu)造塊中,包括事物(thing)、關(guān)系(relationship)、和圖(diagram)。

事物

主要就是對現(xiàn)實(shí)世界的抽象,也稱為建模元素,包括結(jié)構(gòu)事物、行為事物、分組事物和注釋事物。其實(shí)事物就是我們要操作的對象,包括類、接口、協(xié)作、用例、活動(dòng)、構(gòu)件、節(jié)點(diǎn)等,也包括交互和狀態(tài)機(jī)。(了解即可)

關(guān)系

UML 用關(guān)系把事物結(jié)合在一起,主要有下列四種關(guān)系:

  • 1)依賴(dependency):一個(gè)事物發(fā)生變化會(huì)影響另一個(gè)事物的語義。

  • 2)關(guān)聯(lián)(association):描述一對對象之間的連接結(jié)構(gòu)關(guān)系,也是語義上的聯(lián)系。

  • 3)泛化(generalization):描述特殊元素的對象可以替換一般元素的對象。其實(shí)就是 繼承 的一種反關(guān)系。之前我們就說過,子類繼承父類,父類泛化子類。

  • 4)實(shí)現(xiàn)(realization):類之間的語義關(guān)系,一個(gè)類指定了由另一個(gè)類保證執(zhí)行的契約。一般我們會(huì)說子類實(shí)現(xiàn)了父類的抽象方法,或者說類實(shí)現(xiàn)了接口方法。

UML 主要的表現(xiàn)形式就是各種各樣的圖,從圖的動(dòng)靜表示來看,可以分為 動(dòng)態(tài) 和 靜態(tài) 兩種類型的圖。

1. 靜態(tài)圖包括如下 7 種。

類圖:給出了系統(tǒng)的靜態(tài)設(shè)計(jì)視圖。在系統(tǒng)建模中,最常見的就是類圖,主要是描述一組類、接口、協(xié)作和它們之間的關(guān)系。

對象圖:給出系統(tǒng)的靜態(tài)設(shè)計(jì)視圖或靜態(tài)進(jìn)程視圖。對象圖就是不顯示方法屬性的類圖。

包圖:描述由模型本身分解而成的組織單元,以及它們之間的依賴關(guān)系,比如類圖更細(xì)。

組合結(jié)構(gòu)圖:描述結(jié)構(gòu)化類的內(nèi)部結(jié)構(gòu),用于畫出結(jié)構(gòu)化類的內(nèi)部內(nèi)容。

構(gòu)件圖:描述一個(gè)封閉的類和它的接口、端口,以及由內(nèi)嵌的構(gòu)件和連接件構(gòu)成的內(nèi)部結(jié)構(gòu)。用于表示系統(tǒng)的靜態(tài)設(shè)計(jì)實(shí)現(xiàn)視圖。

部署圖:描述對運(yùn)行時(shí)的處理節(jié)點(diǎn)及在其中的構(gòu)件配置。在下圖中,大框內(nèi)部并在左側(cè)帶兩個(gè)小長方形的就是 構(gòu)件圖 ,整個(gè)一起就是 部署圖 。

制品圖:描述計(jì)算機(jī)中一個(gè)系統(tǒng)的物理結(jié)構(gòu)。

2. 動(dòng)態(tài)圖包括以下 7 種。

用例圖:描述一組用例、參與者與它們之間的關(guān)系。給出系統(tǒng)的靜態(tài)用例視圖,描述需求。用例圖最明顯的特征是里面一定有小人,然后用例都是橢圓形的。

順序圖/序列圖:是一種交互圖,展現(xiàn)了一種交互,由一組對象或參與者以及它們之間可能發(fā)送的消息構(gòu)成,是強(qiáng)調(diào)消息的時(shí)間次序的交互圖,也可以叫時(shí)序圖。順序圖肯定有消息從左向右傳遞的過程,有很多圖也會(huì)有消息從右向左返回的過程。微信、支付寶的支付接入文檔中都有這個(gè)時(shí)序圖的展現(xiàn)。

通信圖/協(xié)作圖:也是一種交互圖,強(qiáng)調(diào)收發(fā)消息的對象或參與者的結(jié)構(gòu)組織。它與時(shí)序圖的區(qū)別就是沒有順序的概念,而是一種對象之間的組織結(jié)構(gòu)。

定時(shí)圖:一種交互圖,強(qiáng)調(diào)消息跨越不同對象或參與者的實(shí)際時(shí)間,而不僅僅只是關(guān)心消息的相對順序。

狀態(tài)圖:描述一個(gè)狀態(tài)機(jī),它由狀態(tài)、轉(zhuǎn)移、事件和活動(dòng)組成,給出了對象的視圖,強(qiáng)調(diào)事件導(dǎo)致的對象行為,這非常有助于對反應(yīng)式的系統(tǒng)建模。在狀態(tài)圖中,我們會(huì)看到當(dāng)前的狀態(tài)、以后的狀態(tài),以及觸發(fā)的條件。

活動(dòng)圖:將進(jìn)程或其他計(jì)算結(jié)構(gòu)展示為計(jì)算內(nèi)部一步步的控制流和數(shù)據(jù)流,專注于系統(tǒng)的動(dòng)態(tài)視圖?;顒?dòng)圖其實(shí)非常類似于 產(chǎn)品經(jīng)理 或者我們在進(jìn)行業(yè)務(wù)分析時(shí)畫的的 流程圖 。

交互概覽圖:是活動(dòng)圖和順序圖的混合物。

以上 14 種 UML 相關(guān)的圖,我們給出了圖示的都是重點(diǎn)要關(guān)注的,要能夠看到類似的圖就知道它是什么圖。其它的只需要了解它是屬于靜態(tài)還是動(dòng)態(tài)圖就好了。

UML 視圖

UML 對系統(tǒng)架構(gòu)的定義是系統(tǒng)的組織結(jié)構(gòu),包括系統(tǒng)分解的組成部分,以及它們的關(guān)聯(lián)性、交互機(jī)制和指導(dǎo)原則等提供系統(tǒng)設(shè)計(jì)的信息。具體來說,就是指以下 5 個(gè)系統(tǒng)視圖:

1)邏輯視圖,即類、子系統(tǒng)、包和用例實(shí)現(xiàn)的子集。

2)進(jìn)程視圖:它是邏輯視圖的一次執(zhí)行實(shí)例,描述了并發(fā)與同步結(jié)構(gòu)。

3)實(shí)現(xiàn)視圖:對組成基于系統(tǒng)的物理代碼的文件和構(gòu)件進(jìn)行建模。

4)部署視圖:把構(gòu)件部署到一組物理節(jié)點(diǎn)上,表示軟件到硬件的映射和分布結(jié)構(gòu)。

5)用例視圖:最基本的需求分析模型。

面向?qū)ο蠓治?/span>

OOA,面向?qū)ο蠓治?,它的基本任?wù)是運(yùn)用 OO 方法,對問題域進(jìn)行分析和理解,正確認(rèn)識(shí)其中的事物及它們之間的關(guān)系,找出描述問題域和系統(tǒng)功能所需的類和對象,定義它們的屬性和職責(zé),以及它們之間的各種聯(lián)系。核心工作也是兩個(gè),建立系統(tǒng)使用的 用例模型 和 分析模型 。

用例模型

用例方法是一種動(dòng)態(tài)的需求合成技術(shù),先獲取需求,記錄下來,然后從這些零散的要求和期望中進(jìn)行整理與提煉,從而建立用例模型。用例模型以 用例圖 為主要表現(xiàn)形式。它包括四個(gè)階段:識(shí)別參與者、合并需求獲得用例、細(xì)化用例描述、調(diào)整用例模型。其中前三個(gè)階段是必需的,但是第四個(gè)階段有一個(gè)很重要的概念,就是用例之間的關(guān)系,它包括以下三種關(guān)系。

  • 包含關(guān)系(include)。當(dāng)可以從兩個(gè)或兩個(gè)以上的用例中提取公共行為時(shí),應(yīng)該使用包含關(guān)系。

  • 擴(kuò)展關(guān)系(extend)。如果一個(gè)用例明顯地混合了兩種或兩種以上的不同場景,即根據(jù)情況可能發(fā)生多種分支,則可以將這個(gè)用例分為一個(gè)基本用例和一個(gè)或多個(gè)擴(kuò)展用例。

  • 泛化關(guān)系。當(dāng)多個(gè)用例共同擁有一種類似的結(jié)構(gòu)和行為的時(shí)候,可以將它們的共性抽象成為父用例,其他的用例作為泛化關(guān)系中的子用例。

泛化關(guān)系我們在后面的分析模型中還會(huì)看到,在用例圖中展示泛化關(guān)系的情況還是比較少的,如果需要展示的話,連接線和我們下面看到的類圖中的泛化關(guān)系的連接線是一致的。

分析模型

分析模型通過靜態(tài)的方式描述系統(tǒng)的基本軟件結(jié)構(gòu),展現(xiàn)類和對象如何組成系統(tǒng),以及它們?nèi)绾伪3滞ㄐ?,?shí)現(xiàn)系統(tǒng)行為。分析模型以 類圖 為主要表現(xiàn)形式。建立分析模型的過程包括:定義概念類、確定類之間的關(guān)系、為類添加職責(zé)、建立交互圖等,其中可以將前三個(gè)步驟統(tǒng)稱為 CRC(類、責(zé)任、協(xié)作) 建模。在這里,確定類之間的關(guān)系是分析模型中的重點(diǎn)內(nèi)容,類之間的關(guān)系包括以下六種。

  • 關(guān)聯(lián)關(guān)系:關(guān)聯(lián)關(guān)系表示的是對象和類之間的關(guān)系,而不是類與類之間的關(guān)系。(類與對象)

  • 依賴關(guān)系:兩個(gè)類 A 和 B ,如果 B 的變化可能會(huì)引起 A 的變化,則稱類 A 依賴于類 B 。(一起變化)


  • 泛化關(guān)系:一般事物與該事物中的特殊種類之間的關(guān)系,也就是父類與子類的關(guān)系,是繼承的反關(guān)系,父類是子類的泛化。(父泛子)

  • 共享聚集(聚合關(guān)系):表示類之間的整體與部分的關(guān)系,其含義是“部分”可能同時(shí)屬于多個(gè)“整體”,“部分”與“整體”的生命周期可以不相同。(整體部分可分離)

  • 組合聚集:也是表示類之間整體與部分關(guān)系的。不過這里的“部分”只屬于一個(gè)“整體”,“部分”與“整體”是同呼吸共患難的。(整體部分不可分)

  • 實(shí)現(xiàn)關(guān)系:將說明和實(shí)現(xiàn)聯(lián)系起來。說明就是我們程序代碼中的接口,只有方法定義沒有方法體的,而實(shí)現(xiàn)就是實(shí)現(xiàn)了接口的類,必須去實(shí)現(xiàn)具體的接口方法。(類和接口)

注意到上述六個(gè)圖示的連接線是不同的,這個(gè)也是要關(guān)注的內(nèi)容,除了定義之外,要能看圖就知道當(dāng)前的類圖表示的是哪種關(guān)系。

總結(jié)

今天的內(nèi)容,如果沒猜錯(cuò)的話,應(yīng)該是整個(gè)系列的文章教程中圖片最多的,而且也是記憶量最大的。UML 14 個(gè)圖的概念含義,其中重點(diǎn)的幾個(gè)圖形;用例圖的關(guān)系的含義及圖形表示;類圖的六種關(guān)系的含義及連接線的表示。這三大塊的內(nèi)容,說實(shí)話,即使你在大學(xué)的時(shí)候?qū)W過軟件工程,如果上班以后沒有接觸過的話,那估計(jì)用不了兩三年也能忘得差不多了。在文章開頭也說過,這一篇也是整篇都是重點(diǎn)內(nèi)容,是需要我們深入學(xué)習(xí)理解并記憶的。

關(guān)于 UML 相關(guān)的內(nèi)容可以通過下方參考鏈接中的內(nèi)容繼續(xù)去深入地學(xué)習(xí)。就像之前網(wǎng)絡(luò)中的 TCP/IP 之類的知識(shí)點(diǎn)一樣,UML 以及 面向?qū)ο蠓治?隨隨便便都是可以寫一本書的,而我們學(xué)習(xí)的內(nèi)容,其實(shí)都只是皮毛,或者說是它們最淺顯的核心知識(shí)點(diǎn)而已。沒別的,硬記下來吧,而且這部分知識(shí)對各位不管是做開發(fā)的小伙伴,還是期望和開發(fā)人員溝通的好基友們,都是非常有用的。

參考資料:

UML實(shí)踐詳細(xì)經(jīng)典教程----用例圖、順序圖、狀態(tài)圖、類圖、包圖、協(xié)作圖:http://www./oobject/201609092.asp

UML圖中類之間的關(guān)系:依賴,泛化,關(guān)聯(lián),聚合,組合,實(shí)現(xiàn):http://www./oobject/201409232.asp

UML用例圖之泛化(generalization)、擴(kuò)展(extend)和包含(include)關(guān)系:http://www./oobject/201104211.asp

《信息系統(tǒng)項(xiàng)目管理師教程》

《某機(jī)構(gòu)培訓(xùn)資料》

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多