用uml建模時,對軟體開發過程是有要求的,必須是用例驅動,以架構為中心,迭代和遞增的開發,如果軟體開發組織的軟體開發過程不能滿足這三點要求,那麼uml的使用效果就會大打折扣,下面詳細論述:
一、 用例驅動
用例驅動意味著為系統定義的用例是整個開發過程的基礎。
用例在多個核心工作流程中都發揮了作用。
1、 用例的概念可用來表示業務流程,我們稱這種用例的變體為「業務用例」。
2、 用例模型是需求工作流程的輸出結果。在這一早期流程中,需要通過用例來建立使用者希望系統完成的任務的模型。這樣,用例構成了乙個重要的基本概念,客戶和系統開發人員都必須認可這個概念。
3、 在分析設計中,用例是在設計模型中實現的。您需要生成用例實現來說明在設計模型中如何通過物件的互動來執行用例。此模型根據設計物件來說明所實施系統的各個組成部分,以及這些部分如何通過相互作用來執行用例。
4、 在實施階段,設計模型就是實施的規約。由於用例是設計模型的基礎,所以用例需通過設計類來實施。
5、 在測試期間,用例是確定測試用例和測試過程的基礎。也就是說,通過執行每乙個用例來核實系統。
6、 在專案管理過程中,用例被用來作為計畫迭代式開發的基礎。
7、 在部署工作流程中,它們構成使用者手冊闡述內容的基礎。用例也可用來確定產品構件如何排列組合。例如,客戶可通過將用例進行某種組合來配置乙個系統。
二、 以架構為中心
構架之所以重要,原因有以下幾點:
1、 它使您可對專案進行並保持理智的控制,應付專案中複雜多變的情況,同時保持系統的完整性。
乙個複雜的系統不僅僅是其各組成部分之和,也不光是一連串沒有關聯關係的、很小的技巧決定。它必須依靠某種連貫統一的結構來有條理地組織那些部分,並且提供準確的規則,使系統發展過程中,其複雜程度不會膨脹,超越人類的理解力。
通過建立用於討論設計問題的一套公共參考材料和乙個公共詞彙表,構架提供了增進交流和理解的手段。
2、 它是大規模復用的有效基礎。
通過明確闡述它們之間的主要構件和關鍵介面,構架為您決定重複使用提供依據,包括內部復用(確定公用的部分)和外部復用(併入現成的構件)。它還允許更大規模上的復用:構架本身的復用,用於處理同一領域中的不同功能。
3、 構架還可作為專案管理的基礎。
專案計畫和人員配備是根據主要構件的類別組織進行的。基本的結構決策是由乙個人員組成相對固定的構架小組作出的,他們不是分散的。而開發活動則被分配給若干個小組,每個小組負責開發系統的乙個或若干個部分。
三、 迭代和遞增的開發
迭代式方法一般要優於線性或瀑布式方法,其原因很多。
1、 允許變更需求。需求有時會變化,這常常給專案帶來麻煩,它們會導致延期交付、工期延誤、客戶不滿意、開發人員受挫。
2、 逐步整合元素。在迭代式方法中,整合可以說是連續不斷的。過去在專案結束時要佔到整個專案工作量的那段較長的、不確定的且棘手的時期,現在分散到六至九個整合部分中,每一部分要整合的元素都比過去少得多。
3、 及早降低風險。因為風險一般只有在整合階段才能發現或得到處理。在初期迭代時,檢查所有的核心工作流程,對專案使用的工具、市售軟體及人員技能等許多方面進行磨合。過去認定的風險可能被證明不再是風險,而又可能出現一批新的未曾懷疑過的風險。
4、 有助於組織學習和提高。團隊成員有機會在整個生命週期中邊做邊學,各顯其能。測試員可以早一些開始測試,技術文件編寫員可及早開始編寫,其他人也是如此。如果是非迭代式開發,這些人在初期只能制定計畫或培訓技能,空等著開始他們的工作。培訓需求等也可在評估複審中盡早提出。
5、 提高復用性。因為分部分設計或實施比起預先確定所有共性更容易確定公用部分。確定和開發可重複使用的部分並非易事。早期迭代中的設計複審可使構架設計師確定毋庸置疑的潛在復用部分,並在以後的迭代中開發和完善這些公用**。
6、 生成效能更強壯的產品。因為在多次迭代中您總是不斷地糾正錯誤。在產品脫離先啟階段後的初期迭代中仍然可以發現缺陷。效能上的瓶頸可以盡早發現並處理,而不象在交付前夕,此時已來不及處理。
7、 容許產品進行戰術改變。例如同現有的同類產品競爭。可以決定採用搶先競爭對手一步的方法,提前發布乙個功能簡化的產品,或者採用其他廠商的已有技術。
8、 迭代流程自身可在進行過程中得到改進和精煉。一次迭代結束時的評估不僅要從產品和進度的角度來考察專案的情況,而且還要分析組織和流程本身有什麼待改進之處,以便在下次迭代中更好地完成任務。
通常在軟體開發過程中,迭代在數量、持續時間和目標上都是按計畫進行的。參與者的任務和職責都已確定好。對進度進行的目標評測都將記錄備查。從一次迭代到下一次迭代確實會存在返工現象,但返工也是嚴格按規定進行的。
四、 使用不當的問題
很多企業員工在使用uml的過程中,只是進行了領域建模,沒有進行用例建模,這樣是不能最大可能地發揮uml的優勢的,因為該組織的軟體開發過程不是用例驅動的。
如果軟體開發組織的軟體開發過程不能滿足上述三點要求,那麼uml的使用效果就會大打折扣。也會產生一些問題,有些組織在使用uml之後,發現前期花很長時間設計的模型到了專案的中後期和真正的開發成果相去甚遠,以至於全都束之高閣了,如果產生這樣的問題,就應該仔細研究一下組織的軟體開發過程,是否滿足上述三點要求,如果軟體開發過程不滿足迭代的開發,模型沒有隨著進度改進,這種問題就很容易出現。
uml2.0和mda(模型驅動架構)提出了一些解決開發周期前期和後續的模型不一致問題的方法,就是通過模型的轉換來完成模型的自動變更,而不是對各個抽象層次的模型全部進行修改,但mda為大部分人所接受還需要些時日。
五、 總結
綜上所述,uml雖然是軟體建模的有利**,也要遵循一定的規則來使用,否則就不能很好地發揮它的價值,也會事倍功半。
理解uml使用的前提,並認真按照這些方法進行實施,相信會有理想的效果。
六、 參考資料
[1]. rational unified process documents
用UML建模需要注意的問題
用 uml建模時,對軟體開發過程是有要求的,必須是用例驅動,以架構為中心,迭代和遞增的開發,如果軟體開發組織的軟體開發過程不能滿足這三點要求,那麼 uml的使用效果就會大打折扣,下面詳細論述 一 用例驅動 用例驅動意味著為系統定義的用例是整個開發過程的基礎。用例在多個核心工作流程中都發揮了作用。1 ...
需要注意的問題
決策樹id3和c4.5的差別?各自優點?boost演算法 cart 回歸樹用平方誤差最小化準則,分類樹用基尼指數最小化準則 gbdt與隨機森林演算法的原理以及區別。優化演算法中常遇到的kkt條件?作用是?最近鄰演算法knn 分類與回歸 l1和l2函式?l1和l2正則項的比較,如何解決 l1 求導困難...
Qml settings 需要注意的問題
qml 中使用 settings 可以儲存一些簡單的資訊,例如使用者名稱,密碼,視窗位置,大小等,沒有sqlite那麼麻煩,簡單易用哦 環境 qt5.8 for android windows 7 main.qml import qtquick 2.7import qtquick.window 2....