说明:
《火球——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大战需求分析》作者