利用周末的时间读了潘加宇的《软件方法(上)》,希望梳理清楚UML的知识脉络;

工作流 子流程 内容 备注
建模和uml  

利润=需求-设计

 
愿景  

缺乏清晰、共享的愿景往往是项目失败的主要原因。

愿景回答这样一个问题:在老大看来,引进这个系统的目的是什么?

寻找老大

  • 要点:老大是买方。典型错误:老大就是我们开发公司老总(或者研发总监、产品经理等)。
  • 要点:系统改善哪个组织的流程?老大就是该组织的负责人。典型错误:老大是××局信息中心主任李××。
  • 要点:系统好坏的度量指标藏在他的大脑里吗?典型错误:老大是某位大领导(可能是集团董事长,也可能是省长,甚至是总理)。

可度量的目标

像愿景

不像愿景

减少采集数据所花费的时间

提高制作动画的速度

缩短订单的处理周期

建立一个 CRM 系统

提供在线订机票功能

揣摩目标度量:老大心底里是有度量指标的,否则,系统摆在他面前的时候,他拿什么来判断系统好不好?不过, 要得到度量指标不容易。

涉众利益 :愿景是老大针对系统的目标,那其他人的目标难道不重要吗?其他人的目标也是要关注的,我们 把它叫做涉众利益。愿景实际上就是系统最重要涉众的利益。

 
业务建模(组织建模)  

业务建模——描述组织内部各系统(人肉系统、机械系统、电脑系统......)如何协作,使得组 织可以为其他组织提供有价值的服务。新系统只不过是组织为了对外提供更好的服务,对自己的内部 重新设计而购买的一个零件。组织引进一个软件系统,和招聘一名新员工没有本质区别。如果能学会 通过业务建模去推导新系统的需求,而不是拍脑袋得出需求,假的“需求变更”会大大减少

业务用例图:软件是组织的零件

【业务建模步骤 1-1】:选定要改进的组织

【业务建模步骤 1-2】:组织的业务用例图

  • 业务执行者
  • 业务工人和业务实体
  • 识别业务执行者
  • 业务用例

业务序列图:描述业务流程的手段

 

活动图

序列图

活动图只关注人

活动图表示动作

活动图更“灵活”

序列图把人当作系统

序列图强迫思考动作背后的目的

序列图更不“灵活”

业务序列图要点 :

  • 消息代表责任分配而不是数据流动
  • 聚焦于系统之间的协作
  • 只画核心域相关的系统
  • 把时间看作特殊的业务实体

【业务建模步骤 1-3】:现状业务序列图

  • 错误:把“现状”误解为“纯手工”
  • 错误:把“现状”误解为“规范”
  • 错误:以待开发系统为中心拼凑流程

【业务建模步骤 1-4】:改进业务序列图

  • 改进一:物流变成信息流
  • 改进二:改善信息流转
  • 改进三:封装领域逻辑
  • 阿布思考法:(1)假设有充足的资源去解决问题,得到一个完美的方案;(2)用手上现有的资源去山寨这个完美方案。
 
需求  

需求——聚焦于待开发系统的边界,详细描述系统要卖得出去必须具有的表现——功能和性能。 这项技能的意义在于强迫我们从“卖”的角度思考哪些是涉众(Stakeholder)在意的、不能改变的契 约,哪些不是,严防“做”污染“卖”。需求工作流的结果——需求规约是“卖”和“做”的衔接点

需求-系统用例图:

系统执行者要点:在所研究系统外,与该系统发生功能性交互的其他系统。

系统用例要点 :系统能够为执行者提供的、涉众可以接受的价值。

【需求步骤 2-1】识别系统执行者

  • 不要把执行者和权限管理混淆

【需求步骤 2-2】识别系统用例

  • 错误:玩弄“复用”
  • 错误:玩弄“层次”
  • 错误:玩弄“子系统”
  • 错误:模糊的价值
  • 提示:大用例无妨小用例
  • 提示:用例的命名 (动宾结构)

需求-系统用例规约

【需求步骤 2-3】书写系统用例规约

需求-需求启发

 
分析  

分析——提炼系统内需要封装的核心领域机制。可运行的系统需要封装各个领域的知识,其中 只有一个领域(核心域)的知识是系统能在市场上生存的理由。对核心域作研究,可以帮助我们获得 基于核心域的复用

 
设计  

设计——将核心域知识和非核心域知识结合,最终实现系统。说“代码就是设计”指的是这里 说的“设计”。代码确实是设计,但代码不是分析,不是需求,不是业务建模。

 

UML软件方法大纲的更多相关文章

  1. 编程学习笔记(第四篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(4)meta、元与元模型、软件方法的未来发展

    一.meta.元与元模型 1.元. ​ "元" 英语是 Meta,meta在不同的行业领域有不同的翻译,在 IT 领域一般来说 Meta 是翻译成元,主要因为在 IT 中Meta ...

  2. ubuntu系统安装软件方法

    ubuntu系统安装软件方法 ubuntu下安装软件有三种方式,分别为在线安装apt-get方式,软件商店安装方式和 1. 软件商店安装方式 这种方式对经常使用windows系统的同学来说最为简单,因 ...

  3. 对比其它软件方法评估敏捷和Scrum

    一般来说,选择一种软件开发方法,更像是加入一个邪教组织,而不像是做出了一个技术决策.许多公司甚至从未试图去评估这些方法,而仅仅是盲目采用最流行的方法,这就造成了如今五花八门的各种敏捷方法.因此本文将使 ...

  4. 删除Android自带软件方法及adb remount 失败解决方案

    删除Android自带软件方法 1.在电脑上打开cmd,然后输入命令 adb remount adb shell su 2.接着就是Linux命令行模式了,输入 cd system/app 3然后输入 ...

  5. Atiti。流量提升软件设计大纲规划 v1 q45

    Atiti.流量提升软件设计大纲规划 v1 q45 1. 通用数据管理1 2. 网页Url管理模块1 3. 网站domain管理1 4. ad广告管理2 5. Task任务管理2 6. 任务执行功能: ...

  6. Linux系统中安装软件方法总结

    Linux系统中安装软件方法总结 [1]Linux系统中安装软件的几种方式 [2] Linux配置yum源(本地源和网络源) [3] SuSE下zypper源配置 [4] SUSE zypper 本地 ...

  7. AUTOIT解决域控普通用户以管理员身份安装软件方法

    windows域管理,本是很好的管理方式,方便的软件分发,权限控制等功能.不过由于我处软件分发总有那么一些电脑没有成功安装,或是新装的电脑安装软件时漏了安装一些软件,而这些软件需要管理员权限安装的,用 ...

  8. C# 反编译破解软件方法

    我们有时在使用一些小工具软件时,会提示购买License(注册码之类的东东)后才能正常使用.在这里我们来尝试直接绕过License验证直接使用软件,实现简单的软件破解. 主要实现方式: 通过反编译工具 ...

  9. Ubuntu 安装软件方法

    Ubuntu软件安装有几种方式,常用的是deb包的安装方式,deb是debian系列的Linux包管理方式,Ubuntu软件安装属于debian的派生,也默认支持这种软件安装方式,当下载到一个deb格 ...

随机推荐

  1. OCR技术浅探: 语言模型(4)

    由于图像质量等原因,性能再好的识别模型,都会有识别错误的可能性,为了减少识别错误率,可以将识别问题跟统计语言模型结合起来,通过动态规划的方法给出最优的识别结果.这是改进OCR识别效果的重要方法之一. ...

  2. 特殊字符html,css转义大全

    使用方法: 这些字符属于unicode字符集,所以,你的文档需要声明为UTF-8: 下面符号列表的后面有两列编号,它们并不太一样,第一列是用于html的,你需要在前面加上&#符号: 第二列可以 ...

  3. javascript运行机制详解: 再谈Event Loop(转)

    作者: 阮一峰 日期: 2014年10月 8日 一年前,我写了一篇<什么是 Event Loop?>,谈了我对Event Loop的理解. 上个月,我偶然看到了Philip Roberts ...

  4. Unity编程标准导引-Unity中的基本概念-2.1界面概览

    Unity中的基本概念 本文我们介绍Unity中的基本概念,包括:场景.游戏对象.组件.预制件.资源等. 2.1.界面概览 打开Unity之后,我们大概可以看到以上画面,以上画面中即显示了我们最常用到 ...

  5. [Kafka] - Kafka基本概念介绍

    Kafka官方介绍:Kafka是一个分布式的流处理平台(0.10.x版本),在kafka0.8.x版本的时候,kafka主要是作为一个分布式的.可分区的.具有副本数的日志服务系统(Kafka™ is ...

  6. sublime与Emment

    sublime与Emment 作为一个开发者,想必用过sublime和Emment 的无不大快朵颐,这两者结合在一起简直是天合之作.它不仅仅提高编码的速度而且令开发者感到编码的乐趣和舒适感,今天准备写 ...

  7. STM32F4时钟配置分析

    //学习STM32F4的过程中关于时钟上面讲的比较好 特地转发与大家分享 STM32F4时钟设置分析 原文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环 ...

  8. MAC软件下载链接地址

    博客开启,今天向大家推荐一款MAC软件大全地址. 下载地址:http://www.pc6.com/mac/111949.html

  9. IOS设备对position的支持性

    最近在开发一个网页. 要嵌套在微信里 大家都知道 IOS版微信和安卓版微信还是一定的差距 IOS版微信在打开网页的时候回调取自己的浏览器以及内核 但是安卓版微信不会,他会默认使用自己的QQ浏览器和X5 ...

  10. [Qt初级] 解决 中QMainWindow和QDockWidget添加布局失败问题

    初接触Qt,使用的教程是陆文周编写的<Qt5开发及实例>一书. 其中有关于QDockWidget.QStackedWidget这些类的介绍和使用实例. 要首先说明的是书上讲的非常的清楚,代 ...