不是三维

出版社:何小朝 电子工业出版社 (2010-04出版)
出版日期:2010-4
ISBN:9787121104848
作者:何小朝
页数:290页

章节摘录

构方面较重要的发展成果之一。这里,我们说多层体系,是指单应用服务节点的多层结构,SOA或WebService所指的多服务节点的结构不算在内。回想最初进行软件系统的设计与开发时,除了考虑模块划分与接口问题之外,主要解决的是本行业领域内业务问题的方法或算法,很少有人考虑软件系统的架构与设计模式的问题。抽象并提出多层体系结构主要是为了解决数据库技术、前台展现技术及软件不断普及后出现的以下几个问题:·我们提供的应用服务需要应付大量的用户,需要能同时响应更多用户的需求,即大家常讲的好的可伸缩性:·我们提供的应用服务希望核心数据不能被别人直接访问;·我们提供的应用服务希望能将用户界面、业务逻辑与数据访问等在逻辑甚至物理上分开处理。于是,软件结构设计者们抽象出了多层体系结构作为标准的设计模式来解决上述问题。其主要思想是,将具有共同特征的部分分离成专门的层,各层之间通过标准协议来通信或交流。现在最普及的多层结构主要指包括用户界面层(展现层),业务逻辑层与数据访问层的三层结构,其中以MVC最为流行。其他还有四层、五层等实际也没有脱离这个范畴,或根据特殊的需求增加了专门处理部分(层)而已。在实际的工程中,绝大多数应用系统其实都只简单采用了胖客户端c/s结构与瘦客户端的B/s结构,国内的情况是,如J2:EE体系中重量级的EJB和JMS这样的技术,除了少数大型应用领域有使用以外,多数软件开发很少涉及。

前言

20世纪初,伟大的物理学家爱因斯坦提出了具有划时代意义的相对论,其全新的时空理念直到今天都很难被人们以常规的形象思维所理解,而爱因斯坦认为,人们不能正确理解世界本质的根本原因是由于人类的理解能力无法超脱三维空间范围的限制,正如我们无法想象在四维或多维空间的一个球体的形状一样。现代软件行业的概念、方法、工具出现速度之快是非常惊人的,几乎所有的同行每天都在不停地学习新的东西。笔者相信其中有相当一部分人是期望能从新的方法中找到解决该行业多年需要解决的众多难题的好途径,如设计的规范化问题,管理的有效性问题,开发的重复性问题等。然而,笔者也相信,当我的同行们怀着期待的心情对这些新的理论与方法不断学习与尝试后,他们发现——虽然大量可视化开发工具与众多应用支撑环境的出现,使现代应用软件开发者基本摆脱了过去那种将最大精力放在界面、通信及大量数据管理的状态,而能集中力量开发自己的核心业务内容;然而,往往在一个具体的项目或具体的企业中,又有众多的原本令人兴奋不已的新方法、新理论,甚至是那些成功者的宝贵经验,却是那样难以真正起到预期的作用,甚至在有些情况下毫无作用。因此,这些可能主要存在于新的设计分析方法与管理方法和具体应用结合等方面。软件开发工具不断更新,软件工程师们现在可以很轻松地构建复杂的图形用户界面(多年以前,图形用户界面是软件开发中工作量最大的部分之一),很方便地对数据进行管理,进行调试;同时,一些新软件开发支撑环境与体系架构的出现,如C/S结构、J2EE、DCOM、CORBA等,一方面使程序员可以摆脱RPC、Socket等底层的方法,轻松地开发网络化的信息系统;另一方面使复杂系统的构建效率与质量大大提高。近年来,软件行业在这些方面的发展的确产生了巨大的成效,并为大多数人所接受。然而,软件行业在其他方面的革新内容对软件业的实际贡献,以及在软件管理、设计、开发人员中的普及与实用程度,都远不如开发工具与环境的新内容那么明显与直接。软件分析设计方法的革新主要体现在面向对象的技术与思想,数据与方法的封装、继承,多态及复用,使设计师们可以更加形象地用软件来描述客观事物及其相互关系与作用,这应该是一种非常伟大的创造,也在软件行业起到巨大的推动作用;然而,另外,虽然面向对象技术与思想的优势已为同行们所公认,但在实际工程中,除了大量使用面向对象的开发工具与语言以外,真正采用面向对象的思想来分析、设计系统、描述设计结果以完成实际项目的做法却远不如想象中那么普及。这是因为某些工程太简单而没有必要用到它,还是因为它太难以实用化,或者还有其他什么原因呢?软件工程理论不断在构造新的理想:软件的生产能像生产一部汽车,生产一台电视机或盖一座大楼一样,有标准的零件,标准的结构,标准的流程,标准的生产线,标准的组装……理论家们充满了创造性的构想与信心,而大批一线的软件工程师们却对这种理想产生怀疑。软件企业管理模式的革新也是大部分企业迫切的需求,先进的CMM出现了,其理论不断被人们所了解,大家都对那些已经获得某种CMM级别的企业产生了深切的崇拜与向往,并异口同声的宣布,“我们也要做!”但我们同时又发现,大量的软件企业在把CMM与自己企业的实际情况有机结合的道路上却遇到了令人头痛的困难与疑惑,这种困难与疑惑好像不仅仅是为接受新机制而“痛一时,利一生”那么简单。问题出在哪里呢?为什么在软件工业化的道路上要达到像电子、机械产品的程度会那么困难?多年来,作者也一直思考这个问题。本书认为,“对一件事物解决方法的制定要基于正确了解该事物的本质。”那么,可能软件这个事物与传统其他产品的特征还是有着巨大的区别,这可能不只是量的区别,而是质的区别。或许我们应该从这个角度重新审视一下过去采用与传统工业化类比的思想所得来的灵感、理想与方法。因此,本书从软件与三维实物的本质性不同出发表研究软件生产方法论,指出软件的本质是不能实现工业化生产的内在原因,提出了全新的先进软件生产模式与方法——代码驱动生产的概念,并称这将是适合软件本质的新途径。这里,要首先感谢家人的支持!感谢长年在日本工作的好友郭果明与施文彪为我提供的一些信息,同时,电子工业出版社的袁金敏编辑和顾慧芳编辑也为本书的出版提出了许多宝贵的建议,在此一并衷心感谢!

媒体关注与评论

“想象力比知识重要,因为知识是有限的,而想 象力概括着世界上的一切。”  ——阿尔伯特·爱因斯坦(Albert Einstein)“想想我们计算机程序的糟糕现状吧,很显然,软件开发仍是黑箱艺术,还不能称之为工程学科。”  ——前美国总统,Bill Clinton“好代码本身就是最好的文档。”  ——编程大师Steve McConnell《代码大全》的作者“代码自动生成就跟喝酒一样,适度就好。”  ——AleXLowe,编程大师“伟大的车工值得给他几倍于普通车工的薪水。而一个伟大的软件代码作家,其价值则要等同于一个普通软件写手的价值的1万倍。”  ——比尔盖茨“在一个有10个人的软件项目团队里,也许3个人生产出来的不合格品就足以让他们成为净户出为负的生产者。”  ——《软件质量保证》一书的作者,Gordon Schulmeyer

后记

对于本书的论述,各位读者无论是支持也好,怀疑也好,或是坚决地拍砖也好,笔者总算是将自己真实的观点较为清楚全面的表达了出来,算是抛砖引玉吧。笔者在软件行业摸爬滚打了这么多年,见到过这样那样的现象,产生过这样那样的看法,但其中很多都是自己切身的体会和对软件业的深入思考,如有不当之处,敬请专家、学者和广大读者批评和指正。细心的读者可以发现,笔者在对现有一些思想提出不同看法之后,在第10章虽然自己提出了全新的理论与相应的方法论,但有很多内容还需要深入、细化并继续研究与实践。无论如何,笔者认为,在本书第10章提出的新一代先进软件生产技术方法论的理论原型,有相当的价值,很值得我们思考并继续研究、实践并细化。笔者目前正在进行的,就是这样的工作。

内容概要

何小朝,工学博士,北京大学计算机系博士后,第一届中国软件业十大杰出青年候选人,第十六届世界计算机大会电子商务大会数据管理分会主席,中国青年科技工作者协会第二届会员,中国航空史研究会会员,中小企业创新基金评审专家。作者自1992年起从事软件开发与管理工作,并自2002年起,在北美从事软件系统分析与设计近七年之久。迄今为止,共负责、参与国内外大中型软件项目20多项,涉及网络与分布式系统、数据管理,嵌入式系统及工业设计与生产等领域,历任北京北大青乌信息工程有限责任公司总工程师,北京青鸟华光技术管理部部长、总工程师,青鸟天桥公安事业部副总经理,大唐微电子高级项目经理,北京安德尔国际软件有限公司总经理、董事,北美PPMC技术总监,北京先进数通科技有限公司BI事业部首席架构师等职。在国内外发表科技论文20余篇,多篇获奖,并被美国《工程索引》检索6篇。

书籍目录

第一部分 现状与困惑第1章 困难与困惑1.1 软件项目实施的困难1.1.1 漫长的维护期1.1.2 什么时候开始编码——生产过程控制.1.1.3 开发周期的精确估算1.1.4 需求何时确定1.1.5 令人头痛的边缘问题1.1.6 鲁棒性1.2 飞速发展?——困惑第2章 技术方法的抉择——软件设计师的困惑2.1 引言2.2 软件设计师的理想2.2.1 什么是软件设计师2.2.2 技术人员的理想2.3 似有曙光——方法论2.3.1 技术进步带来希望2.3.2 软件技术方法综述2.4 现实2.4.1 新技术手段的使用状况2.4.2 困难没有得到本质解决2.4.3 许多人这样看2.4.4 痛一时,利一生2.5 疑惑——方法的抉择2.6 方法到底解决了什么2.6.1 通用函数库、类库与框架的复用2.6.2 分层体系使生产集中于应用本身2.6.3 面向对象有机描述客观目标2.6.4 “平台无关”是以“时间换空间”2.6.5 其他本质探讨2.7 常用有效技术方法简介2.7.1 分析与设计的组织2.7.2 开发环境的选择2.7.3 编程2.7.4 文档的生成2.7.5 其他环节2.8 本章小结第3章 如何有效地服务——技术管理者的烦恼3.1 软件项目管理现状3.1.1 管理过多依赖个人经验3.1.2 管理规则很不成熟3.1.3 管理组与开发组不协调3.1.4 无通用规则可循,各有特色3.1.5 新方法的现实情况3.2 软件项目管理的几个具体问题3.2.1 文档的管理问题3.2.2 设计文档的作用到底是什么3.2.3 过程控制问题3.2.4 测试的问题3.2.5 需求制定的问题3.3 管理者的希望与困惑——CMM3.3.1 CMM简介3.3.2 PSP/TSP3.3.3 CMM应用现状3.3.4 CMM的困惑3.4 究竟怎么回事3.5 本章小结第4章 理想与现实——科学与工程的碰撞4.1 软件工程的理想——生产线与复用4.2 工程实践——与理想模式的距离4.2.1 软件是数字化社会的主体4.2.2 软件生产业的主体是什么4.2.3 软件生产工程实践现状4.3 “飞速发展”的本质4.4 本章小结第二部分 软件的本质第5章 不是三维——软件的本质5.1 三维空间——人类形象思维的局限5.2 传统产品简析5.2.1 传统产品——三维实体5.2.2 传统产品的核心——设计输出5.2.3 传统产品生产模式——生产线5.3 软件产品简析5.3.1 软件是一种特殊的产品5.3.2 二维可视化设计语言能力分析5.3.3 软件无法完全可视化表达5.3.4 软件产品的核心——代码5.3.5 一个有趣的问题5.4 软件的本质——不是三维5.5 本章小结 第三部分 软件生产方法论——实践与研究第6章 设计与开发6.1 引言6.1.1 构件化生产与自动化的探讨6.1.2 实用技术方法涉及的内容6.2 应用系统架构设计6.2.1 什么是架构6.2.2 几种常见架构模式6.2.3 实践中的系统架构设计6.3 系统分析与设计6.3.1 软件分析与设计的内容6.3.2 系统整体结构的软件描述6.3.3 整体代码框架搭建6.3.4 系统公共库设计6.3.5 接口设计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 开源软件代码6.5 面向对象——正确理解与使用1606.5.1 何时使用面向对象6.5.2 如何使用面向对象6.6 设计的结束与输出6.6.1 实效的制度化,而非教条的制度化6.6.2 强化设计结束准则6.6.3 设计阶段的输出文档6.7 本章小结第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.2.5 测试时间估算7.2.6 测试人员的素质7.3 对测试标准的探讨7.3.1 软件bug的分布特征7.3.2 测试标准的制定原则7.3.3 测试人员的困惑——测试标准如何实施7.4 软件测试的本质探讨与工业化生产7.5 本章小结第8章 软件项目管理方法论8.1 软件项目管理的产生8.2 软件项目管理的作用与地位——为研发服务8.3 软件项目管理的内容8.4 软件项目管理的实用方法8.4.1 软件规模划分8.4.2 软件类型划分8.4.3 软件项目实施的阶段划分……第9章 用软件管理软件第10章 新一代软件生产方法论探索——代码驱动生产后记参考文献

编辑推荐

《不是三维:软件项目的设计、开发与管理》:善于思考,丰富经验,精通技能,做合格的软件人才。·从技术与管理两个层面研究软件生产方法论。·深入分析软件飞速发展的本质及技术与管理现状,指出软件与三维实物的本质性不同是其至今不能实现有效工业化生产的内在原因。·结合作者多年经验,从设计、实现、测试与管理多个角度全面介绍具体的有效实用方法与技术内容。·强调代码是软件的核心,指出软件无法完全可视化表达。·从软件本质出发,提出以实现为中心的”代码驱动生产“(Code Driving Production)模式、理论与方法,它不同于以设计为中心的传统方法。

作者简介

《不是三维:软件项目的设计、开发与管理》从软件与三维实物的本质性不同出发研究软件生产方法论。今天,软件生产中许多传统问题并没有得到质的改善,以“爆炸”形容的技术发展的实质究竟是什么?先进管理模式下的管理现状如何?《不是三维:软件项目的设计、开发与管理》首先深入分析以上问题,指出软件的本质及其至今不能实现工业化生产的内在原因;接着,从软件设计,测试与管理三个方面,系统地介绍了作者多年实践中总结出来的有效实用方法;最后从软件本质出发,提出了全新的先进软件生产模式与方法——代码驱动生产(Code Driving Production),并指出这将是适合软件本质的新途径。
《不是三维:软件项目的设计、开发与管理》适合于从事软件工程研究的科研人员、管理人员与设计人员阅读,也可作为高等学校与计算机相关专业师生的教学参考读物。

图书封面


 不是三维下载



发布书评

 
 


精彩短评 (总计3条)

  •     给三颗星不代表此书内容不好,对我来说只是没有想像的的那么实用。包裹的很好,但在被包裹之前显然是受虐了。
  •     本来是朋友借给我看的,看过后马上就去买了一本。讲的比较浅显易懂,确实非常有帮助,对于有一定工作经验的人来讲应该是很有总结作用了。
  •     我对国人写技术书已绝望
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024