《火球——UML大战需求分析》(0.1)——开篇废话
说明:
《火球——UML大战需求分析》是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张。欢迎你按文章的序号顺序阅读,谢谢!本书已经在各大网上书城及书店销售,欢迎你的关注。
------------------------------------------------------------------------------------------------------------------------------
开篇废话
摘要:本篇“废话”其实就是本书的序。我买书很少看序,直接翻到目录,而有时候偏偏遇上一些书写了一堆前言、卷首语、作者序、译者序、推荐序等,至少要浪费掉我几十秒时间来找目录。己所不欲勿施于人,欢迎你无视本序直接看目录,当然如果你有时间也不妨看看本序说了什么“废话”。温馨提醒一下,本序有点长噢!
我为什么要写此书?
10年前第一次接触UML,终于知道这是“神马”东西了!UML,Unified Modeling Language(统一建模语言)的简称呗!当时我那十分之一桶水都不到的UML知识,除了可以在一些不明UML真相的人面前吹吹水外,并不能当饭吃,更加不能在实际工作中发挥什么作用。我急需阅读一些UML书籍来填满我那十分之一桶水,问题是找不到实践性强的UML书籍!
实用的UML书是找不到了,但我的UML入门导师出现了!他是一位活生生的人,是我当时的直接领导。他上任后立马在实际项目中应用UML,直接使用UML与客户沟通,通过实际的工作让我体会到UML的强大威力,掌握了UML的实用技巧。10年来在实际工作中实践UML以及分享实践知识,让我形成了一套实践性强的UML知识体系。
我对UML的强大作用是非常认可的,但近年来我也遇到过一些对UML嗤之以鼻的技术高手,甚至在我主讲的UML课程中也有一些学员对UML提出了质疑。这些对UML不满的朋友,都曾经领教过某些使用了UML的文档,那些文档不知所云,而文档作者的解释显得理论有余实践不足,让他们产生不用UML反而更好的想法。
关于UML,业界存在这样的问题:
1. 缺少实践性的书籍,以及在一些理论化UML书籍培养出的一些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技术流派还是其他技术流派,只要工作中涉及到需求分析或者对UML感兴趣的,均适合阅读本书。
如果你是以下情况之一(当然不限于以下所列),你适合阅读本书:
1. 需求分析师(系统分析师):系统、全面、准确、深入地把握软件需求,是该类读者主要工作职责。本书介绍了活用UML挖掘需求的各种最佳实践,能帮助该类读者提升职业水平。
2. 项目经理:在中国的软件项目经理,经常要兼顾高难度的需求分析和烦人的需求管理工作,本书介绍了活用UML进行需求分析以及需求管理的最佳实践,有利于提升该类读者在这方面的工作水平,让项目经理更加轻松地面对这方面的工作。
3. 产品经理:提炼产品需求,提升产品竞争力是产品经理的主要职责,而UML可帮助产品经理提升需求分析及挖掘的能力。
4. 软件设计师及程序员:虽然不直接参与需求工作,但需要“需求驱动”地工作,把握真正的需求才能做出有灵魂的软件。本书介绍的UML及需求分析知识,有助于该类读者更好地理解和思考需求,做出更好的软件。
5. 测试工程师:测试工程师是往往是软件开发工作中的“弱势群体”,往往听命于程序员“你这样测就可以了,这个你不用管”!测试工程师经常得到的是“二手需求”(即由开发人员告知的需求,而不是自己亲自去向客户获取的需求),难以系统、全面、准确地理解和把握需求,而本书介绍的知识将帮助测试工程解决这个困境。
6. 实施工程师:实施工程师似乎干的都是“体力活”,但如果没有深厚的业务知识是难以和客户沟通和推动系统上线的。本书介绍的UML及需求分析知识,将有助于该类读者成为业务专家,提升自身价值。
7. 在校计算机相关专业大学生:学校中学到的知识可能过于理论化,希望尽快接触实际项目,体验真实的需求分析工作,可能是每位大学生的愿望!本书会让该类读者体验“残酷”的软件需求分析工作,学习各种实用的UML及需求分析、需求管理知识,为将来工作做好准备。
本书各章的“设计思想”
本书的学习目标如下:
1. 掌握UML的基本语法。
2. 掌握面向对象的分析方法。
3. 掌握应用UML进行需求分析的最佳实践。
4. 掌握软件需求管理的最佳实践。
本书的内容组织及表达经过精细设计,本书没有基础篇、进阶篇之类的划分,也不采用先理论后实例的组织方式,而是大案例贯穿整书,而小案例一个接一个,直接用案例来讲解UML基本及进阶语法、UML最佳实践、需求分析及需求管理的最佳实践等。
本书讲究实效,希望读者每阅读一页都能立马有收获,能马上在工作中应用所学,而不需要看了几十页甚至半本书才搞清楚来龙去脉。
下面简述各章的“设计思想”:
第 1 章大话UML:期望读者可以在很短时间内,快速了解各种UML是怎样一回事,什么情况下可以使用什么图等。读者不需要看完全书,只需要看完第一章,就能对UML有全面而清晰的认识,找准学习方向。
第 2 章耗尽脑汁的需求分析工作:本章揭示了需求分析的核心问题和基本道理,并介绍UML能在需求工作中发挥怎样的作用。
第 3 章到第 9 章:详细介绍了类图、对象图、活动图、状态机图、顺序图、用例图、部署图、构件图、包图,每一章主要讲述一种UML图,部分章节会介绍两种或以上的UML图。
知识以用为本,各章以问题为引子,通过案例、练习、思考和分析等,由浅入深地逐步介绍各种实用知识。各章内容大致是这样设计的:前三分一内容抛出问题及利用显浅的例子,让读者轻松快速地掌握相关的基本语法和知识;中间三分一内容会进一步抛出更复杂的例子,结合案例介绍进阶知识;后面三分一内容将问题深化,列出综合性更强或更加复杂的案例,提出更多来自现实工作的思考和解决方案。
各章的内容并不是完全独立的,越到后面的章节,越会介绍更多的UML图的综合应用,后续章节是基于前面章节的知识滚动向前的。
第 10 章UML共冶一炉——考勤系统的需求分析:本章是全书最长的一章,完整地回答了如何从零开始完成需求分析工作的问题。本章将前面学过的知识拧在一起,并且补充了大量的实用知识。
第 11 章需求分析的团队作战:团队作战对于需求分析工作是相当重要的,除此以外本章介绍了一些需求管理的实用技巧。
第 12 章说不尽的UML——UML补遗:一共有13种UML图,前面章节已经介绍了较为常用的10种,而本章介绍不太常用的三种UML图,并对全书进行了总结。
本书还附带一张光盘,光盘中有两个课程视频及相应的教材:
1. 活用类图,拥抱需求:本视频内容与本书第3章内容一致,但书中的内容更加具体和深入。
2. 做一回软件设计高手:这是一个活用UML进行软件设计的课程。
以上两个课程均由我讲授。
本书的前身是我的课程“活用UML——需求分析高手”,这是一个两天的课程,课程的全部和部分内容,我已经分享过多次。课程的上课时间有限,本书的内容将会比该课程更多更深入。
和讲师面对面交流是理想的学习方式,我期望读者通过阅读本书能达到甚至超过参加现场培训的效果。书比现场培训有两大优点:一是学习的速度你可以随意控制;二是你可以随时复习已学过的内容。但书的一大缺点就是:作者不能随时回答读者的问题!不过你可以到www.umlonline.org网站学习和提出问题,可以和作者以及其他朋友交流。
最后我要感谢我的UML启蒙老师,是他在实际工作中言传身地教会了我UML,让我受益匪浅,直到今天我还会经常想起他指导我时的情景!
希望本书能成为大家学习的良师益友,祝你学习愉快!
请看下一节……
作者:张传波
创新工场创业课堂讲师
华为某团队高级顾问
《火球——UML大战需求分析》作者
《火球——UML大战需求分析》(0.1)——开篇废话的更多相关文章
- 火球-UML大战需求分析(体验版3.0.2).pdf
火球-UML大战需求分析(体验版3.0.2).pdf http://files.cnblogs.com/files/happlyonline/%E7%81%AB%E7%90%83-UML%E5%A4% ...
- 《火球——UML大战需求分析》(0.2)——目录
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- 《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram)
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- 阅读笔记 1 火球 UML大战需求分析
伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本 <火球 UML大战需求分析>,首先 ...
- 《火球——UML大战需求分析》(第1章 大话UML)——1.2 结构型的UML(Structure Diagram)
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- 《火球——UML大战需求分析》(第1章 大话UML)——1.4 如何学好UML?
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- 《火球——UML大战需求分析》(第3章 分析业务模型-类图)——3.8 小结与练习
摘要:类图(Class Diagram)可能是用得最多的一种UML图.类图的基本语法并不复杂,你可能最多学习两三天就可以掌握,然而要真正做到活用类图则可能需要几年的功力.类图是锻炼面向对象分析(OOA ...
- 《火球——UML大战需求分析》(第1章 大话UML)——1.5 小结和练习
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
- 《火球——UML大战需求分析》(第2章 耗尽脑汁的需求分析工作)——2.1 需求分析面面观
说明: <火球——UML大战需求分析>是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张.欢迎你按文章的序号顺序阅读,谢 ...
随机推荐
- 学习python 一些错误记录
1. TypeError: 'unicode' object is not callable当遇到这样的错误时候, 一般是属性当做方法调用了,比如,selenium 脚本, driver.title ...
- 幻世(OurDream)2D图形引擎大更新——炫丽粒子特效强势回归!
本次更新终于让各位期待已久的绚丽粒子系统特效强势回归到幻世当中了.凭借新引擎强大而又高效的绘图,新的粒子系统将比旧有版本(原Ycnd 2D)在性能上有极大幅度的增强,增幅超过十倍! 更强的性能!更好的 ...
- Esxi主机虚拟机迁移注意事项
1. Esxi主机上的虚拟机迁移只能是低----->高,或版本一样的才能进行迁移 [如Esxi5.1---->Esxi5.5]ok, 而Esxi5.5----->Esxi5.1 no ...
- SQL Server 日志截断
截断事务日志是逻辑操作,只是把日志的一部分标记为‘不再需要’所以可以重用这个空间,截断不是物理操作,不会减少磁盘上文件的大小, 要减小物理大小必定要进行收缩. ----------- 有时就算是备份都 ...
- 自写的LastPos,寻找字符串里的最后一个字符,RTL里没有提供这个函数——Delphi的String下标是从1开始的
已经好几次了,没有这个函数还是感觉很不方便,所以自己写了一个: function LastPos(strFind :string; ch: Char): integer; var i, n: inte ...
- POJ 2686 Traveling by Stagecoach 壮压DP
大意是有一个人从某个城市要到另一个城市(点数<=30) 然后有n个马车票,相邻的两个城市走的话要消耗掉一个马车票. 花费的时间呢,是马车票上有个速率值,用边/速率就是花的时间. 问最后这个人花费 ...
- 运行预构建 Linux 映像的 Windows Azure 虚拟机中的交换空间 – 第 1 部分
本文章由 Azure CAT 团队的 Piyush Ranjan (MSFT) 撰写. 随着基础结构服务(虚拟机和虚拟网络)近期在 Windows Azure 上正式发布,越来越多的企业工作负荷正在向 ...
- NYOJ306 走迷宫(dfs+二分搜索)
题目描写叙述 http://acm.nyist.net/JudgeOnline/problem.php?pid=306 Dr.Kong设计的机器人卡多非常爱玩.它经常偷偷跑出实验室,在某个游乐场玩之不 ...
- IOS系列——NStimer
Timer经常使用的一些东西 1. 初始化 timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@select ...
- Date Time Picker控件
Step1 在界面中添加一个Date Time Picker控件,ID为:IDC_DATETIMEPICKER1 Step2 该控件关联变量 CDateTimeCtrl m_dateCtrl; Ste ...