第10章软件复用方案课件

上传人:494895****12427 文档编号:240920250 上传时间:2024-05-17 格式:PPT 页数:34 大小:511.77KB
返回 下载 相关 举报
第10章软件复用方案课件_第1页
第1页 / 共34页
第10章软件复用方案课件_第2页
第2页 / 共34页
第10章软件复用方案课件_第3页
第3页 / 共34页
点击查看更多>>
资源描述
第第1010章章 软件复用软件复用中南大学医药信息系管理信息系统第第10章软件复用方案课件章软件复用方案课件中南大学医药信息系编码与测试1.1.软件复用的基本概念软件复用的基本概念2.2.领域工程领域工程3.3.基于构件的软件开发基于构件的软件开发4.4.面向对象与软件复用面向对象与软件复用主要内容中南大学医药信息系编码与测试中南大学医药信息系编码与测试 软件复用的基本概念主要内容软件复用的基本概念主要内容中南大学医药信息系编码与测试10.1 软件复用的基本概念软件复用的基本概念1.软件复用的定义软件复用的定义Freeman(1983Freeman(1983年年年年):“在构造新的软件系统过程中,对已存在的软件在构造新的软件系统过程中,对已存在的软件在构造新的软件系统过程中,对已存在的软件在构造新的软件系统过程中,对已存在的软件人工制品的使用技术。人工制品的使用技术。人工制品的使用技术。人工制品的使用技术。”n开发伴随复用,开发为了复用开发伴随复用,开发为了复用开发伴随复用,开发为了复用开发伴随复用,开发为了复用uu制造软件构件技术制造软件构件技术制造软件构件技术制造软件构件技术领域工程领域工程领域工程领域工程uu使用软件构件技术使用软件构件技术使用软件构件技术使用软件构件技术基于构件的软件开发基于构件的软件开发基于构件的软件开发基于构件的软件开发中南大学医药信息系编码与测试中南大学医药信息系编码与测试10.1 软件复用的基本概念软件软件复用的基本概念软件领域领域领域领域工程工程工程工程领域分析领域分析领域分析领域分析软件结构开发软件结构开发软件结构开发软件结构开发可重用构件开发可重用构件开发可重用构件开发可重用构件开发领域模型领域模型领域模型领域模型结构模型结构模型结构模型结构模型可复用可复用可复用可复用构件库构件库构件库构件库基于构件基于构件基于构件基于构件的开发的开发的开发的开发分析分析分析分析构件选用构件选用构件选用构件选用构件更新构件更新构件更新构件更新构件工程构件工程构件工程构件工程结构设计结构设计结构设计结构设计测试测试测试测试构件调整构件调整构件调整构件调整构件组合构件组合构件组合构件组合应用应用应用应用软件软件软件软件领域领域分析软件结构开发可重用构件开发领域模型结构模型可复用领域领域分析软件结构开发可重用构件开发领域模型结构模型可复用中南大学医药信息系编码与测试2.软件复用的措施软件复用的措施软件复用的措施软件复用的措施n软件复用的重要性软件复用的重要性软件复用的重要性软件复用的重要性目的:能更快、更好、成本更低地生产软件产品。目的:能更快、更好、成本更低地生产软件产品。目的:能更快、更好、成本更低地生产软件产品。目的:能更快、更好、成本更低地生产软件产品。n实现软件复用应优先采取的措施:实现软件复用应优先采取的措施:实现软件复用应优先采取的措施:实现软件复用应优先采取的措施:uu建立支持复用的基础设施建立支持复用的基础设施建立支持复用的基础设施建立支持复用的基础设施(如构件库如构件库如构件库如构件库)。uu培训工程师和管理者使用复用软件。培训工程师和管理者使用复用软件。培训工程师和管理者使用复用软件。培训工程师和管理者使用复用软件。uu采用促进软件复用的开发方法采用促进软件复用的开发方法采用促进软件复用的开发方法采用促进软件复用的开发方法(如面向对象的开发方如面向对象的开发方如面向对象的开发方如面向对象的开发方法法法法)。uu企业内部采取激励措施。企业内部采取激励措施。企业内部采取激励措施。企业内部采取激励措施。中南大学医药信息系编码与测试软件复用的措施中南大学医药信息系编码与测试软件复用的措施中南大学医药信息系编码与测试复用具有许多明显的优点,但目前应用不广泛的主要原因是:复用具有许多明显的优点,但目前应用不广泛的主要原因是:(1)技术因素技术因素 构件与应用系统之间的差异;构件与应用系统之间的差异;构件要达到一定的规模,才能支持有效的复用;构件要达到一定的规模,才能支持有效的复用;发现合用构件的困难;发现合用构件的困难;基于复用的软件开发方法和软件过程需要一些新的理论、技基于复用的软件开发方法和软件过程需要一些新的理论、技术及支持环境。术及支持环境。软件软件复用的困难复用的困难(2)人的因素人的因素喜欢自己创造而不喜欢使用别人的东西。喜欢自己创造而不喜欢使用别人的东西。(4)教育因素教育因素软件科学技术的教育与培训中,缺乏关于软件复软件科学技术的教育与培训中,缺乏关于软件复用的内容,缺少专门教材和课程。用的内容,缺少专门教材和课程。(3)管理因素管理因素把复用构件和一般软件构件同等看待,把复用看把复用构件和一般软件构件同等看待,把复用看作可有可无的事。作可有可无的事。中南大学医药信息系编码与测试复用具有许多明显的优点,但目前中南大学医药信息系编码与测试复用具有许多明显的优点,但目前中南大学医药信息系编码与测试3.软件复用的粒度软件复用的粒度(1)源代码复用源代码复用在构件库检索到实用的构件,通过设置参数值,在构件库检索到实用的构件,通过设置参数值,在构件库检索到实用的构件,通过设置参数值,在构件库检索到实用的构件,通过设置参数值,使之具有新的适应性。使之具有新的适应性。使之具有新的适应性。使之具有新的适应性。由于构件经过充分的测试,其可靠性高。由于构件经过充分的测试,其可靠性高。由于构件经过充分的测试,其可靠性高。由于构件经过充分的测试,其可靠性高。但通用性、抽象性较差。但通用性、抽象性较差。但通用性、抽象性较差。但通用性、抽象性较差。(2)(2)软件体系结构复用软件体系结构复用可复用较大粒度的软件制品可复用较大粒度的软件制品因为难以抽象出简明的描述,存放体系因为难以抽象出简明的描述,存放体系结构的库不宜管理结构的库不宜管理中南大学医药信息系编码与测试软件复用的粒度中南大学医药信息系编码与测试软件复用的粒度(1)源代码复用源代码复用中南大学医药信息系编码与测试(3)应用程序生成器应用程序生成器用于对整个软件系统设计的复用。用于对整个软件系统设计的复用。用于对整个软件系统设计的复用。用于对整个软件系统设计的复用。自动化程度高自动化程度高自动化程度高自动化程度高特定的应用程序生成器不宜构造特定的应用程序生成器不宜构造特定的应用程序生成器不宜构造特定的应用程序生成器不宜构造(4)领域特定的软件体系结构的复用领域特定的软件体系结构的复用指对特定领域中存在的一个公共体系结构指对特定领域中存在的一个公共体系结构指对特定领域中存在的一个公共体系结构指对特定领域中存在的一个公共体系结构及其构件的复用。要求对领域有透彻的及其构件的复用。要求对领域有透彻的及其构件的复用。要求对领域有透彻的及其构件的复用。要求对领域有透彻的理解才能进行领域建模。理解才能进行领域建模。理解才能进行领域建模。理解才能进行领域建模。特点:特点:复用程度高复用程度高复用程度高复用程度高 前期投入大前期投入大前期投入大前期投入大中南大学医药信息系编码与测试中南大学医药信息系编码与测试(3)应用程序生成器应用程序生成器中南大学医药信息系编码与测试 10.2 领域工程领域工程 n领域:领域:是一组具有相似或相近软件需是一组具有相似或相近软件需求的应用系统所覆盖的区域。求的应用系统所覆盖的区域。中南大学医药信息系编码与测试中南大学医药信息系编码与测试 10.2 领域工程领域工程 领域:是一领域:是一中南大学医药信息系编码与测试 10.2 领域工程领域工程 1 1、横向复用和纵向复用、横向复用和纵向复用、横向复用和纵向复用、横向复用和纵向复用n领域中的复用可分为:横向复用和纵向复用领域中的复用可分为:横向复用和纵向复用领域中的复用可分为:横向复用和纵向复用领域中的复用可分为:横向复用和纵向复用n横向复用:指复用不同应用领域中的软件元横向复用:指复用不同应用领域中的软件元横向复用:指复用不同应用领域中的软件元横向复用:指复用不同应用领域中的软件元素,如标准函数库。素,如标准函数库。素,如标准函数库。素,如标准函数库。n纵向复用:指具有较多公共性的应用领域之纵向复用:指具有较多公共性的应用领域之纵向复用:指具有较多公共性的应用领域之纵向复用:指具有较多公共性的应用领域之间的软件复用。间的软件复用。间的软件复用。间的软件复用。n纵向复用的领域工程实施的活动:纵向复用的领域工程实施的活动:纵向复用的领域工程实施的活动:纵向复用的领域工程实施的活动:实施领域分析实施领域分析实施领域分析实施领域分析 开发可复用的构件开发可复用的构件开发可复用的构件开发可复用的构件 建立可复用构件库建立可复用构件库建立可复用构件库建立可复用构件库中南大学医药信息系编码与测试中南大学医药信息系编码与测试 10.2 领域工程领域工程 1、横向复、横向复中南大学医药信息系编码与测试2.实施领域分析实施领域分析实施领域分析实施领域分析 领域分析是在特定应用领域寻找最优复用的过程,领域分析是在特定应用领域寻找最优复用的过程,领域分析是在特定应用领域寻找最优复用的过程,领域分析是在特定应用领域寻找最优复用的过程,它以公共对象、类、子集合和框架等形式进行标它以公共对象、类、子集合和框架等形式进行标它以公共对象、类、子集合和框架等形式进行标它以公共对象、类、子集合和框架等形式进行标识,然后对它们进行分析和规约。识,然后对它们进行分析和规约。识,然后对它们进行分析和规约。识,然后对它们进行分析和规约。这个阶段的主要任务是获得这个阶段的主要任务是获得这个阶段的主要任务是获得这个阶段的主要任务是获得“领域模型领域模型领域模型领域模型”,领域模,领域模,领域模,领域模型的需求描述为型的需求描述为型的需求描述为型的需求描述为“领域需求领域需求领域需求领域需求”。根据领域需求,领域工程师寻找领域的共性,进而根据领域需求,领域工程师寻找领域的共性,进而根据领域需求,领域工程师寻找领域的共性,进而根据领域需求,领域工程师寻找领域的共性,进而确定软件的可复用构件。确定软件的可复用构件。确定软件的可复用构件。确定软件的可复用构件。中南大学医药信息系编码与测试实施领域分析中南大学医药信息系编码与测试实施领域分析中南大学医药信息系编码与测试n领域分析领域分析(Domain Analysis)是对一类应用系统的是对一类应用系统的共同应用领域进行系统化分析,以发现该领域的共同应用领域进行系统化分析,以发现该领域的共同知识、需求及其应用系统的共同特征。共同知识、需求及其应用系统的共同特征。领域分析又称作领域工程领域分析又称作领域工程(Domain Engineering),是软件工程的发展与延伸。,是软件工程的发展与延伸。领域分析是一项比系统分析更难的工作。领领域分析是一项比系统分析更难的工作。领域分析方法可采用结构化方法和面向对象方法,域分析方法可采用结构化方法和面向对象方法,而后者将成为主流。而后者将成为主流。中南大学医药信息系编码与测试领域分析中南大学医药信息系编码与测试领域分析(Domain Analn领域分析的步骤:领域分析的步骤:领领领领域域域域知知知知识识识识源源源源领领领领域域域域知知知知识识识识模模模模型型型型领领领领域域域域分分分分析析析析技术文件技术文件技术文件技术文件已有应用已有应用已有应用已有应用客户考察客户考察客户考察客户考察专家提议专家提议专家提议专家提议目前目前目前目前/未来的需求未来的需求未来的需求未来的需求类的分析类的分析类的分析类的分析复用标准复用标准复用标准复用标准功能模型功能模型功能模型功能模型需求规约需求规约需求规约需求规约 选择特定的领域选择特定的领域选择特定的领域选择特定的领域 抽取具有最优复用的功能抽取具有最优复用的功能抽取具有最优复用的功能抽取具有最优复用的功能 标识该功能标识该功能标识该功能标识该功能 建立领域分析模型建立领域分析模型建立领域分析模型建立领域分析模型 定义需求规约,得到由需求规约构件和子配置构成的领域模型定义需求规约,得到由需求规约构件和子配置构成的领域模型定义需求规约,得到由需求规约构件和子配置构成的领域模型定义需求规约,得到由需求规约构件和子配置构成的领域模型领域分析的步骤:领领领技术文件已有应用客户考察专家提议目前领域分析的步骤:领领领技术文件已有应用客户考察专家提议目前/领领域域分分析析是是对对特特定定应应用用领领域域中中共共同同的的特特征征、知知识识、需需求求的的标标识识、分分析析和和规规约约。领领域域分分析析是是特特定定领领域域内内软软件件重重用用的的基基础础,它它的的目目标标就就是是:发发现现和和挖挖掘掘在在特特定定领领域域内内可可以以被被复复用用的的构构件件。领域分析活动中输入和输出如图所示:领域分析活动中输入和输出如图所示:领域分析领域分析领域分析领域分析输入信息输入信息技术文献已有应用专家经验/建议当前与未来的需求输出信息输出信息领域语言领域语言复用标准复用标准分类方法分类方法功能功能/行为模型行为模型领域分析的输入和输出领域分析不是针对某个特定的软件系统,而是领域分析不是针对某个特定的软件系统,而是针对一类软针对一类软件系统件系统的共同的特征、知识和需求的共同的特征、知识和需求。比需求分析更一般、更抽比需求分析更一般、更抽象、更广泛的特征。象、更广泛的特征。领域分析是对特定应用领域中共同的特征、知识、需求的标识、领域分析是对特定应用领域中共同的特征、知识、需求的标识、中南大学医药信息系编码与测试3.开发可复用构件开发可复用构件(1)(1)单个构件的特征单个构件的特征单个构件的特征单个构件的特征 通用性通用性通用性通用性 可变性可变性可变性可变性 在建造构件时,应该提供构件的特化和调整机制。在建造构件时,应该提供构件的特化和调整机制。在建造构件时,应该提供构件的特化和调整机制。在建造构件时,应该提供构件的特化和调整机制。易组装性易组装性易组装性易组装性u u构件的组装分为同构件的组装和异构件的组装。构件的组装分为同构件的组装和异构件的组装。构件的组装分为同构件的组装和异构件的组装。构件的组装分为同构件的组装和异构件的组装。u u构件应有良好的封装性和良好的接口。构件应有良好的封装性和良好的接口。构件应有良好的封装性和良好的接口。构件应有良好的封装性和良好的接口。u u构件间应有松散的耦合度构件间应有松散的耦合度构件间应有松散的耦合度构件间应有松散的耦合度u u应提供便于组装的机制应提供便于组装的机制应提供便于组装的机制应提供便于组装的机制中南大学医药信息系编码与测试中南大学医药信息系编码与测试3.开发可复用构件开发可复用构件中南大学医药信息系编码与测试(2)领域构件的特征)领域构件的特征标准数据标准数据 标准接口协议标准接口协议程序模板程序模板中南大学医药信息系编码与测试(中南大学医药信息系编码与测试(2)领域构件的特征)领域构件的特征中南大学医药信息系编码与测试(3)几种流行的构件技术)几种流行的构件技术 1 1)COM(Component Object Model)COM(Component Object Model)OLE(Object Linking and Embedding)OLE(Object Linking and Embedding)组件对象模型技术组件对象模型技术组件对象模型技术组件对象模型技术 COMCOM是是是是MicrosoftMicrosoft公司开发的一种构件对象模型,它公司开发的一种构件对象模型,它公司开发的一种构件对象模型,它公司开发的一种构件对象模型,它提供了使用不同厂商生产的对象的规约。任何人都可提供了使用不同厂商生产的对象的规约。任何人都可提供了使用不同厂商生产的对象的规约。任何人都可提供了使用不同厂商生产的对象的规约。任何人都可以按此标准独立地开发组件和增值组件,或由若干组以按此标准独立地开发组件和增值组件,或由若干组以按此标准独立地开发组件和增值组件,或由若干组以按此标准独立地开发组件和增值组件,或由若干组件组建集成软件。件组建集成软件。件组建集成软件。件组建集成软件。中南大学医药信息系编码与测试(中南大学医药信息系编码与测试(3)几种流行的构件技术)几种流行的构件技术中南大学医药信息系编码与测试2)CORBA(Common Object Request Broker Achitecture)公共对象请求代理体公共对象请求代理体系结构系结构 CORBACORBA是对象管理组织于是对象管理组织于是对象管理组织于是对象管理组织于19911991年发布的一种基年发布的一种基年发布的一种基年发布的一种基于分布对象技术的公共对象请求代理体系结构,于分布对象技术的公共对象请求代理体系结构,于分布对象技术的公共对象请求代理体系结构,于分布对象技术的公共对象请求代理体系结构,其目的是在分布式环境下,建立一个基于对象其目的是在分布式环境下,建立一个基于对象其目的是在分布式环境下,建立一个基于对象其目的是在分布式环境下,建立一个基于对象技术的体系结构和一组规范,实现应用的集成,技术的体系结构和一组规范,实现应用的集成,技术的体系结构和一组规范,实现应用的集成,技术的体系结构和一组规范,实现应用的集成,使组件在异构环境中可以复用、移植和互操作。使组件在异构环境中可以复用、移植和互操作。使组件在异构环境中可以复用、移植和互操作。使组件在异构环境中可以复用、移植和互操作。中南大学医药信息系编码与测试中南大学医药信息系编码与测试2)CORBA(Common 中南大学医药信息系编码与测试3)OpenDoc开放式文档接口开放式文档接口 OpenDoc是是IBM、Apple、Novell等公等公司推出的关于复合文档和构件软件的标司推出的关于复合文档和构件软件的标准。准。中南大学医药信息系编码与测试中南大学医药信息系编码与测试3)OpenDoc开放式文档接开放式文档接4.4.4.4.建立可复用构件库建立可复用构件库建立可复用构件库建立可复用构件库构件库构件库(Component Library)用于对可复用构件进行存储用于对可复用构件进行存储和管理。它是支持软件复用的必要设施。构件库必须有大量和管理。它是支持软件复用的必要设施。构件库必须有大量的可复用构件。的可复用构件。构件库系统应提供的主要功能:构件的存储、管理、检构件库系统应提供的主要功能:构件的存储、管理、检索以及库的浏览与维护等。索以及库的浏览与维护等。关键是支持使用者高效而准确地发现所需的可复用构件。关键是支持使用者高效而准确地发现所需的可复用构件。相关的主要技术是分类方法和检索方法。相关的主要技术是分类方法和检索方法。支持方便的、友好的用户管理和使用界面。支持方便的、友好的用户管理和使用界面。构件分类构件分类构件检索构件检索涉及两个基本问题:涉及两个基本问题:涉及两个基本问题:涉及两个基本问题:4.建立可复用构件库构件库建立可复用构件库构件库(Component Lib大多数的构件分类模式可以归纳为以下三种类型:大多数的构件分类模式可以归纳为以下三种类型:1 1)枚举分类)枚举分类通过定义一个层次结构来对构件进行分类。构件库中的可通过定义一个层次结构来对构件进行分类。构件库中的可复用构件按照某种标准被分成了若干个大类,而每个大类中的复用构件按照某种标准被分成了若干个大类,而每个大类中的构件再被划分成若干个小类,依此类推,这样就形成了一个构构件再被划分成若干个小类,依此类推,这样就形成了一个构件分类的层次结构,件分类的层次结构,图形用户界面类图形用户界面类窗口类窗口类菜单类菜单类图形窗图形窗口构件口构件文字窗文字窗口构件口构件系统菜系统菜单构件单构件弹出式菜弹出式菜单构件单构件普通菜普通菜单构件单构件枚举分类的层次结构(1 1)构件的分类)构件的分类大多数的构件分类模式可以归纳为以下三种类型:大多数的构件分类模式可以归纳为以下三种类型:图形用户界图形用户界2 2)刻面分类)刻面分类一个刻面描述构件某一个方面的特征。刻面分类则是从不一个刻面描述构件某一个方面的特征。刻面分类则是从不同的侧面对构件进行分类,每一种分类方式称为一个刻面。不同的侧面对构件进行分类,每一种分类方式称为一个刻面。不同的刻面根据其重要性可以设置不同的优先级。同的刻面根据其重要性可以设置不同的优先级。刻面刻面应用领域应用领域对象对象功能功能编程语言编程语言刻面值刻面值图形用户界面编程图形用户界面编程菜单菜单动态修改菜单项动态修改菜单项JAVA对构件的每个刻面赋予相应的值,用以描述该构件。刻面对构件的每个刻面赋予相应的值,用以描述该构件。刻面分类具有较好的灵活性,易于加入新的刻面值,因此刻面分类分类具有较好的灵活性,易于加入新的刻面值,因此刻面分类比枚举分类更易于扩展和修改。比枚举分类更易于扩展和修改。该方法首先是为构件库中的所有构件定义一组属性,并赋该方法首先是为构件库中的所有构件定义一组属性,并赋予相应的属性值。开发人员通过指定一组属性值在构件库中对予相应的属性值。开发人员通过指定一组属性值在构件库中对构件进行检索。构件进行检索。2)刻面分类刻面刻面值对构件的每个刻面赋予相应的值,用以)刻面分类刻面刻面值对构件的每个刻面赋予相应的值,用以刻面分类法刻面分类法(Faceted Classification):支持多重观点对构件进行分类,例如从构件的应用领域、构支持多重观点对构件进行分类,例如从构件的应用领域、构件所描述的对象、构件的观点和编程语言等不同的方式来分类。件所描述的对象、构件的观点和编程语言等不同的方式来分类。每一种分类方式称为一个刻面。每一种分类方式称为一个刻面。每个刻面把构件集合划分为一个子集,各刻面所划分的子集每个刻面把构件集合划分为一个子集,各刻面所划分的子集形成一些较小的交集。形成一些较小的交集。一个构件对每个刻面有一个刻面值,例如:一个构件对每个刻面有一个刻面值,例如:应用领域应用领域 =计算机绘图计算机绘图 对象对象 =椭圆椭圆功能功能 彩色填充,彩色填充,编程语言编程语言 =C+=C+刻面分类法刻面分类法(Faceted Classification):检索一个构件时,给出一组刻面值,将确定一组检索一个构件时,给出一组刻面值,将确定一组子集合,构件应该在这些子结合的交集中,从其中确子集合,构件应该在这些子结合的交集中,从其中确认所需的构件就比较容易。认所需的构件就比较容易。构件可用属性描述,例如构件类型、开发单位、构件可用属性描述,例如构件类型、开发单位、作者、提交日期等属性。检索时通过构件的属性可以作者、提交日期等属性。检索时通过构件的属性可以缩小搜索范围。缩小搜索范围。刻面和属性都不涉及构件内部实现,只是为了便刻面和属性都不涉及构件内部实现,只是为了便于构件的管理、检索和使用。如果把构件比作一只箱于构件的管理、检索和使用。如果把构件比作一只箱子,其内容如同箱子中装的东西,刻面和属性则如同子,其内容如同箱子中装的东西,刻面和属性则如同箱子外边的标签。箱子外边的标签。刻面分类法可以看作层次分类法的扩充刻面分类法可以看作层次分类法的扩充。检索一个构件时,给出一组刻面值,将确定一组子集合,构件应检索一个构件时,给出一组刻面值,将确定一组子集合,构件应中南大学医药信息系编码与测试 3)属性属性-值分类值分类为领域中的所有构件定义一组属性,然后赋为领域中的所有构件定义一组属性,然后赋为领域中的所有构件定义一组属性,然后赋为领域中的所有构件定义一组属性,然后赋给这组属性一组值。通过属性,查找构件。给这组属性一组值。通过属性,查找构件。给这组属性一组值。通过属性,查找构件。给这组属性一组值。通过属性,查找构件。属性属性属性属性-值分类对可使用的属性数量没有限制,值分类对可使用的属性数量没有限制,值分类对可使用的属性数量没有限制,值分类对可使用的属性数量没有限制,而呈面分类限定不超过而呈面分类限定不超过而呈面分类限定不超过而呈面分类限定不超过7 7或或或或8 8个。个。个。个。属性属性属性属性-值分类中的属性没有优先级,而呈面值分类中的属性没有优先级,而呈面值分类中的属性没有优先级,而呈面值分类中的属性没有优先级,而呈面可以区分优先级。可以区分优先级。可以区分优先级。可以区分优先级。属性属性属性属性-值分类不具有同义词功能,而呈面可值分类不具有同义词功能,而呈面可值分类不具有同义词功能,而呈面可值分类不具有同义词功能,而呈面可以查找相关的同义词。以查找相关的同义词。以查找相关的同义词。以查找相关的同义词。中南大学医药信息系编码与测试中南大学医药信息系编码与测试 3)属性属性-值分类值分类构构件件库库中中检检索索一一个个构构件件和和在在数数据据库库中中检检索索一一个个记记录录是是不不同同的。的。构构件件库库检检索索的的不不确确定定性性带带来来两两种种相相互互矛矛盾盾的的结结果果:检检索索的的结结果果可可能能是是一一个个较较大大的的构构件件集集合合,要要从从中中找找到到所所需需的的构构件件仍仍然然很费力;检索得到的集合没有把真正需要的构件包括在内。很费力;检索得到的集合没有把真正需要的构件包括在内。解决方法:解决方法:(一一)一般构件库系统能对提出的检索条件作广义解释。一般构件库系统能对提出的检索条件作广义解释。建建立立同同义义词词对对照照表表,例例如如“商商品品销销售售”、“售售货货”、“卖卖货货”看作一组同义词;看作一组同义词;建建立立近近意意词词对对照照表表,例例如如把把“商商业业”、“商商场场”、“连连锁锁店店”看作一组近意词。看作一组近意词。系系统统首首先先匹匹配配同同义义词词,再再匹匹配配近近意意词词,都都可可以以被被包包括括到到广广义结果集合中。义结果集合中。(2)构件检索)构件检索构件库中检索一个构件和在数据库中检索一个记录是不同的。(构件库中检索一个构件和在数据库中检索一个记录是不同的。((二二)使检索得到的构件集合尽可能不包括对用户无用的构件。使检索得到的构件集合尽可能不包括对用户无用的构件。增增加加更更多多的的刻刻面面与与构构件件属属性性:较较多多的的刻刻面面和和属属性性值值,将将得得到更小的子集合文集,减轻最终发现和确认所需构件的难度;到更小的子集合文集,减轻最终发现和确认所需构件的难度;建建立立构构件件关关键键词词:根根据据构构件件内内容容提提炼炼关关键键词词,如如同同学学术术论论文的关键词,反映有关构件内容的一些主要信息。文的关键词,反映有关构件内容的一些主要信息。例例如如,找找功功能能构构件件的的关关键键词词有有“压压入入”、“弹弹出出”、“后后进进先先出出”等等等等。如如果果通通过过刻刻面面和和构构件件属属性性得得到到的的构构件件子子集集较较大大,可用关键词作进一步的检索,以缩小搜索范围。可用关键词作进一步的检索,以缩小搜索范围。改进构件检索的其它措施:改进构件检索的其它措施:(1)(1)记记录录用用户户使使用用构构件件库库的的经经验验,并并根根据据这这些些经经验验改改经经构构件检索系统;件检索系统;(2)(2)对每个构件给出一段文字的简要介绍;对每个构件给出一段文字的简要介绍;(3)(3)提供较强的人机对话功能;提供较强的人机对话功能;(4)(4)引导用户对自己需求的表达不断精化。引导用户对自己需求的表达不断精化。(二二)使检索得到的构件集合尽可能不包括对用户无用的构件。改进使检索得到的构件集合尽可能不包括对用户无用的构件。改进中南大学医药信息系编码与测试 10.3 基于构件的软件开发基于构件的软件开发 nCBSDCBSD改变了软件的生产方式,提高了软件生改变了软件的生产方式,提高了软件生改变了软件的生产方式,提高了软件生改变了软件的生产方式,提高了软件生产的效率和质量产的效率和质量产的效率和质量产的效率和质量1.1.构件集成模型构件集成模型构件集成模型构件集成模型查询查询查询查询构件库构件库构件库构件库新系统新系统新系统新系统构件理解构件理解构件理解构件理解复合复合复合复合适应性修改适应性修改适应性修改适应性修改图图图图10.5 10.5 把库中的构件集成到应用系统中把库中的构件集成到应用系统中把库中的构件集成到应用系统中把库中的构件集成到应用系统中中南大学医药信息系编码与测试中南大学医药信息系编码与测试 10.3 基于构件的软件开发基于构件的软件开发 中南大学医药信息系编码与测试2.2.应用系统工程应用系统工程应用系统工程应用系统工程ASE(Application System Engineering)ASE(Application System Engineering)通过复用构件系统开发某个特定应用系统的构件工程。通过复用构件系统开发某个特定应用系统的构件工程。通过复用构件系统开发某个特定应用系统的构件工程。通过复用构件系统开发某个特定应用系统的构件工程。收集和分析用户的需求,设计并实现需要另加的构件,对收集和分析用户的需求,设计并实现需要另加的构件,对收集和分析用户的需求,设计并实现需要另加的构件,对收集和分析用户的需求,设计并实现需要另加的构件,对所提供的可复用构件进行必要的修改,建造和测试整个应所提供的可复用构件进行必要的修改,建造和测试整个应所提供的可复用构件进行必要的修改,建造和测试整个应所提供的可复用构件进行必要的修改,建造和测试整个应用系统。用系统。用系统。用系统。测试测试测试测试获取需求获取需求获取需求获取需求分析分析分析分析设计设计设计设计打包打包打包打包实现实现实现实现中南大学医药信息系编码与测试中南大学医药信息系编码与测试2.应用系统工程收集和分析用户应用系统工程收集和分析用户中南大学医药信息系编码与测试 10.4 面向对象与软件复用面向对象与软件复用 面向对象技术的核心概念是面向对象技术的核心概念是面向对象技术的核心概念是面向对象技术的核心概念是“类类类类”,而类的主要特征封,而类的主要特征封,而类的主要特征封,而类的主要特征封装、继承和多态,都十分有利于复用。装、继承和多态,都十分有利于复用。装、继承和多态,都十分有利于复用。装、继承和多态,都十分有利于复用。1.面向对象方法对软件复用的支持面向对象方法对软件复用的支持面向对象方法对软件复用的支持面向对象方法对软件复用的支持 OOAOOA模型模型模型模型 OOAOOA模型分基础模型和详细模型,基础模型体现更模型分基础模型和详细模型,基础模型体现更模型分基础模型和详细模型,基础模型体现更模型分基础模型和详细模型,基础模型体现更高层次的抽象,更容易复用。高层次的抽象,更容易复用。高层次的抽象,更容易复用。高层次的抽象,更容易复用。OOAOOA和和和和OODOOD的分工的分工的分工的分工OOAOOA:注重与问题及系统责任有关的信息:注重与问题及系统责任有关的信息:注重与问题及系统责任有关的信息:注重与问题及系统责任有关的信息OODOOD:需考虑与实现条件有关的因素:需考虑与实现条件有关的因素:需考虑与实现条件有关的因素:需考虑与实现条件有关的因素中南大学医药信息系编码与测试中南大学医药信息系编码与测试 10.4 面向对象与软件复用面向对象与软件复用 中南大学医药信息系编码与测试 10.4 面向对象与软件复用面向对象与软件复用 对象的表示对象的表示 一般一般-特殊结构特殊结构 整体整体-部分结构部分结构 实例连接实例连接 建议用简单的二元关系表示各种复杂关建议用简单的二元关系表示各种复杂关系和多元关系系和多元关系 类模型模板类模型模板 用例用例中南大学医药信息系编码与测试中南大学医药信息系编码与测试 10.4 面向对象与软件复用面向对象与软件复用 中南大学医药信息系编码与测试2.复用技术对面向对象方法的支持复用技术对面向对象方法的支持 类库类库类库类库 人们已经开发了许多基于面向对象语言的编程类库,有利人们已经开发了许多基于面向对象语言的编程类库,有利人们已经开发了许多基于面向对象语言的编程类库,有利人们已经开发了许多基于面向对象语言的编程类库,有利地支持了源程序级的软件复用。地支持了源程序级的软件复用。地支持了源程序级的软件复用。地支持了源程序级的软件复用。构件库构件库构件库构件库 构件库可以提炼比对象类粒度更大的可复用构件,如用例构件库可以提炼比对象类粒度更大的可复用构件,如用例构件库可以提炼比对象类粒度更大的可复用构件,如用例构件库可以提炼比对象类粒度更大的可复用构件,如用例图、交互图等,形式和内容比类库更丰富。图、交互图等,形式和内容比类库更丰富。图、交互图等,形式和内容比类库更丰富。图、交互图等,形式和内容比类库更丰富。构架库构架库构架库构架库 通过领域分析,建立可重用的通过领域分析,建立可重用的通过领域分析,建立可重用的通过领域分析,建立可重用的OOAOOA模型。模型。模型。模型。工具工具工具工具 支持复用的软件工具。支持复用的软件工具。支持复用的软件工具。支持复用的软件工具。OOAOOA过程过程过程过程 中南大学医药信息系编码与测试复用技术对面向对象方法的支持中南大学医药信息系编码与测试复用技术对面向对象方法的支持人有了知识,就会具备各种分析能力,人有了知识,就会具备各种分析能力,人有了知识,就会具备各种分析能力,人有了知识,就会具备各种分析能力,明辨是非的能力。明辨是非的能力。明辨是非的能力。明辨是非的能力。所以我们要勤恳读书,广泛阅读,所以我们要勤恳读书,广泛阅读,所以我们要勤恳读书,广泛阅读,所以我们要勤恳读书,广泛阅读,古人说古人说古人说古人说“书中自有黄金屋。书中自有黄金屋。书中自有黄金屋。书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,通过阅读科技书籍,我们能丰富知识,通过阅读科技书籍,我们能丰富知识,通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;培养逻辑思维能力;培养逻辑思维能力;培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,通过阅读文学作品,我们能提高文学鉴赏水平,通过阅读文学作品,我们能提高文学鉴赏水平,通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;培养文学情趣;培养文学情趣;培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。通过阅读报刊,我们能增长见识,扩大自己的知识面。通过阅读报刊,我们能增长见识,扩大自己的知识面。通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,有许多书籍还能培养我们的道德情操,有许多书籍还能培养我们的道德情操,有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,给我们巨大的精神力量,给我们巨大的精神力量,给我们巨大的精神力量,鼓舞我们前进鼓舞我们前进鼓舞我们前进鼓舞我们前进。人有了知识,就会具备各种分析能力,人有了知识,就会具备各种分析能力,第第10章软件复用方案课件章软件复用方案课件
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!