1.前言

开发者如何设计对象,可以采用如下三种方式:

  • 编码:在编码的同时进行设计
  • 绘图然后编码:绘制一些UML,然后转到如上编码方式,在集成开发环境中编码
  • 只绘图,不编码:使用工具从图中生成一切

本章主要介绍在对象设计和编码前进行轻量级绘图

2.敏捷建模

  • 敏捷建模的目标是减少常用图形
  • 建模的目的是为了沟通和理解,不是为了构建文档
  • 简单的敏捷建模方法包括使用白板笔、数码相机和打印机捕获“UML草图”
  • 敏捷建模还包括:

与他人一同建模、并行创建若干模型

  • XP敏捷建模原则:一切从简、只为有效
  • 敏捷建模的技巧还包括:

轻松的将数码相机捕获到的草图上传到WIKI,以此记录项目信息

3.UML CASE工具

  • UML CASE工具与墙上绘制UML草图各有千秋,选择UML CASE的原则

选择能够与流程的IDE集成的UML CASE

选择能够对不仅对类图还能对序列图进行逆向工程的的工具

  • 墙上UML草图和IDE中的UML CASE工具互为补充,应该在不同阶段的活动中尝试

4.编码前绘制UML需要花费的时间

  • 假设迭代时间为三周,墙上UML(或UML CASE)需要花费几个小时或至多一天的时间,对有难度和创造性的部分绘制UML草图以得到其详细的对象设计
  • 如果是草图还需要拍摄和打印照片
  • 在迭代的剩余时间里,以这些草图作为灵感的起点,将这些设计转换成代码
  • 由于代码中的设计会有分歧,较短的绘图草图活动可能会出现在整个迭代过程中
  • 敏捷建模可以在后续建模活动前,对增加的基础库进行逆向工程,生成UML图,然后在构建草图的活动中应用他们

5. 设计对象:什么是静态和动态建模

对象模型

包括动态和静态

6.基于UML表示法技术的对象设计技术的重要性

  • 以对象进行思考和设计,并且应用对象设计的最佳模式
  • 绘制UML对象图时需回答的关键问题

对象的职责是什么?
对象在与谁协作?
应该应用什么设计模式?
基本的对象设计需要了解职责分配原则和设计模式

7.其它对象设计技术

类职责协作(CRC)卡是流行的面向文本建模技术
CRC卡是纸质的索引卡片,记录了类的职责和协作,每张卡表示一个类,考虑对象必需做什么,必需与哪些类协作

UML和模式应用5:细化阶段(9)---迈向对象设计的更多相关文章

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

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

  2. UML和模式应用1: 面向对象的分析与设计

    1.基本术语说明 items note OOA/D  面向对象的分析与设计 UML 描述.构造和文档化系统制品的可视化语言 模式 问题解决方案的公式 2. 本书的主要内容 本书的主旨是对应用了UML和 ...

  3. 《UML和模式应用》重点之思想篇

    本书是帮助开发人员和学生学习面向对象分析和设计(OOA/D)的核心技能的重要工具. UML不是OOA/D.也不是方法,仅仅是图形表示法,假设没有真正掌握怎样创建优秀的面向对象设计,或者怎样评估和改进现 ...

  4. UML和模式应用5:细化阶段(4)--如何创建领域模型

    1.前言 以当前迭代中所要设计的需求为界,创建领域模型的步骤: 1.寻找概念类 2.将其绘制为UML类图中的类 3.添加关联和属性 2.如何寻找概念类 寻找概念类有如下几种方法: 重用和修改现有的模型 ...

  5. UML和模式应用5:细化阶段(5)---系统顺序图

    1.前言 系统顺序图(SSD)是为阐述系统相关的输入和输出事件而快速.简单的创建的制品,它们是操作契约和对象设计的输入. SSD展示了直接与系统交互的外部参与者.系统(作为黑盒)以及由参与者发起的系统 ...

  6. UML和模式应用5:细化阶段(1)--第1次迭代

    1.前言 从本文开始进入细化阶段,讨论迭代技术的基础,本次讨论将着重讨论第一次迭代,以POS机为例. 2. 第一次迭代处理的需求(以NextGen POS项目处理销售用例) 实现 处理销售 用例中基本 ...

  7. UML和模式应用5:细化阶段(10)---UML交互图

    1.前言 UML使用交互图来描述对象间消息的交互 交互图可以用于动态对象建模. 交互图有两种类型:顺序图和通信图. UML交互图将用来解释和阐述对象设计. 2.顺序图和通信图 顺序图具有丰富的符号标记 ...

  8. UML和模式应用4:初始阶段(6)--迭代方法中如何使用用例

    1.前言 用例是UP和其他众多迭代方法的核心.UP提倡用例驱动开发. 2. 迭代方法中如何使用用例 功能需求首先定义在用例中 用例是迭代计划的重要部分,迭代是通过选择一些用例场景或整个用例来定义的 用 ...

  9. UML和模式应用4:初始阶段(4)--需求制品之用例模型模板示例

    1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 其中需求科目对应的需求制品包括:设想.业务规则.用例模型.补充性规格说明.词 ...

随机推荐

  1. 【转】 Keil C51重定向printf到串口

    概述 进行C/C++开发的时候我们都会需要打印调试信息,打印调试信息时我们习惯使用printf函数,但是在Keil C51环境下,由于我们的程序是下载到单片机里,使用printf函数时不能直接打印到串 ...

  2. C代码快速构建框架

    #include "stdio.h" typedef char int8_t; typedef short int16_t; typedef int int32_t; typede ...

  3. 青蛙跳台阶(C、Python)

    C语言: /* ----------------------------------- 当n = 1, 只有1中跳法:当n = 2时,有两种跳法:当n = 3 时,有3种跳法:当n = 4时,有5种跳 ...

  4. 逆向---01.Nop、中文字符串搜索、保存修改后程序

    基础知识:(Nop:删除跳转) gcc编译链接命令: gcc -o 生成文件名 源文件名  gcc编译成汇编代码:gcc -o 生成文件名 -S 源文件名 VS查看汇编代码:(调试模式下,Ctrl+F ...

  5. service的生命周期

    Managing the Lifecycle of a Service service的生命周期,从它被创建开始,到它被销毁为止,可以有两条不同的路径: A started service 被开启的s ...

  6. Centos6.5使用yum安装mysql

    0. 说明 先要查看yum源是否有你想要的mysql版本 yum list | grep mysql 如果没有则先要更新yum源 yum -y update 更新后即可进行下一步操作. 1. yum安 ...

  7. for master

    冒泡排序 Bubble sort function bubleSort(){ var array=[1,8,9,3,2,5,4]; console.log('冒泡排序前',array); for(va ...

  8. typescript泛型(学习笔记非干货)

    软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性. 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型, 这在创建大型系统时为你提供了十分灵活的功能. In softwa ...

  9. apigateway-kong(六)认证

    到上游服务(API或微服务)的流量通常由各种Kong认证插件的应用程序和配置来控制.由于Kong的服务实体(Service Entity)代表自己的上游服务的1对1映射,最简单的方案是在选择的服务上配 ...

  10. gdb调试1--包括反汇编及文件编码设置

    一.编译 gcc的完整编译过程大致为:预处理->编译->汇编->链接 前三个步骤分别对应了-E.-S.-c三个选项. 编译阶段 命令 截断后的产物     C源程序 预处理 gcc ...