软件复用与构件技术简介_第1页
软件复用与构件技术简介_第2页
软件复用与构件技术简介_第3页
软件复用与构件技术简介_第4页
软件复用与构件技术简介_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、软件复用与构件技术简介李戈北京大学信息科学技术学院软件研究所2008年10月16日北京第三届优秀软件构件评选支持单位:北京市科学技术委员会主办:北京软件行业协会北京软件与信息服务业促进中心北京软件产业基地公共技术支撑体系承办:北京软件产品质量检测检验中心北京大学北京第三届优秀软件构件评选z提升北京市软件企业的核心竞争力帮助企业提高软件开发技术与研发能力,提高软件开发效率,降低软件开发成本推动以企业为主体、产学研相结合的技术创新体系的建设促进北京软件产业的变革,使软件产业走上工程化、工业化的发展轨道zz软件企业的现状与问题z现状:软件系统的规模和复杂度不断提高对生产效率和产品质量的要求不断提高z

2、问题问题:如何提高软件生产的效率?如何掌控软件产品的质量?生产效率与产品质量怎可得兼?为什么需要软件复用z应用软件系统的一般开发模式设计实现测试运行需求分析z基本特征:应用系统的开发总是从头开始每个应用系统的开发均涉及大量的重复劳动¾¾¾¾¾用户需求获取的重复需求分析、设计的重复编码实现的重复测试工作的重复文档工作的重复为什么需要软件复用 z 应用系统的构成成分分类 探讨应用系统的本质,其构成成分可分为: ¾ ¾ ¾ 特定于计算机系统的构成成分 应用系统所属领域的共性构成成分 每个应用系统的特有构成成分 系统专用的

3、构成成分 软件系统的 构成成分 领域共用的构成成分 通用的系统构成成分 什么是软件复用z避免重复劳动的解决方案软件复用避免重复劳动的解决方案软件复用应用系统的开发不再采用一切“从零开始”的模式充分利用过去应用开发中积累的知识和经验:充分利去应发中的知¾需求分析结果、设计方案、源代码、测试计划及案例等以已有的工作为基础,重点关注应用的特殊性z软件复用重复使用“为了复用目的而设计的软件”的过程复使为复的计的软件的软件复用的历史z软件复用概念的提出1968年NATO软件工程会议z之前子程序的概念也体现了复用的思想之前,子程序的概念也体现了复用的思想目的,是为了节省当时昂贵的机器内存资源&#

4、190;并不是为了节省开发软件所需的人力资源然而,子程序的概念可以用于节省人力资源的目的从而,出现了程序库将一些通用子程序收集到程序库中,供其他程序员在编程时使用例如,数学程序库就是一个成功的子程序复用软件复用的历史z在其后的发展过程中有许多复用技术的研究成果和成功的复用实践活动但是,复用技术在整体上对软件产业的影响却并不尽如人意¾这有技术方面和非技术方面的种种因素¾其中技术上的不成熟是一个主要原因z近十几年来,面向对象技术的出现并逐步成为主十几年来面向对象技术的出现并步成为流技术为软件复用提供了基本的技术支持软件复用研究重新成为热点被视为解决软件危机,提高软件生产效率和质

5、量的现实可行的途径软件复用的历史z复用的发展反映出复用的不同层次低级的复用(被动的复用)高级的复用(主动的复用)高级的复主动的复z软件复用包括两个相关的过程件个开发可以复用的软件成分利用可复用的软件成分构造新的应用系统z软件复用是必然实践证明,软件复用是解决软件危机,提高软件生产效率和软件产品质量的现实可行的途径。如何进行软件复用z软件复用的基本原则必须有可以复用的对象要复用的对象必须是有用的复的对象有的需知道如何去使用被复用对象z需要解决的问题:可复用的对象是什么?如何构造具有良好可复用性的复用对象?如何管理可复用对象?如何管理软件开发的过程?如何进行软件复用 z 传统工业的复用方式 如汽车

6、 如汽车、飞机、船舶制造业,建筑业 飞机 船舶制造业 建筑业 其成功的基本模式是 ¾ 符合标准的构件生产 ¾ 基于标准构件的产品生产(组装) 其中构件是核心和基础,复用是必需的手段 其中构件是核心和基础 复用是必需的手段 阶段1:符合 标准的零部件 (构件)生产 阶段2:基于 标准零部件的 产品生产 软件产业的工业化生产模式 z 实践 明 实践证明 这种模式是产业工程化、工业化的必由之路 是软件产业发展的良好借鉴 这正是软件复用受到高度重视的根本原因 z 借鉴传统产业的工业化生产模式,被认为是解决“软件 危机”,提高软件开发效率和质量,实现软件产业工业 化生产方式的重要途径

7、 软件复用过程: 阶段1:可复 用软件资产的 生产 阶段2:基于可 复用软件资产的 应用系统开发 基于构件的软件开发zCBSDComponent Based Software Developmentz基于构件的软件开发生产具有良好可复用性的构件利用已有的构件资源进行组装z软件复用的有效途径重复使用“为复用目的而开发的软件构件”生产模式:从传统的软件编码工作转换为以软件构件为基础的系统集成组装z软件工业化生产的必然软件的复杂性、构造性、演化性使之成为必然软件复用相关技术z基于构件的软件复用支持技术开放系统技术技术素软件程构件、构架构件构架获取构件标准化与描述构件分类、存储与检索构件组装软件构件技

8、术CASE技术什么是软件构件z概念的由来1968年NATO软件工程会议,Mcllroy的论文“大量生产的软件构件”提出了“生产的软件构件提出了Software Componentp”一词。“Component”一词的翻译:“构件”与“组件”z软件构件(Software Component)应用系统中具有相对独立性应用系统中具有相对独立性,且可以明确辨识的构成且可以明确辨识的构成成分。可复用软件构件(件件Reusable Software Componentp)可复用构件是指具有相对独立的功能和可复用价值的构件z对软件构件概念的理解z狭义的构件软件系统中具有相对独立功能、可以明确辨识、接口由契约

9、指定、和语境有明显依赖关系、可独立部署、且多由第三方提供的可组装软件实体。且多由第三方提供的可组装软件实体既包括以EJB,COM/DCOM,ActiveX,Web Services等形式存在的可运行二进制程序也包括经过封装的等形式存在的可运行二进制程序,也包括经过封装的源代码程序。z广义的构件随着对软件复用理解的不断深入,软件构件概念的外延也在扩展。从构件实体到需求规约、系统构架、设计文档、测试案例等各种具有复用价值的软件资源都可称为构件。做什么样的构件z构件模型对现实构件世界(问题空间和设计空间)的抽象研究构件的本质特征及构件间关系实现系统化复用的第一个关键因素标准化工作的基础软件复用是一项

10、复杂的系统工程。要建立系统化的复用计划,建立合适的构件模型是第步。计划,建立合适的构件模型是第一步。系统化复用的实施涉及众多不同人员,不同的人员对对构件的关角度不同很难建统的模型来满足不同构件的关心角度不同,很难建立统一的模型来满足不同方面的需求,需要从不同的角度、在不同的抽象层次上看待构件,需要一组构件模型来满足不同的需求zzWillTracz的3C模型Will Traczz概(概念(Concept)p)关于“构件做什么”的抽象描述¾可以通过概念去理解构件的功能¾概念包括接口规约和语义描述两个部分z内容(Content)概念的具体实现¾描述构件如何完成概念所刻划

11、的功能z语境(Context)构件和外围环境在概念级和内容级的关系¾语境刻划构件的应用环境¾为构件的选用和适应性修改提供指导关于构件模型的讨论z学术界讨论的构件模型:Unicon:支持支持Unix环境下的系统组装、内定的连接子(环境下的系统组装内定的连接子(Connector)类型及组装机制Wright:以进程代数(CSP)描述构件交互,强调体系结构风格(Style)的表达与应用,支持系统验证的表达与应支持统C2:特定的层次的、基于消息总线风格Rapidep:基于事件,并支持描述并发和分布系统模型,将计算和交互基于事件,并支持描述并发和分布系统模型,将计算和交互建模为偏序事

12、件集,构件接口通过事件集定义Darwin:支持定义系统的动态配置Reboot:面向构件库系统的构件模型Resolve .z工业界成熟的构件实现模型:EJB,COM/DCOM,ActiveX,Web Services软件构件的典型形态之软件构件的典型形态之一zWebServices与软件构件Web ServicesWeb Services完成相对独立的功能Web ServicesWbSi具有由契约指定的接口通过组装的方式集成到应用系统中在系统中可以被明确地辨识Web Services 的构件特性接口与实现的区分更加明确对实现体进行的封装更加有效具有较强的平台无关性更加易于在Internet上发布

13、z相应培训课程名称:SOA & Web Services 培训时间:2008-12-11软件体系结构z什么是软件体系结构长期以来,CMU-SEI在其网站上公开征集SA的定义,至今已有百余种.z较有影响力的定义包括:软件系统的结构包含软件元素软件系统的结构包含软件元素、软件元素外部可见的软件元素外部可见的属性以及这些软件元素之间的关系;软件系统的基本组织,包含构件、构件之间、构件与环包含构件构件之间构件与环境之间的关系,以及相关的设计与演化原则等.z共同特性共同特性:一般都将构件以及构件之间的连接作为SA的基本组成部分.软件体系结构z什么是软件体系结构对系统结构的总体设计与说明是一种高层

14、设计是种高层设计关注三方面问题:构件、构件间关系、关系约束z构件构件:软件系统由哪些部分构成z构件间的关系构件间的关系:这些部分之间的交互关系是什么z关系的约束:这些关系有什么约束软件体系结构z体系结构示例体系结构示例:软件体系结构z软件体系结构风格描述某一特定应用领域中系统组织方式的惯用模式z软件体系结构模式描述了软件系统基本的结构化组织方案,是对设计模式的扩展,可以作为具体SA的模板z常见的体系结构风格:Pipes and FiltersPipesandFiltersLayered OrganizationDistributed ProcessesRepositoriesEvent-bas

15、ed, Implicit InvocationMainProgram/SubroutineExplicitInvocationMain Program/Subroutine, Explicit InvocationClient/Server软件体系结构z软件体系结构的延伸需求分析阶段¾提供解空间试图,便于设计人员与用户交流软件设计阶段¾利用多视角展现,有利于问题的分解利用多视角展现有利于问题的分解软件开发阶段¾明确关联关系,有利于保持系统的明确关联关系有利于保持系统的一致性致性软件运行阶段¾通过系统运行态的动态视图,便于运行监控通过系统运行态的动态视图便

16、于运行监控软件维护阶段¾体系结构的演化,体现软件的不断演化体系结构的演化体现软件的不断演化基于体系结构的构件组装(ABC)z体系结构刻划系统整体结构全局组织与控制结构,构件间通讯、同步和数据访问着重于软件系统自身的整体结构和构件间的互联。z体系结构的组成成分构件(component) 定义计算的完成者连接子(connector) 定义构件间的交互配置(configuration) 定义构件和连接子的拓扑结构z新的瀑布模型:RequirementsArchitectingDesignCoding/Integ.Testing/Accept.Maintenance相应培训课程名称:软件体系

17、结构培训时间:2008-11-13领域工程z什么是领域一组具有相似和相近软件需求的应用系统所覆盖的功能区域领域中通常具有一组对应的具有相似和相近软件需求的应用系统z领域工程为特定领域软件应用的开发(应用为特定领域软件应用的开发(应用工程)建立可复用程)建立复用软件制品的活动为为一组相似或相近的软件系统建立基本能力和必备基组相似或相近的软件系统建立基本能力和必备基础的过程领域工程的实施目的基于复用的开发业务系统A新系统1识别/抽取领域共性业务系统B成分分析/预测领域变化性新系统2新系统3业务系统N可复用成分的凝练领域工程的阶段z领域程领域工程包括三个主要的阶段:个要阶段领域分析:目标是获得领域模

18、型(Domain Model)。¾领域模型描述领域中系统之间的共同的需求,并尽可能得识别和描述领域变化性。¾领域设计:这个阶段的目标是获得领域构架(Domain-Specific Software Architecture,缩写为DSSA)。¾DSSA描述在领域模型中表示的需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计。¾领域实现:¾实现DSSA和构件,并依据领域分析模型和DSSA组织可复用构件库。构件库领域工程与应用工程的关系系统2系统1系统N+1需求分析SRS领域分析DRMSRS系统设计SA领域设计

19、DSSASA系统实现领域实现DomainDiComponents系统实现Application应用工程领域工程应用工程相应培训课程名称:领域工程培训时间:2008-10-30构件库在基于构件的软件开发中的作用构件生产(领域工程)软件复用过程管理领域分析领域设计领域实现构件测试构件库应用分析应用设计应用实现应用测试构件复用(应用工程)软件构件库业务流程1.构件发布者构件发布者将构件信息发布到构件库中3.软件开发人员查询构件库,发现自己所需的构件离线构件:构件实体信息在线构件:构件接口信息2.RA14.软件开发人员AA3A4A2B1B3B4BCDD1C2D2构件库系统为每个构件分配唯一的标识符,并

20、对其进行管理软件开发人员通过WEB所查询到的结果开发相应应用程序(离线构件、在线构件)最终用户直接使用应用程序(在线软件最终用户构件)相应培训课程名称:软件资产管理技术培训时间:2008-11-27软件过程管理z软件过程与软件质量保证相关的几个国际标准:ISO 9000 质量管理体系ISO/IEC 12207 标准IEEE/EIA 12207 标准CMM 能力成熟度模型ISO 15504 信息技术-软件过程评估(SPICE)IEEE 1517标准IEEE或ISO 12207标准的过程框架 信息技术软件生命周期过程 信息技术 软件生命周期过程 组织生命周期过程 管理 改进 基础设施 培训 z z

21、 基本生命周期过程 获取 供应 开发 运行 维护 z 支持生命周期过程 文档编制 质量保证 确认 审核 配置管理 验证 联合评审 问题解决 基本:基本过程为基本 的团体服务。该团体负 责执行软件产品的开发、 操作或者维护。 支持:每一个支持过程 都是按照一个明确的目 的为另一个过程提供支 持的,并对整个软件项 目的成功做出贡献。 组织:组织过程由组织 使用,用来建立和实现 该软件生命周期的底层 支持结构。 过程、活动、任务三级结构zIEEE/EIA 12207IEEE/EIA12207是ISO/IEC ISO/IEC12207标准的美国版本。IEEE版本的主要目的:总结著名的美国软件工程实践和

22、经验IEEE或ISO 12207标准的过程框架过程由若干个活动组成,活动由若干个任务组成,活动由若干个任务组成形成一个过程、活动、任务的三级结构级结构。过程1活动1任务1任务n1活动2任务1任务n2zzIEEE 1517标准的复用过程框架的框图 信息技术软件生命周期过程复用过程标准 IEEE 1517标准是复用和CBD的过程标准 管理 基础设施 改进 培训 组织生命周期过程 复用程序管理 管理层面 基本生命周期过程 获取 运行 供应 维护 开发 跨项目生命周期过程 领域工程 技术层面 资产管理 支持生命周期过程 文档编制 配置管理 质量保证 验证 确认 联合评审 审核 问题解决 相应培训课程名称:软件复用过程培训时间:2008-10-30方法 组织结构 领域工程方法 构件制作指南 过程改善模型 配置管理指南 构件库 概念模型 构件模型 模 规定 面向对象方法 构件描述语言 构件组装指南 再工程指南 人员工作组 角色 描述 活动 构架、构件生产 (领域工程) 领域 领域 领域 分析 设计 实现 辅助 构件 管理 管理 软件项目管理对象 过程进度 过程 模型 变化 模型 再工程 应用系统集成组装 (应用工程) 分析 设计实现 测试 支持 面向对

温馨提示

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

评论

0/150

提交评论