1.基本术语说明

items  note
OOA/D   面向对象的分析与设计
UML 描述、构造和文档化系统制品的可视化语言
模式 问题解决方案的公式

2. 本书的主要内容

本书的主旨是对应用了UML和模式的面向对象分析与设计(OOA/D)的介绍,同时使用UP的敏捷方法作为示例迭代过程

  • UML和面向对象的思想

对应用了UML和模式的面向对象分析与设计(OOA/D)的介绍

重点阐述对象设计,也会讲述在OOA/D中如何使用UML

  • OOD的原则和模式

职责驱动设计解决了如何为对象划分职责、对象之间如何协作

模式即问题解决方案公式

  • 案例研究

通过贯穿全书的案例研究来阐述面向对象

  • 用例

讲述需求分析

  • 迭代开发

迭代开发使用统一过程(UP)的敏捷方法作为示例迭代过程来讲述迭代开发

3. 重要的学习目标

  • 本书最重要的目标是熟练的为软件对象分配职责

4. 分析和设计

  • 分析是对问题和需求的调查研究
  • 设计是满足需求的解决方案

5. 面向对象的分析和设计

  • 面向对象的分析是在问题领域内发现和描述对象
  • 面向对象的设计是如何定义对象(包含哪些属性和方法)以及它们如何协作以实现需求

6. 面向对象分析和设计的步骤及制品

以掷骰子为例,阐述面向对象分析和设计的步骤及制品

OOD/A的步骤 NOTE 制品 制品示例
定义用例 如何使用应用的情节或场景 用例 游戏者请求掷骰子
定义领域模型 真实世界对象的描述 领域模型
分配对象职责并定义交互图 描述软件对象的职责和协作 顺序图  
定义设计类图  类定义的静态视图 类图   

图 面向对象分析和设计的步骤及制品

7. UML

  • 应用UML的三种方式
应用UML的方式 说明
UML作为草图 非正式、不完整,用于探讨问题,敏捷建模中强调此方式
UML作为蓝图 相对详细的设计图,用于逆向工程(读取源码生成UML图)和正向工程(UML图生成部分代码,由设计者填充其它代码)
UML作为编程语言 完成系统可执行规格说明,自动生成可执行代码

图 应用UML的三种方式

  • 应用UML的三种透视图
透视图 NOTE 类的含义 类统一后的命名
概念透视图 描述现实世界 概念类(原始UML) 概念类
规格说明(软件)透视图 描述软件的抽象物 设计类 软件类
实现(软件)透视图 描述特定技术(如java)中的软件实现 设计类 实现类

图 应用UML的三种透视图

注:概念类---现实世界中的概念;软件类---规格说明中的类;实现类---特定OO语言(如java)中的类

8. 可视化建模的优点

. 更加便利的观察全景

. 发现软件元素或分析之间的关系

. 忽略或隐藏细枝末节

UML和模式应用1: 面向对象的分析与设计的更多相关文章

  1. [python 译] 基于面向对象的分析和设计

    [python 译] 基于面向对象的分析和设计 // */ // ]]>   [python 译] 基于面向对象的分析和设计 Table of Contents 1 原文地址 2 引言 2.1 ...

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

      OOAD  面向对象的分析与设计            OOA-----分析阶段(针对业务问题清晰视图, 列出系统完成任务,  整理业务的公共词汇,  列出解决业务的解决方法)         O ...

  3. UML分析与设计

    考点: 掌握面向对象的分析与设计 掌握UML描述方法 用例图.类图.序列图.状态转换图 类图:类的属性.方法的识别:类间的各种关系 类图:实体.联系 各种关系图例: 泛化:取公共属性 关联分为聚合.组 ...

  4. Java 程序员应在2019年学习的10条面向对象(OOP)设计原则

    面向对象的设计原则 是 OOP 编程的核心,但是我看到大多数 Java 程序员都在追求诸如 Singleton 模式,Decorator 模式或 O​​bserver 模式之类的设计模式,而对学习面向 ...

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

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

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

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

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

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

  8. UML和模式应用3:迭代和进化式分析和设计案例研究

    1.前言 如何进行迭代和进化式分析和设计?将采用案例研究的方式贯穿始终.案例研究所包含的内容: UI元素 核心应用逻辑层 数据库访问 与外部软硬构件的协作 本章关于OOA/D主要介绍核心应用逻辑层 2 ...

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

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

随机推荐

  1. TiKV 源码解析系列文章(三)Prometheus(上)

    本文为 TiKV 源码解析系列的第三篇,继续为大家介绍 TiKV 依赖的周边库 rust-prometheus,本篇主要介绍基础知识以及最基本的几个指标的内部工作机制,下篇会介绍一些高级功能的实现原理 ...

  2. Leetcode 268.缺失数字 By Python

    给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数. 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,4,2 ...

  3. BZOJ 4671 异或图 | 线性基 容斥 DFS

    题面 Description 定义两个结点数相同的图 G1 与图 G2 的异或为一个新的图 G, 其中如果 (u, v) 在 G1 与 G2 中的出现次数之和为 1, 那么边 (u, v) 在 G 中 ...

  4. java NIO 直接与非直接缓冲区

    ByteBuffer有两个创建缓冲区的方法:static ByteBuffer allocate(int capacity)static ByteBuffer allocateDirect(int c ...

  5. 关于打包测试环境,百度地图报 Bmap not undefined

    https的网站使用百度地图,如果你引用的地址没写对的话,加载不出来百度地图,被认为是不安全的JS内容. https://api.map.baidu.com/api?+你的秘钥+&s=1 应该 ...

  6. Apache的ProxyPass简单使用

    转: Apache的ProxyPass简单使用 置顶 2017年08月14日 18:54:33 师太,老衲把持不住了 阅读数:11164   http://mtnt2008.iteye.com/blo ...

  7. NOIP 普及组 2016 海港

    传送门 https://www.cnblogs.com/violet-acmer/p/9859003.html 这次比赛,上来还是死抠第一题,用了一个半小时才 AC,还是太菜了............ ...

  8. myeclipse 怎么安装与激活

    摘录自:http://blog.csdn.net/u012318074/article/details/71310553 第一步:安装完成后不要运行MyEclipse 第二步:下载对应的破解文件 第三 ...

  9. python---session(最终版)__setitem__和__getitem__方法

    一般来说对于其他语言session值一般获取方法为session['name'],赋值使用session['name']=val 对于python类中含有一些魔术方法__setitem__,__get ...

  10. Windows句柄数限制

    设置 GDIProcessHandleQuota项设置GDI句柄数量,默认值为2710(16进制)/10000(10进制),该值的允许范围为 256 ~ 16384 ,将其调整为大于默认的10000的 ...