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