最近開始一個新項目,打算使用RUP方式進行管理,同時使用EA工具進行相關的建模,所以學習一下。
EA支持全部13種 UML 2.0圖表和相關的圖表元素,包括:
結構圖:類、對象、合成元素、包、組件、布局;
行為圖:使用案例、通信、序列、交互概述、行為、狀態、時序;
擴展:分析(簡單行為)、定制(需求、變動和UI設計)。
1、創建一個新工程,file-->New Project->彈出一個對話框輸入一個工程名,選擇保存地址確定后,彈出一個對話框,選擇想要創建的類型點OK即可。
在select from : 中可以有四種選擇:all , common , simple , unified process,即全部,通用,簡單,統一過程
類型 | 對應中文名 |
Business Process | 業務流程 |
Requirements | 需求分析 |
Use Case | 用例 |
Domain Model | 領域模型 |
Class | 類圖或類設計 |
Database | 數據庫設計 |
Component | 組件 |
Deployment | 部署 |
Testing | 測試 |
Maitanance | 維護 |
Programe Management | 項目管理 |
User Interface | 用戶接口 |
上表common中的種類,可以看出,基本上包括了開發過程需要的大部分模型。
2、對於以上類型使用前的理解
要使用上面的類型,首先要明白,軟件開發過程會有那些需要進行表達出來,然后對這些要表達出來的東西選擇EA提供的類型來進行表達。
然后才是學習如何用EA的類型來正確地表達我們想要表達的信息。
於是這個問題就要涉及許多東西了:
1)為啥軟件開發不是編寫代碼這么簡單的事?要搞的這么復雜做啥?顯然不是吃多了,要把這些表達出來,是為了什么?
即,為什么要用UML來表達軟件開發中的相關信息?至於為什么選擇UML語言來表達,自個看書吧
2)EA只是一個工具,就好像,我們不一定要說話也可以表達你的想法。只是找一種最適合的方式表達出來,可以讓更多的人能理解和明白其中的含義。
了解了第一個問題后,那就要明確,要表達什么?
3) 表達要做到什么程度,不同的人認知不同,說事情,總要讓需要的人,應該要想明白的人看了能明白吧。
總體上來說就是,為什么要表達,表達什么,用什么工具,如何表達,表達的預期效果判斷。
3、有了以上想法后,一個問題產生了,軟件開發到底做些啥子?寫代碼的吧
不管怎么去說都可以,但有一點可以判斷,軟件開發的結果確實是獲取用戶的需求,然后分析設計,最后給用戶一個解決用戶需求的軟件產品。
但是更多的是提供服務,基於軟件平台,為用戶定制個性人的服務。
所以大多數軟件都會先其於一個基礎平台,然后進行二次開發,所以為其他開發團隊提供優秀文檔支持是道德高尚的表現。
變更是不可避免地,管理變更也是麻煩的,如果沒有說明,到時一團亂,小團隊,只要管理好版本控制即可,然后就是多交流,可是大團隊卻是無法實現這種面對面多交流,協作的方式必然要通過其他方式來控制 ,不然那還不亂的團了。
所以軟件開發生產的不只是具有功能的產品,還有與這個產品相關的文檔。通過這個文檔,就好像這個軟件的個人檔案一樣,可以知道它的出生是什么原因,它是如何一步一步發展到如今這個樣子,它對應用層能提供什么服務,它對二次開發人員又能提供什么支持,它的機制,它的架構,它的設計,它的每一個細節。
在產生它的過程中是如何管理它的。作為開發過程的支持,也是很重要的。
所以需要表達,表達就是讓不懂它的人懂它,需要懂它的人懂它,至於你想懂它什么,那就查看它相應的表達文檔。
要表達什么?一般都是按開發的過程來表達,即上表中提到的。
表達的方式,選擇UML,有很多地方都說了它好反正我也找不到比它好的,就用它唄,對表達的整理,增加索引即可裝定成文檔。
表達的程度,這個要看要表達的意思,只要能正確表達出來及為完美。