UML不是OOA/D,也不是方法,它仅仅是一种图形表示法(表示的是OOA/D的想法),我们将在OOA/D中应用UML;分析,就是理解客户脑子中的概念,跟客户来沟通,分析出专业术语;设计,对分析出来的专业术语进行归纳;

OOA/D的过程:定义用例、定义领域模型、定义交互图、字义设计类图

示例:软件模拟游戏者投掷两个色子,如果总点数是7则赢得游戏,否则为输。

第一步:定义用例:用例是需求分析的一种工具,它是一些情节的描述(我要干什么)

  • 色子游戏  
  •   游戏者请求色子
  •   系统展示结果,如果色子的总点数是7,则游戏者胜利,否则游戏者输

第二步:定义领域模型:识别问题中的概念,它是对真实世界领域中的概念和想像可视化,与具体的软件技术无关,如游戏者、色子(业务模型)(先不要考虑色子的属性,要逐步细化)

  游戏者、色子、色子游戏

第三步:定义交互图:分配对象职责并绘制交互图(动态建模)

OOD关注的是软件对象的定义职责与协作(箭头方向表示调用,被调用就必须有相应的方法)

第四步:定义设计类图:(静态建模)

从领域模型以及交互图中获得启示,定义软件类,包括属性、方法等等

设计类图示如下:

面向对象分析和设计(OOA/D)的更多相关文章

  1. 面向对象分析与设计—OOA部分

    第二部分 面向对象分析 2.1 面向对象分析(OOA)的定义? OOA——面向对象的分析,就是运用面向对象方法进行系统分析,对问题域(问题所涉及的范围)和系统责任(所开发的系统应具备的职能)进行分析与 ...

  2. 解析UML的面向对象分析与设计

    经常听到有朋友抱怨,说学了UML不知该怎么用,或者画了UML却觉得没什么作用.其实,就UML本身来说,它只是一种交流工具,它作为一种标准化交流符号,在OOA&D过程中开发人员间甚至开发人员与客 ...

  3. UML和模式应用学习笔记-1(面向对象分析和设计)

    UML和模式应用学习笔记-1(面向对象分析和设计) 而只是对情节的记录:此处的用例场景为:游戏者请求掷骰子.系统展示结果:如果骰子的总点数是7,则游戏者赢得游戏,否则为输 (2)定义领域模型:在领域模 ...

  4. 《UML和模式应用》读书笔记(一)面向对象分析和设计简单示例

    在开始进行对象分析和设计之前,先通过“扔骰子”这个软件(游戏者扔两个骰子,如果总是是7,则赢,否则输),来简单分析下这个过程. 1:用例 需求分析,可能包括人们如何应用的场景或情节,这些都可以被编写成 ...

  5. .NET应用架构设计—面向对象分析与设计四色原型模式(彩色建模、领域无关模型)(概念版)

    阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我 ...

  6. 面向对象分析与设计—OOD部分

    第三部分 面向对象设计 3.1 面向对象设计(OOD)的定义? 在面向对象分析阶段,已经针对用户需求建立起用面向对象概念描述的系统分析模型.在设计阶段,要考虑为实现系统而采用的计算机设备.操作系统.网 ...

  7. 基于UML的面向对象分析与设计

          前言      经常听到有朋友抱怨,说学了UML不知该怎么用,或者画了UML却觉得没什么作用.其实,就UML本身来说,它只是一种交流工具,它作为一种标准化交流符号,在OOA&D过程 ...

  8. 读书笔记--Head First 面向对象分析与设计 目录

    1.良好应用程序的基石 2.收集需求 3.需求变更 4.分析 5.良好的设计=灵活的软件 6.解决大问题 7.架构 8.设计原则 9.迭代与测试 10.OOA&D 的生命周期 附录1 附录2

  9. OOAD(面向对象分析和设计)GRASP之创建者模式(Creator)又称生成器模式学习笔记

    说OOAD是一门玄学,一点都不为过.又或许是因为我之前一直没有很好的建立面向对象的思想,更有可能是因为练得不够多...总之,一直没能很好理解,哪怕把一本叫做<UML和模式应用>的书翻来覆去 ...

随机推荐

  1. 算法笔记_016:凸包问题(Java)

    目录 1 问题描述 2 解决方案 2.1 蛮力法 1 问题描述 给定一个平面上n个点的集合,它的凸包就是包含所有这些点的最小凸多边形,求取满足此条件的所有点. 另外,形象生动的描述: (1)我们可以把 ...

  2. android6.0权限管理工具EasyPermissionUtil

    前言 android6.0開始,权限的申请发生了改变,申请变的动态化,也就是执行时权限,和iOS相仿,动态化的意思是指,在每次使用须要危急权限的方法的时候.须要检查程序是否获得了该权限的许可.动态化的 ...

  3. Spring 基于Aspectj切面表达式

    package com.proc; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; im ...

  4. 【apache2】apache2查看错误日志、请求日志

    1.一般存储路径在 [ /var/log/apache2/ ]下面, 2.错误日志和请求日志 必须要进行定期清理. 清理完成后,必须重启apache  [  cd /  ;  service apac ...

  5. Linux索引节点(Inode)用满导致空间不足

    一.问题出现 在创建新目录和文件是提示“no space left on device”!按照以前的情况,很有可能是服务器空间又被塞满了,通过命令查看,发现还有剩余.再用df -i查看了一下/分区的索 ...

  6. WebForm 页面ajax 请求后台页面 方法

    function ReturnOperation(InventoryID) { //入库 接口 if (confirm('你确认?')) { $.ajax({ type: "post&quo ...

  7. kong 插件开发分析

    1.安装开发环境:(我这里用IntelliJ IDEA) 先安装lua 5.1和luarocks 因为kong基于openresty,openresty使用luajit luajit支持的是lua5. ...

  8. unity, imageEffect在android上不显示的问题

    使用imageEffect做了个景深特效,原理很简单,就是一张清晰大图和一张模糊小图根据z值进行混合,z值小的像素清晰大图的比例高一些,z值大的像素模糊小图的比例高一些. 在pc上是ok的,但打出an ...

  9. django之整体复习

    1. 配置文件: media: avatar = models.FileField(upload_to='avatar') sessiongs MEDIA_ROOT=os.path.join(BASE ...

  10. location 将多级目录下的文件转成一个文件

    /ck-135-201-7142.html 指向/ck/135/201/7142.html [root@web01 www]# cat /app/server/nginx/conf/rewrite/d ...