使用StarUML為iOS項目建模

工欲善其事必先利其器合武。

統(tǒng)一建模語言UML可以很好的幫助我們分析開發(fā)中遇到的不斷增長且日趨復(fù)雜的需求徐钠,這在其他的諸如C++或者java語言開發(fā)的復(fù)雜系統(tǒng)中早已經(jīng)得到驗證兵睛。但是在以object-c作為主導(dǎo)開發(fā)語言的ios應(yīng)用開發(fā)中辆影,使用者卻并不多見疾宏。
究其原因昭卓,大部分的UML工具愤钾,并未做到對OSX的支持瘟滨,如Rational Rose;另外一些支持OSX的UML工具能颁,也僅僅支持UML的一個子集杂瘸,如DiagrammixLite僅僅支持類圖。
StarUML是目前我嘗試過的眾多mac版建模工具中不錯的一個伙菊。

一 败玉、綜述

StarUML是一個開源的統(tǒng)一建模語言(UML)工具。是一種創(chuàng)建類圖镜硕,并能夠自動生成對應(yīng)代碼的工具(當(dāng)然目前暫時不支持object-c代碼的生成)运翼。
盡管StarUML暫時還不支持oc代碼的生成,但是在比較復(fù)雜的應(yīng)用開發(fā)中兴枯,借由其引入UML進行需求分析血淌、設(shè)計分析、文檔輸出念恍,確實能為我們的開發(fā)工作提供助力六剥。
下面我就主要來梳理如何在應(yīng)用開發(fā)中引入StarUML晚顷。

二 峰伙、安裝

首先,我們必須先安裝將要使用的軟件该默。
StarUML 瞳氓,是一個開放源碼軟件, 遵循GPL協(xié)議許可(GNU公共許可證) 栓袖,并免費提供下載匣摘。
因此,只需要到官網(wǎng)下載對應(yīng)的dmg文件安裝即可裹刮,下載鏈接如下:
http://staruml.io/download

三音榜、創(chuàng)建工程

安裝后,打開應(yīng)用便可以開始建模工作捧弃。
StarUML啟動后的界面如下圖所示:


StarUML啟動后的界面

這只是個單純的類圖赠叼,對于從零起步的應(yīng)用,一開始肯定無法具體到類圖的層面违霞。所以建議新建一個項目嘴办,在進行了用例圖,包圖等分析后买鸽,再做類圖涧郊。
選擇File->New From Template->UML Conventinal便可創(chuàng)建一個比較通用的工程模型。


創(chuàng)建工程

建好的工程如下圖所示:
建好的工程

這個工程包含了Use Case Model眼五、Analysis Model妆艘、Design Model彤灶、Implementation Model、Deployment Model以及UMLStandardProfile批旺。其中UMLStandardProfile是提供給我們使用的屬性集枢希,可以不用關(guān)注,其他的都是要輔助我們分析的工具朱沃。

默認的工程名為Untitled苞轿,可以通過選中工程,編輯Properties中的name項逗物,來修改工程名搬卒。

四 、用例圖

用例圖主要用來描述“用戶翎卓、需求契邀、系統(tǒng)功能單元”之間的關(guān)系。它展示了一個外部用戶能夠觀察到的系統(tǒng)功能模型圖失暴。幫助開發(fā)團隊以一種可視化的方式理解系統(tǒng)的功能需求坯门。
用例圖所包含參與者(Actor)、用例(Use Case)逗扒、子系統(tǒng)(Subsystem)古戴、關(guān)系。
用例圖中涉及的關(guān)系有:關(guān)聯(lián)矩肩、泛化现恼、包含、擴展黍檩。如下表所示:
一個簡單的闡述上面各種角色與關(guān)系的用例圖如下圖所示:


用例圖

五 叉袍、類圖

在UML類圖中,常見的有以下幾種關(guān)系: 泛化(Generalization), 實現(xiàn)(Realization)刽酱,關(guān)聯(lián)(Association)喳逛,聚合(Aggregation),組合(Composition)棵里,依賴(Dependency)

  1. 泛化(Generalization):是一種繼承關(guān)系润文,表示一般與特殊的關(guān)系,它指定了子類如何特化父類的所有特征和行為衍慎。例如:老虎是動物的一種转唉,即有老虎的特性也有動物的共性。
  2. 實現(xiàn)(Realization):是一種類與接口的關(guān)系稳捆,表示類是接口所有特征和行為的實現(xiàn).
  3. 關(guān)聯(lián)(Association):是一種擁有的關(guān)系赠法,它使一個類知道另一個類的屬性和方法,在代碼中體現(xiàn)在類和成員變量之間
  4. 聚合(Aggregation):是整體與部分的關(guān)系,且部分可以離開整體而單獨存在砖织。如車和輪胎是整體和部分的關(guān)系款侵,輪胎離開車仍然可以存在。聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種侧纯,是強的關(guān)聯(lián)關(guān)系新锈;關(guān)聯(lián)和聚合在語法上無法區(qū)分,必須考察具體的邏輯關(guān)系眶熬。
  5. 組合(Composition):是整體與部分的關(guān)系妹笆,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關(guān)系娜氏,沒有公司就不存在部門拳缠。組合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系還要強的關(guān)系贸弥,它要求普通的聚合關(guān)系中代表整體的對象負責(zé)代表部分的對象的生命周期窟坐。
  6. 依賴(Dependency):是一種使用的關(guān)系,即一個類的實現(xiàn)需要另一個類的協(xié)助绵疲,所以要盡量不使用雙向的互相依賴.

**各種關(guān)系的強弱順序:
泛化 = 實現(xiàn) > 組合 > 聚合 > 關(guān)聯(lián) > 依賴 **
下面這張類圖哲鸳,比較形象地展示了各種類圖關(guān)系:


類圖示例

六 、組件圖

組件圖是用來描述系統(tǒng)中的各組件之間的關(guān)系盔憨。組件圖主要是為系統(tǒng)架構(gòu)師對整個系統(tǒng)的解決方案的自然形成徙菠,可以通過組件圖的形式把系統(tǒng)的大體功能進行區(qū)分和設(shè)計。組件圖中涉及的元素如下:
(1)般渡、組件:我們知道組件是組件圖中最基本的組成元素懒豹,組件上面已經(jīng)講述了組件的定義芙盘。這里就不在多介紹驯用,組件圖組成的基本單位即組件。
(2)儒老、容器:可以為多個組件提供服務(wù)的管理容器蝴乔,容器中的組件相互交互。
(3)驮樊、包:可以看作一個子系統(tǒng),其實也可以看作是特殊的組件薇正。
(4)、約束:用于定義接口規(guī)范囚衔。
(5)挖腰、給組件圖中的相應(yīng)元素添加相應(yīng)注釋信息。
一般意義組件圖如下所示:


組件圖

七练湿、總結(jié)

通過以上的描述猴仑,我們已經(jīng)基本清楚,UML是如何通過組件圖把系統(tǒng)功能進行抽象和分離肥哎,再通過功能流程細分后通過類圖去構(gòu)建每個流程步驟中的每個類應(yīng)具有的個方法辽俗。達到最終細分實現(xiàn)整個工程的目的疾渣。
現(xiàn)在有了StarUML,在開發(fā)復(fù)雜ios應(yīng)用的時候,也可以按照這個步驟逐步來分解細化我們的工作啦崖飘。

希望本文的闡述榴捡,可以帶給您幫助。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末朱浴,一起剝皮案震驚了整個濱河市吊圾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌翰蠢,老刑警劉巖街夭,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異躏筏,居然都是意外死亡板丽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門趁尼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來埃碱,“玉大人,你說我怎么就攤上這事酥泞⊙獾睿” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵芝囤,是天一觀的道長似炎。 經(jīng)常有香客問我,道長悯姊,這世上最難降的妖魔是什么羡藐? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮悯许,結(jié)果婚禮上仆嗦,老公的妹妹穿的比我還像新娘。我一直安慰自己先壕,他們只是感情好瘩扼,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著垃僚,像睡著了一般集绰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谆棺,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天栽燕,我揣著相機與錄音,去河邊找鬼。 笑死纫谅,一個胖子當(dāng)著我的面吹牛炫贤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播付秕,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼兰珍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了询吴?” 一聲冷哼從身側(cè)響起掠河,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎猛计,沒想到半個月后唠摹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡奉瘤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年勾拉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盗温。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡藕赞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出卖局,到底是詐尸還是另有隱情斧蜕,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布砚偶,位于F島的核電站批销,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏染坯。R本人自食惡果不足惜均芽,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酒请。 院中可真熱鬧骡技,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至懂缕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背澄惊。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掸驱。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓肛搬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親毕贼。 傳聞我的和親對象是個殘疾皇子温赔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,734評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)鬼癣,斷路器陶贼,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 有一陣子各大媒體充滿此類報道,主題是男人體驗女性分娩之痛待秃。先是兩名荷蘭知名男主持在電視節(jié)目中親身體驗了分娩時的陣痛...
    像一棵開花的樹閱讀 2,359評論 7 7
  • 年紀大了拜秧,會開始思考和反省,在之前是從來不會考慮的東西章郁,慢慢的放在了心里枉氮;不喜歡的人或事,少了暖庄;不能理解的一些嘲恍,也...
    Joysmile閱讀 186評論 0 0
  • J神說需要更新測試版本9.0.0-SNAPSHOT為了支持AGP 3.0。 Github issue#863給出了...
    minminaya閱讀 3,742評論 1 2