组件化软件工程.pptVIP

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
组件化软件工程

高级软件工程 构件化软件开发 陈宁江 2008.05 软件复用(reuse)的概念 软件复用:利用已有的软件来建造新的软件系统的过程,将可复用构件作为新系统的构建模块并以可控的方式和过程对构件进行组合与修改 软件复用的发展 子程序(Subroutine) (A. Turing, 20世纪40年代)→ 复用 代码、函数、算法等→ “软件工厂” ( Mcllroy , 1968 ) → 软件库、类库→ 构件 软件复用的优点 改善软件质量 减少工作量 快速构建系统原型 帮助程序员获得经验和知识 影响软件复用成败的因素 管理和组织层面 项目管理者的支持和经验 面向复用特点的软件过程模型 专门的小组搜集、维护和提供可复用的构件 程序员的心理因素 技术层面 支持复用的方法和技术还存在许多困难 需有一个组织和管理良好的构件库 改编已有的软件或者构件,提取可复用的构件 经济层面 开发可复用的构件的代价较高 复用的一般过程 复用的层次 基于构件的软件开发目标 长期以来的软件开发状况 多数软件都是针对某个具体的应用系统从头进行开发的 导致:出现了大量的同类软件重复开发,造成大量人力、财力的浪费,而且软件的质量也不高 对比:汽车工业的生产模式 在已有的部件基础上通过组装进行生产:有专门的部件生产工厂,汽车设计者在设计中选择市场上已有的合适的部件 避免了大量的重复劳动,提高了产品质量和生产效率,促进分工合作 我们的目标:将制造业中的组装式生产模式引入到软件开发中 构件(Component)的典型定义 Pressman:构件是某系统中有价值的、几乎独立的并可替换的一个部分,它在良好定义的体系结构语境内满足某清晰的功能 Brown:构件是一个独立发布的功能部分,可以通过其接口访问它的服务 “计算机科学技术百科全书” :软件构件是软件系统中具有相对独立功能,可以明确标识,接口由规约指定,与语境有明显依赖关系,可独立部署,且多由第三方提供的可组装软件实体;软件构件须承载有用的功能,并遵循某种构件模型;可复用构件是指具有可复用价值的构件 构件(Component)的概念 构件是: 已被封装的、具有良好接口定义的软件包 可以被独立地开发和部署,可由第三方来组合 能够与其它构件组合 具有清晰的接口和文档,并定义了复用的情景 注:构件不是对象,也不一定使用对象技术实现。从粒度上,构件一般都比对象类大,面向对象的构件一般实现为一组类的集合 构件的要素 规格说明:建立在接口概念之上,作为服务提供方与客户方之间的契约 一个或多个实现 受约束的构件标准 包装方法 部署方法 3C构件模型:一个指导性模型 构件由三个不同方面的描述组成 概念(concept):关于“构件做什么”的抽象描述,可以通过概念去理解构件的功能。概念包括接口规约和语义描述(和每个操作相关联,一般表示为前后置谓词形式) 内容(content):概念的具体实现,描述构件如何完成概念所刻画的功能 情境(context):描述构件和外围环境在概念级和内容级的关系,刻画构件的应用环境,为构件的选用和适应性修改提供指导 常用的构件标准 CORBA(Common Object Request Broker Architecture) OMG发布的构件标准 核心是ORB(Object Request Broker),定义了异构环境下对象透明地发送请求和接收响应的基本机制 COM+ 微软开发的一个构件对象模型,提供了在运行于Windows操作系统之上的单个应用中使用不同厂商生产的对象的规约 EJB:基于Java的构件 提供了让客户端使用远程的分布式对象的框架 EJB规约规定了EJB构件如何与EJB容器进行行交互 构件化软件开发(CBSD) 构件化软件开发的比较 基于构件的软件开发过程 领域工程步骤 领域分析 建立领域特定的基准体系结构模型 标识候选构件 泛化(generalization)和可变性(variability)分析 重建构件 构件的测试 构件的包装 构件入库 应用系统工程的步骤 建立应用系统的体系结构模型 寻找候选构件 评价和选择合适的构件 构件的修改(modify)和特化(specialize) 开发未被复用的部分 构件的组装 集成测试 评价被复用的构件,并推荐可能的新构件 基于构件的软件开发中的关键活动 (1)查找构件 发掘待开发应用中的核心构件,用文档描述构件;通过领域分析、自行开发、逆向工程或者商业购买等途径来获得所需构件;创建构件库 (2)选择构件 从构件库中挑选合适的构件。选择过程通常与构件库的检索技术及算法相关 (3)适配构件 改编或者定制化所挑选的构件来满足新的应用需求,使其能与其它构件或者底层框架集成 基于构件的软件开发中的关键活动(续) (4)创建构件 所选

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档