软件技术的新动向与软件产业发展的机遇.ppt_第1页
软件技术的新动向与软件产业发展的机遇.ppt_第2页
软件技术的新动向与软件产业发展的机遇.ppt_第3页
软件技术的新动向与软件产业发展的机遇.ppt_第4页
软件技术的新动向与软件产业发展的机遇.ppt_第5页
免费预览已结束,剩余76页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 郝克刚2000 10 软件技术的新动向与软件产业发展的机遇 2 我们的社会正在步入知识经济时代 知识经济的特点在于创造价值的源泉已不再主要是依赖于资源 资本和人的简单劳动 而是依赖于科技 科技的更新将引起新兴产业的产生和发展 软件产业是典型的高科技产业 那么当今软件技术有何新的动向 它为软件产业的发展带来怎样的机遇 我们能否抓住此一机遇把我国的软件产业发展上去呢 3 报告提纲一 从美国总统IT顾问委员会的报告引发我们对软件的再认识 二 面向对象的方法和技术 UML 三 软件的构件化与集成新技术和CORBA 四 企业级业务软件EBS与网上软件开发技术 结束语 4 PRESIDENT SINFORMATIONTECHNOLOGYADVISORYCOMMITTEEREPORTTOTHEPRESIDENTInformationTechnologyResearch InvestinginOurFutureFebruary24 1999这是一个非常重要而且很有影响的报告 一 从美国总统IT顾问委员会的报告引发我们对软件的新认识 5 在报告中列举了大量的事实论证IT技术对社会和国家以及人民生活的重要作用 信息技术 我们社会的转化 1通讯方式的转化2使用信息方式的转化3学习方式的转化4医疗保健方式的转化5商业贸易方式的转化 6工作方式的转化7设计 建造方式的转化8科学研究方式的转化9我们对环境理解的转化10政府工作性质和方式的转化 6 Softwareisthenewphysicalinfrastructureoftheinformationage 报告认为软件是信息所时代社会的最重要的基础设施我们对软件的认识从来还没有提得这么高Itisfundamentaltoeconomicsuccess scientificandtechnicalresearch andnationalsecurity Softwareisincreasinglyimportantforcommerce communication informationaccess andtheNation sphysicalinfrastructure Thecontinuingemergenceofcheaperandfastermicroprocessorshasallowedmoreandmorefunctionstobeperformedbysoftware 7 然而现实上这个基础却相当脆弱和不可靠 软件越来越普及而且越来越复杂 但缺乏开发可靠安全的各种软件的合用技术 软件的生产能力远远满足不了飞速发展的实际需求 However becausethedemandforsoftwarehasgrownatsuchanexplosiverate demandnowfarexceedssupply Furthermore theNationdependsonsoftwarethatisoftenfragile unreliable andextremelydifficultandlabor intensivetodevelop test andevolve 8 为此 报告建议增加投入 重点支持四个方面的信息技术的发展和研究 第一项就是软件 其它还有 信息基础设施 高端计算和有关社会经济问题 Recommendation 建议 Increasetheinvestmentforresearchinsoftwarescalableinformationinfrastructurehigh endcomputingsocioeconomicissues 9 主要建议 软件的基础研究绝对优先MajorRecommendation Makefundamentalsoftwareresearchanabsolutepriority第一 软件开发方法和构件技术的基础研究Recommendation Fundmorefundamentalresearchinsoftwaredevelopmentmethodsandcomponenttechnologies 第二 人机交互和界面技术的基础研究Recommendation Supportfundamentalresearchinhuman computerinterfacesandinteraction 10 第三 信息管理技术的基础研究Recommendation Fundmorefundamentalresearchininformationmanagementtechniquesto 1 capture organize process analyzeandexplaininformationand 2 makeinformationavailableforitsmyriaduses 第四 把软件研究列入到所有信息技术研究中Recommendation Makesoftwareresearchasubstantivecomponentofeverymajorinformationtechnologyresearchinitiative 11 为了讨论软件技术的新动向 首先看到一些反映软件新技术的新的名词 新概念被广泛流传 12 一些反映软件新技术的新的名词 新概念被广泛流传 如客户 服务器 面向对象 因特网 内联网 外联网 构件 B S JAVA CORBA DCOM OLE NET J2EE等 甚至有些公司有意地炒作一些概念 如微软的 计算机神经网络 IBM公司的 电子商务 HP的 电子世界 等 可以说是层出不穷使人眼花缭乱 如果把软件技术的新动向归纳一下 我认为可以概括为以下三点 即媒体数字化 计算机网络化和软件构件化 13 媒体数字化 有一本有名的书叫数字化生存 作者特别以信息数字化的最小单位比特 和物质的电小单位原子来比较信息与物质的区别 原子的移动要比比特的传输困难得多和慢得多 数字化是指从信息的模拟量表示转化为离散量表示 对大量的媒体形式 如图形 图象 视频 声音等以及它们的应用 如电话 传真 摄影 电视 电影等由模拟技术转化为数字技术才是最近的事 有些还正在转化和创新之中 这个转换带动了软件技术的发展 如多媒体软件 真实感图形 数据压缩和解压缩 图象识别 非键盘输入 虚拟现实等 14 计算机网络化 应该说最近几年因特网的爆炸性地发展 是本世纪末信息技术的最伟大的成就 如果把单个计算机和局域网称为计算机的个体和群体的话 那么因特网就已成为计算机的社会或计算机的世界了 我们个人将来的工作 学习 娱乐就象现在离不开电灯 电话 电视一样将离不开因特网 社会上的各行各业的运行也将最终离不开因特网 全球的经济一体化进程将随因特网的发展而加快 地球将变得愈来愈小 这种网络化的趋势对计算机软件技术产生了巨大影响 分布式操作系统 浏览器 服务器 中间件 网上搜索引擎 信息挖掘 Agent CSCW等 15 软件构件化 所谓软件构件化 就是要让软件开发像机械制造工业一样 可以用各种标准和非标准的零件来进行组装 或者像建筑业一样 用各种建筑材料搭建成各式各样的建筑 软件的构件化和集成技术的目标是 软件可以由不同厂商提供的 用不同语言开发的 在不同硬件平台上实现的软件构件 方便地 动态地集成 这些构件要求能互操作 它们可以放在本地的计算机上 也可以分布式地放置在网上异构环境下的不同结点上 实现软件的构件化 这是软件业界多年来分奋斗的目标 可以说已经经过了几代人的努力 16 软件构件化的发展过程 六 七十年代大型软件系统开发引起的软件危机 导致了Yourdon和DeMarco的结构化分析与结构化设计的软件工程方法的盛行 后来在八十年代出现了面向对象的方法 九十年代形成了统一的建模语言 UML 九十年代发展了软件的构件化和集成新技术以及Java CORBA Internet的Web技术等 17 二 面向对象的方法和UML 面向对象方法的基本思路是用对象来作为描写客观信息的基本单元 它包括对象标识 对象属性 数据 和对象操作 方法 运算 与此相关的还有如下一些概念 对象类 类的实例 对象类的继承 父类 子类 多重继承 方法的重载 限制等 18 关于面向对象方法已有很多研究 最著名的有 GradyBooch方法 JamesRumbaugh的OMT 对象模型技术 IvarJacobson的OOSE 面向对象的软件工程 19 Booch Rumbaugh Jacobson这几种方法虽然基本思路相同 但仍有不少差异 从而为实际的软件开发和应用带来诸多不便于是由RATIONAL软件公司发起 从95年开始先是Booch和Rumbaugh合作 后来Jacobson也加盟 共同提出了一个统一的建模语言UML 得到很多软件公司的支持 逐渐成为面向对象方法的一个事实上的标准 经过反复修改和扩充 到1997年9月已经发展到业界充分公认的UML1 1版本 统一的建模语言UML TheUnifiedModelingLanguage 20 June 99UML1 3 21 UMLNotationsStaticStructureDiagramsClassdiagramObjectdiagramUseCaseDiagramsSequenceDiagramsCollaborationDiagramsState chartDiagramsActivityDiagramsImplementationDiagramsComponentDiagramsDeploymentDiagrams 22 StaticStructureDiagramsAclassdiagramisagraphofClassifierelementsconnectedbytheirvariousstaticrelationships Class 23 ASSOCIATION ASSOCIATION 24 Ahollowdiamondisattachedtotheendofthepathtoindicateaggregation Ifthediamondisfilled thenitsignifiesthestrongformofaggregationknownascomposition 25 Composition 26 Generalization 27 Dependencies 28 ObjectDiagramAstaticobjectdiagramisaninstanceofaclassdiagram itshowsasnapshotofthedetailedstateofasystematapointintime Toolsneednotsupportaseparateformatforobjectdiagrams Classdiagramscancontainobjects soaclassdiagramwithobjectsandnoclassesisan objectdiagram 29 USECASEDIAGRAMUsecasediagramsshowelementsfromtheusecasemodel Theusecasemodelrepresentsfunctionalityofasystemoraclassasmainfestedtoexternalinteractorswiththesystem 30 sequencediagramAsequencediagramshowsaninteractionarrangedintimesequence 31 32 COLLABORATIONDIAGRAMAcollaborationdiagramrepresentsaCollaboration whichisasetofobjectsrelatedinaparticularcontext andanInteraction whichisasetofmessagesexchangedamongtheobjectswithinacol laborationtoeffectadesiredoperationorresult 33 STATECHARTDIAGRAMAstatechartdiagramshowsthesequencesofstatesthatanobjectoraninteractiongoesthroughduringitslifeinresponsetoreceivedstimuli togetherwithitsresponsesandactions 34 ACTIVITYDIAGRAMAnactivitymodelisavariationofastatemachine 35 Acomponentdiagramshowsthedependenciesamongsoftwarecomponents includingsourcecodecomponents binarycodecomponents andexecutablecomponents IMPLEMENTATIONDIAGRAMSCOMPONENTDIAGRAMS 36 DEPLOYMENTDIAGRAMSDeploymentdiagramsshowtheconfigurationofrun timeprocessingelementsandthesoftwarecomponents processes andobjectsthatliveonthem 37 UMLNotationsStaticStructureDiagramsClassdiagramObjectdiagramUseCaseDiagramsSequenceDiagramsCollaborationDiagramsState chartDiagramsActivityDiagramsImplementationDiagramsComponentDiagramsDeploymentDiagrams 38 TheRationalRose2000EvaluationEditionisafullversionoftheRose2000EnterpriseEdition 39 三 软件的构件化与集成新技术和CORBA 由于有了面向对象技术的发展 多年来追求软件构件化的的梦想 已经成为现实的可能 也就是要让软件像机械制造工业一样可以由各种标准和非标准的零件来进行组装 或者像建筑业一样由各种建筑材料搭建成各式各样的建筑 软件的构件化和集成新技术的目标是 软件可以由不同厂商提供的 用不同语言开发的 在不同硬件平台上实现的软件构件来方便的 动态的集成 这种构件可以分布式地放置在网上的不同结点上 要求能互操作 40 为了协调和制定统一的标准成立了OMG 对象管理联盟 成立于1989年 加盟此组织的单位愈来愈多 其中包括软件的开发供应商 软件用户和软件技术的研究院所等 现已有750多个单位 经过几年的努力 已制定了一系列的标准规约 称为CORBA 公共对象请求中介结构 41 CORBA 公共对象请求中介结构 它的核心是 ORB 是分布式对象借以相互操作的中介通道 另外还定义了最基本的对象服务构件和公共设施构件 OMG所定义的CORBA并不规定具体的实现 实现CORBA的软件由各个厂家自行开发 现已有多种可用的产品版本发布 42 ReferenceModel 43 ORB内核 ORB的作用是将客户的请求发送给对象 并将任何回应返回至发出请求的客户 在通信过程中 ORB一般隐蔽了以下内容 对象位置 对象实现 对象执行状态 对象通信机制 44 45 OMG于1998年公布了最新的CORBA2 2规范 其主要内容有 1 ORB内核 Core 2 OMG接口定义语言IDL 3 语言映射 LanguageMapping 4 接口存根与骨架 StubandSkeleton 5 接口池 InterfaceRepository 6 动态调用与指派 DynamicInvocationandDispatch 7 对象适配器 ObjectAdapter 8 ORB互操作协议 Inter ORBProtocol 46 ReferenceModel 对象服务 公共设施 应用对象 47 对象服务 公共设施 应用对象 48 ReferenceModel 49 ReferenceModel ObjectServices对象服务构件 Naming Event PersistentObject LifeCycle ConcurrencyControl Externalization Relationship Transaction Query Licensing Property Time Security Trading Collections 50 ReferenceModel 公共设施 51 构件对象模型COM和分布式构件对象模型DCOM 微软公司是也较早采用构件技术的公司之一 1993年 微软公司提出了构件对象模型 COM 此技术已相当成熟 微软公司为Windows 和WindowsNT开发的应用软件几乎都是基于COM的 早期的软件多在单机上运行 后来对COM进行了扩展 允许访问其它机器上的对象 1996年提出了分布式构件对象模型 DCOM 使得采用构件技术构建网上的应用系统成为可能 除了COM DCOM以外 微软还为开发分布式企业级应用软件提出了很多在WindowsNT 服务器上的服务 如微软作业服务 MTS 微软因特网信息服务 IIS 控件服务页面 ASP 微软消息查询服务 MSMQ 等 52 新动向 微软的 net 计划 互联网的发展 门户网站 间单交易 数字经济 将提供 构件块 服务和工具 网络用户接口 PC和其它智能设备接口 UserInterface UserExperienceCompoundDocument UniversalCanvasFileSystem XMLStotrageAPI BuidingBlockePC PCandOthers 53 有人曾将DCOM和CORBA进行了比较 对各自的优势和不足进行过评论 虽然它们在基础原理和结构上有很多相近之处 但是在具体作法上还是有很大差异 DCOM有较强的工具和系统的支持 由于有些功能已嵌入在操作系统中 特别是WindowsNT 所以在降低化费上有优势 但是DCOM过多地依赖微软的操作系统平台 因而对异构网络环境 在兼容性方面会有不少问题 而正相反 CORBA在支持多种平台和多种语言上具有优势 而且有比较广泛的独立开发商和用户及业界的支持 此外 CORBA所采用的对象概念以及强调网络透明等在技术上也比较成熟 当然 CORBA的不足之处是不如DCOM的支持工具那么多 另外在不同的开发商提供的CORBA实现之间的兼容性方面还有不少问题 但事物在不断发展 DCOM和CORBA都会设法在改进自己的不足 54 传统的Web技术 在Internet Intranet Extranet的应用中出现了问题 使用HTTP CGI模式会产生系统瓶颈 不适应各种丰富多彩的应用软件的需求 尽管有很多对CGI的扩充 如微软的ISAPI 网景的NSAPI 以及对HTML功能的扩充如XML等 但仍未能从根本上解决问题 一种趋势是由OMG的CORBA和Java联手 相互渗透 互为补充 共同解决这一问题 形成新一代Web 称为对象Web ObjectWeb 这一技术发展很快 可望成为将来应用软件框架发展的主流 55 JAVA和JAVA2环境平台企业版J2EE JAVA语言由于巧妙地采用了虚拟机的机制 使得编译后产生的泛代码程序可以在各种平台上执行 从而作到了程序执行与平台无关 加之用JAVA编的Applet可以方便地用浏览器下载运行 JAVA语言普及和发展得很快 JAVA采用了构件技术 发展了JAVA构件 即JAVABeans 和企业级JAVA构件 即EJB 为了用构件技术组成实际的应用系统 最近又推出了J2EE JAVA2环境平台企业版Version1 2 1999 和JAVA程序设计模型 56 按照此模型组成的应用系统至少分为三层 57 第一层是客户层 可以采用一般的浏览器或特制的客户软件 从服务器下载的Applet可以带有JAVABeans一起在客户端执行 按照此模型组成的应用系统至少分为三层 58 第二层是中间层 即业务逻辑层 其中有两个包容器 一个是Web包容器 另一个是EJB包容器 按照此模型组成的应用系统至少分为三层 59 第三层是企业的信息系统 第二层的构件通过JDBC 访问关系数据库 JNDI Java名子目录接口 JMS Java消息服务 JavaMail 发送和接收信件 JavaIDL 与CORBA构件接口 访问第三层企业的信息系统 为了保护过去的投入 第三层可以与传统的应用软件 ERP等建立联系 按照此模型组成的应用系统至少分为三层 60 按照此模型组成的应用系统至少分为三层 61 PatternsandFrameworks 模式和框架 这是长期软件开发实践成功经验的积累和总结 通过设计模式可以实现对软件结构和设计的重用 框架还支持对软件详细设计和代码级的重用 62 通过对模式的学习 是一种非常好的学习软件开发技术和经验的方法 实际上教育的一个重要目的就是一代一代的传递学习的模式 下面我们以学习下棋为例来说明学习模式的重要性 63 怎样成为一个象棋高手 第一步 学习基本规则 第二步 学习取胜的原理 这时 你已经可以说学会下棋了 但是 你要想成为一个象棋高手 除了多下棋和善于总结经验以外 一个重要的途径就是看高手们的棋谱 学习 理解 记忆和应用高手们总结的定式 定式就相当我们说的模式 这种定式很多 有几百种 64 怎样成为一个软件设计的高手 第一步 学习基本规则 例如 数据结构 各种算法 编程语言等 第二步 学习软件设计的原理和方法 例如 结构程序设计 模块化方法 面向对象的设计方法等 这时 你已经可以说学会软件设计了 但是 你要想成为一个软件设计的高手 除了多动手和自己善于总结经验以外 一个重要的途径就是看软件设计的高手们的软件 学习 理解 记忆和重复应用软件设计模式 这种模式很多 有几百种 65 EBS是EnterpriseBusinessSoftware的缩写 即企业级业务软件 Wedon tjustmakebettersoftware Wemakebettercompanies 四 企业级业务软件EBS 66 现在流行的一个词叫电子商务 英文原名是E BUSINESS 把BUSINESS译作商务有点勉强 原意是业务的意思 含义应更广 而不只是商业交易的意思 而应指企业的所有业务的电子化 67 E business definedsimply isdoingbusinesselectronically Business however ismorethanjusttheexchangeofgoodsandservices Itisalsotheexchangeofinformation withinandbetweenmembersofavaluechain aswellasthesupportingactivitieswithinorganizationsenablingtheexchangeofgoodsandservice Inotherwords businessismorethanjustcommerce 68 69 EBS采用构件和集成新技术可以为软件用户带来如下一些好处 构件技术可以使企业方便地 快速地 平滑地增加新的功能 新的构件同原有的构件可以集成在一起可靠地工作 系统解决方案可以特别灵活地 动态地重新配置 将一个构件替换为升级的新版本不必考虑对其它构件的适配 特别对那些需要灵活地 快速地对部分系统而不是整个系统升级换代的企业带来巨大的好处 采用构件技术允许对给定的任务采用不同的软件开发供货商提供的软件 企业在实现它的解决方案时具有选择产品的充分的自由 70 企业特殊性 企业可以容易地 灵活地将为企业特别设计的构件与整个系统集成使用 从而实现企业的特殊需求 可扩展性 基于构件的解决方案能够为进一步方便地扩展系统功能提供方便 因为定制的构件的接口也可以由用户特殊构件的使用 71 企业业务软件开发采用构件和集成新技术 还基于以下的考虑 1 软件产业面临的最大的问题是软件维护问题而不是软件开发问题 凡是以EBS为主营业务的软件产业都要考虑长远一些 因为这类软件有一个比较长的生命周期 投资保护是一个重要方面 软件开发所依赖的技术和所实现的软件的功能作为一个连续的过程在不断发展 公司要在这整个过程中获取利润 这就导致了软件维护的问题 在IT基础设施不断更新的条件下一个软件公司如何能保持它的技术更新和功能增强的优势 在软件要适应用户企业特殊功能时 此问题特别突出 72 2 IT技术变更的速度远高于企业的业务变更的速度 软件技术更新周期愈来愈短对EBS软件影响太大 如客户 服务器技术 INTENET B S结构 JAVA 以及面向对象的通信机制CORBA等层出不穷 从理论上讲这种变更还会继续下去 与此有明显对照的是业务过程 和基本原则本身却相对改变甚少 采用构件技术后 技术的更新是以构件的形式实现的 而不必影响企业的业务过程 73 3 按职能分离 的设计原则 由于业务的改变远比技术的改变慢得多 因而在企业软件中将不同任务的软件按职能分离是一个非常适用的方法 如果系统中某部分进行了技术更新 只需将此部分的构件替换成新的构件无需改变另外的构件 但软件构件能够组合的前提是它们必须基于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论