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. 不失一般性和快捷性地判定决策单调(洛谷P1912 [NOI2009]诗人小G)(动态规划,决策单调性,单调队列)

    洛谷题目传送门 闲话 看完洛谷larryzhong巨佬的题解,蒟蒻一脸懵逼 如果哪年NOI(放心我这样的蒟蒻是去不了的)又来个决策单调性优化DP,那蒟蒻是不是会看都看不出来直接爆\(0\)?! 还是要 ...

  2. LOJ #2540. 「PKUWC 2018」随机算法(概率dp)

    题意 LOJ #2540. 「PKUWC 2018」随机算法 题解 朴素的就是 \(O(n3^n)\) dp 写了一下有 \(50pts\) ... 大概就是每个点有三个状态 , 考虑了但不在独立集中 ...

  3. 自学Zabbix4.1 zabbix监控web服务器访问性能

    自学Zabbix4.1 zabbix监控web服务器访问性能 使用Zabbix实现对web性能的监控,通过它可以了解web站点的可用性以及性能.最终将各项指标绘制到图形中,这样我们可以了解到一个站点的 ...

  4. 自学Python1.6-Centos内英文语法切换

    自学Python之路 自学Python1.6-Centos内中英文语法切换 测试采用是官方Centos7.0系统 1.添加中文输入法 打开设置---区域和语言--->在输入源最下面有一个 + 号 ...

  5. [luogu4513]小白逛公园

    题目描述 在小新家附近有一条"公园路",路的一边从南到北依次排着n个公园,小白早就看花了眼,自己也不清楚该去哪些公园玩了. 一开始,小白就根据公园的风景给每个公园打了分-.-.小新 ...

  6. nowcoder172C 保护 (倍增lca+dfs序+主席树)

    https://www.nowcoder.com/acm/contest/172/C (sbw大佬太强啦 orz) 先把每一个路径(x,y)分成(x,lca),(y,lca)两个路径,然后就能发现,对 ...

  7. A1104. Sum of Number Segments

    Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For exam ...

  8. JSP总结(一)——基础(汇总)

    前言:原本呢,是打算只写个JSP的内置对象总结,但是没想到这个家伙的JSP总结非常不错,我就拿来用了. 注:后缀为汇总的基本上是整理一些网上的. 借鉴地址:http://www.cnblogs.com ...

  9. logging模块(二十六)

    用于便捷记录日志且线程安全的模块 可在logging.basicConfig()函数中通过具体参数来更改logging模块默认行为,可用参数有 filename:用指定的文件名创建FiledHandl ...

  10. selenium - switch_to.window() - 多窗口切换

    在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作.WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切换. 以百度首 ...