首页>参考读物>计算机科学与技术>综合

软件工程之全程建模实现
作者 : 青润 著
出版日期 : 2010-10-09
ISBN : 978-7-111-30790-7
定价 : 49.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 355
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书采用UML建模实现了软件工程的主要过程:需求、分析、设计、代码导出、设计模型维护等。文中对协作开发等团队开发所要求的必备知识也进行了详细的描述。本书采用了大量国内实际工程软件过程中的截图,通过图形和示例来描述工程实际中的问题和过程。这在中国自产的软件工程类书籍中是很少见的。

图书特色

十年磨剑——CSDN原软件工程大版主心血凝聚之作     
新版再现——理论与实践的密切结合

软件工程之全程建模实现
青 润 著

封面:
延续实用风格,扩展最新研究成果
直击建模过程中的用户问题,有的放矢
建模工具rose、EA和trufun组合出击,突出重点
配有讲座视频,指导性强
随书附赠丰富学习资源

封底:
本书主要介绍如何使用UML建模方法来实现软件工程的主要过程,包括需求、分析、设计、代码导出、设计模型维护等,对协作开发团队开发所要求的必备知识也进行了详细的解释。作者在书中采用国内实际软件工程中的大量截图,通过图形和示例描述工程中UML的实际应用,深入解析了软件开发中的各种难题。
书中对UML进行了深入分析和探讨,可以帮助急需学习和了解UML语言如何应用于实践的软件开发人员。
书中也针对软件项目管理者和软件企业的负责人进行了与软件项目市场相关内容的分析和软件开发心理学内容的补充,深入剖析了问题根源,答疑解惑。
本书适合有UML基础知识,并且实际参加过一些工程项目开发又对UML实际应用或者全程建模实现感兴趣的人员阅读,也适合作为软件工程培训机构的辅导材料。

本书附带光盘内容:
书中示例——便于读者亲手操作
全程建模培训视频——视频指导,建模无忧
学习指南——实现过程指导,指点迷津
讲座PPT——汇聚精华,拓展思维

前:
你是否经常遇到下列问题:
客户频繁的需求变化让你应接不暇,而你却不知道如何拒绝或者让客户看到你的辛劳;
为每日、周、月的工作报告而烦恼;
为需要撰写大量文字描述性文档而头痛欲裂;
总是面对最后只有有效代码可以交付的局面,当进入下一阶段开发后,前一阶段撰写的所有文档统统失效;
如何向老板、项目经理、客户展现你为工作付出的努力;
作为项目经理,如何构建一个同甘共苦的胶冻团队,而不是天天担心技术人员离职;
如何用UML有效实现全过程的开发。

在本书中,你将:
学习最新的软件工程领域的划分模型;
体会到UML开发的无文档化建模开发过程;
学会展现给他人你曾经为工作付出的努力;
做到项目每天都有进展和变化。

甚至,你还可以看到未来软件开发的新模式和新办法,那将是超越MDA的一种全新开发方式。我们将把工作重点放在自己最擅长的领域,集中精力实现业务分析、系统设计和架构层。当企业有了一定的积累之后,我们将不再需要进行那些简单的代码逻辑实现和不断的重复实现,只需把精力放在有挑战的代码实现上,而把基础的代码和已经实现的代码交给系统自动完成。

后:
作者简介
青 润 原名:白慧冬,1976年生人,祖籍河南。CSDN特约专家,曾任软件工程版总版主8年,是软件工程方法和技术的探索者、实践者和亲历者。他在国内提倡人性化软件开发管理和全程建模方法论,致力于推动软件开发心理学的研究。他拥有18年编程经验、14年软件协作开发经验、11年工程项目经验、9年项目管理经验,擅长产品规划和问题研究,酷爱算法,视编码为生命,是一位崇尚技术、注重实现的自由职业者。

图书前言

写作经过
  本书的撰写过程整整耗费了8年多的时间。回想起来,初次产生写本书的想法是在2002年的4月,当时笔者正在上海做一个企业ERP项目。这个项目完成后,笔者就觉得实验没有完全成功,因为笔者只是亲自验证了需求部分的实践,而没有时间来完整地验证分析、设计和编码的后续过程,与其他人配合开发的过程,以及将一个模型任务分配给其他程序员的实现过程。直到2002年的7月,笔者有机会到南京参加了一个大型信息系统实用性原型的开发,从而顺利地完成了分析、设计和编码过程的实践。同时,还完成了一本针对高级用户进行培训的开发过程教材。
  经过笔者一段时间对教程资料的整理,以及在2001年中完成的几个项目的经历,笔者最终完成了本书现有的第3章(分析设计)和第4章(代码模型一致性)内容的第一次成稿。当时命名为《基于Rose的全程建模实例》,并将前几部分发表于《程序员》杂志2002年第10期~第12期。后来因为全文较长,CSDN中国软件开发网,英文全称为China Software Developer Net(CSDN)。国内一个著名的开发者论坛网站。 就将全文直接合发于《程序员》杂志2002年合订本。
  该文发表后,笔者来到北京进行一个大型项目的需求调研工作。期间,笔者与Wonder、Ozzzzzz和Lynx几位同仁从上午10点开始一直到晚上7点多进行了一次长谈。除了讨论软件工程过程的相关内容外,笔者还和Lynx专门针对全程建模过程中从设计阶段到编码阶段可能遇到的问题进行了相当长时间的讨论,我们的观点略有不同。笔者认为:设计可以有效地转换成代码,实现软件工程的模式,实现设计与编码的分离;Lynx兄则认为:在目前条件下,设计与编码不可能分开。不过,他认可了在设计人员水平足够高的情况下,是可以实现设计与编码分离的。但是,实现这样的分离对设计人员的要求可能会过高,而在国内这种高水平的设计人员目前还十分稀缺。
  《基于Rose的全程建模实例》全文发表之后,笔者开始撰写《基于Rose的全程建模之二——Rose中的协作开发》一文。当时,只是打算把Rose中提供的协作开发方式和配置管理工具的配合使用方式全部写出来,但是,随着公司的软件在全国范围内的铺开,笔者发现自己无法将三种主要的配置管理工具的环境都搭建起来,不得不放弃了对配置管理工具部分的撰写,最终就只剩下本书第5章(协作开发)部分的内容了。
  在撰写《基于Rose的全程建模之二——Rose中的协作开发》的同时,笔者开始规划《基于Rose的全程建模之三——如何进行需求分析》部分的撰写。笔者于2002年10月开始调研中国电信集团公司的业务需求,并将调研过程中总结的方法和内容写入这篇文章中。这部分内容撰写的时间最长。在笔者第一次到拉萨出差时,借着期间等待合同小签的空闲时间完成了这部分的主要内容,回北京后完成了全部内容。最后形成了本书的第2章(需求工程)部分的内容。
  由于笔者第一篇文章的内容获得不错的反响,而第二篇文章的内容较多,CSDN的孟迎霞认为发表在杂志上不是很合适,于是建议笔者将这些内容全部写出来然后出一本书。因此,笔者在2003年3月决定将所有的文章合并起来作为一本书来考虑。
  2003年7月下旬,在完成了需求阶段的内容后,笔者开始整理全书的基础目录部分,于7月底成功地完成了全书的第一次整合。
  凭着笔者在电信集团公司不错的人缘关系,在项目合同基本全部签订之后,笔者开始在集团公司负责实施、处理5个开发商之间的系统接口和与集团系统的上报下发关系,同时开始规划系统第二个版本(BI版本)的功能。笔者在电信集团公司停留的前两个月,在空闲时间不断地对全书的内容进行修订,经过对书稿的9次打印稿的纸面修改,最终在9月初完成了对全书的一次整体修订,并向出版社交付了全书初稿。
  本书在2004年5月的第1版印刷后,笔者从电信四川设计院辞职,此后分别在一家外企和中科院自动化所工作了几年,期间独立对外提供技术咨询和培训服务。其中2006年元旦的培训中,很多朋友提供了他们的建议和考虑,尤其是来自山东的朋友满桂平自从2004年7月看过我的书后在后续的几年中不断给笔者提供了他的实践信息和补充材料。
  第2版中融合了2004年~2010年初笔者所总结的除了已经采集了数据还没有进行文章撰写以外的几乎全部方法。其中包括:软件开发心理学的5章的内容,其中2章是首次对外发布;软件组织方法论的4章的内容,其中实用知识库体系构建一章也是首次发布;在技巧和相关文档一章中,删除了已经过时的对Rational在IBM中的顾虑、关于Rose与Together的2章内容,补充了项目计划如何做、评审如何做、配置管理工具如何使用以及Use Case阐述模型化问题及延伸的内容,同时给读者提供了一个最简化开发过程模型的建议——因为在培训和咨询中发现很多企业和院校都有人提到过,不知道什么样的过程是最简化的,哪些是软件开发中可以省略的,哪些是必不可少的。
  同时,在这个版本的撰写过程中,还单独增加了软件工程概论一章,以期从整个软件工程的整体层面进行细分,阐述在新技术和环境下软件工程自身形态与过去的区别和变化过程,给读者一个关于软件工程的整体印象,同时对现有的传统软件工程体系进行了一系列的反思并建议了一个初步的针对整个软件工程体系的划分方式。
  针对第1版中已经存在的需求工程、分析设计、代码模型一致性和协作开发4个核心章都进行了修订,尤其是对需求工程进行了较大篇幅的修订,将需求代码间的映射关系进行了着重的补充,这也是这几年针对整个方法论中的最重要的补充之一。
  本书第2版的积累长达6年多的时间,实际整合和撰写时间长达一年半(可以参看本书修订历史记录信息),但是其中肯定还存在很多不足之处,也希望这些年从事实践全程建模方法论的朋友们能够不吝赐教,以便于后续的补充和修订,笔者希望下次本书修订再版的时候,您也会出现在感谢名单中或者出现在作者一栏中。
本书特色
  本书中所有的示例都来自2001年初~2009年间笔者经历的、采用UML进行建模支持的3个大中型工程软件项目和近10个中小型工程软件项目。通过十多年来实际工程项目的经验总结,本书采用UML建模方式进行软件的开发,覆盖了软件工程从需求开始,经过分析(概要设计)、设计(详细设计)、编码的导出,以及设计模型的维护、协作开发等所有主要阶段的内容,本书还包括最近4~5年内参加培训和咨询的学员们提供的各种改进建议和方法。
  本书中的所有例子都源于国内实际的软件工程项目,因此具有很高的现实意义和参考价值。书中的示例和操作技巧,大部分都是第一次公开,其中小部分内容曾经在CSDN的软件工程版块出现过,但是在CSDN上公开的部分都无法张贴示例图,所以,无法形象地描述清楚,本书的撰写也为此提供了一次完整解释的机会。
  本书中关于软件开发方法论以外的大部分内容都曾以对话或者单独成文的方式分别发表于《程序员》杂志、IT168/ITPUB技术社区,最后都曾整理发布于青润的两个主要blog空间,分别是:
  青润心情http://blogcsdnnet/qingrun
  青润风度http://spaceitpubnet/257598/
  青润的其他blog空间都不是主要空间,内容更新会有所不同,而上述两个空间将同步更新所有最新内容,2008年4月以前的内容基本上都在青润心情发布。
  由于篇幅所限,本书中没有对UML的基础知识和相关符号进行更多的解释和说明。关于这部分内容,希望读者能主动学习一些UML的基本知识后再来学习本书中的内容。
本书的组织结构
  第1章(软件工程概论)从软件工程的总体上讨论软件工程知识的细分问题,其中涉及软件工程方法、软件工程过程,以及软件工程理论的发展和现状。
  第2章(需求工程)详细地阐述实现目标所需要进行的前期需求工程的准备,以及需求调研过程中经常遇到和需要注意的一些问题。需求工程的内容可以协助开发人员顺利完成需求调研工作,让用户和开发人员都能得到一个满意的结果。
  第3章(分析设计)和第4章(代码模型一致性),详细阐述笔者所持的关于设计过程与编码实施过程可以实现完全分离开发的观点。
  第5章(协作开发)介绍了一些关于团队开发过程中涉及的内容。如协作开发步骤、多人协作开发的方式和文档模型结合等第1版中已经发布过的内容。
  第6章(软件组织方法论)是本书的一个尝试性的全新扩展,包括了自2005年起发布过的交换编程和可度量绩效管理模型等内容,还有从未发布过的实用性知识库体系构建方面的知识,这些都是软件团队组织形态方面的内容,为整个软件工程理论提供了支撑。
  第7章(软件开发中的心态对抗问题研究),如果提升到一定层面那就是软件开发心理学问题。这一章可以看做是软件开发心理学部分的雏形篇章。由于作者本人的经历和精力有限,在这个方向上的研究还比较薄弱,目前只能完成这仅有的5个方面的分析,还有至少两类角色的心态研究内容正处于撰写中,已经完成了市场人员心态和游戏玩家心态的数据积累,但是还不能完成这方面全面的文字阐述。
  第8章(技巧和相关文档)是为本书中实现团队开发所需的一些必备资料或技巧。这些文档和资料将协助你和团队实现更快速更高效的建模开发过程。
致谢
  本书撰写过程中,尤其是在第1版的撰写过程中,很多朋友对笔者提供了无私的帮助和支持。书中的很多内容也来源于和这些朋友的对话、讨论、争执,甚至部分内容就是笔者偷师学艺所得。本不敢藏私,但在第1版出版的过程中由于过度仓促,没有能够在书中对这些朋友表示感谢,在这里一并对下面的朋友表示感谢:
  感谢在托普工作期间,与笔者一同为了项目而拼命工作的成都中央研究院和上海研究院的朋友们。
  感谢在中国电信集团网络发展部工作的朋友和网发部的各位领导,以及曾经在2002年~2004年与笔者一同借调到中国电信集团网络发展部工作的各省电信公司以及几大电信设计院的朋友们。这里就不一一提名致谢了。
  感谢2001年~2003年在CSDN软工/管理板块上与笔者讨论的朋友们,他们是:吴晓军(Wonder)、马仲男(Mach)、刘寅虓(Lynx)、杨威(Ltp3)、刘新生(Ozzzzzz)、周永丽(Rose)、周海峰等。还要感谢孟岩、蒋涛、孟迎霞等CSDN的老朋友们。如果不是孟岩兄2004年初推心置腹的一番话,估计青润这辈子都不会写书了。
  另外,还要感谢2005年后和青润合作的曾在中科院自动化所一起工作和学习的朋友们。
  最后,感谢我的妻子朱丹女士在青润没有什么收入的几年中给我的工作和理想的默默支持和奉献。

封底文字

你是否经常遇到下列问题:
用户频繁的需求变化是否让你应接不暇,你却总是不知道如何拒绝或者让用户看到你的辛劳;
你是否在为每日、周、月的工作报告而烦恼;
你是否无奈地需要撰写大量文字描述的文档而头痛欲裂;
你是否总是面对着最后只有有效代码可以交付的局面,每次进入下一阶段开发后,前一阶段撰写的所有文档统统失效;
如何让你的老板、项目经理、客户知道你为这项工作付出的努力;
作为项目经理,如何才能构建一个能够同甘共苦的胶冻团队,而不是天天担心技术人员的离职问题;
如何通过UML有效实现全过程的开发。

在本书中,你将:
看到最新的软件工程领域的划分模型;
体会到UML开发的无文档的建模开发过程;
让任何人知道你曾经为这个工作付出了多少努力和汗水;
看到项目一天天的进展和变化;

甚至,你还可以看到未来软件开发的新模式和新办法,那将是超越mda的一种全新开发方式,我们将把自己的能力放在自己最擅长的领域,集中精力在业务分析、系统设计和架构层的实现;企业有了一定的积累之后,我们将不需要进行那些简单的代码逻辑实现和不断的重复实现,把精力放在有挑战的代码实现上,把基础的代码和已经做过的代码交给系统自动完成吧!

作者简介

青润 著:青润简介原名:白慧冬,1976年生人,祖籍河南。CSDN特约专家、曾任软件工程版总版主8年,一个在不断摸索实践的国内软件工程方法和技术的亲历者。在国内提倡人性化软件开发管理和全程建模方法论,推动软件开发心理学的研究。1986年开始学习编程,十八年编程经验,十四年软件协作开发经验、十一年工程项目经验、九年项目管理经验。擅长产品规划和问题研究,酷爱算法,视编码为生命,是一个崇尚技术,注重实现的自由职业者。

图书目录

前言
第1章软件工程概论/
11概述/
111全程建模下的软件工程分类/
112传统软件工程分类/
113SWBOOK2004中软件工程体系划分/
12软件工程过程/
121软件工程管理过程/
122软件工程实施过程/
13软件工程方法/
131软件开发方法论/
132软件组织方法论/
第2章需求工程/
21需求的定义/
22需求调研/
221调研中存在的问题/
222过去和现在的对比/
223新现象的分析/
224软件外包与编码/
23如何和用户交流/
231交流四要点/
232什么是用户/
233参与人员建议/
234输入输出/
235UML元素/
236常见问题/
24业务建模/
241目的/
242基本操作步骤/
243建议/
244参与人员建议/
245输入输出/
246UML元素/
247常见问题/
248示例说明/
25Use Case模型/
251Use Case图的绘制/
252如何查找Use Case和Actor/
253Use Case的处理/
254如何分包/
255参与人员建议/
256输入输出/
257UML元素/
258常见问题/
259楚凡UML工具模型示例/
26Use Case阐述/
261目的/
262要求/
263Use Case阐述的格式/
264参与人员建议/
265输入输出/
266UML元素/
267例子/
268常见问题/
27交互建模/
271目的/
272要求/
273例子/
274参与人员建议/
275输入输出/
276UML元素/
277常见问题/
28界面设计/
281什么是界面设计/
282界面设计的原则/
283RUP中的相关描述/
284界面设计的基本要求/
285界面设计的步骤/
286界面设计的定位/
287界面设计的时间特点/
288界面设计与原型法/
289需要注意的问题/
2810常见问题分析/
2811参与人员建议/
2812输入输出/
2813UML元素/
第3章分析设计/
31概述/
311原因/
312两个项目简介/
313初步结论/
32分析设计的定义/
321什么是分析/
322什么是设计/
33分析模型/
331模式的选择与应用/
332构建分析类/
333分析模型时序图/
334参与人员建议/
335输入输出/
336UML元素/
337常见问题/
338楚凡UML工具模型示例/
34设计模型/
341设计模式的选择与应用/
342设计类的构建/
343设计模型时序图/
344一个示例/
345参与人员建议/
346输入输出/
347UML元素/
348楚凡UML工具模型示例/
第4章代码模型一致性/
41概述/
42生成框架代码/
421类的语法检查/
422ClassPath的设置/
423导出代码/
43维护设计模型/
431目的/
432维护方式/
433维护步骤/
44反工/
441作用/
442操作步骤/
45参与人员建议/
451输入输出/
452UML元素/
46附加说明/
461需求变化时的策略/
462需要注意的问题/
第5章协作开发/
51协作开发过程/
511准备工作/
512分包/
513合并分包/
514分包特殊操作/
52多人协作开发/
521第一种方法/
522第二种方法/
523一个特殊情况/
53文档模型结合/
531概述/
532文档模型的结合/
第6章软件组织方法论/
61结对编程/
611产生/
612结对编程形成/
613结对编程的变形模式/
62交换编程/
621引言/
622相关工作/
623方法定义/
624优劣分析/
625试验结果/
626小结/
63可度量绩效管理模型/
631引言/
632团队组成与管理划分/
633绩效管理办法基础/
634绩效管理实现模型/
635薪资收入组成模型/
636绩效管理算法模型/
637小结/
64实用性知识库体系构建/
641基本原则/
642内容分类/
643企业基本制度和新员工学习材料库/
644技术分类文档和学习材料库/
645企业代码库/
646行业客户资料和业务资料库/
647企业知识库管理创建规则/
648小结/
第7章软件开发中的心态对抗问题研究/
71项目管理者心态问题研究/
711引言/
712角色定位/
713心态对抗解析/
714小结/
72高层管理者心态问题研究/
721引言/
722角色定位/
723心态对抗解析/
724小结/
73管理中的权力使用分析/
731管理中的放权与分权/
732管理中的权力限制/
733项目管理者如何与组员合作/
734一些常见问题/
74项目经理分类/
741项目管理之传统/
742强势项目经理/
743弱势项目经理/
744题外话/
745小结/
75论本本主义/
7512009年的几件事情/
752引发的思考/
753产品、技术、标准/
754软件开发本本主义/
755最后的分析/
第8章技巧和相关文档/
81cat包的修改/
811示例环境/
812操作步骤/
813结果/
82ClearCase安装指南/
821概述/
822安装前的准备/
823配置安装/
824关于License的申请安装/
83关于CMM的一些观点/
831SQA和SQC/
832CMM,评估、认证/
833只对组织中的某一个部门进行评估/
834评估是反复不断的/
835关于CMM过级时间的个人观点/
84什么是系统分析/
841定义/
842现实状况/
843一些建议/
85项目计划如何做/
851什么是计划/
852评价你们的计划状态/
853项目中的计划/
854计划的生命周期/
855计划中的常见错误/
856小结/
86评审如何做/
861什么是评审/
862对评审状态的评价/
863评审过程/
864评审常见错误/
865小结/
87配置管理工具如何用/
871配置管理工具的使用方法/
872小结/
88软件人员的分化/
881人员分化原因/
882需求人员的分离/
883设计人员的分离/
884编码人员的分离/
885关于测试人员/
886小结/
89Use Case阐述模型化问题及延伸/
810最简化开发过程/
附录A全程建模方法论/
附录B幼儿教育系统/
附录C全程建模培训介绍/
附录D作者随笔一/
附录E作者随笔二——毕业十年记/
附录F文档信息和文档修订历史/
后记/
参考文献/

教学资源推荐
作者: 孙一林 彭波 等编著
作者: 张秉森 孔倩 张晨策 编著
作者: (美) Patrick Juola 著
作者: 主编 黄静 参编 方桦 李玫 黄秋颖 周鹏
参考读物推荐
作者: [美] 托马兹·卓巴斯(Tomasz Drabas)著
作者: 软考新大纲研究组编著