Together与Visual.Studio.NET的结合使用(二)
下面主要是用來建立靜態類圖。打開缺省的圖( ),在工具箱內選擇Class( ),然后在圖中建立一個類“Store”。選擇該對象,按F4打開屬性窗口,點擊Stereotype右側的按鈕選擇原型為“Place”(地點,表明錄 像店的性質),重復以上的步驟,將Clerk置成“Role”(角色),將“Item”置成“Description”(說明)。 ????另外,可以直接在圖上擊右鍵,選擇Add->Class,或者在Model視圖中,右擊根結點,然后選擇Add->Class。 ????靜態類圖建立完畢,如圖十五: 圖十五:初始靜態類圖 ????為一個Class創建成員:右擊Store,并選擇Add->Field,添加一個新的屬性,并對其 賦值:address:string。點擊F4鍵,可以彈出屬性編輯窗口,點擊其中的Visibility域,并從下拉列表中選擇Private屬性。缺 省的情況下,Together VS.NET會創建public int域及public void方法。 ????為Store添加方法,右擊Store類并選擇Add->Method,使用內嵌的編輯器為方法命名為:findByTitle。關于所填寫的各個類的屬性及方法可參考表一。最終的Store如圖十六所示:
????可以通過Ctrl+W鍵來添加一個屬性,Ctrl+M來添加一個方法,并利用F2鍵來進行命名或重命名工作。 ????選擇storeNumber屬性,在屬性窗口中的alias里面可以設定其別名,如:“Store Number”,如圖十七。當然,你也可完全可以設定一個中文的別名,以利于交流。點擊右鍵選擇Goto Definition可以查看Together生成的代碼(如圖十八) 圖十八:Together自動生成的代碼及別名 ????創建關系與連接。在該實例中存在兩個關系:一是Clerk關聯到Store,一是Store包括若干個 Items。Clerk與Store之間的關系類似于“客戶”與“供應商”之間的關系,而對于Store和Items則明顯的是一個聚合關系 (Aggragation)。點擊Association Link按鈕,而后點擊Store并拖至Clerk,此行為會為所謂的客戶與供應商之間建立關系(圖十九): 圖十九:在Store與Clerk之間建立關系 ????在Store與Item之間另一新的關聯,使用屬性窗口來定義連接的類型,從Type屬性中定義Aggregation屬性。 ????創建超級鏈接。Video Store有一個方法findByKeywords用以查找錄像帶。通過使用超級鏈接,可以快速確定圖與元素的關系類型并將其在模型中記錄下來,以用于其 他的用例中。打開用例圖,右擊“Find Item by Keywords”用例,選擇Hyperliks->Edit,會出現一個對話框(圖二十),從“Available Content”面板中選擇Video Store->Store->findByKeywords,然后點擊Add按鈕將所選元素加入到右側面板,點擊OK,此時,新建立的用例超 級鏈接會以藍色字體顯示(圖二十一)。 圖二十:超級鏈接對話框 圖二十一:建立完成超級鏈接之后的用例圖 ????創建序列圖。序列圖用于設計對象模型的動態效果。在Model視圖,右擊Video Store根節點,Add->Other diagram,在彈出的對話框中選擇“Sequence Diagram”,重命名為“Rent Movie Sqquence”,并點擊OK。從ToolBox中選擇“UML Interaction Diagram”,點擊Actor按鈕,放置到圖中,重命名為“Clerk”,點擊對象按鈕,并點擊Actor時間線的右側,將該對象重命名為 “theStore”。點擊工具盒中的“Message”按鈕,增加一個消息連接,并從Actor的時間線拖動到theStore的時間線,完成該序列圖 (圖二十二): 圖二十二:序列圖 ????右擊theStore對象,選擇Choose class->Store,最終的序列圖會顯示出來,注意此時的對象名稱已經關聯到對應的類中了。點擊消息鏈,選擇Choose method->findByTitle():void,將消息鏈與一個方法聯系起來(圖二十三): 圖二十三:消息鏈與方法進行關聯 ????在序列圖與協作圖之間進行轉換。在序列圖上右擊,選擇“Show as Collaboration”菜單命令,打開協作圖,此時,在工具箱內會顯示與協作圖相關的作圖工具。在協作圖上右擊鼠標,則可以通過上下文菜單轉換到序 列圖中。 | ||||||||||||||||||||||||||||||||||||
4、Together的擴展應用之一:對模式的支持 | ||||||||||||||||||||||||||||||||||||
| ????Together支持常用的模式,像“四人幫”(這個詞也許只有咱們中國的程序才可以想得出來,呵呵)提出的那個著名的23種設計模式。設計人員可以使用模式來創建或修改已存在的連接和類。 ????在下面的例子中,假設Item需要一個動態系統,那么一個Item被返回后,計數器被更新及其他系統得到通知。應用Observer(觀察模式)到Item類,可以實現這些功能。 ????右擊Video Store類圖,選擇“Apply Pattern”,一個模式向導對話框會打開(圖二十四): 圖二十四:模式向導對話框 ????從左邊的Patterns面板,選擇Gof-> Behavioral->Observer模式,在右邊的Pattern屬性中,更改Class Subject名稱為Item,接受缺省的屬性設置,點擊OK,則類圖更改為圖二十五的樣子: 圖二十五:應用觀察員模式之后的類圖 ????Item被更新,包括通知消息及觀察方法(attach和detach),其他所需的類及接口也被創建。 Together以橢圓形來組織該模式及其他的視覺元素,列出了模式的參與者及連接,可以通過展開橢圓形Observer元素中的 Participants(參與者)來觀察參與者的信息。右擊Observer元素,選擇Add可以觀察特殊模式的有效動作。 | ||||||||||||||||||||||||||||||||||||
5、Together的擴展應用之二:生成文檔 | ||||||||||||||||||||||||||||||||||||
| ????Together可為項目生成標準的HTML文檔。在Model視圖中,右擊項目的根節點,選擇Generate Documentation,找開一個對話框(圖二十六): 圖二十六:文檔生成對話框 ????缺省的情況下,文檔生成向導會為整個項目產生文檔,可以通過選擇不同的范圍選項來限制文檔的生成范圍。包括 以下幾項:Current namespace:生成的文檔輸出僅包括Model視圖中所選擇的名字空間;Current namespace with descendent namespaces:生成的文檔輸入包括Model視圖中所選名字空間及其后代名字空間;Current diagram:生成的文檔輸出為圖表視圖中當前的焦點視圖;All:生成的文檔輸出覆蓋全部的項目。 ????選擇項包括:Output folder:生成的文檔輸出的目標路徑;Include diagrams:生成的文檔輸出中是否包括圖像;Include navigation tree:生成的文檔輸出中是否包括導航樹;Launch HTML browser:是否在Visaul Studio .NET的WEB瀏覽器中裝入文檔。如果不選擇此項的話,可以在生成文檔的目錄中打開一個Index.html文件來瀏覽生成的輸出文檔。生成的文檔示例 (圖二十七): 圖二十七:生成的文檔輸出示例 ????可以通過左下角的導航樹,瀏覽你所有的工作。應該說,這個文檔的 輸出是相當完備的,如果在設計的時候做的比較周全的話,隨著設計的完成,一份系統的文檔已然生成,省卻了開發人員的不少氣力,是功能最強及 Together中最具特色的部分之一。 | ||||||||||||||||||||||||||||||||||||
6、Together的擴展應用之三:導入、導出XMI項目文件 | ||||||||||||||||||||||||||||||||||||
| ????導出XML項目文件。在Model視圖中,右擊Video Store項目,選擇Export Project to XMI命令,會彈出一個XMI導出對話框(圖二十八): 圖二十八:以XMI格式導出項目 ????可以設定導出XMI文件的類型及路徑。缺省的情況下是“..<project_directory>\out\xmi\Video Store.xmi”。導入的情況與些類似,不再贅述。 | ||||||||||||||||||||||||||||||||||||
| ????下一篇文章將對Together的一些設置選項做一綜述,時間已經很晚了(已經凌晨一點多了),先這樣吧。不當之處,請大家海涵。 |
轉載于:https://www.cnblogs.com/wujm/archive/2005/05/10/152712.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Together与Visual.Studio.NET的结合使用(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio .NET 2
- 下一篇: 终于把网站最后一个模块了结了