软件复用

合集下载

软件复用与软件构件

软件复用与软件构件
FODA的过程分为三个阶段:上下文分析 (Context Analysis)、领域建模(Domain Modeling)、 构架建模(Architecture Modeling)。
在美国国防部高级研究项目署(ARPA)资助下, Will Tracz提出了领域构架方法(Domain-Specific Software Architecture),缩写为(DSSA方法)。
-- 在软件演化的过程中,重复使用的行为可能发生 在三个维上:
1、时间维:
2、平台维:
3、应用维:
-- 这三种行为中都重复使用了现有的软件。
-- 它的基本思想非常简单,即放弃那种原始的、一 切从头开始的软件开发方式,而是利用复用技术, 由公共的可复用构件来组装新的系统,这些可复 用构件包括对象类、框架或者软件体系结构等。
3、分析的复用 复用的途径也有三种: ①、从现有系统的分析结果中提取可复用构件用 于新系统的分析。 ②、用一份完整的分析文档作输入产生针对不同 软硬件平台和其它实现条件的多项设计。 ③、独立于具体应用,专门开发一些可复用的分 析构件。
4、测试信息的复用 主要包括测试用例的复用和测试过程信息的复用。 前者是把一个软件的测试用例在新的软件测试中 使用。后者是在测试过程中通过软件工具自动地 记录测试的过程信息。
②、领域设计:通过对领域模型的分析来获取领域 架构DSSA(Domain)。
③、领域实现:依据领域架构组织和开发可复用信 息。信息可以从领域工程中获得。
值得注意的是这三个阶段是一个反复、迭代、 逐步求精的过程。
4、软件再工程
5、开放系统技术
开放系统(Open System)技术的基本原则是 在系统的开发中使用接口标准,同时使用符合接 口标准的实现。这些为系统开发中的设计决策, 特别是对于系统的演化,提供了一个稳定的基础, 同时,也为系统(子系统)间的互操作提供了保证。 当前以解决异构环境中的互操作为目标的分布对 象技术是开放系统技术中的主流技术。该技术使 得符合接口标准的构件可以方便地以“即插即用” 的方式组装到系统中,实现黑盒复用。

如何在软件过程中加入对软件复用的支持——软件复用过程讲座

如何在软件过程中加入对软件复用的支持——软件复用过程讲座

软件复用过程——如何在企业实施软件复用王亚沙北京大学软件工程国家工程研究中心北京大学信息学院软件研究所内容提要引言¾What,Why,How…复用过程框架¾一般的过程框架,引入复用后新增的内容 复用过程框架中的软件过程2引言3什么是软件复用?有人写了段程序我COPY过来,然后再改改使用标准的或者购买来的函数库、SDK、类库 有个现成的控件(例如:COM控件、EJB、CORBA对象),我把它嵌入到我的软件系统中正解:重复使用为复用目的而开发的软件资产4软件复用可从三个不同维来看:¾时间维--软件维护,使用以前的软件版本作为新版本的基础,加入新功能,适应新需求。

¾平台维--软件移植,以某平台上的软件为基础,修改其和运行平台相关的部分,使运行于新平台。

¾应用维--真正的复用,将某软件(或其中构件)用于其他应用系统中,新系统具有不同功能和用途。

这三维均体现了复用概念,但是,真正的复用及复用的主旨是¾为了支持软件跨应用(领域)的演化¾使用“为复用而开发的软件(构件)”来更快、更好地开发新的应用系统5为什么要复用?降低成本、提高生产率¾不在“从零开始”,充分复用已有的资产和经验¾以已有的工作为基础,重点关注应用的特色提高产品质量¾复用成熟的资产,比重新开发的资产更可信看似矛盾的两个需求——质量和成本,通过“复用”获得了“和谐”6复用是软件工程化、工业化的必由之路传统工业¾如机械、建筑等行业以及年轻的计算机硬件产业¾其成功的基本模式是•符合标准的构件生产•基于标准构件的产品生产(组装)¾其中构件是核心和基础,复用是必需的手段实践证明¾这种模式是产业工程化、工业化的必由之路¾是软件产业发展的良好借鉴¾这正是软件复用受到高度重视的根本原因7为什么可以复用?世界上没有两个完全相同的软件(完全相同就不是两个软件了)但是,任何一个新开发的软件,一个新的软件项目和产品中一般有超过80%的成分是前人曾经开发过的¾特定于计算机系统的构成成分--通用基本构件¾应用系统所属领域的共性构成成分--领域共性构件¾每个应用系统的特有构成成分--应用专用构件领域共性构件包含领域知识,是最具价值的可复用资产丰富的领域共性构件(包括构架)构成了软件企业的核心竞争力8软件复用真的那么简单吗? 一个故事:当A公司遇见软件复用背景:A公司,一家中小型软件企业主角:张三、李四,两位软件工程师,技术骨干居然没复用!复用不好用!构件在哪呢?复用好委屈!9成功的实施复用需要面向复用的软件过程在过程中缺乏对复用的重视(就是所谓的“即兴”复用)将导致:¾总是与潜在的复用机会失之交臂;¾“事后的”复用使复用的质量和效率都无法提高;¾可复用资产的管理很无序,资产不是找不到就是用不好;¾缺乏管理层的关注,复用无法在组织级别全面的展开,而且缺乏持续发展的动力。

软件复用指南-模板1

软件复用指南-模板1

XXX有限公司软件复用指南*变化状态:A——增加,M——修改,D——删除1.目的指导项目组选择设计指南。

2.适用范围适用于公司软件开发的设计过程。

3.裁减指南本过程文件中的过程裁减应依据《组织标准过程裁减指南》的规定。

4.参考文件本过程文件的编写依据是美国软件工程研究院(SEI)的集成成熟度模型软件分支1.1版本(CMMI-SW V1.1)。

5.术语和缩写复用:就是将已有的软件成分用于构造新的软件系统。

可以被复用的软件成分一般称作可复用构件,无论对可复用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可称作复用。

软件复用不仅仅是对程序的复用,它还包括对软件生产过程中任何活动所产生的制成品的复用,如项目计划、可行性报告、需求定义、分析模型、设计模型、详细说明、源程序、测试用例等等。

如果是在一个系统中多次使用一个相同的软件成分,则不称作复用,而称作共享;对一个软件进行修改,使它运行于新的软硬件平台也不称作复用,而称作软件移值。

6.职责7.软件复用的特点和现状软件复用就是将已有的软件成分用于构造新的软件系统。

可以被复用的软件成分一般称作可复用构件,无论对可复用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可称作复用。

软件复用不仅仅是对程序的复用,它还包括对软件生产过程中任何活动所产生的制成品的复用,如项目计划、可行性报告、需求定义、分析模型、设计模型、详细说明、源程序、测试用例等等。

如果是在一个系统中多次使用一个相同的软件成分,则不称作复用,而称作共享;对一个软件进行修改,使它运行于新的软硬件平台也不称作复用,而称作软件移值。

目前及近期的未来最有可能产生显著效益的复用是对软件生命周期中一些主要开发阶段的软件制品的复用,按抽象程度的高低,可以划分为如下的复用级别:(1)代码的复用包括目标代码和源代码的复用。

其中目标代码的复用级别最低,历史也最久,当前大部分编程语言的运行支持系统都提供了连接(Link)、绑定(BI n DI ng)等功能来支持这种复用。

软件工程名词解释

软件工程名词解释

1. 软件软件是计算机系统中与硬件相互依存的部分,它是包括程序、数据及相关文档的完整集合。

2. 软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

3. 软件工程软件工程是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。

4. 软件生存周期软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。

5. 软件复用软件复用就是利用某些已开发的、对建立新系统有用的软件元素来生成新的软件系统。

6. 质量质量是产品或服务满足明确或隐含需求能力的特性和特征的集合。

在合同环境下,需求是明确的;在其他环境下,隐含的需求需要识别和定义。

7. 质量策划质量策划包括产品策划、管理和作业策划,以及质量计划的编制和质量改进的准备工作。

8. 质量改进质量改进是以最求最高的效益和效率为目标的持续性活动。

9. 质量控制质量控制是对流程和产品的符合性的评估,独立分析不足并予以更正使得产品与需求相符。

10. 质量保证质量保证是有计划的和系统性的活动,它对部件或产品满足确定的技术需求提供足够的信心。

11. 软件质量软件质量是指明确声明的功能和性能需求、明确文档化的开发标准、以及专业人员开发的软件所具有的所有隐含特征都得到满足。

12. 正式技术复审正式技术复审是一种由软件开发人员进行的软件质量保证活动,其目的是在软件的任何一种表示形式中发现功能、逻辑或实现的错误,验证经过复审的软件确实满足需求,保证软件符合预定义的标准,使软件按照一致的方式开发,使项目更易于管理。

13. ISOISO是一个组织的英语简称,代表International Organization for Standardization,即"国际标准化组织"。

14. ISO9000ISO9000是由ISO/TC176制定的关于质量管理和质量保证的国际标准。

软件工程中的软件复用与组件化

软件工程中的软件复用与组件化

软件工程中的软件复用与组件化在软件工程领域中,软件复用和组件化是两个重要的概念。

它们旨在提高开发效率、减少重复工作,并增强软件的可维护性和可扩展性。

本文将深入探讨软件复用和组件化的概念、优势以及在软件开发中的应用。

一、软件复用软件复用是指在不同的项目中反复使用已有的软件资产,例如代码、模块、库等,以减少开发时间和资源成本。

它可以通过以下方式实现:1. 函数和类的复用:在软件开发过程中,我们可以将常用的功能封装成函数或类,并在其他项目中重复使用。

这样一来,我们不需要重复编写相同的代码,提高了开发效率。

2. 组件的复用:组件是一种可独立运行和替换的软件模块,具有明确定义的接口和功能。

在软件开发中,我们可以将常用的组件开发成独立的软件,然后在不同的项目中引用和复用。

这样不仅减少了重复开发的工作量,还提高了软件的可维护性和可扩展性。

二、组件化组件化是一种以组件为中心的软件开发方法,通过将软件拆分为独立的、可重用的组件来构建系统。

组件化的核心思想是将软件划分为功能独立的模块,并通过定义清晰的接口和通信机制来实现彼此之间的交互。

1. 组件的定义:组件是具有特定功能和接口的独立软件模块,它可以被独立开发、测试和部署。

每个组件都封装了一部分特定的功能,并提供了清晰的API供其他组件使用。

2. 组件的特点:组件具有高内聚性和低耦合性的特点。

高内聚性意味着组件内部的元素紧密相关且协同工作,而低耦合性表示组件之间的依赖关系较弱,可以独立修改和替换。

3. 组件间的通信:组件之间通过明确定义的接口和消息传递机制进行通信。

通过定义接口,组件可以揭示自己的功能和约定,其他组件可以通过接口调用其功能。

消息传递可以通过事件、消息队列等方式实现。

三、软件复用与组件化的优势软件复用和组件化在软件开发中具有诸多优势,包括:1. 提高开发效率:通过复用已有的软件资产,开发人员可以减少编码工作,专注于解决当前项目的特定需求,提高开发效率。

简述软件复用的几个级别

简述软件复用的几个级别

简述软件复用的几个级别软件复用是软件工程中一个非常重要的概念,也是一种重要的软件开发技术。

它允许开发人员编写出可重复使用的代码和模块,以改善软件的开发效率、简化维护和改进过程,并减少项目的开发成本。

软件复用可以分为几个级别:第一级复用:最基础的复用,能够使用代码重复使用,比如常用功能函数。

这种复用有时也被称为“纯应用”,因为它们不需要任何特定的软件设计原理来优化软件的表现。

第二级复用:这是更高级的复用概念,它建立在引入软件设计原则的基础上,可以改善代码的结构使得其可以更加容易地维护、扩展和重复使用。

第三级复用:最高级的复用概念,它引入更多的软件架构设计,使得模块可以被更好地组合起来,从而有效地实现了跨越系统和组件间的模块复用和容易维护。

此外,还有一种复用技术叫做“应用程序框架”,它可以为应用程序提供一个结构框架,从而使开发人员可以简化开发过程,并在时间和成本方面更加有效地实现软件复用。

从上面可以看出,软件复用是软件工程中重要的概念,它提高了软件的开发效率,减少了开发成本,简化了维护和改进程序的过程,具有重要的实用价值。

目前,软件复用已经成为软件工程的关键技术,他们的正确使用和应用将发挥重要的作用,帮助开发人员提高工作效率,提高软件质量,实现软件系统的可维护性、可伸缩性和可扩展性。

通过正确使用软件复用技术,可以增强开发人员的软件开发管理能力,充分发挥软件工程的潜力,使软件能够实现价值的最大化,从而实现软件全面可靠的发展。

总之,软件复用是软件工程领域中重要的技术,具有重要的实际应用意义。

未来,会有更多关于软件复用的相关讨论,也会有更多关于如何更有效地使用软件复用技术的研究。

在软件领域,软件复用会成为研究和应用的热点,会有更多技术不断在开发和改进,以更好地满足软件开发和维护的需求。

软件工程中的软件复用

软件工程中的软件复用

软件工程中的软件复用软件复用是指在软件开发过程中,重复使用已有的软件组件、模块、库或其他可重用的资源来构建新的软件系统。

它是提高软件开发效率和质量的重要手段之一。

本文将从软件复用的定义、优势、实施方法以及存在的挑战等方面进行讨论。

一、软件复用的定义软件复用是指在软件开发过程中,通过合理组合已有的软件组件、模块、库等可重用资源,使得新的软件系统能够更高效、更快速地开发出来。

软件复用旨在降低开发成本、加快开发进度、提高软件质量和可靠性。

它可以通过不同的方式实现,如通过代码重用、组件复用、模块复用等。

二、软件复用的优势1. 提高开发效率:软件复用可以避免从头开始编写相同或相似功能的代码,减少了开发时间和工作量,提高了开发效率。

2. 提高软件质量:通过复用已经经过测试和验证的软件组件,可以减少错误和缺陷的可能性,提高软件的质量和可靠性。

3. 降低成本:软件复用避免了重复开发相同功能的成本,节约了开发资源和时间,并且可以通过合理的复用策略降低软件维护的成本。

4. 加快上市时间:软件复用可以减少开发周期,使得软件能够更快速地上市,占领市场先机,增加竞争力。

三、软件复用的实施方法1. 代码重用:通过将已经编写好的代码模块作为库文件或软件包,供其他项目重复使用,实现代码的复用。

2. 组件复用:将可独立使用的业务组件打包成可重用的组件库,由多个项目共享使用,避免重复研发相同的组件。

3. 模块复用:将软件系统中的功能模块抽象出来,形成独立的模块,供多个系统复用,实现模块级的复用。

四、软件复用存在的挑战1. 适用性问题:不是所有的软件都适合进行复用,有些软件需求特殊或定制化程度高,不适合直接进行复用。

2. 维护问题:复用的软件组件可能需要进行维护和升级,需要投入额外的人力和时间进行支持和维护。

3. 版本管理问题:多个项目同时复用同一个软件组件时,版本管理可能成为一个挑战,需要具备良好的版本管理机制。

4. 知识和沟通问题:开发团队需要具备相应的知识和技能才能进行有效的复用,同时需要加强团队间的沟通和协作。

软件复用

软件复用

第十章软件复用10.1软件复用概述10.1.1 软件复用目的软件复用使得应用系统的开发不再采用一切从“零”开始的模式,可以充分利用过去应用系统开发中积累的知识和经验,从而可以高效、高质地开发和维护软件系统,主要表现在以下几个方面:1、缩短软件开发和维护的时间;2、降低软件开发和维护的成本;3、保证软件的可靠性;4、保证软件的一致性;5、保护投资者的利益。

10.1.2 软件复用的类型软件复用可以分为横向复用和纵向复用两种类型。

横向复用是指复用不同应用领域中的软件成份,如数据结构、算法、人机界面构件等。

纵向复用活动的关键在于领域分析:根据应用领域的特征和相似性,预测软件成份的可复用性。

一旦确认了软件成份的可复用价值,便进行开发,然后将开发得到的软件制品存入可复用构件库,供未来开发项目使用。

10.1.3 软件复用的内容软件复用的内容,除了源程序代码外,还有许多其它软件制品,甚至特定的分析建模方法、检查技术、质量保证过程等,均可以被复用。

C.Jones定义了10种可能复用的软件制品:(1)项目计划:软件项目计划的基本结构和许多内容,如SQA计划,均可以跨项目复用。

(2)成本估计:由于不同项目中常包含类似的功能,所以有可能在极少修改或不修改的情况下,复用对该功能的成本估计。

(3)体系结构:即使应用论域千差万别,但程序和数据的体系结构很少有截然不同的情形。

因此,有可能创建一组类属的体系结构模板,如事务处理结构,将这些模板作为可复用涉及的框架。

(4)需求模型和规格说明:数据流图、类模型等均可以复用。

(5)设计:系统和对象设计等是常见的复用成份。

(6)源代码(7)用户文档和技术文档:即使特定的应用不同,也有可能复用用户文档和技术文档中的大部分内容。

(8)用户界面:用户界面可能是最广泛地被复用的软件制品。

由于它可能占一个应用软件的60%的代码量,所以复用的效果最明显。

(9)数据:在大多数经常被复用的软件制品中,数据包括:内部表、列表和记录结构,以及文件和完整的数据库。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件复用
浙江大学计算机系软件所
吴明晖
Email: minghuiwu@
1
软件复用
• 人们开始认识到,要真正实现软件的工业化生 产方式,保证软件生产的高效率和高质量,软 件复用是一条现实可行的途径 • 软件复用的概念是在1968年NATO软件工程会 议上由Mcllroy第一次提出的 • 所谓软件复用是指在开发新的应用系统时使用 以前开发的软件资源,如设计、代码、文档 等,从而提高系统开发效率及软件质量
17
复用带来了软件开发过程的变革
• 由于复用活动的存在使得传统的软件生 存期模型不再适用,软件开发过程分为 两个相互关联的过程,即开发可复用资 源的过程和根据可复用资源开发应用系 统的过程,REBOOT计划中将其称为 DEVELOPING FOR REUSE 和 DEVELOPING WITH REUSE
7
过程复用
• 过程复用指通过采用自动化技术,复用关于软 件系统生成或变换的知识,从而使得可以从需 求描述出发,通过生成或变换,自动生成最终 所需的系统,应用生成器、程序变换器和可执 行规约语言均是过程复用的例子。 • 完全通用的过程复用意味着软件生产的自动 化,这在目前还是不现实的想法,因此过程复 用难度大、投资大、不易实施。 • 当前过程复用的实践大多和领域相关,如特定 领域的应用生成器。过程复用是非常理想的软 件复用方式,但在目前技术发展水平下,仍是 难以企及的目标,产品复用成为主要的研究课 题。
• 概念:关于“构件做什么”的抽象描述,可以通过概念 去理解构件的功能。概念包括接口规约和语义描述两 个部分,语义描述和每个操作相关联(至少表示为前 后置谓词形式)。 • 内容:概念的具体实现,描述构件如何完成概念所刻 划的功能。 • 语景:描述构件和外围环境在概念级和内容级的关系。 语景刻划构件的应用环境,为构件的选用和适应性修 改提供指导。语景进一步可分为:概念语景 (Conceptual Context)描述构件间接口和语义方面的 关系;操作语景(Operational Context)刻划构件中被 操作数据的特征(如类型和操作);实现语景 (Implementation Context)描述构件间在实现方面的依 赖关系。
18
青鸟III型系统的体系结构
19
规范
• 规范包括:
– – – – – – 青鸟可复用构件制作指南 青鸟领域工程方法指南 青鸟构件模型 青鸟构件描述语言 青鸟构件库概念模型 基于复用的软件开发过程
20
青鸟构件模型设计原则
1. 2. 3. 4. 5. 6. 7. 8. 表达能力足够强 简单性 支持构件的复合 模型和方法学关系的考虑 一致性和完备性 实用性考虑 扩展性考虑 对软件开发过程的考虑
25
模型和方法学关系的考虑
• 构件模型的确立和具体的软件方法学有 着密切关系,不同范型的方法学必然导 致不同的模型。 • 青鸟构件模型遵循OO范型,其构件结构 符合OO风范。如此考虑是因为OO技术 能对软件复用提供更有力的支持。对于 基于传统范型的构件,如模块类构件, 可考虑将其通过再工程封装成OO类构件。
28
扩展性考虑
• 模型的可扩展性是指在保持模型本身的一致性 和完备性的前提下,模型可以随着应用需求的 增长而演化。为此,在模型设计初期,能适应 扩展的设计考虑是必需的。 • 青鸟构件模型目前主要考虑工程实用性,进一 步的考虑是结合形式化规约技术,给出构件的 形式化功能规约,一方面可用于支持基于形式 化功能规约的构件分类和检索策略,通过规约 匹配查找所需的构件;另一方面支持更有效、 更自动地复用非代码类构件,通过形式规约变 换技术,实现产品复用和过程复用在一定程度 上的结合
23
简单性
• 简单性是各种模型必须予以考虑的重要 性质,简单意味着易于掌握和理解。简 单性和强的表达能力是一对矛盾,必须 合理权衡。 • 青鸟构件模型应在具有足够强的表达能 力的前提下尽可能简单,因为构件被很 好地复用的前提是必须能够被充分的理 解。
24
支持构件的复合
• 构件模型仅仅作为构件的抽象和描述是不够 的,必须能够描述构件间的关系及构件的复 合,这样才有实用的价值和完整性。 • 青鸟构件模型考虑了直接复用构件的复合问 题,在源代码级上提供了构件复合的机制。同 时,也支持目标码级构件的复合,当前的考虑 是将青鸟构件转换为符合某种规范的目标码构 件(如OLE构件),通过相应的构件互操作机 制来实现复合。
26
一致性和完备性
• 模型必须具有对内的一致性和对外的完 备性。 • 所谓一致性是指构件作为一个封装体必 须具有一致的对外接口、一致的组成结 构以及一致的交互方式。 • 完备性是指不存在模型所不能描述的构 件(在OO范型内)。
27
实用性考虑
• 实用性是青鸟构件模型所考虑的主要因 素之一。 • 从实用性角度来看,构件模型应易于理 解、支持复合、方便分类和检索。 • 青鸟构件模型应作为青鸟构件库概念模 型的核心。
• Caldieri和Basili提出了一种工厂化的软件 生产方式
12
青鸟工程简介
• 青鸟工程是国家重点支持的科技攻关课题,已 有十余年的发展历程。“七五”、“八五”期间, 青鸟工程面向我国软件产业基础 建设的需求, 以实用的软件工程技术为依托,研究开发具有 自主版权的软件工程环境,为软件产业提供基 础设施—软件工具、平台和环境,建立工业化 生产的基本手段,促进我国软件开发由手工作 坊式转向用计算机辅助开发,以提高软件开发 效率,改善软件产品质 量。大型软件开发环境 青鸟系统便是这一阶段攻关工作的成果。
• 青鸟构件模型从三个不同的、相互正交 的视角来看待构件,每个具体的构件都 是形态、层次和表示构成的三维空间中 的一个点。
31
构件的形态
• 构件呈现不同的形态(Form),形态的差异体 现在构件的结构组织方式和依赖的方法学范型 上。青鸟构件可分为如下几种形态:
– 类(Class):以类为单位进行封装而得到的构件, 这是最基本的构件单元 – 类树(Class Tree):以一个抽象类为根,若干继承 该抽象类的具体子类(也可能有抽象子类)为节点 的一棵类树。这样的一棵类树被封装为构件,对外 实现了具体子类的隐蔽,抽象根类提供了该类树的 对外接口规约,对具体子类的操作(删除或增加) 以及子类对象的创建均由抽象类控制,该类树的客 户无需知道类树结构和具体子类。
14
青鸟III型(JB3)系统
• 作为研究成果之一,青鸟工程开发了基于异构 平台、具有多信息 源接口的应用系统集成(组 装)环境青鸟III型(JB3)系统。青鸟III型系统研 制的目标是针对软件工业化生产的需求,完善 并初步实现青鸟 软件生产线的思想,制定软件 工业化生产标准和规范,研究基于“构件—构 架”模式的软件工业化生产技术,研制支持面 向对象技术,支持软件复用的,基于异构平台、 具有多信息源接口的应用系统集成(组 装)环境。 其最终目标是要构造如下图示意的软件生产线 系统。
3
面向对象技术对软件复用的支持优势
• 面向对象技术对软件复用的支持优势在 于:
– – – – OO模型比传统过程型模型更为稳定; OO分析更适合于领域工程; OO构件具有更好的封装性; OO方法学支持无缝的工程,可实现分析、 设计、编码的一致复用。
4
日常生活中的复用概念
• 在人们的日常生活中,复用概念的存在随处可 见。 • 传统工业如机械、建筑等行业中,标准规格的 零部件、设计模式等无不体现了复用的思想。 计算机产业虽然是年轻的产业,其成功同样是 由于实现了将标准的集成电路芯片、插件板、 主板、外设等直接组装的工业化生产方式。可 以说,符合标准的构件、基于标准构件的产品 生产(组装)是产业工程化、工业化的必由之 路,而其中构件是核心和基础,复用是必需的 手段。这种成功的模式是软件产业发展的良好 借鉴,有许多有益的启示
10
基于复用的软件开发方式
• 对照传统的成熟产业,我们可以发现, 专业性的分工是社会化、工业化生产的 基本前提,专业化的零部件生产和使用 零部件的整机生产是主要的生产方式。 • 我们有理由认为理想的软件生产方式是: 专业化的构件生产,基于构件复用的应 用系统集成(组装)。
11
一种工厂化的软件生产方式
21
表达能力足够强
• 模型是对客观对象的抽象,合适的抽象 层次是十分重要的,必须既能抓住本 质,又不陷入细节。从表达能力考虑, 青鸟构件模型首先必须遵循3C模型 • 3C模型由构件的三个不同方面的描述组 成,即概念(concept)、内容(content) 和语景(context)三个方面
22
3C模型
8
产品复用分类
• 产品复用可分为直接复用和间接复用两类 • 直接复用是指对那些可表示为某种程序设计语 言代码的构件的复用,这类构件的复用及其通 过一定机制的复合(组装)可直接产生可执行 的应用程序,这是我们开发软件的最终目标。 • 间接复用是指对需求规约、功能规约、设计思 想、测试计划等文档型知识的复用,这类非代 码构件的复用虽然不能直接得到最终可运行的 系统,但可以对系统开发的效率和质量带来极 大的好处,这类构件的复合(组装)缺乏形式 化和机械化的机制,通常只能有开发者在分析 理解后进行手工复合。
29
对软件开发过程的考虑
• 软件复用可以发生在软件开发过程的任 意阶段,各个阶段的产品均是可复用的 目标,越早阶段的复用可带来更好的效 益。 • 青鸟构件模型描述的对象是多层次、多 阶段的构件,层次刻划构件的抽象程度。 层次和开发阶段是密切关联的,开发阶 段越态、层次和表示
5
软件构件技术
• 软件构件技术已成为研究的热点,其研究内容 包括构件标准和模型、构件的生产和获取、构 件的规约和描述、构件的分类和组织、构件的 检索和组装、基于构件的价格分析,以及软件 体系结构、软件复用支持工具和管理手段、基 于复用的软件开发过程等方面。 • 研究工作有很大进展和众多成果,而且还出现 了一些产业构件标准,如Microsoft的OLE- COM、OMG的CORBA/OM等。这标志着软件 复用已进入蓬勃发展的时期
相关文档
最新文档