雙向工程1)
.正向工程:
根據模型框圖生成指定語言的**
步驟:需要在元件圖(
component view
)中建立乙個元件(
component
),設定好需要進行轉換的元件的資訊,
open sepcification...-->realizes -->assign
(選擇要生成**的類),最後
generate code
確定後就生成**了.2).
逆向工程產生模型:根據選擇開發應用程式的語言生成對應的程式的**。
步驟:需要在元件圖(
component view
)中建立乙個元件(
component
),設定好需要進行轉換的元件的資訊,也就是該元件的語言、所包含的檔案、檔案所在的路徑、檔案字尾等等資訊,然後
reverse engineer
就可以根據給定的資訊將**轉換成類圖.
說明:
a->b
,在箭頭方向,+表示a類有
b類的乙個物件,反之用-.聚集符號的聚集一方表示是多數,整體;若箭頭無方向,則表示是一種相互關聯關係,通常是交叉關聯,不太好的一種關聯.
用例圖use case diagram
,描述系統功能
類圖class diagram
,描述系統的靜態結構
物件圖object diagram
,描述系統在某個時刻的靜態結構
序列圖sequence diagram
,按時間順序描述系統元素間的互動
協作圖collaboration diagram
,按照時間和空間順序描述系統元素間的互動和它們之間的關係
狀態圖state diagram
,描述了系統元素的狀態條件和響應
活**activity diagram
,描述了系統元素的活動
元件圖component diagram
,描述了實現系統的元素的組織
配置圖deployment diagram
,描述了環境元素的配置,並把實現系統的元素對映到配置上
根據它們在不同架構檢視的應用,可以把
9 種圖分成:
使用者模型檢視:用例圖
結構模型檢視:類圖、物件圖
行為模型檢視:序列圖、協作圖、狀態圖、活**(動態圖)
實現模型檢視:元件圖
環境模型檢視:配置圖
需求分析階段
任務:建立使用者需求和功能模組,確定系統中的角色和使用案例。利用
rose
,生成角色,使用案例和生成用例圖
所用到的框圖:用例圖
概要設計階段
任務:通過分析
use-case diagrams
,得到所用到的類,分析這些類的屬性、操作和它們之間的關係。
所用到的框圖:
概要類圖,概要序列圖,協作圖,狀態圖,活**
詳細設計階段
任務:細化和個性
use-case
的描述 ,如類的操作和物件之間的訊息相對應,填充引數及複雜的類的設計。
所用到的框圖:詳細類圖,詳細序列圖,活**
編碼和測試階段
任務:進行軟體的開發和測試,生成元件框圖。
所用到的框圖:元件框圖
發布上線階段:
任務:根據機器裝置,網路狀況布置軟體
所用到的框圖:布置檢視
在現實世界的軟體開發中,很多人沒有形成設計的概念,而不同的人對設計又有其理解.一般而言,大家可以根據自己的需要制訂在各階段所需的圖,通常不可缺少的是需求分析的用例圖,設計時的類圖,活**(用來描述較複雜的演算法邏輯),序列圖,狀態圖(如果出現了自動機模型).
一些個人理解(歡仰拍磚):1)物件類與類圖基本類似,通常乙個類就是乙個物件,所以類又稱為物件類.物件圖基本可免.2)在
uml2.0
規定的13
種圖中,
rose
提供了9
種,沒提供的其它幾種也可由其它圖表示出來,也就是說,這些圖可以通用,只是在某些特殊場合才作詳細區分.
3 雙向鍊錶(Java)
雙向鍊錶中每個節點保留兩個引用prev和next,讓prev指向當前節點的上乙個節點,讓next指向當前節點的下乙個節點,此時的鍊錶既可以向後一次訪問每個節點,也可以依次訪問每個節點,也可以向前一次訪問每個節點。操作 查詢 即可從頭結點開始搜尋,也可以從尾節點開始搜尋,取決於被搜尋的節點是更靠近he...
Python3 雙向鍊錶
雙向鍊錶 每乙個元素都是乙個物件,每個物件有乙個關鍵字key和兩個指標 next和prev 在雙向鍊錶的實現中,使用乙個偽頭部 dummy head 和偽尾部 dummy tail 標記界限,這樣在新增節點和刪除節點的時候就不需要檢查相鄰的節點是否存在。class dlinkednode def i...
1466 雙向佇列
problem description 想想雙向鍊錶 雙向佇列的定義差不多,也就是說乙個佇列的隊尾同時也是隊首 兩頭都可以做出隊,入隊的操作。現在給你一系列的操作,請輸出最後佇列的狀態 命令格式 lin x x表示乙個整數,命令代表左邊進隊操作 rin x 表示右邊進隊操作 rout 右出佇列 lo...