天儿热了,蚊子又开始新一轮回的抽血行动。要抽血就别吭声嘛,结果还老是在我耳边嗡嗡嗡嗡,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了。

从“做什么”到“怎么做”,说说一只蚊子相关推荐

  1. 央行发布论文:区块链能做什么,不能做什么?

    来源:悟空智能科 央行发布工作论文<区块链能做什么.不能做什么?>,论文称,不要夸大或迷信区块链的功能.区块链应用要立足实际情况.目前区块链投融资领域泡沫明显. 论文从经济学角度研究了区块 ...

  2. 西文是指什么_儒家君子文化:何为君子?为什么要做君子,而不做小人?

    引导语:中华传统美德是中华文化的精髓,君子文化是中华传统美德的集中体现.所以研究君子文化就是对中华传统美德的弘扬,就是对中华传统文化精髓的挖掘,就是对中华民族深沉的精神追求.根本的精神基因.独特的精神 ...

  3. 回填用土好还是砂石料好_卫生间做回填好还是做架空好?这两者有哪些优缺点...

    在装修卫生间的时候很多人都遇到了回填跟架空的情况,但不确定自己是用哪种方式装修才能起到好的效果,而卫生间做回填好还是做架空好?如果不清楚两者的内容就盲目进行装饰,实际效果差异也比较大,这两者有哪些优缺 ...

  4. 产品方法论之:菜鸟做加法,高手做减法!

    送给真正的互联网人一顿干货早餐 [小咖导读]此本文出自公众号"最产品",主要分享了高手们是怎样从纷繁复杂的需求池中删减并找到最有价值的需求的,以及在正确的时间如何找到正确的事儿. ...

  5. 从烤箱到蒸烤箱、到蒸烤箱集成灶,功能做加法,价格做乘法

    文 | 陈曦 来源|螳螂财经(ID:TanglangFin) "嵌入式的烤箱哪个牌子好?"这是正在装修的陈悠在知乎上搜索的问题. 陈悠家的装修已经进入了尾声,只要将家电置备齐全,就 ...

  6. [Java核心技术(卷I)] - Java中的参数能做什么和不能做什么

    1. 参考 - P123 ~ P126 2. 你将学到 Java中对方法参数能做什么和不能做什么 方法不能修改基本数据类型的参数(数值型或布尔型) 方法可以改变对象参数的状态 方法不能让一个对象参数引 ...

  7. 软件概要设计做什么,怎么做

    2019独角兽企业重金招聘Python工程师标准>>> 作者:赵磊 博客:http://elf8848.iteye.com 软件概要设计做什么,怎么做 一.软件设计一般流程: 1.先 ...

  8. sq工程师是做什么的_算法工程师为什么成天做数据,都做哪些数据?

    大家好,前几天群里有小伙伴说希望看到更多的算法工程师的日常.其实对于算法工程师而言,最大的日常就是做数据了,所以给大家分享一下做数据的那些事. 为什么很少做模型 在大家想象当中,可能算法工程师做的事情 ...

  9. 第六十五期:央行万字工作论文:区块链能做什么、不能做什么?

    本文从经济学角度研究了区块链的功能.首先,在给出区块链技术的经济学解释的基础上,归纳出目前主流区块链系统采取的"Token 范式",厘清与区块链有关的共识和信任这两个基础概念,并梳 ...

  10. Mars 是什么、能做什么、如何做的——记 Mars 在 PyCon China 2018 上的分享

    最近,在 PyCon China 2018 的北京主会场.成都和杭州分会场都分享了我们最新的工作 Mars,基于矩阵的统一计算框架.本文会以文字的形式对 PyCon 中国上的分享再进行一次阐述. 听到 ...

最新文章

  1. MySQL查询输入三个数的和_mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)...
  2. Struts Validator验证器使用指南
  3. 在P5QL上激活Windows Vista
  4. 2012年1月份第2周51Aspx源码发布详情
  5. Polygons HDU - 1632 (半平面交)
  6. 完全二叉树的判断java,判断二叉树是否为完全二叉树的实例
  7. 【FIRST USE】第一次用git把代码上传到github
  8. XLN Audio Addictive Trigger for Mac(智能鼓音替换工具)
  9. ssh公钥的生成、查看以及config的配置
  10. 微信商户转账到银行卡-java_微信商户平台的钱如何转到个人账户中
  11. 苹果手机如何制作铃声
  12. 超级实用的软著申请源代码材料格式文档生成辅助工具——软著源代码工具
  13. python如何停止子线程_【已解决】python 如何结束子线程呢
  14. 计算机毕业设计Javahtml5健身房信息管理系统(源码+系统+mysql数据库+lw文档)
  15. 快手Y-tech:短视频智能创作的CV技术和发展趋势
  16. python+selenium自动化能打开火狐浏览器但是打不开网址
  17. 响应式嵌入 iframe Pym.js
  18. Java 如何将线程挂起呢?
  19. Discuz论坛web网页mp3音频播放器源码下载
  20. ios android耳机,硬件 篇三:安卓ios和win10三大平台几款无线耳机使用体验随写 非评测 电音向...

热门文章

  1. Element-UI-的登录页面_密码框---Element-UI工作笔记004
  2. Netty工作笔记0012---Channel应用案例3
  3. opencv打开的图片应用于nn.Conv2d()(二)
  4. 使用jsoncpp解析json文件
  5. shell 删除simatic_安装西门子软件时提示重启电脑的解决办法
  6. IBM aix mysql_IBM产品系列和AIX系统版本
  7. win32开发(绘制bitmap)
  8. 嵌入式操作系统内核原理和开发(实时系统中的定时器)
  9. 安装sphinx的php扩展,安装php扩展sphinx
  10. 教师提升微能力_国培主讲风采录:信息技术再提升 微能力点巧研修