您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 软件复用与构件技术简介
软件复用与构件技术简介李戈李戈北京大学信息科学技术学院软件研究所2008年10月16日北京第三届优秀软件构件评选北京第三届优秀软件构件评选支持单位:支持单位:北京市科学技术委员会主办:主办:北京软件行业协会北京软件与信息服务业促进中心北京软件与信息服务业促进中心北京软件产业基地公共技术支撑体系北京软件产业基地公共技术支撑体系承办:北京软件产品质量检测检验中心北京软件产品质量检测检验中心北京大学北京第三届优秀软件构件评选北京第三届优秀软件构件评选z提升北京市软件企业的核心竞争力z提升北京市软件企业的核心竞争力–帮助企业提高软件开发技术与研发能力,提高软件开发效率,降低软件开发成本推动以企业为主体、产学研相结合的技术创新体z推动以企业为主体、产学研相结合的技术创新体系的建设z促进北京软件产业的变革,使软件产业走上工程化、工业化的发展轨道化、工业化的发展轨道软件企业的现状与问题软件企业的现状与问题z现状:z现状:–软件系统的规模和复杂度不断提高对生产效率和产品质量的要求不断提高–对生产效率和产品质量的要求不断提高z问题:问题–如何提高软件生产的效率?如何掌控软件产品的质量?–如何掌控软件产品的质量?–生产效率与产品质量怎可得兼?为什么需要软件复用为什么需要软件复用z应用软件系统的一般开发模式需求分析设计实现测试运行z基本特征:应用系统的开发总是从头开始–每个应用系统的开发均涉及大量的重复劳动¾用户需求获取的重复¾用户需求获取的重复¾需求分析、设计的重复¾编码实现的重复¾编码实现的重复¾测试工作的重复文档工作的重复¾文档工作的重复为什么需要软件复用为什么需要软件复用z应用系统的构成成分分类z应用系统的构成成分分类–探讨应用系统的本质,其构成成分可分为:特定于计算机系统的构成成分¾特定于计算机系统的构成成分¾应用系统所属领域的共性构成成分¾每个应用系统的特有构成成分系统专用的构成成分领域共用的构成成分软件系统的领域共用的构成成分通用的系统构成成分构成成分通用的系统构成成分什么是软件复用什么是软件复用z避免重复劳动的解决方案--软件复用z避免重复劳动的解决方案软件复用–应用系统的开发不再采用一切“从零开始”的模式充分利去应发中的知–充分利用过去应用开发中积累的知识和经验:¾需求分析结果、设计方案、源代码、测试计划及案例等–以已有的工作为基础,重点关注应用的特殊性以已有的工作为基础,重点关注应用的特殊性z软件复用复使为复的计的软件的–重复使用“为了复用目的而设计的软件”的过程软件复用的历史软件复用的历史z软件复用概念的提出z软件复用概念的提出–1968年NATO软件工程会议之前子程序的概念也体现了复用的思想z之前,子程序的概念也体现了复用的思想–目的,是为了节省当时昂贵的机器内存资源¾并不是为了节省开发软件所需的人力资源–然而,子程序的概念可以用于节省人力资源的目的–从而,出现了程序库——将一些通用子程序收集到程序库中,供其他程序员在编程时使用–例如,数学程序库就是一个成功的子程序复用软件复用的历史软件复用的历史z在其后的发展过程中–有许多复用技术的研究成果和成功的复用实践活动–但是,复用技术在整体上对软件产业的影响却并不尽如人意¾这有技术方面和非技术方面的种种因素¾其中技术上的不成熟是一个主要原因z近十几年来,面向对象技术的出现并逐步成为主十几年来面向对象技术的出现并步成为流技术–为软件复用提供了基本的技术支持为软件复用提供了基本的技术支持–软件复用研究重新成为热点–被视为解决软件危机,提高软件生产效率和质量的现被视为解决软件危机,提高软件生产效率和质量的现实可行的途径软件复用的历史软件复用的历史z复用的发展反映出复用的不同层次z复用的发展反映出复用的不同层次–低级的复用(被动的复用)高级的复主动的复–高级的复用(主动的复用)z软件复用包括两个相关的过程件个–开发可以复用的软件成分利用可复用的软件成分构造新的应用系统–利用可复用的软件成分构造新的应用系统z软件复用是必然–实践证明,软件复用是解决软件危机,提高软件生产效率和软件产品质量的现实可行的途径。效率和软件产品质量的现实可行的途径。如何进行软件复用如何进行软件复用z软件复用的基本原则z软件复用的基本原则–必须有可以复用的对象复的对象有的–要复用的对象必须是有用的–需知道如何去使用被复用对象z需要解决的问题:可复用的对象是什么?–可复用的对象是什么?–如何构造具有良好可复用性的复用对象?–如何管理可复用对象?如何管理软件开发的过程?如何进行软件复用如何进行软件复用z传统工业的复用方式–如汽车飞机船舶制造业建筑业–如汽车、飞机、船舶制造业,建筑业–其成功的基本模式是¾符合标准的构件生产¾符合标准的构件生产¾基于标准构件的产品生产(组装)其中构件是核心和基础复用是必需的手段–其中构件是核心和基础,复用是必需的手段阶段1:符合阶段2:基于阶段1:符合标准的零部件(构件)生产阶段2:基于标准零部件的产品生产(构件)生产产品生产软件产业的工业化生产模式软件产业的工业化生产模式z实践证明实践明–这种模式是产业工程化、工业化的必由之路–是软件产业发展的良好借鉴–这正是软件复用受到高度重视的根本原因z借鉴传统产业的工业化生产模式,被认为是解决“软件危机”,提高软件开发效率和质量,实现软件产业工业化生产方式的重要途径软件复用过程:软件复用过程:阶段1:可复用软件资产的阶段2:基于可复用软件资产的用软件资产的生产复用软件资产的应用系统开发基于构件的软件开发基于构件的软件开发zCBSD–ComponentBasedSoftwareDevelopmentz基于构件的软件开发基于构件的软件开发–生产具有良好可复用性的构件–利用已有的构件资源进行组装z软件复用的有效途径–重复使用“为复用目的而开发的软件构件”–生产模式:从传统的软件编码工作转换为以软件构件为基础的系统集成组装z软件工业化生产的必然–软件的复杂性、构造性、演化性使之成为必然软件复用相关技术软件复用相关技术z基于构件的软件复用支持技术z基于构件的软件复用支持技术领域工程软软件再工程软件构架开放系统技术开放系统技术非领域工程软软件再工程软件构架开放系统技术开放系统技术构件构架构件、构架获取构件标准化构件标准化与描述构件分类、存储与检索构件分类、存储与检索构件组装软件过非技术因软件构件技术软件构件技术过程因素CASE技术什么是软件构件什么是软件构件z概念的由来z概念的由来–1968年NATO软件工程会议,Mcllroy的论文“大量生产的软件构件”提出了“SoftwareComponent”一生产的软件构件提出了p词。–“Component”一词的翻译:“构件”与“组件”z软件构件(SoftwareComponent)–应用系统中具有相对独立性且可以明确辨识的构成应用系统中具有相对独立性,且可以明确辨识的构成成分。z可复用软件构件(ReusableSoftwareComponent)件件p–可复用构件是指具有相对独立的功能和可复用价值的构件对软件构件概念的理解对软件构件概念的理解z狭义的构件–软件系统中具有相对独立功能、可以明确辨识、接口由契约指定、和语境有明显依赖关系、可独立部署、且多由第三方提供的可组装软件实体且多由第三方提供的可组装软件实体。–既包括以EJB,COM/DCOM,ActiveX,WebServices等形式存在的可运行二进制程序也包括经过封装的等形式存在的可运行二进制程序,也包括经过封装的源代码程序。z广义的构件z广义的构件–随着对软件复用理解的不断深入,软件构件概念的外延也在扩展。延也在扩展。–从构件实体到需求规约、系统构架、设计文档、测试案例等各种具有复用价值的软件资源都可称为构件。案例等各种具有复用价值的软件资源都可称为构件。做什么样的构件做什么样的构件z构件模型z构件模型–对现实构件世界(问题空间和设计空间)的抽象–研究构件的本质特征及构件间关系研究构件的本质特征及构件间关系–实现系统化复用的第一个关键因素–标准化工作的基础–标准化工作的基础z软件复用是一项复杂的系统工程。要建立系统化的复用计划,建立合适的构件模型是第一步。计划,建立合适的构件模型是第步。z系统化复用的实施涉及众多不同人员,不同的人员对对构件的关心角度不同,很难建立统一的模型来满足不同构件的关角度不同很难建统的模型来满足不同方面的需求,需要从不同的角度、在不同的抽象层次上看待构件,需要一组构件模型来满足不同的需求WillTracz的3C模型WillTracz的3C模型z概念(Concept)概(p)–关于“构件做什么”的抽象描述¾可以通过概念去理解构件的功能可以通过概念去理解构件的功能¾概念包括接口规约和语义描述两个部分z内容(Content)内容(Content)–概念的具体实现¾描述构件如何完成概念所刻划的功能¾描述构件如何完成概念所刻划的功能z语境(Context)–构件和外围环境在概念级和内容级的关系构件和外围环境在概念级和内容级的关系¾语境刻划构件的应用环境¾为构件的选用和适应性修改提供指导¾为构件的选用和适应性修改提供指导关于构件模型的讨论关于构件模型的讨论z学术界讨论的构件模型:支持环境下的系统组装内定的连接子()类–Unicon:支持Unix环境下的系统组装、内定的连接子(Connector)类型及组装机制–Wright:以进程代数(CSP)描述构件交互,强调体系结构风格的表达与应支持统(Style)的表达与应用,支持系统验证–C2:特定的层次的、基于消息总线风格–Rapide:基于事件,并支持描述并发和分布系统模型,将计算和交互p基于事件,并支持描述并发和分布系统模型,将计算和交互建模为偏序事件集,构件接口通过事件集定义–Darwin:支持定义系统的动态配置–Reboot:面向构件库系统的构件模型–Reboot:面向构件库系统的构件模型–Resolve……..z工业界成熟的构件实现模型:工业界成熟的构件实现模型:–EJB,COM/DCOM,ActiveX,WebServices……软件构件的典型形态之一软件构件的典型形态之zWebServices与软件构件WebServices与软件构件–WebServices完成相对独立的功能WbSi具有由契约指定的接口–WebServices具有由契约指定的接口–通过组装的方式集成到应用系统中–在系统中可以被明确地辨识zWebServices的构件特性的构件特性–接口与实现的区分更加明确对实现体进行的封装更加有效–对实现体进行的封装更加有效–具有较强的平台无关性–更加易于在Internet上发布相应培训相应培训课程名称:SOA&WebServices培训时间:2008-12-11软件体系结构软件体系结构z什么是软件体系结构什么是软件体系结构–长期以来,CMU-SEI在其网站上公开征集SA的定义,至今已有百余种.今已有百余种.z较有影响力的定义包括:软件系统的结构包含软件元素软件元素外部可见的–软件系统的结构包含软件元素、软件元素外部可见的属性以及这些软件元素之间的关系;软件系统的基本组织包含构件构件之间构件与环–软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系,以及相关的设计与演化原则等.共同特性z共同特性:–一般都将构件以及构件之间的连接作为SA的基本组成部分部分.软件体系结构软件体系结构z什么是软件体系结构z什么是软件体系结构–对系统结构的总体设计与说明–是一种高层设计是种高层设计–关注三方面问题:构件、构件间关系、关系约束z构件z构件:–软件系统由哪些部分构成构件间的关系z构件间的关系:–这些部分之间的交互关系是什么z关系的约束:–这些关系有什么约束软件体系结构软件体系结构z体系结构示例:体系结构示例软件体系结构软件体系结构z软件体系结构风格z软件体系结构风格–描述某一特定应用领域中系统组织方式的惯用模式z软件体系结构模式z软件体系结构模式–描述了软件系统基本的结构化组织方案,是对设计模式的扩展可以作为具体SA的模板–是对设计模式的扩展,可以作为具体SA的模板z常见的体系
本文标题:软件复用与构件技术简介
链接地址:https://www.777doc.com/doc-5240406 .html