b96902HW 板


LINE

看到很多人都post自己整理的筆記出來,就來湊個熱鬧 本來是只想post在個版上,不過東抄西抄了很多同學的大作 所以就還是回饋一下。 也因為是post在個版上,所以很多碎碎唸的文字,排版也亂七八糟,請不要在意。XD =============================拷貝分隔線================================== 主要還是給我自己看的,所以沒注意排版 看不懂又想看的人就請發問吧XD 裡面提出來的問題也請高人指教m(_ _)m 8:Class Diagram: Foward Engineering / Reverse Engineering: given a java code, write its class diagram. example: textbook p.112 Figure 8-4 (不知道老師會不會出這個,不過有看有保佑) public abstract class EventHandler { EventHandler successor; private Integer currentEventID; private String source; public void handleRequest() {} } 圖(純示意,完整圖請看課本): ┌----------------- successor ﹀ | <<JavaTarget>> |我是實線 <<JavaTarget>> EventHandler(需為斜體) | ------> -currentEventID :Integer --- Client(需為斜體) -source: String handleRequest() :void △我是實線 | <<JavaTarget>> GUIEventHandler 9:Advanced Classes: Figure: "An Example: Advanced Classes" Textbook page 118 Figure 9-1: Advanced Classes 圖(我畫得很難懂,請參照課本): Frame -> (如果是abstract class要變斜體, 話說可以問一下斜體怎麼寫嗎XD) header: FrameHeader -> 後面是type uniqueID : Long -> 畫底線代表是static attribute ¯¯¯¯¯¯¯¯ + addMessage(m : Message) : Status -> signature # setCheckSum() - encrypt() + public # protected - private ~ package Three Levels of Visibility Java都學過囉~雖然投影片只有提到三種,但是根據課本UML應該是四種都支援的 public: 所有人都可以用 protected: 只有子孫們可以用 private: 只有自己可以用 package: 只有住同一個封包裡的人可以用 notation上面有了。 Scope 這裡的scope似乎單純就是指instance/static的差別 instance就是每個instance都有一個 static就是for all instances of the class Abstract Class 請參照我的期中考整理(爆) 反正就是指有abstract method的class囉 應該不會考太深 Multiplicity & Singleton Class 翻了一下一些人整理的筆記,好像都沒有提到Singleton Class XD 其實這出自課本p.124&p.125,投影片沒有應該是因為投影片只節錄 p.125的圖吧:3 Multiplicity就是指定這個class能有幾個instances的符號, notation就是在右上角寫你希望這個class能有幾個instantces, 如果在attribute裡面就用[]框住寫在後面就好了。 而如果只能有一個instance的class就叫做Singleton Class囉~ 詳情請見課本p.124 p.125,尤其是p.125 Figure 9-6。 Operation v.s. Method 說實話看沒有很懂所以附上原文 An operation specifies a service that can be requested from any object of the class to affect behavior. A method is an implementation of an operation. 我流的解釋是說operation是一個動作的抽象概念,而一個operation 可能可以有很多種實現方式(by overload/override/polymorphism...etc) 而其中一種實現方式就叫做method。 這樣對嗎? Template Classes: An Example Textbook p.129 Figure 9-7 不過同學們並沒有學過C++,考這個不太道德吧? 要也是用Java的generics來寫? C++ Code: template<class Item, class VType, int Buckets> class Map { public: virtual map(const Item&, const VType&); virtual Boolean isMapped(const Item&); (話說課本這裡有錯字XD) ... }; 圖(超意象化表示法,請參照p.129): Item Map VType -> 我們在一個虛線框裡,代表要用來當作 Template parameters的變數名稱 buckets : IntegerExpression + map(i : item, v : Type) + isMapped(i : item) : Boolean {query} ^ |<<bind>> <Item->Customer, VType->Order, buckets->3> | OrderMap (explicit binding) or implicit binding: Map<Item->Customer, VType->Order, buckets->3> 要作template class的instance有兩種方法,一種是implicit binding 就是直接作一個class後面加上Template parameters的對應, 另外一種是explicit binding,用<<bind>>連過去。 還有,關於上面的{query}可以參照課本p.127,operation的properties的部份 大概不會考所以這裡就不列了。 10:Advanced Relationship: Dependency: 17 stereotypes 課本只有12種,以投影片為準...... 有關於dependency的箭頭:a->b a是靠b的 且待我娓娓道來 among classes & objects: <<bind>> 指定一個template class的instance的actual parameter的值, 例子上面有了。 <<derive>> 說明A是從B算出來的,ex. Age --------> Birthdate <<derive>> <<friend>> 類似C++的friend class,A可以無視B的元素的visibility ex. Iterator ----------> CourseSchedule <<friend>> <<instanceOf>> & <<instantiate>> (投影片錯字...) instanceOf: A是B的instance instantiate: B = new A() (感謝hikaru4指正) <<instanceOf>> ex. mickey:Mouse --------------> Mouse  ̄¯¯ ̄¯¯ <<powertype>> B是A的powertype。 powertype是一種classifier, 他的instance是另外一個class(即A)的sub-class <<powertype>> <<instanceOf>> ex. 植物 <-------------- 棕樹: 植物 ^ ¯¯¯¯¯ |<<powertype>> | | |我是實線 樹△-------------------- 請自行把三角形逆時針轉90度 其中樹種和棕樹都是class 有點像是弱化版的inheritance XD <<refine>> A比B在抽象層級上更詳細 Customer <--------- Customer (at analysis) (at design) <<use>> Specifies that the semantics of the source use element depends on the semantics of the public part of the target. 好像是說如果A要完整實現,就必須要有B才行 有點類似abstract class? Order --------> LineItem <<use>> 訂單要完成,當然要告訴我lineitem囉 among packages: <<access>> & <<import>> 類似java的import,可以在這個package裡頭使用其他package的class 的simple name。關於兩者的差異,投影片舉的例子很詭異,所以我自 己舉一個例子: 假設A access 了 B,若是C access 或是 import A,C仍然沒辦法使用 B裡頭的class的simple name。但是如果A是import B,C就可以使用B裡 頭class的simple name。 <<import>> ex. Client -----------> GUI (我們是package) <<access>> <<access>> ex. 選課服務 ----------> 密碼服務 -----------> 資料庫服務 (抄來的) 一般比較常用import among use cases: <<extend>> & <<include>> 如果A extend B,A是B的行為的延伸(廢話... <<extend>> (set priority) ex. Place rush order ----------> Place order (extensions points:set priority) from text book p.233 figure 17-5 如果B include 在A裡頭,B就永遠不會單獨出現,而是當A出現的時候作為 一部分出現。 <<include>> ex. 交易 -----------> 認證 (抄來的) 其實這段看沒有非常懂._. interaction among objects: <<become>>, <<call>> and <<copy>> A become B: A和B是同一個object,只是A等等會變成B的樣子。 A call B: A的operation會叫到B的operation。 A copy B: B是A的copy。 投影片p.21下面是廢話嗎... in the context of state machines: <<send>> A send B: A的operation會送event給B organizing the elements of the system into subsystems and model: <<trace>> A trace B: 說明A來自B的樣子 <<trace>> example: Design Model ---------> Analysis Model Generalization :Mixin 有些Class是專門讓你拿來繼承用的,這些class並不會被拿來單獨使用, 而是多拿來用在multiple inheritance裡當作superclass。 Advanced Association 淦........ text book p. 142 - p. 145 Navigation 兩者之間的方向關係 我是實線 ex. User -------> Password owner User可以知道Password,Password沒辦法知道User。 Visibility 可以specify association裡的object的visibility Private: 只有association的兩端有權限 Protected: association的兩端,和對面的sub-class instances有權限 Public: 大家都看光光 注意:沒有Package。 我是實線 我是實線 ex. UserGroup----------User---------->Password +user +owner -key Qualification 對傳進來的物件作識別用的工具 ex. ┌────┐ │ ├──────┐* 0..1 │WorkDesk│jobID : int ├────ReturnedItem │ ├──────┘ └────┘ 假設每個ReturnedItem都有自己specified的jobID, 要還到正確的WorkDesk上,就可以用到Qualifier啦~ 要注意的是jobID是屬於這個association的attribute 而非ReturnedItem。 Interface Specifier 一個class可以實作好幾個interfaces,interface specifier 可以讓你指定class在當作什麼角色的時候應該使用哪個interface 用法是 角色名 : Interface名 ------- | | worker : IEmploee |* 1 | Person---- supervisor : IManager 抄來的 Composition 強化版的aggregation,和aggregation不同的是composition強調了 兩者的生命週期的關係(全體死了部份也會死)。 1 * Window ◆──── Frame Association Classes 用一個class來描述association中兩者相同的properties * 我是實線 1..* Company-------------------Person employer | employee | | Job description dateHired salary Constraints 有六種,而且課本和投影片的又不一樣 以投影片為主 {implicit} 說明兩者只有概念上的關係,而非實際上有關聯 ex. A------| △ | 我是實線 | |我是實線 | | B------C {implicit} 我還是實線 {ordered} 表示association其中一端的物件是排序好的 1{ordered}* ex. User─────>Password 假設Password是按照最近使用順序排序的(這什麼鬼例子...) {changeable} 物件間的連結可以被增加,減少,更換 {addOnly} 物件可以自行增加連結 {frozen} 一旦一個物件增加了連結,就不能再更改或刪除 {xor} 在許多associations中,只有一個對該物件是成立的 我和下面那傢伙都是實線 -------------Person ex. Acount{xor} -------------Corporation Account 同時僅能連結 Person 與 Corporation 之一, 而不能兩者同時連結,也不能兩者都沒有。 前面的8~10章就把大部分的東西都考完了... 12:Package <<import>>,<<access>> (usage) 前面講過囉。 Generalization 沒抄到這個,不過聽說要考 Package的generalization和class的非常相似,以上。 13:Instances Orphan instance (definition) 沒有和他有關的classifier的可憐孤兒instance 設計過程中如果這裡需要某個物件處理某件事情 卻還沒有想好要用哪個class,就可以先作一個 orphan instance。是過渡性的產品,最後還是會 幫他找到爸媽。 14:Object Diagram What does Object Diagram mean or represent? 一種圖表用來表示一群物件在某個時間點下的關係。 19:Interaction Diagram given a code, draw its interaction diagram from text book p.264 code: public void register() { CourseCollection courses = getSchedule(); for (int i=0;i < courses.size(); I++) courses.item(i).add(this); this.registered=true; } 圖(差太多了啦XD):畫不出來,請洽課本p.264 Orz 16:Use Case Diagram Given a problem statement, draw a use case diagram. (probably from term project) http://atlas-connect-forum.web.cern.ch/Atlas-connect-forum/SDP/sadoc_3.gif
一模一樣,謝謝。 What are the "relationships" in use case diagram? Explain how to use them. 就是<<extend>> & <<include>> & Generalization吧 懶得畫圖,請見課本p.233 Figure 17-5 20:Activity Diagrams Forking and Joining Forking:把一個flow of control分流成兩個以上 Joining:把兩個以上的flow of control匯流成一個 對嘴演講實錄(....) Prepare for speech 聲明:我們都是實線 | v ↓this is fork ----------------------- | | | v | Decompress | | | v | ---------- <- this is fork Gesture | | | v v | Synch mouth Stream audio | | | | v v | ---------- <- this is join | | v v ----------------------- <- this is join | v Cleanup Swimlanes swimlane顧名思義就是泳道的意思,可以把一個activity diagrams 裡的activity states分到一道一道的泳道裡,達成分組的作用。 圖太難畫就不附了,在課本p.275 Figure 20-7或是投影片p.13 Object Flow objects如果出現在flow of control裡頭就是object flow。 圖:p.277 Figure 20-8 22:State Machine Need Statechart (2 principles) 使用State Machine的時機與兩大原則: text book p.300 and ppt p.9 1.當物件必須回應訊號,而這些訊號是一些訊號是 instances間溝通用的非同步訊息時。(什麼跟什麼啊XD) ex. 一隻手機必須要回應很多不同的隨機來電, 和使用者按下按鍵的事件之類的。 例子好像講得很明白,就不多作說明了。 2.當物件現在的行為必須根據過去的行為動作的時候。 ex. 假設有個空對空響尾蛇飛彈要發射,它必須針對現在的一些狀態 行動。比如說如果戰機還沒起飛,當然就不能發射,不然就自爆 了。又或者戰機還沒有鎖定任何敵機,直接發射當然就不太好。 An Example: ATM Machine ppt. p.20 or text book p.310 Figure 22-5 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.172.192 ※ 編輯: jimmycool 來自: 118.169.172.192 (06/17 10:24)
1F:推 Thewhat:超人性化講解! 06/17 10:27
2F:推 curtisyyc:人性化講解! 06/17 10:29
※ 編輯: jimmycool 來自: 118.169.172.192 (06/17 10:35)
3F:推 g3620kimo:救了我的stereotype! 06/17 10:43
4F:推 JingXD:推 06/17 11:05
5F:→ jimmycool:修正powertype部份example的嚴重錯誤orz 06/17 11:06
※ 編輯: jimmycool 來自: 118.169.172.192 (06/17 11:10) ※ 編輯: jimmycool 來自: 118.169.172.192 (06/17 11:32)
6F:推 hikaru4:instantiate 好像是 B create A 就是 有 new A() 吧!? 06/17 11:59
7F:→ jimmycool:喔喔原來如此! 06/17 12:03
※ 編輯: jimmycool 來自: 118.169.172.192 (06/17 12:04)
8F:推 Devarena:有下有推 06/17 12:10
9F:→ olala7846:沒下就給->吧 06/17 12:14
10F:推 folkterry:強者強者!! 06/17 12:18
11F:→ david00129:哇!!!!太棒了~~~~ 06/17 12:42
※ 編輯: jimmycool 來自: 118.169.172.192 (06/17 13:25)
12F:→ jimmycool:再次修正powertype的部份,觀念好像錯很大... 06/17 13:25
13F:推 bevis1989:讀起來有夠親切XD 06/17 13:26
※ 編輯: jimmycool 來自: 118.169.172.192 (06/17 13:31)
14F:推 s007150628:謝囉~ 06/17 13:50
15F:推 imprazaguy:做的太好了 06/17 13:56
16F:推 louner:用完有推 06/17 14:25
17F:推 woptspencil:推懋哥 06/17 14:36
18F:推 strangechu:privated -> private ? 06/17 14:39
※ 編輯: jimmycool 來自: 118.169.172.192 (06/17 14:40)
19F:→ jimmycool:感謝修正m(_ _)m 06/17 14:40
20F:推 zarcen:很好很強大 06/17 15:41
21F:推 like9515:有看有推 06/17 15:44
22F:推 iamwjj:這已經是好到不能用好來形容了^^ 06/17 16:18
23F:推 askus:有看有推! 06/17 16:20
24F:推 n7711245566:有看有推 06/17 16:32
25F:→ champavalon:感恩推~ 06/17 16:38
26F:推 brucechen2:這不推不行 06/17 16:56
27F:推 jyt0532:最後關頭推 06/17 17:26
28F:推 hikaru4:還在掙扎推 06/17 17:46
29F:推 Bingojkt:考完淚推T_T 06/17 20:01
30F:推 s007150628:球場有推推^__^ 06/17 20:51
31F:→ jimmycool:還是有miss一些,唉 06/17 20:53







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP