UML建模与软件工程
生活随笔
收集整理的這篇文章主要介紹了
UML建模与软件工程
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
| 前言 |
| 正文 |
? ? 舉個(gè)簡(jiǎn)單例子,如果我想給自己的小寵物狗蓋個(gè)窩,開始的時(shí)候我手頭上有一堆木材、釘子、錘子、木鋸、尺子等,在開工之前稍微計(jì)劃一下,用半天或者一天的時(shí)間就可以完成。只要能容得下小寵物狗,能遮風(fēng)擋雨,就算不美觀、差一點(diǎn)也是可以的。 ? ? 如果建筑師想建一座房子,他在打好地基之前就需要好好規(guī)劃一下。要根據(jù)房屋所需者的要求,建筑師先要為將要建造的房子設(shè)計(jì)一張草圖或者幾張房屋建設(shè)的藍(lán)圖,要考慮各個(gè)房間的用途以及照明取暖設(shè)備的布局,供所需者參考。然后在準(zhǔn)備材料,請(qǐng)工人建房子。? ? 如果房地產(chǎn)開發(fā)商想要開發(fā)一個(gè)新樓盤,在正式動(dòng)工之前,他需要對(duì)這個(gè)項(xiàng)目有一個(gè)合理的、詳細(xì)的規(guī)劃。有預(yù)算、有風(fēng)險(xiǎn)評(píng)估等,更是少不了該樓盤的圖紙、模型圖等。
? ? 我們的軟件系統(tǒng)開發(fā),就類似于以上不同等級(jí)的蓋房子一樣。如果一個(gè)軟件開發(fā)團(tuán)隊(duì)像建造狗窩一樣進(jìn)行軟件開發(fā),想要開發(fā)出高質(zhì)量的軟件通常情況下會(huì)是失敗的。如果像建房子或者開發(fā)新樓盤一樣開發(fā)軟件,問題就不再是開始動(dòng)工、寫代碼了,而是怎樣正確動(dòng)工、怎樣正確寫代碼和怎樣減少代碼量了。這樣高質(zhì)量軟件的開發(fā)就像建造房子、開發(fā)樓盤一樣,變成了一個(gè)有結(jié)構(gòu)化、有過程化和與工具相結(jié)合的問題了。
? ? 我們?cè)谲浖_發(fā)過程中,使用UML建模就相當(dāng)于是給房子畫藍(lán)圖、給新樓盤設(shè)計(jì)模型圖。軟件工程思想將軟件開發(fā)過程劃分了不同的階段,每個(gè)階段的文檔也是給不同的人員看的。文檔與UML圖是軟件開發(fā)過程的靈魂、是一個(gè)良好的軟件開發(fā)團(tuán)隊(duì)中不可缺少的一部分。接下來具體說說它們之間的關(guān)聯(lián)。
UML與軟件工程的結(jié)合
前面小編學(xué)習(xí)了軟件工程,也總結(jié)了一些相應(yīng)的博客;現(xiàn)在學(xué)習(xí)了UML建模。那么這兩者是怎樣結(jié)合在一起的呢?請(qǐng)看下面的一張圖:
一、項(xiàng)目開始階段
這個(gè)階段相當(dāng)于軟件工程中的可行性研究,主要任務(wù)是通過與用戶的溝通,以確認(rèn)待開發(fā)系統(tǒng)“要做什么”,并進(jìn)行可行性研究,簡(jiǎn)單來說就是從企業(yè)的角度出發(fā)研究這個(gè)項(xiàng)目是否能做、是否能盈利,如果可以盈利就去做。
1.本階段的重點(diǎn):搞清項(xiàng)目的范圍、必要的業(yè)務(wù)流程、項(xiàng)目的技術(shù)限制
2.項(xiàng)目的成功關(guān)鍵因素:要充分了解利益相關(guān)方對(duì)于整體項(xiàng)目成功與否最關(guān)切的問題是什么,并且評(píng)估問題和項(xiàng)目成敗的風(fēng)險(xiǎn)是否相關(guān)。
這些方面在一開始就決定了此項(xiàng)目是否會(huì)成功,要不要進(jìn)行這個(gè)項(xiàng)目。本階段結(jié)束之后,如果通過可行性研究分析,那么便進(jìn)入下一個(gè)階段——需求分析。
二、需求分析階段
本階段主要是分析人員跟客戶溝通,進(jìn)行需求的收集和分析,然后形成需求規(guī)格說明書之類的文檔,交由設(shè)計(jì)人員進(jìn)行后續(xù)的系統(tǒng)設(shè)計(jì)工作。UML中的用例圖正是用于需求收集和表達(dá)的有力工具,但是如何找出用例并非易事,這是因?yàn)閺挠脩裟抢锸占瘉淼男畔⒑芸赡苁橇闵⒌摹]有系統(tǒng)性的,要直接從中找出正確的用例非常困難。因此在分析用例之前,可以先對(duì)企業(yè)級(jí)的業(yè)務(wù)流程進(jìn)行規(guī)劃和設(shè)計(jì),抓住企業(yè)的本質(zhì)工作流,為后續(xù)進(jìn)行詳細(xì)的需求收集和用例分析做好準(zhǔn)備。這就會(huì)引出UML中另一個(gè)重要的圖—活動(dòng)圖,在本階段的活動(dòng)圖是服務(wù)于用例圖的。
要想進(jìn)行業(yè)務(wù)流程設(shè)計(jì),提到流程一定不能忘了活動(dòng)圖。活動(dòng)圖最適合用來描述企業(yè)的本質(zhì)工作流。活動(dòng)圖的應(yīng)用:
1.項(xiàng)目起始階段,需求分析人員可以使用活動(dòng)圖,針對(duì)與項(xiàng)目相關(guān)的企業(yè)活動(dòng),與領(lǐng)域?qū)<乙黄鹪O(shè)計(jì)流程。
2.項(xiàng)目上線階段,可以用利用起始階段的活動(dòng)圖作為集成測(cè)試的重要參考依據(jù)
3.項(xiàng)目維護(hù)階段,企業(yè)管理人員可以通過活動(dòng)圖了解企業(yè)現(xiàn)行的流程以及未來可以改善的方向。
三、系統(tǒng)設(shè)計(jì)階段
前一階段主要是使用用例圖,后續(xù)的設(shè)計(jì)和開發(fā)階段將圍繞用例展開。系統(tǒng)設(shè)計(jì)就階段的主要任務(wù)就是實(shí)現(xiàn)用例。
1. 系統(tǒng)的設(shè)計(jì)分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)即總體設(shè)計(jì),這個(gè)階段是建立系統(tǒng)整體模型和架構(gòu)的階段,需要抽象整個(gè)系統(tǒng)的結(jié)構(gòu),建立類模型就出現(xiàn)了,用類模型來模擬真實(shí)的系統(tǒng)關(guān)系模型,解決功能需求的問題。類圖的主要目的是在進(jìn)行軟件開發(fā)前,先對(duì)軟件所需面對(duì)問題領(lǐng)域的本質(zhì)作一個(gè)通盤性的了解,但類圖在軟件設(shè)計(jì)之初并不完全正確,必須通過后續(xù)的檢查才能夠逐漸趨近于真實(shí)世界的領(lǐng)域模型。類圖形成之后,對(duì)象圖也會(huì)隨之而來,復(fù)雜的系統(tǒng)中為了保證類圖的正確性可以用對(duì)象圖來解釋類圖的設(shè)計(jì),因?yàn)轭愂菍?duì)象的抽象和組合,在面向?qū)ο蟮木幊淘O(shè)計(jì)中,我們所有的編碼都是面向?qū)ο蟮摹?br /> 2. 類圖和對(duì)象圖都屬于靜態(tài)結(jié)構(gòu)圖,整個(gè)系統(tǒng)的靜態(tài)結(jié)構(gòu)呈現(xiàn)出來之后,這個(gè)框架已經(jīng)有了,相當(dāng)于有了軀體,這個(gè)時(shí)候我們需要給他注入血液讓它動(dòng)起來,所以這個(gè)時(shí)候需要交互圖和行為圖來描述整個(gè)系統(tǒng)的動(dòng)態(tài)模型,其中行為圖包括活動(dòng)圖和狀態(tài)圖,交互圖包括時(shí)序圖和協(xié)作圖。
3. 接下來到了詳細(xì)設(shè)計(jì),本階段用到最多的是類圖和包圖,會(huì)包含很多的類,必須對(duì)這些類進(jìn)行分類,放置在不同的命名空間中,利用命名空間之間的關(guān)系圖,來限制住不同分類對(duì)象之間的訪問,這就是“包圖”的使用場(chǎng)景。
四、實(shí)現(xiàn)階段
有了前面的概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)作為鋪墊,到系統(tǒng)實(shí)現(xiàn)階段就變得很容易了。實(shí)現(xiàn)階段的編碼依據(jù)就需要用到上一階段的系統(tǒng)設(shè)計(jì)模型,包括靜態(tài)和動(dòng)態(tài)。行為圖和交互圖成為了主要的編碼依據(jù),因?yàn)樗鼈儗?duì)系統(tǒng)實(shí)現(xiàn)有較強(qiáng)的邏輯性,具體代碼映射最強(qiáng)的就是對(duì)象圖,它在畫圖軟件中可以直接生成代碼。
五、測(cè)試階段
單元測(cè)試:使用類圖和類的規(guī)格說明書
集成測(cè)試:使用類圖、包圖、構(gòu)件圖、協(xié)作圖
系統(tǒng)測(cè)試:使用用例圖來測(cè)試系統(tǒng)功能
系統(tǒng)配置:使用部署圖
| 結(jié)語 |
*感謝您的閱讀,希望對(duì)您能有所幫助*
總結(jié)
以上是生活随笔為你收集整理的UML建模与软件工程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL常用语句大全(值得收藏)
- 下一篇: [Python技巧]是时候用 defau