新書推薦:
《
世界前沿技术发展报告2024
》
售價:HK$
188.2
《
可转债——新手理财的极简工具
》
售價:HK$
65.0
《
新加坡教育:神话与现实
》
售價:HK$
96.3
《
“口袋中的世界史”第一辑·冷战中的危机事件
》
售價:HK$
291.2
《
绝美的奥伦堡蕾丝披肩编织
》
售價:HK$
177.0
《
狂飙年代:18世纪俄国的新文化和旧文化(第二卷)
》
售價:HK$
177.0
《
万有引力书系 纳粹亿万富翁 德国财富家族的黑暗历史
》
售價:HK$
109.8
《
中国常见植物野外识别手册:青海册
》
售價:HK$
76.2
|
編輯推薦: |
分享www.umlonline.org站长、新浪超火爆技术博客博主“火球”之12年UML及软件开发实战经验
“人是会死的,需求是会变的,UML不是可怕的”。玩笑间领会UML思想之深邃,谙熟UML应用之真谛
把蕴含无穷变化的需求分析之过程,化繁为简,深刻体验UML实战之美
■重现UML应用最佳实践之过程
本书介绍的是UML在软件需求方面的最佳实践。全书内容经过精心设计,大案例贯穿全书,小案例一个接一个,直接用案例来讲解UML基本及进阶语法、UML最佳实践、需求分析及需求管理的最佳实践等。
■UML,既要“活学”,还要“活用”
掌握UML“形”的同时掌握UML的“神”,即UML在实际应用中所体现的思路和方法,活学活用才是关键。
■适合对象
读过无数相关资料,但依然无法自如运用UML建模的读者;
UML初学者及软件需求分析的初学者;
被需求分析的无尽变更搞得焦头烂额的项目开发人员。
|
內容簡介: |
本书融合UML、非UML、需求分析及需求管理等各方面的知识,帮助读者解决UML业界问题、需求分析及需求管理问题。全书主要介绍UML的基本语法、面向对象的分析方法、应用UML进行需求分析的最佳实践及软件需求管理的最佳实践四个方面的内容。
本书各章以问题为引子,通过案例、练习、思考和分析等,由浅入深地逐步介绍UML综合应用的知识。本书以案例贯穿始终,补充了大量的实用知识,并讲究实效,能使读者尽快在工作中应用所学知识。
无论是Java技术流派、.NET技术流派还是其他技术流派,只要工作中涉及到需求分析或者对UML感兴趣的人士,均适合阅读本书。
本书附带一张光盘,光盘中有“活用类图,拥抱需求”和“做一回软件设计高手”两个课程的视频内容,时长为4小时。
|
關於作者: |
张传波,网名: Fireball(火球)
12年的软件开发工作,亲历无数建筑、电力、通信、政府等多个领域的复杂软件项目开发,对CMMI有深刻理解,多年应用UML“浴血奋战”,并将UML及需求分析的最佳实践分享到公司的其他项目中,积累了丰富的UML经验。目前潜心打造www.umlonline.org
网站,专注于UML实践及软件项目管理的知识分享。
中国UML认证专家委员会专家
欢迎您通过以下方式与作者交流:
|
目錄:
|
第1章 大话UML 1
1.1 UML基础知识扫盲 1
1.1.1 UML有什么用 1
1.1.2 UML的分类 2
1.2 结构型的UML(Structure Diagram) 3
1.2.1 类图(Class Diagram) 3
1.2.2 对象图(Object Diagram) 4
1.2.3 构件图(Component Diagram) 5
1.2.4 部署图(Deployment Diagram) 5
1.2.5 包图(Package Diagram) 6
1.3 行为型的UML(Behavior Diagram) 7
1.3.1 活动图(Activity Diagram) 7
1.3.2 状态机图(State Machine Diagram) 7
1.3.3 顺序图(Sequence Diagram) 8
1.3.4 通信图(Communication Diagram) 8
1.3.5 用例图(Use Case Diagram) 9
1.3.6 时序图(Timing Diagram) 9
1.4 如何学好UML 10
1.4.1 UML的认识误区 10
1.4.2 我的学习经历 11
1.4.3 UML学习难点 12
1.5 小结和练习 12
1.5.1 小结 12
1.5.2 练习 13
第2章 耗尽脑汁的需求分析工作 15
2.1 需求分析面面观 15
2.2 持续进化的客户需求 16
2.3 给客户带来价值——需求分析之正路 18
2.3.1 手机短信订餐系统 18
2.3.2 需求分析的大道理 19
2.4 UML助力需求分析 20
2.5 小结与练习 21
2.5.1 小结 21
2.5.2 练习 22
第3章 分析业务模型——类图
(Class Diagram) 23
3.1 面向过程与面向对象 23
3.2 类图的基础知识 25
3.2.1 类图有什么用 25
3.2.2 什么是类 25
3.2.3 什么是类图 26
3.2.4 如何识别类 26
3.3 类之间的关系 27
3.3.1 “直线”关系 27
3.3.2 “包含”关系 29
3.3.3 “继承”关系 30
3.3.4 “依赖”关系 32
3.4 演练类之间的关系 32
3.4.1 练习1:你和你另外一半的关系 32
3.4.2 练习2:公司与雇员的关系 34
3.4.3 练习3:香蕉、苹果、梨子的关系 34
3.4.4 练习4:公司的组织架构 35
3.5 类的“递归”关系与“三角”关系 37
3.5.1 “递归”关系 37
3.5.2 “三角”关系 38
3.6 考试管理系统——类图综合训练 40
3.7 关于对象图 43
3.8 小结与练习 45
3.8.1 小结 45
3.8.2 练习 46
第4章 流程分析利器之一——活动图
(Activity Diagram) 47
4.1 结构建模与行为建模 47
4.2 认识流程分析工具的鼻祖——流程图 48
4.3 工时审批流程——活动图基础 49
4.3.1 基础语法:初始状态、结束状态、
活动、判断、合并 49
4.3.2 判断的三种处理办法 50
4.3.3 多层分支 51
4.3.4 泳道分区 52
4.3.5 对活动图分析业务流程的思考 53
4.4 会签评审流程——活动图进阶 53
4.4.1 “并行”的活动 53
4.4.2 工作产品如何表示——对象流 55
4.4.3 活动图的组织——连接件
(Connector) 57
4.5 活动的粒度问题 58
4.5.1 活动与动作 58
4.5.2 活动粒度的问题 58
4.6 版本发布流程——用活动图表达复杂
流程 59
4.6.1 活动图的实践建议 59
4.6.2 实战版本发布流程 59
4.6.3 版本发布流程存在问题的思考 63
4.7 小结与练习 63
4.7.1 小结 63
4.7.2 练习 65
第5章 流程分析利器之二——状态机图
(State Machine Diagram) 66
5.1 请假审批流程——认识状态机图 66
5.1.1 请假流程活动图 66
5.1.2 请假流程状态机图 67
5.1.3 状态机图基本语法 68
5.2 关于状态数量的思考 69
5.2 请假的多级审批流程——状态机图进阶 70
5.2.1 多级审批的问题 70
5.2.2 状态机图的分支结构 71
5.2.3 应用状态机图的常见问题 72
5.3 缺陷管理流程——演练复杂的状态机图 73
5.3.1 状态机图的实践建议 73
5.3.2 一封求助信——混乱的缺陷管理 73
5.3.3 缺陷管理流程状态机图 74
5.3.4 缺陷管理流程存在问题的思考 76
5.4 小结与练习 76
5.4.1 小结 76
5.4.2 练习 78
第6章 流程分析利器之三——顺序图
(Sequence Diagram) 79
6.1 你如何和餐厅服务员“眉来眼去”——
认识顺序图 79
6.1.1 复习一下中文语法 79
6.1.2 你和服务员的“眉来眼去” 80
6.1.3 你和服务员的另外一种“眉来
眼去” 81
6.1.4 顺序图的基本语法 82
6.2 餐厅服务员背后的故事——发掘隐藏
背后的业务流程 83
6.2.1 服务员背后“有人” 83
6.2.2 如何用顺序图发掘业务流程 85
6.3 你和提款机的故事——体会顺序图的
粒度控制 85
6.4 顺序图的循环及分支结构 86
6.4.1 循环及分支结构 86
6.4.2 要用好循环及分支结构不容易 88
6.5 购买地铁票——活动图与顺序图的比较 90
6.6 流程分析三剑客 92
6.7 通信图——顺序图的另外一种表示方式 93
6.8 小结与练习 95
6.8.1 小结 95
6.8.2 练习 97
第7章 描述系统的行为——用例图
(Use Case Diagram) 98
7.1 初识用例图 98
7.1.1 为什么需要用例图 98
7.1.2 用例图基本语法 99
7.2 用例图进阶 102
7.2.1 角色的继承 103
7.2.2 用例的Include 104
7.2.3 用例的Extend 106
7.2.4 用例的继承 107
7.2.5 用例的粒度控制 109
7.3 小试牛刀——订餐系统的用例图 110
7.3.1 订餐系统的用例图 110
7.3.2 用例的组织 112
7.4 用例表——用例的进一步细化 112
7.5 综合运用类图、流程三剑客、用例图
描述需求 116
7.5.1 用类图描述业务概念 116
7.5.2 流程三剑客的威力 117
7.6 从用例分析开始还是由业务分析开始 117
7.6.1 客户主导VS项目组主导 117
7.6.2 需要和需求规格 118
7.7 非要使用用例图、用例表吗 119
7.7.1 不使用用例图和用例表的情况 119
7.7.2 使用用例图但不使用用例表的
情况 121
7.8 小结与练习 122
7.8.1 小结 122
7.8.2 练习 125
第8章 描述系统的框架——部署图、构件图 126
8.1 描述需求为什么要用部署图、构件图 126
8.2 什么是部署图(Deployment Diagram) 127
8.3 什么是构件图(Component Diagram) 130
8.4 部署图和构件图的“捆绑”应用 132
8.5 小试牛刀——OA系统的架构需求 133
8.6 如何获取和描述非功能性需求 135
8.7 小结与练习 137
8.7.1 小结 137
8.7.2 练习 138
第9章 组织你的UML图——包图
(Package Diagram) 139
9.1 什么是包图 139
9.2 用包图组织类图 141
9.3 用包图组织用例 142
9.4 用包图进行软件设计 145
9.5 小结与练习 147
9.5.1 小结 147
9.5.2 练习 148
第10章 UML共冶一炉——考勤系统的需求
分析 149
10.1 迎接挑战——你的需求分析任务书 149
10.2 需求分析从零开始 151
10.2.1 需求分析全过程的活动图 151
10.2.2 第一阶段:战略分析——你需要
高屋建瓴 151
10.2.3 第二阶段:需要分析——你需要
命中需要 153
10.2.4 第三阶段:业务分析——你需要
吃透业务 154
10.2.5 第四阶段:需求细化——你需要
设计有价值的需求方案 155
10.3 考勤系统的战略分析 156
10.3.1 考勤系统的背景 156
10.3.2 战略分析到底要做啥 157
10.4 考勤系统的需要分析 159
10.4.1 目标 159
10.4.2 涉众及待解决问题 159
10.4.3 范围 161
10.4.4 项目成功标准 162
10.5 考勤系统的业务概念分析 162
10.5.1 业务概念图的重要性和高难度 163
10.5.2 考勤系统的业务概念图 164
10.5.3 部门与员工 165
10.5.4 打卡记录 165
10.5.5 外出申请 166
10.5.6 请假申请 167
10.6 外出申请审批流程分析 169
10.6.1 外出申请审批流程的活动图 169
10.6.2 外出申请审批流程的状态机图 170
10.6.3 外出申请相关的类图 172
10.6.4 外出管理上的进一步思考 173
10.7 请假申请审批流程分析 173
10.7.1 请假申请审批流程的活动图 174
10.7.2 请假审批流程的顺序图 175
10.7.3 请假管理上的进一步思考 176
10.8 执行者及用例分析 178
10.8.1 执行者分析 178
10.8.2 宏观用例图 180
10.8.3 普通员工的用例分析 180
10.8.4 行政部员工、财务部员工用例
分析 188
10.8.5 部门经理、副总经理、总经理
用例分析 192
10.8.6 管理员用例分析 196
10.8.7 用例分析小结 198
10.9 非用例的功能性需求 199
10.10 系统的非功能性需求分析 201
10.10.1 软件技术架构方面的要求 201
10.10.2 安全性、易用性、性能等方面
的要求 202
10.11 如何编写需求规格说明书 203
10.12 对考勤系统后续故事的思考 205
10.12.1 连董事长都敢“忽悠”的员工 205
10.12.2 上有政策下有对策 206
10.12.3 有先天缺陷的MIS型系统 206
10.12.4 如何打造有竞争力的MIS类型
系统 207
10.13 小结与练习 207
10.13.1 小结 207
10.13.2 练习 209
第11章 需求分析的团队作战 210
11.1 需求分析单兵作战合适吗 210
11.1.1 案例分析:孤军奋战的系统
分析师 210
11.1.2 需求驱动地工作 211
11.2 项目团队如何“集体”获取需求 211
11.2.1 案例分析:某模具管理系统的
需求调研工作 211
11.2.2 团队作战获取需求 212
11.2.3 项目组各角色对需求把握程度
的要求 213
11.3 需求如何传递给项目组成员 215
11.3.1 案例分析:某任务管理系统 215
11.3.2 我的失误及改进措施 215
11.3.3 如何快速分享需求 217
11.4 让客户持续参与 218
11.4.1 如何让客户签署几十页甚至上百
页的需求文档 218
11.4.2 极限编程中的客户全程参与 218
11.4.3 让客户全方位全程持续参与 219
11.5 小结与练习 220
11.5.1 小结 220
11.5.2 练习 221
第12章 说不尽的UML——UML补遗 222
12.1 认识时序图(Timing Diagram) 222
12.2 认识交互概览图(Interaction
Overview Diagram) 224
12.3 认识组合结构图(Composite
Structure Diagram) 225
12.4 UML全家福 225
12.5 认识UML工具 228
12.6 学习目标检查及学习建议 230
附录1 考勤系统的需求规格说明书 232
附录2 名词解释 255
附录3 软件知识原创基地简介 258
附录4 附带光盘内容说明 261
附录5 图表目录 264
|
內容試閱:
|
本篇“废话”其实就是本书的序。我买书很少看序,直接翻到目录,而有时候偏偏遇上一些书写了一堆前言、卷首语、作者序、译者序、推荐序等,至少要浪费掉我几十秒时间来找目录。己所不欲勿施于人,欢迎你无视本序直接看目录,当然如果你有时间也不妨看看本序说了什么“废话”。温馨提醒一下,本序有点长噢!
我为什么要写此书
10年前第一次接触UML,终于知道这是“神马”东西了!UML,Unified Modeling
Language(统一建模语言)的简称呗!当时我那十分之一桶水都不到的UML知识,除了可以在一些不明UML真相的人面前侃侃而谈外,并不能当饭吃,更加不能在实际工作中发挥什么作用。我急需阅读一些UML书籍来填满我那十分之一桶水,问题是找不到实践性强的UML书籍!
实用的UML书是找不到了,但我的UML入门导师出现了!他是一位活生生的人,是我当时的直接领导。他上任后立马在实际项目中应用UML,直接使用UML与客户沟通,通过实际的工作让我体会到UML的强大威力。10年来在实际工作中实践UML以及分享实践知识,让我形成了一套实践性强的UML知识体系。
但近年来我也遇到过一些对UML嗤之以鼻的技术高手,甚至在我主讲的UML课程中也有一些学员对UML提出了质疑。这些对UML不满的朋友,都曾经领教过某些使用了UML的文档,那些文档不知所云,而文档作者的解释显得理论有余实践不足,让他们产生不用UML反而更好的想法。
关于UML,业界存在这样的问题:
(1)缺少实践性的书籍,以及在一些理论化书籍培养出的一些UML理论家,让很多追求实效的朋友对UML产生了误解,甚至产生了“UML无用论”。
(2)一些学习UML的朋友,只掌握了UML的“形”没掌握UML的“神”。UML的“神”是指UML所体现的一种工作思路和方法,而UML的神髓只能通过实践来体验和获得。
(3)公司中只有自己一人用UML,无法与别人交流,大家不用只有自己用,自然无法在工作中用起来,也无法发挥UML的作用。
直到现在,追求实战性的UML书籍仍然不多。不是所有朋友都能像我这样幸运,能在工作中有一位UML的实践高手来指导工作,让我通过实际的工作来掌握UML。我实践UML已有10年,关于UML大部分的知识来自我的实践,希望阅读本书的读者,能感觉到好像身边有一位导师在指导一样。希望本书能引领UML的实践之风,“活用UML”才是关键!
UML可应用于软件需求方面,也可应用于软件设计方面,本书介绍的是UML在软件需求方面的最佳实践。而软件需求方面的工作,可以分为需求分析与需求管理两方面。简单地说,需求分析是指如何全面、准确地获取需求;需求管理是指需求的商务处理(如需求范围控制、需求签署、需求变更处理等)以及如何需求驱动地工作。
需求分析工作普遍存在的问题有:
(1)客户需要的是一把梯子,系统分析员了解到的是一个凳子,开发人员做出来的是一张桌子,测试人员以为是一把椅子……各种角色所理解的需求是不一致的。
(2)客户今天想要一个苹果,明天改变主意要一个香蕉,但后天突然又说还是苹果好,到最后他想要一个西瓜!客户的需求变来变去,无法准确把握客户的需求。
需求管理工作普遍存在的问题有:
(1)客户越要越多,持续增加项目的工作量,导致软件公司面临亏本的危险。
(2)客户不愿意签署需求,喜欢让你先做出来看看,然后慢慢提意见。
(3)客户的需求变来变去,不但不签署变更协议,而且还要求你免费满足这些要求。
从我的经验来看,如何快速全面准确地把握客户的真正需求,是解决以上问题的根本途径,需求分析是首要的,需求管理是辅助的,两者占成功的比例大致是7:3。
本书重点介绍的内容有:
(1)UML如何帮助我们提升需求分析能力。
(2)需求分析的最佳实践,这里既有UML的内容也有非UML的内容。
(3)需求管理的最佳实践,这里主要是非UML的内容。
UML只是我们可以利用的一种工具,解决问题才是我们的终极目标。知识以用为本,本书融合了UML、非UML、需求分析及需求管理等方面的知识,希望能帮助解决上述提到的UML业界问题、需求分析及需求管理问题。
谁适合看这本书
对UML感兴趣或者想提升软件需求分析及需求管理水平的人士,均适合阅读本书。无论你是Java技术流派、.NET技术流派还是其他技术流派,只要工作中涉及到需求分析,均适合阅读本书。
如果你是以下情况之一(当然不限于以下所列),也适合阅读本书:
(1)需求分析师(系统分析师):系统、全面、准确、深入地把握软件需求,是该类读者的主要工作职责。本书介绍了活用UML挖掘需求的各种最佳实践,能帮助该类读者提升职业水平。
(2)项目经理:中国的软件项目经理经常要兼顾高难度的需求分析和烦人的需求管理工作,本书介绍了活用UML进行需求分析以及需求管理的最佳实践,有利于提升该类读者在这方面的工作水平,让项目经理更加轻松地面对这方面的工作。
(3)产品经理:提炼产品需求,提升产品竞争力是产品经理的主要职责,而UML可帮助产品经理提升需求分析及挖掘的能力。
(4)软件设计师及程序员:虽然不直接参与需求工作,但需要“需求驱动”地工作,把握真正的需求才能做出有灵魂的软件。本书介绍的UML及需求分析知识,有助于该类读者更好地理解和思考需求,做出更好的软件。
(5)测试工程师:测试工程师往往是软件开发工作中的“弱势群体”,听命于程序员诸如“你这样测就可以了,这个你不用管”之类的“指令”!测试工程师经常得到的是“二手需求”(即由开发人员告知的需求,而不是自己亲自去向客户获取的需求),难以系统、全面、准确地理解和把握需求,而本书介绍的知识将帮助测试工程师解决这个困境。
(6)实施工程师:实施工程师似乎干的都是“体力活”,但如果没有深厚的业务知识是难以和客户沟通以及推动系统上线的。本书介绍的UML及需求分析知识,将有助于该类读者成为业务专家,提升自身价值。
(7)计算机相关专业在校大学生:学校学到的知识可能过于理论化,希望尽快接触实际项目,体验真实的需求分析工作,可能是每位大学生的愿望!本书会让该类读者体验“残酷”的软件需求分析工作,学习各种实用的UML及需求分析、需求管理知识,为将来的工作做好准备。
本书各章的“设计思想”
本书的学习目标如下:
(1)掌握UML的基本语法。
(2)掌握面向对象的分析方法。
(3)掌握应用UML进行需求分析的最佳实践。
(4)掌握软件需求管理的最佳实践。
本书的内容组织及表达经过精心设计,本书没有基础篇、进阶篇之类的划分,也不采用先理论后实例的组织方式,而是大案例贯穿全书,小案例一个接一个,直接用案例来讲解UML基本及进阶语法、UML最佳实践、需求分析及需求管理的最佳实践等。
本书讲究实效,希望读者每阅读一页都能立马有收获,能马上在工作中应用所学,而不需要看了几十页甚至半本书才搞清楚来龙去脉。
下面简述各章的“设计思想”:
第1章大话UML:期望读者可以在很短时间内,快速了解各种UML是怎样一回事,什么情况下可以使用什么图等。读者不需要看完全书,只需要看完第1章,就能对UML有全面而清晰的认识,找准学习方向。
第2章 耗尽脑汁的需求分析工作:本章揭示了需求分析的核心问题和基本道理,并介绍UML能在需求工作中发挥怎样的作用。
第3章到第9章:详细介绍类图、对象图、活动图、状态机图、顺序图、通信图、用例图、部署图、构件图、包图,每一章主要讲述一种UML图,部分章节会介绍两种或两种以上的UML图。
知识以用为本,各章以问题为引子,通过案例、练习、思考和分析等,由浅入深地逐步介绍各种实用知识。各章内容大致是这样设计的:前三分之一内容抛出问题及利用浅显的例子,让读者轻松快速地掌握相关的基本语法和知识;中间三分之一内容会进一步抛出更复杂的例子,结合案例介绍进阶知识;后面三分之一内容将问题深化,列出综合性更强或更加复杂的案例,提出更多来自现实工作的思考和解决方案。
各章的内容并不是完全独立的,越到后面的章节,越会介绍更多的UML图的综合应用,后续章节是基于前面章节的知识滚动向前的。
第10章
UML共冶一炉——考勤系统的需求分析:本章是全书最长的一章,完整地回答了如何从零开始完成需求分析工作。本章将前面学过的知识融合在一起,并且补充了大量的实用知识。
第11章 需求分析的团队作战:团队作战对于需求分析工作是相当重要的,除此以外本章介绍了一些需求管理的实用技巧。
第12章说不尽的UML——UML补遗:通常有13种UML图,前面章节已经介绍了较为常用的10种,本章介绍不太常用的3种UML图,并对全书进行总结。
本书还附带一张光盘,光盘中有两个课程视频及相应的教材:
(1)活用类图,拥抱需求:本视频内容与本书第3章内容一致,但书中的内容更加具体和深入。
(2)做一回软件设计高手:这是一个活用UML进行软件设计的课程。
本书的前身是我的课程“活用UML——需求分析高手”的教案,这是一个两天的课程,课程的全部和部分内容,我已经分享过多次。课程时间有限,本书的内容将会比该课程更全面更深入。
和讲师面对面交流是理想的学习方式,我期望读者通过阅读本书能达到甚至超过参加现场培训的效果。书比现场培训有两大优点:一是学习的速度可以随意控制;二是可以随时复习已学过的内容。但书的一大缺点就是:作者不能随时回答读者的问题!不过读者可以到www.umlonline.org网站学习和提出问题,可以和作者以及其他朋友交流。
最后我要感谢我的UML启蒙老师,是他在实际工作中言传身教地教会了我UML,让我受益匪浅,直到今天我还会经常想起他指导我时的情景!
希望本书能成为大家学习的良师益友,祝你学习愉快!
张传波
软件知识原创基地 首席专家
|
|