
本书通过丰富的案例研究示例,阐明了构建面向构件软件的最重要因素:概念、技术、规范、管理以及分析与设计过程。
本书的涵盖范围包括:面向构件的基本概念和发展趋势;探索各种面向构件的软件体系架构,包括和其他架构方式的对比;全面研究面向构件的软件开发过程以及项目管理;通过“组织级管理”,帮助构建面向构件的企业;提供工业级生产实践指导;面向构件的产品支持和案例分析。
本书的目标是通过逐步的、清晰生动的面向构件实施指导,帮助读者获得对面向构件的坚实理解和实践指导。
我们希望,
面向构件技术的出现可以帮助中国企业从技术的角度加速管理进步,
减少企业在信息化建设中的弯路,提高企业竞争力。
——刘亚东,《软件中国的机会》
经过百万行代码,无数无止无休的软件工程项目的洗礼之后,软件行业的思考都集中在软件开发、管理的能力方面了。从构件技术的出现,网络服务的产生,模型驱动的探索,大家都在尝试更大粒度的软件编写,更自动化的软件生成,以及更松散的软件组合。正是在这样的大环境之下,面向构件的技术体系应运而生,引领潮流。麦肯锡也在考察了全球一百多家软件企业之后,在《软件成功的奥秘》一书中指出,“不断采用构件技术是未来软件生产力提高的主要来源”。
面向构件以构件技术为核心,以数据总线为依托,融合了最新的构件技术、网络服务技术和模型驱动技术。经过三、五年的不断实践,不断提炼,以经从毛毛虫成长为飞蝴蝶,成为软件业界引人注目的新潮流。更令人振奋的是,这样一项软件的新兴技术,发源在中国这样一个地方,因为正是中国的软件应用环境
在全球来讲都是变化最快,交易量最多,而投资最少的一个软件市场。
中国的大量客户,包括电信、金融、政务,本身的业务发展模型、市场定位都在不断地演化过程中,而其信息技术部门往往因而承担着巨大的责任。一方面,软件系统必须快速地赶上业务发展的要求。另一方面,中国的发展中的业务模型在全球找不到第二家,也因而找不到另外一个地方的成熟的应用软件可以购买来完成自己的业务。比如在电信行业,在使用国际计费产品失败之后,寻找集成商自主开发成了首选。但是集成商的开发能力有限,在常常以百万行计的代码面前,一个系统往往开发两到三年,最多勉强使用,在接下去的业务变革中又推倒重来。
巨大的软件投入和软件开发周期,又因而成为企业发展的一大阻力。除了最大的电信公司,最大的银行,大家往往因为软件投入的脱节而无法快速成长,在相对已经比较开放的中国市场中,公司的成长无形中受到软件技术投入的制约。
面向构件解决了企业应用的结构问题。通过面向构件技术,一个系统是按照个性化的需求,从一个比较完备、比较成熟的构件库组装而成,大大提高了系统的成功率、稳定性、适应性和逐步发展性。通过面向构件对业务的封装和积累,能够保护现有投资,有助于高效地表达业务,进而表现其内在的组织敏捷性。当与面向服务技术联合时,面向构件提供了一个重要的潜在现实效益,从而改变组织的技术与前景。我们的目标是帮助读者去探索、理解并实现这个潜在的现实效益。
面向构件还解决了企业应用的开发和管理问题。通过建立一个不断完整的构件库,企业的知识可以得到有效的管理。业务知识不是在上百万行的代码之中,也不是在每天晚上回家的员工脑里,而是在一个可见的、可控的构件库中,便于管理、衡量,达到持续发展的目的。企业可以看到自己的业务、知识和流程。而厂商也通过构件库来不断发展自己的核心竞争力。要不,有二、三千人的软件大公司和一个新开始的二、三十人的小公司有什么本质区别呢?
很多软件工程师也面临这样一个问题。刚从学校出来的几
年,大家比较喜欢技术钻研,熬夜写代码,找Bug。而后自己想想,收获在哪里呢?确实每个人都积累了很多经历和经验,但只是一个熟练的代码工具。逐渐地大家希望自己能从日常的代码中逃离出来,去设计、规划一个大型的软件系统,而且能够长期持续发展。面向构件也正是这样的一个承载思想,承载知识,承载经验的平台。
面向构件的出现不是“崭新的”,其外延和基础技术仍在不断发展。面向构件作为将软件系统分解与隔离的一种方法,是一个非常通用的概念。我们注意到这在传统产业实践中更为常见,我们日常接触到的传统行业已经大部分实现了某种形式的构件化生产。尽管如此,一旦应用到软件领域,面向构件却是一个需要重新思考的主题。
本书分为六章。
第一章,面向构件概述及案例研究介绍。在这一章中,我们通过对传统行业发展的观察发现,构件化不是软件行业所特有的,而是所有行业进入工业化生产的必经之路。有了构件知识才能积累、才能重用。古代的建筑、现在的汽车、我们的软件都是这样。在这一章里,我们还具体介绍了神州电信这么一个假想的典型用户,便于大家思考和练习。
第二章,面向构件的软件体系。我们对面向构件技术的理论体系,做了全面的考察,包括面向构件的概念和面向构件的软件架构,从传统的横切竖割的软件架构出发,引入更为灵活、稳定的面向构件的条块编织的架构。
第三章,面向构件的软件过程。这一章内容比较丰富,为面向构件的实践总结了一套完整的全过程的方法。从软件工程的视角,用面向构件的思想,从新审视软件过程,包括软件需求,软件分析与高层设计,并行开发与测试,提交发布与部署,以至应用软件的管理。我们发现,以往的软件工程因为每个阶段的概念的脱节和工具的脱节造成了软件工程连贯性较差,前后阶段的双向可验证性较差的问题,通过面向构件的工程管理有了很好的解决方法。构件是前后贯通需求、分析、设计、开发、测试、提
交、发布、部署、以至应用管理的实体,使软件工程有了连贯性
和双向可验证性,更好的保障软件系统和需求的一致性。
第四章,面向构件的项目管理。我们在这里提出了面向构件的项目级管理进程和组织方法。在面向构件的项目管理中,人员的工作分配更加清晰,互相之间工作的独立性更强,减少因为工作项间互相制约带来的不确定性。面向构件的方法大大加强了软件项目的可管理性和可控制性。
第五章,面向构件的组织及管理。我们发现,面向构件的方法不仅提高了项目管理能力。如果在组织级跨项目地对企业知识、软件构件库进行规划、设计和管理,企业的软件能力将随着构件库的不断丰富而不断的提高。
第六章,面向构件的中间件。面向构件是一个完整的理论体系,也有一套完整的实践方法。这一套方法在不同的技术平台上都会有所帮助,但是在一个为面向构件打造的平台上可以使面向构件的价值最大化。这一章里我们讨论了一个面向构件的中间件的设想和要求。
同时本书还附上了我们在本书的实践中所使用和参考的面向构件的中间件,普元EOS的介绍、普元EOS构件库参考、完整的案例研究总结、开发规范条例(部分)、构件文档参考等。如果大家需要更多的资料,需要试用普元EOS,或者参加最新的软件技术的讨论、交流,可以参加面向构件成长社区http://gocom.primeton.com。
本书的创作是长期积累的结果,包括EOS产品实践与研究成果、来自客户的反馈,以及最新的SOA和SCA规范等。本书的主要目的是从厂商中立的角度来讨论面向构件的方法与实践,同时还花费大量精力去研究面向构件的概念、架构,以及具体的产品实现。欢迎有兴趣的读者们一起来研究、批评和发展面向构件的软件技术。
作 者
2006年4月
New Software Engineering : A Component-Oriented Approach
New Software Engineering : A Component-Oriented Approach
1 / 面向构件概述及案例研究介绍/ 1
1/1 面向构件的演变/2
1/2 面向构件的基本特征/5
1/3 面向构件的必要条件/6
1/4 面向构件的发展趋势/7
1/5 案例研究介绍/11
2 / 面向构件的软件体系/ 17
2/1 面向构件的概念/18
2/2 面向构件的软件架构/33
2/3 案例研究/56
3 / 面向构件的软件过程/ 61
3/1 过程制定的策略/63
3/2 面向构件软件过程的核心理念与优势/64
3/3 面向构件软件过程概述/77
3/4 面向构件的软件需求/87
3/5 面向构件的分析与高层设计/114
3/6 面向构件的并行开发与测试/146
3/7 面向构件的提交、发布与部署/156
3/8 面向构件的应用管理/160
4 / 面向构件的项目管理/ 165
4/1 面向构件的项目计划/168
4/2 面向构件的项目组织/170
4/3 面向构件的项目实施/172
4/4 面向构件的项目度量/173
4/5 案例研究/176
5 / 面向构件的组织级管理/ 183
5/1 面向构件的精确控制力/184
5/2 企业和开发商的分工与合作/185
5/3 构件库管理/186
5/4 积累面向构件的企业知识体系/189
5/5 案例研究/191
6 / 面向构件的中间性/ 197
6/1 面向构件中间件的必要性/198
6/2 面向构件的中间件概述/202
6/3 面向构件,效率推动创新/207
普元五周年(代跋)/ 209
附录/ 213
附录A 普元EOS简介/214
附录B 面向构件概述及案例研究介绍/218
附录C 案例研究总结/222
附录D 开发规范示例(部分)/225
附录E 构件文档参考/235
附录F 创建面向构件的工作流、报表、
内容管理/241
附录G 打造面向构件的大型企业应用/246
关于普元软件/253
关于GoCom社区/255
参考文献/ 257
参考书目/257
参考文章/258
参考电子文献/259
Table of Contents
Chapter One Brief Introduction of Compon-
ent-Oriented Approach and Case study/ 1
1.1 Evolvement of Component-Oriented Approach/2
1.2 Basic Characteristics of Component-Oriented
Approach/5
1.3 Prerequisites of Component-Oriented Approach/6
1.4 Trends of Component-Oriented Approach/7
1.5 Introduction of Case study/11
Chapter Two Component-Oriented Software
Architecture/ 17
2.1 Concepts in Component-Oriented Approach/18
2.2 Component-Oriented Software Architecture/33
2.3 Case Study/56
Chapter Three Component-Oriented Software
Process/ 61
3.1 Strategy for Making Process/63
3.2 Core Concepts and Advantages of Process for
Component-Oriented Software/64
3.3 Brief Description of Component-Oriented
Software Process/77
3.4 Requirements for Component-Oriented
Software/87
3.5 Component-Oriented Analysis and High Level
Design/114
3.6 Component-Oriented Parallel Development and
Testing/146
3.7 Submission, Publishing and Deployment of
Component-Oriented Software/156
3.8 Component-Oriented Application Manage
ment/160
Chapter Four Component-Oriented Project
Management/ 165
4.1 Component-Oriented Project Plan/168
4.2 Component-Oriented Project Organization/170
4.3 Component-Oriented Project Implementation/172
4.4 Component-Oriented Project Measurement/173
4.5 Case Study/176
Chapter Five Organizational Management
in Component-Oriented Approach/ 183
5.1 Precise Control in Component-Oriented
Approach/184
5.2 Job Description and Coordination between
Enterprise and Vendor/185
5.3 Management of Component Library/186
5.4 Accumulating Enterprises-wide Systematic
Knowledge in Component-Oriented Approach/189
5.5 Case Study/191
Chapter Six Component-Oriented
Middleware/ 197
6.1 Why is Component-Oriented middleware
necessary/198
6.2 Brief Description of Component-Oriented
Middleware/202
6.3 Component-Oriented Software: Innovation
Driven by Efficiency/207
Five Years of Primeton (as
postscript)/ 209
Appendices/ 213
Appendix A Introduction of Primeton EOS/214
Appendix B Reference for EOS Component
Library/218
Appendix C Summary on Case Study/222
Appendix D Examples on Development
Specifications (excerpt)/225
Appendix E Reference for Component
Documentations/235
Appendix F Establishing Component-Oriented
Management for Workflow,
Statement, Content/241
Appendix G Creating Component-Oriented
Application for Large Scale
Enterprises/246
About Primeton Software/253
About GoCom Community/255
References/ 257
Referenced Book List/257
Referenced Papers/258
Referenced Electronic Papers/259
New Software Engineering : A Component-Oriented Approach
New Software Engineering : A Component-Oriented Approach