天儿热了,蚊子又开始新一轮回的抽血行动。要抽血就别吭声嘛,结果还老是在我耳边嗡嗡嗡嗡,TMD真烦!搞的我一夜都没睡好。现在还在犯困涅~~~
分析一下这个问题,主角是蚊子,它有根用来抽血的针管和一双会发声的翅膀,它要做的事就是挥动那双会发声的翅膀找到血源(就是我啦)开始抽血,判断是否抽满,满了就挥动翅膀去找一个安乐窝休息一晚。哎~这可害苦了我啊,又失血又失眠。
再来设计一下它抽血过程:1,挥动翅膀→2,寻找血源→3,停止翅膀→4,拿出针管→5,插入针管→6,抽血→7,判断针管里血量,如果没满,回到6;满了,进到8→8,拔出针管→9,收好针管→10,挥动翅膀→11,寻找安乐窝。
异常:被拍死异常;血源皮后无法插入。

OOA:
蚊子的任务是抽血,需求是找一个好的血源,用例图搞定。
逐一分析用例,用活动图描述主角的活动。
初步确定蚊子具备的属性和行为,类图来表示吧。

OOD:
确定模块,我觉得应该包括翅膀子模块和针管子模块。
用状态图大致描述各子模块。
细化每个模块,用交互图来描述,我更喜欢用顺序图,总觉得协作图有点乱乱的。
最后得出详细类设计图(可能还有组件图、部署图)。

其实,OOA和OOD是两个不可分割的部分,我到现在还无法在实际的应用中把两者很好的区分开。都说OOA负责“做什么”,OOD负责“怎么做”,可是往 往我只重视了OOA,而把OOD一略而过。结果到了编码的时候才发现,模型实在是太抽象化了,和实际问题相去甚远。OOA是理想;OOD是现实,两者密不 可分。

PS:ROSE正在做其它的事,没画UML图。不过这个问题不复杂,描述一下就OK了。
posted on 2005-05-10 15:47  YuL  阅读(763)  评论(2编辑  收藏  举报