(计算机应用技术专业论文)构件技术在教学课件开发管理系统的研究.pdf_第1页
(计算机应用技术专业论文)构件技术在教学课件开发管理系统的研究.pdf_第2页
(计算机应用技术专业论文)构件技术在教学课件开发管理系统的研究.pdf_第3页
(计算机应用技术专业论文)构件技术在教学课件开发管理系统的研究.pdf_第4页
(计算机应用技术专业论文)构件技术在教学课件开发管理系统的研究.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机应用技术专业论文)构件技术在教学课件开发管理系统的研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 软件构件技术是当前软件复用研究的焦点,被视为实现复用的关键因素 之一。构件技术的基本实现在f - 仓, j 建和利用复用的软件构件来解决应用软件 的开发问题。与面向对象编程语言不同,构件技术只规定构件的外在形式, 不关心其实现方法。只要遵循构件技术规范,各个软件开发商就可以用自己 方便的语言去实现构件。 本文主要总结了构件技术的特点,从构件定义,构件模型,构件描述语 言、构件管理等方面对构件技术进行了阐述,提出了构件的开发过程。接着 讨论了如何以领域知识为基础,通过领域工程获得特定领域的领域模型,并 在其基础上进行构件的开发和设计的研究。领域工程的目标是在一一个特定应 用领域实现软件复用,其复用粒度大。在众多面向对象分析设计的方法和工 具中,统一建模语言u m l 集众家之长,用于可视化描述和构造软件系统。本 文着重介绍了u n 。的一些基本概念以及如何基于u m l 类图进行构件抽取。并 且在文中利用u m l 对教学课件开发领域进行了构件抽取:即通过分析用例图 和顺序图来确定系统的类,并在类的抽取过程中采用领域分析,以便于类在 教学领域内进行复用,在系统类图的基础上抽象出系统的构件,得到系统的 构件模型,并给出了教学课件开发管理系统的框架。最后,把构件技术思想 运用在课件之上,对课件提出了基于x m l 技术的标准化。 关键词:构件技术;课件;教学课件开发管理系统 a b s t r a c t s o f t w a r er e u s eh a sb e e nu s e dt ob er e g a r d e da s a ni m p o r t a n tm e a n st o i m p r o v et h es o f t w a r ee n g i n e e r i n g ;i ti sh o p e dt h r o u g ht h eu s eo ft h ep r e v i o u s c o d eo rc o m p o n e n t st oi m p r o v ep r o d u c t i o ne f f i c i e n c ya n dq u a l i t y a sa ne f f e c t i v e a p p r o a c ht os o l v es o f t w a r ec r i s i s ,s o f t w a r er e u s ei sg e t t i n gm o r ea n dm o r e a t t e n t i o n w i t ht h ee m e r g e n c eo ft h eo b j e c t o r i e n t e dt e c h n o l o g ya n ds o f t w a r e c o m p o n e n tt e c h n o l o g y ,t h e s o f t w a r er e u s et e c h n o l o g yd e v e l o p sr a p i d l y i nt h e p a p e r , w es u m m a r i z et h ec h a r a c t e r i s t i c so ft h es o f t w a r er e u s et e c h n o l o g y , e x p a t i a t ec o m p o n e n tt e c h n o l o g yi nd e f i n i t i o n ,m o d e l ,d e s c r i p t i o nl a n g u a g e ,a n d p u tf o r w a r dt h ed e v e l o p i n gp r o c e s so fr e u s a b l ec o m p o n e n t t h e no nt h eb a s i so f d o m a i nk n o w l e d g e ,w ed i s c u s s e dh o wt o g e tt h em o d e l so fs p e c i f i cd o m a i n , c o m p o n e n t sa r ed e v d o p e da n dd e s i g n e db a s e do nt h ed o m a i nm o d e l s t a r g e to f d o m a i n e n g i n e e r i n gi st of u l f i l ls o f t w a r er e u s ei nas p e c i a ld o m a i n a m o n g m a n ym e t h o d sa n dt o o l so fo b j e c t o r i e n t e da n a l y s i sd e s i g n ,u n i f i e dm o d e l i n g l a n g u a g ea b s o r b st h es o u lo ft h o s ea n di st od e s c r i b ea n dc o n s t r u c ts o f t w a r e s y s t e m t h i sp a p e ri n t r o d u c e dt h eb a s i cc o n c e p t :o fu m la n dt h em e t h o do f c o m p o n e n ta n a l y s i sb a s e do nu m li sp r e s e n t e ds p e c i f i c a l l y a to n et i m e ,t h e p a p e ri n t e g r a t e st h es o f t w a r er e u s et h o u g h tw i t ht h ec o m p o n e n tt e c h n o l o g y t h e c o m p o n e n t so ft c d m sa r ea b s t r a c t e dt h r o u g hu m l :t h ec l a s s e sa r ec r e a t e d t h r o u g hu s ec a s ed i a g r a ma n ds e q u e n c ed i a g r a m ,t h e nw em a k eu s eo fd o m a i n a n a l y s i st or e u s et h ec l a s s e si nt h ed o m a i nd u r i n gt h ep r o c e s sa b s t r a c t i n gc l a s s e s b a s e do nt h ec l a s sd i a g r a m ,t h es y s t e mi sa b s t r a c t e d a tl a s t ,o nt h ec o u r s e w a r e ,i i i 矍! ! :兰圭耋丝:耋竖鎏兰 d e v e l o p ,w eu s et h et h i n k i n go fs o f t w a r er e b s ea n dr e a l i z e ds t a n d a r d i z a t i o no f s o f t w a r ed e v e l o p m e n tb a s e do nx m l k e y w o r d sc o m p o n e n tt e c h n o l o g y ;c o u r s e w a r e ;t c d m s 厦门大学学位论文原创性声明 兹呈交的学位论文,是本人在导师指导下独立完成的研究成果。 本人在论文写作中参考的其他个人或集体的研究成果,均在文中以明 确方式标明。本人依法享有和承担由此论文产生的权利和责任。 声明人( 签名) :临嘭 跏年占月影日 厦门大学学位论文著作权使用声明 本人完全了解厦门大学有关保留、使用学位论文的规定。厦门大 学有权保留并向国家主管部门或其他指定机构送交论文的纸质版和 电子版,有权将学位论文用于非营利目的的少量复制并允许论文进入 学校图书馆被查阅,有权将学位论文的内容编入有关数据库进行检 索,有权将学位论文的标题和摘要汇编出版。保密的学位论文在解密 后适应本规定。 本学位论文属于 1 、保密( 动,在年解密后适用本授权书。 2 、不保密( “ 作者签名: 嚆吗 导师签名:广亨降出 日期: 日期:m 绰 6 月g 日 6 月驴e t 第1 章绪论 1 。1 研究背景 第1 章绪论 在1 9 6 8 年的n a t o ( 北大西洋公约组织) 软件工程会议上,m c i l r o y 在论 文“大量生产的软件构件”中第一次提出了软件重用的概念,认为软件复用 的基础是软构件( s o f t w a r ec o m p o n e n t ) ,可以通过建立可复用的软构件库促 进大规模软件的开发“1 。软件复用本质上是运用现存软件系统的产品或工程 知识构造新的软件系统,在软件开发中避免重复劳动。其出发点是应用系统 的开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分 利用过去应用系统开发中积累的知识和经验,如:需求分析结果、设计方 案、源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有 构成成分。通过软件复用,在应用系统开发中可以充分地利用己有的开发成 果,消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高 了软件开发的效率,同时,通过复用高质量的已有开发成果,避免了重新开 发可能引入的错误,从而提高了软件的质量。软件复用是软件工程的重要领 域,被认为是解决软件危机,提高软件生产率和软件质量,增强软件的开放 性和对外部扰动的适应性的主要途径。“。 软件构件技术是支持软件复用的关键技术之一,成为了近几年来迅速发 展并受到高度重视的学科分支。当今世界上许多研究机构,如美国的卡内 基梅隆大学、加拿大的国立研究委员会都在对此积极的展开研究。目前构 件技术主要研究领域包括:构件模型、构件的分析与设计、构件的分类与检 索、构件的复用组装、标准化等等。 为了进一步提高软件复用的效率,实现分析、设计级的软件复用,近年 厦门人学工学硕士学位论文 来,领域工程技术应运而生。从而形成了新的研究方向,即特定领域的软件 复用。由于其复用频率高、复用粒度大,成为了软件工程领域中的研究热 点。大量的可复用构件的存在是软件复用成功的一个前提条件。可复用构件 可以从现有的系统中抽取、自上的开发和直接商业购买等途径获取。对现有 系统进行领域工程是获取可复用构件的一个重要途径。通过领域工程,可以 产生领域模型、特定领域的软件构架( d o m a i ns o f t w a r e a r c h i t e c t u r ed s s a ) 等大粒度的、具有一定一般性的构件,可以使用领域模型和d s s a 将该领域 的其他可复用构件组织起来,使构件的查询方便,增加复用的机会。研究实 践表明,复用技术在领域工程内更容易获得成功。因此,领域工程更加受到 重视,在这方面,己经有许多研究成果。如由卡内基梅隆大学软件工程研 究所提出的面向特征域分析f o d a 的域分析方法;由美国高级研究项目计划 机构( d a r p a ) 开发的组织域分析模型o d m 域方法;以及域分析和设计过程 d a d p 。 一种有效的分析方法是一个应用的成功实施的关键。9 0 年代随着面向 对象技术的日益成熟,出现了多种建模语言。其中最为引人注目地是 o o s e ,o m t 一2 和b o o t h1 9 9 3 。o o s e 由j a c o b s o n 于1 9 9 4 年提出,它的u s e c a s e 是支持商业工程和需求分析的极好方法:o m i t 一2 由r u m b a u g h 等人提 出,对描述分析和大量数据处理的信息、系统有特别强的表达能力;b o o c h 1 9 9 3 在项目的设计和构造阶段有极强的表达能力。统一建模语言u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 是在b e e c h 表示法、o o s e 方法和o m t 方法的 基础上,反复修改而完成的。u m l 是通用的可视化建模语言,用于可视化描 述和构造软件系统,在提供了大多数面向对象核心概念的同时,还提供了扩 展方案,使得面向对象建模专家可以使用u m l 方便地定义大多数领域中的复 杂系统。 2 第1 章绪论 1 2 研究的基本内容 我们综合多种技术发展的成果,结合我们软件开发的实践提出了基于构 架构件技术的软件开发模式。我们以教学课件开发系统为背景,对系统中的 通用的对象和行为规则采用u m l 技术进行建模和抽取,形成一个适用于教学 课件开发系统的软件模型,进而作为一个教学课件开发领域的可复用产品, 这样在今后的系统开发过程中可以以这个模型作为基础,采用构架构件的方 法组装软件,从而缩短课件的开发周期。同时对课件开发提出了基于x m l 语 言规范化模式,从而使得从该系统开发的课件资源能够通过网络得以充分的 复用。 本文旨在利用面向构件的软件设计思想进行软件开发。研究并开发一个 基于教学课件开发系统相关学科领域构架,为教学课件的开发提供领域构件 库。最后,针对教学课件开发这一特定领域,应用u m l 技术对系统进行分 析、建模和抽取,采用软件构架构件对实例进行设计并实现。并通过x m l 技 术,使得开发的课件能够更好的复用。 论文的主要内容包括: l 基本概念的研究:通过大量阅读科技文献资料,对软件构件和领域 工程进行了总结;讨论了软件体系结构以及特定领域软件体系结构。 2 领域模型描述语言:利用u m l 对教学课件开发系统的领域模型中构 件进行描述、分析。 3 通过对教学课件开发领域的分析、抽取,最终抽象出教学课件开发 管理系统构件模型。 4 可扩展的置标语言:基于x m l 语言对课件开发管理系统进行规范 化,从而使得开发出来的课件能够的到最大限度的复用。 厦门大学t 学顿十学位论文 1 3 论文的组织结构 本文对国内外软件复用方面的一些学术和应用成果进行分析研究,重点 讨论了构件技术、构件库以及领域工程理论以及x m l 技术。我们以教学课件 开发管理系统为背景,对教学课件开发管理系统中课件开发领域的通用的对 象和行为规则采用u m l 进行建模和构件抽取,并给出相应的设计和实现方 法,建立了一个基于x m i 技术的教学课件学科领域的可复用产品。文章内容 组织如下: 第一章介绍了软件复用技术的发展史,领域工程的概述以及领域工程方 面的研究成果和发展状况。 第二章介绍软件构件技术的相关概念,对构件库的建立、检索和实现进 行了初步的研究。 第三章介绍领域和领域工程、专向领域复用技术和u i d l 统一建模技术的 基本概念及相关技术。提出基于领域工程的软件开发思想。讨论了基于领域 工程的软件开发的开发过程,提出了基于构件的软件开发的开发模型以及顽 向领域工程的软件生命周期。 第四章介绍了x m i 。技术,通过对x m l 特性的研究,了解了x m l 在网络上 应用的机理。 第五章结合教学课件开发系统,详细对教学课件开发系统进行了分析, 论述了基于u m l 的构件抽取方法,系统架构的提出,以及提出利用x m l 特性 对课件规范化。 第六章对本文研究工作进行总结,并对下一步的研究工作进行展望。 第2 章构件技术的研究 第2 章构件技术的研究 软件构件技术( s o f t w a r ec o m p o n e n tt e c h n o l o g y ) 是支持基于构件的软 件复用的核心技术。基于构件的软件丌发是当前软件开发的发展趋势,利用 构件组装成为个系统与从头到尾写代码“写”成一个系统相比,它的高效 率是可想而知的,但其效率的发挥必须有大量的“构件群”来支持,而这些 “构件群”要想在具体的应用领域中发挥作用,必须要有一个高效的构件库 管理这些种类繁多的构件。 本章首先讨论了软件构件的基本情况,然后介绍了构件的检索和管理。 2 1 构件概述 在日常用语中,构件是一个部分或是一种元素,它与其他一些构件共同 组成一个整体。通常构件是一个清楚的可以分离的东西,在装配中它也不会 完全辨识不出,如果整体可以拆卸的话,它可以被恢复成以前的样予”1 。 2 1 1 构件的概念 软件构件是可被用来构造其他软件的软件组成成份,它可以是被封装的 对象类、类树、一些功能模块、软件框架、软件构架( 或体系结构) 、文档、 分析件、设计模式等。广义上讲,只要是软件系统中可以明确识别的、可被 他人复用的成分,就可以称为软件构件。一般来说,具有相对独立的功能和 可复用价值的软件成分都可被称为可复用构件,可复用构件不但包括源程序 而且还包括在软件生产过程中各个阶段的成品,如项目计划需求定义、分析 模型、设计模型、文档、测试案例和数据以及其它对开发活动有用的信息 等,它可以是从旧的软件中提取的也可以是专门为了复用而开发,可复用构 件应具备几个基本要求: 厦门大学工学硕+ 学位论文 ( 1 ) 有用性( u s e f u l n e s s ) :构件必须提供有用的功能; ( 2 ) 可用性( u s a b i l i t y ) :构件必须易于理解和使用; ( 3 ) 质量( q u a lit y ) :构件及其变形必须能正确工作; ( 4 ) 适应性( a d a p t a b i l i t y ) :构件应该易于通过参数化等方式在不同语 境中进行配置; ( 5 ) 可移植性( p o r t a b i l i t y ) :构件应能在不同的硬件运行平台和软件 环境中工作。 构件可以用一个四元组来形式化描述”1 构件( 构件标识符,构件说明,构件体,接口) 把构件说明和构件体分开的原因是考虑到同一个构件说明可以由不同的 程序设计语言来实现。即使同一个构件可以有多个不同语言实现的构件体。 构件的接口不仅要提供外部物理实现接口,而且还要提供一个外部逻辑接 口,外部逻辑接口是给用户提供一个非形式化的构件的功能描述,这样更能 方便用户了解和使用构件。 2 1 2 构件分类 可以认为构件像白糖,具有不同的粒度。根据k r u e g e r 等人的分类标 准,可将软件复用按复用粒度大小和抽象层次的不同,分为小粒度、中粒度 和大粒度复用三类。3 。粒度可以用构件所提供的功能数量来度量,特别是用 功能点的数目来度量( 这比用代码行数来度量要好,用不同的编程语言行数 会相差很大) 。图2 1 描述了粒度是怎样影响构件的价值的。 0 一组件对应应用的比例1 0 0 子程序操作程序类粗粒度构件应用软件包 图2 1影响构件价值的粒度因素 图2 1 表明,当我们定义构件时,我们应该关注于识别那些粗粒度的构 件,复用大的构件更节省工作量,所以大的构件对业务来说具有更大的价 值。较小的构件有可能经常用到,但是使用它们节省的工作量较小。 2 1 3 构件模型技术和构件描述语言 构件模型是构件技术的核心内容,是构件定义和构件性质的具体化。构 件模型除定义了构件的本质属性外,还规定了构件接口的结构以及构件与应 用框架( f r a m e w o r k ) 、构件与构件之间的交互机制。构件模型通常还提供创 建和实现构件的指导原则。一个被构件生产者和使用者所共同接受的构件模 型实际上起到了构件标准化的作用。c o r b a ,c o m d c o m 和e j b 等构件模型构 成了实现级构件模型的工业标准。现有的构件模型一般认为构件由构件接口 和构件内容两部分组成:构件接口就是为成功复用该软件实体而需要提供给 外界的所有信息;构件内容是用于直接复用的软件实体,它可以具有源代 厦门大学二r = 学硕十学位论文 码、二进制码、文档、分析设计模型和脚本等不同的物理形态,并遵从一定 的格式标准。 随着构件技术的不断发展,构件复用者想要在浩如烟海的构件库中查询 到自己需要的构件,的确不是一件容易的事,而构件复用者成功识别某构件 正是符合自己需求的构件是通过构件描述语言( c d l ) 的方法实现。建立在构 件模型的基础上,构件描述语言( c o m p o n e n td e s c r i p t i o nl a n g u a g e ) 以一种 严格而又易于理解的方式,为协作构件、构件组装工具和c b s d 开发人员提 供全面准确的构件信息“。c d i 的基本思想是将构件视为黑盒,通过描述构 件接口的语义向外界提供构件的结构和行为信息,使构件复用者不必关心其 内部细节。c o r b ai d l ,d c o mo d l 和i d l 等接口描述( 或定义) 语言都能够描 述构件接口的语法,并且具备编译和浏览工具的支持;但是现有的接口描述 语言在描述构件接口语义和构件问复杂的交互协议方面缺乏进一步的支持。 2 2 构件管理 2 2 1 构件库 要提高软件开发的效率和质量,要支持基于构件复用的软件开发过程, 就必须要有支持整个软件生存周期并包含大量可复用构件的构件库系统。其 中,构件的模型以及构件的有效管理和检索方法是关键。 谈到构件的管理和检索,首先得简单介绍一下构件库。 构件库( c o m p o n e n tr e p o s i t o r y ) 是一种组织、收集、访问与管理若干构 件的手段,是管理构件的工具。它由构件库数据和构件库系统组成,是按照 一定的语义和组织结构形成的一个构件集合。构件库数据包括构件本身及其 描述性信息和组织性信息,这些信息总称为构件目录。其中描述性信息称为 构件描述,组织信息称为库信息模型。构件库系统由构件库框架和构件库工 第2 章构件技术的研究 具组成,构件库包含了大量信息,包括构件,构件描述信息,构件库数据模 型和描述数据模型的模型。基于构件、构架的开发是以构件库为中心的开发 模型,而构件库是领域工程和应用工程两个开发过程的桥梁,它具备数据库 的基本特征和功能,为了向基于构件的应用系统开发提供构件,构件库管理 系统必须能够存储构件和构件相关信息构件的语义描述( d e s c r i p t i o n ) :构 件的分类( c l a s s i f i c a t i o n ) ;构件的形态( f o r m ) ;构件的状态( s t a t u s ) 。从 可复用件库中存储、查询、获取构件是复用技术的关键技术之一。为了能够 管理和维护构件信息,构件库管理系统必须能够提供如下的操作:构件的添 加( i n s e r t i o n ) ,主要是构件的测试和认证方法,只有合格的构件才能添 加到构件之中:构件的检索( r e t r i e v a l ) ,即构件的需求匹配与一般的数据 库不同,构件匹配通常不能得到完全满意的构件,对与需求相关或相近的构 件需要通过适应使之满足需求。由于构件的粒度不同因此需求问题分解和构 件合成是两种配合检索的方法。不一定一味地追求接近自动化的查询过程, 而应允许人介入内部的查询过程;其他构件库管理手段:构件的删除、备 份、用户髓记和存取控制、使用跟踪和统计分析、异构构件库的连接等。构 件库除了存储和管理构件之外( 普通数据库的作用) ,关键是在构件的创建者 和使用者之间架起。一座理解构件含义的桥梁。因为构件库也是软件构件开发 重要的共享资源。对于基于构件的开发过程中开发人员必须与构件库打交 道,因此,构件库管理工作平台不仅要提供对构件的自动检索,还要提供对 构件的查询浏览、扩充的功能,同时还要提供编写构件文本的编辑程序,以 及构件的语言编译程序,以便生成、调试、裁剪、组装构件。所以,构件库 的本质问题是如何建立构件的智力模型,从而用精确的方法表达构件的语 义,使基于构件、构架的开发过程中的构件能够得到正确的理解和复用。 2 2 2 构件分类检索 系统开发人员根据自己的需要从构件库中查找与之匹配的构件的过程, 厦门大学丁学硕士学位论文 称之为可复用构件的检索。依据领域的特征和构件的特点选择合适的构件分 类和检索方式将降低构件的复用成本,从而使整个构件库中的构件易检索、 易修改、易使用。现有的构件分类和检索方法,从构件表示出发将其分为人 工智能方法、超文本方法和信息科学方法三类;按照复杂度和检索效果的递 增将其分为基于文本的、基于词法描述子的和基于规约的编码和检索三类。 实际复用项目中使用较为成功的是信息科学方法。并且以枚举、刻面、属性 值、关键词和正文检索几种方法最为常用,其中刻面( f a c e t ) 分类方法能够 表达丰富的构件信息,尤其为人关注。现代构件库系统的刻面分类检索法是 p r i e t o d i a z 和f r e e m a n 在1 9 8 7 年提出的,这种方式通过反映构件本质特 性的视角( 刻面) 对构件进行分类。一个刻面分类模式由组描述构件的本质 特征的刻面组成,每个刻面从不同的侧面对构件库中的构件进行分类。每个 刻面由一组术语构成,称为术语空间,见图2 2 ,描述子有不同的术语构 成,用来描述构件库中的特定构件。通过用户构造描述子形成查询条件,在 构件库中检索符合条件的构件。见公式( 1 ) 。” 其中,( d 为描述子,f 为刻面,t 为术语) d = ( t 。t :。,t 。)( 1 ) f 1f 2 f t 2 l t 2 2 t 2 3 _ t 2 n 图2 2 刻面及其术语空问 t i l t i z t i 3 - t i i 从根本上讲,基于刻面的分类检索技术是基于构件属性对的,分类方法 利用对构件的每种划分巾不同值来表示构件的属性;而检索方法也正是利用 构什不同刻面的值来匹配和检索构件的。在同一系统中支持多种分类模式和 榆索方法的组合使用,可以满足不同复用组织和不同用户群体的需求。初级 用户可以选择使用自己熟悉的方法,高级用户可以综合使用几种方法。实践 证明各种方法互4 h 7 t , 充,能够提高检索效率。 2 2 3 构件库的实现 如图2 3 描述了构件库系统的建立、检索和实现的基本流程,构件可以 通过设计和制造的方式获取,或直接从某个商业性的软件机构购买。构件库 再对构件执行一个验证的过程,以确保构件满足一定的质量标准,然后对构 件进行分类和表示,并将其存入构件库中。用户通过专门的检索系统在构件 库中查找满足自己需求的构件,如果找到,则将其组合到新的应用程序中。 管理员对构件库进行管理和维护,使其更好地为用户服务。 图2 3 构件库系统的建立、检索和实现的基本流程“2 1 厦门大学工学硕上学位论文 2 3 本章小结 本章主要概括的介绍了构件的相关概念,现如今流行的三大构件模型技 术( c o b r a 、c o m d c o m 和e j b ) 以及构件库的一些相关概念,在构件库这一方 面,重点地阐述了利用刻面分类技术方法对构件库的检索和构件库实现的流 程。由于基于构件的软件开发是当前软件开发的发展趋势,所以正确理解和 组织、管理构件将对软件开发领域如何到达软件复用这个目的起到深远的影 响。 第3 章领域t 程与u m l 第3 章领域工程与u m l 3 1 领域工程相关知识 3 1 1 领域工程概念 领域工程( d o m a i ne n g i n e e r i n g ) 是为组相似或相近系统的应用:【:程建立 基本能力和必备基础的过程,它覆盖了建立可复用的软件构件的所有活动。 其中“领域”是指一组具有相似或相近软件需求的应用系统所覆盖的功能区 域“。 领域工程是针对一4 个应用领域中的若干系统进行分析,并识别这些系统 共享的领域需求,设计出能够满足这些需求的构架,并在此基础上开发和组 织该领域的可复用构件的过程“,如图3 1 所示。领域工程对一个领域中 的若干应用系统进行分析,识别其共同特征和可变特征,进行抽象,形成领 域模型,依据领域模型产生出领域中一类应用系统共同具有的体系结构即特 定领域的软件体系结构( d o m a i ns p e c i f i cs o f t w a r ea r c h i t e c t u r e : d s s a ) ,并以此为基础识别、开发和组织可复用构件。这样,当开发同一领 域中的新应用时,可根据领域模型,确定新应用的需求规约,根据特定领域 的软件体系结构形成新应用的设计,以此为基础选择可复用构件进行组装, 从而形成新系统。 厦门大学工学硕士学位论文 特定领域a特定领域a 抽象 l 应用系统一l l l 应用系统二l 抽象,一、开发 i 领域模型卜+ 新应用系统 求精 抽象 应用系统 图3 1 领域工程概念 f i g u r e3 - 1c o n c e p t o fd o m a i ne n g i n e e r i n g 进行领域工程的研究和实施领域工程是基于以下两个基本认识。 ( 1 ) 复用信息的领域特定性。可复用性不是信息的一种孤立的属性,它 依赖于特定的问题和特定的解决方法。即,我们说某信息具有可复用性,是 指当使用特定的方法解决特定的问题时,它是可复用的。基于这一基本认 知,在识别、获取和表示可复用信息时,应采用面向领域的策略。 ( 2 ) 问题领域的内聚性和稳定性。关于现实世界问题领域的解决方法的 知识是充分内聚和充分稳定的,这才使得获取和表示这些知识的努力是有意 义的。这一基本认识是实际观察的结果。一个问题领域的规约和实现知识的 内聚性,使得可以通过一组有限的、相对较少的可复用信息来把握可以解决 大量问题的知识。领域的稳定性使得获取和表示这些信息付出的代价可以通 过在一段较长的时间内多次复用它们来得到补偿。 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础 的过程,它覆盖了建立可复用软件构件的所有活动“。领域工程包括领域 分析、领域设计、领域实现三个阶段,分别产生领域模型、领域构架、代码 构件等可复用产品。领域工程技术将关于领域的知识转化为领域中系统共同 的规约、没计和构架,使可以被复用的信息扩大到抽象级别较高的分析和设 计阶段。 3 1 2 领域工程的基本行为 实施领域工程的过程中包含了一些基本的行为。虽然具体的领域工程方 法可能定义不同的概念、步骤、产品等,但这些基本行为是大体上一致的。 以下将分三个阶段介绍这些行为: ( 1 )领域分析:这个阶段的主要目标是获得领域模型( d o m a i n m o d e l ) 。领域模型描述领域中系统之间的共同的需求“。称领域模 型所描述的需求为“领域需求”( d o m a i nr e q u i r e m e n t ) 。在这个阶 段中首先要进行一些准备性的行为,这包括定义领域的边界,从而 明确分析的对象;识别信息源,即领域分析和整个领域工程过程中 信息的来源,可能的信息源包括现存系统、技术文献、问题域和系 统开发的专家、用户调查和市场分析、领域演化的历史记录等“”。 在此基础上,就可以分析领域中系统的需求,确定哪些需求是被领 域中的系统广泛共享的,从而建立领域模型。当领域中存在大量系 统时,需要选择它们的一个子集作为样本系统。对样本系统需求的 考察将显示领域需求的一个变化范围。一些需求对所有被考察的系 统是共同的。一些需求是单个系统所独有的。很多需求位于这两个 极端之间,即被部分系统共享。 ( 2 )领域设计:这个阶段的目标是获得d s s a 。d s s a 描述在领域模型 中表示的需求的解决方案,它不是单个系统的表示,而是能够适应 领域中多个系统的需求的一个高层次的设计“。建立了领域模型之 后,就可以派生出满足这些被建模的领域需求的d s s a 。由于领域模 1 s 厦门人学工学硕上学位论文 型中的领域需求具有一定的变化性,d s s a 也要相应地具有变化性。 它可以通过表示多选一的( a l t e r n a t i v e ) 、可选的( o p t i o n a l ) 解决方 案等来做到这点。由于复用基础设施是依据领域模型和d s s a 来组 织的,因此在这个阶段通过获得d s s a ,也就同时形成了复用基础设 施的规约“。 ( 3 )领域实现:这个阶段的主要目标是依据领域模型和d s s a 开发和 组织可复用信息”。这些可复用信息可能是从现有系统中提取得 到,也可能需要通过新的开发得到。它们依据领域模型和d s s a 进行 组织,也就是领域模型和d s s a 定义了这些可复用信息的复用时机, 从而支持了系统化的软件复用。这个阶段也可以看作复用基础设施 的实现阶段“。 领域工程是一个反复的、逐渐精化的过程“。在实施领域工程的每个阶 段中,都可能返回到以前的步骤,对以前的步骤得到的结果进行修改和完 善,再回到当前步骤,在新的基础上进行本阶段的行为。 3 2 领域工程方法 领域工程的实施需要依据一定的领域工程方法来进行。与应用工程类 似,形成系统化的领域工程方法需要满足一定的条件“。整个领域工程过程 应划分为明确定义的阶段,每个阶段应有明确的目标和具体的行为,产生一 定的中间产品,产品有明确定义的表示方法,产品的形成应遵循一定的操作 指南,使用一定的工具进行开发,有定的验证方法保证中间产品的正确性 和一致性。整个过程有明确定义的里程碑,有明确定义的终止条件,对于整 个过程的执行情况有明确定义的度量标准等等。 3 2 1 选择领域工程方法的原则 当前已经出现了很多领域工程的方法,它们都基于一些共同的观念,同 时,它们之间存在一定的差异性,这主要表现在它们定义了各自不同的目 标、产品和过程,有各自不同的适用情况。正如没有一种需求规约表示方 法、设计方法、程序设计语言、c a s e 工具能够适用于所有应用系统的开发 一样,没有理由认为存在一种领域工程方法适用于所有需要进行领域工程的 情况”。因此,当软件开发组织选择领域工程方法时,需要根据本组织的具 体复用情况、在具体的软件复用环境下对领域工程方法进行比较。这里的具 体复用情况包括复用目标、复用过程、复用策略、复用度量、支持工具等 等。选择领域工程方法时需要了解领域工程方法是如何与软件开发过程相结 合的,需要衡量在本组织所采用的软件开发过程中结合领域工程方法可能带 来的收益,特别需要考虑某种领域工程方法将带来的长期和短期的投资和收 益,还需要考虑本组织当前的需要和预期的将来的收益。 以下将简要地介绍两种领域工程方法。 3 2 2c m u s e i 的f o d a 方法 f o d a 方法( f e a t u r e o r e n t e dd o m a i na n a l y s i s ) 是由卡内基。梅隆大学 软件工程研究所提出的领域工程方法”“。f o d a 的过程分为三个阶段:一l 下 文分析( c o n t e x ta n a l y s i s ) 、领域建模( d o m a i nm o d e l i n g ) 、构架建模 ( a r c h i t e c t u r em o d e l i n g ) 。 ( 1 )上下文分析:上下文分析的目标是定义领域的范围。在这个阶段 要分析领域与外部元素问的关系,例如不同的操作环境,不同的数 据需求等,还要对可变性进行评价。分析的结果是上下文模型。 ( 2 )领域建模:领域的范围确定后,领域建模阶段提供了一些步骤来 分析领域中的应用表现出的共同性和差异,并产生一些领域模型。 17 厦门大学工学硕上学位论文 领域建模阶段主要包含三种行为: 特征分析( f e a t u r ea n a l y s is ) 。在特征分析阶段,要获得客户或 最终用,、对一类系统的一般能力的理解,即特征。特征描述了领 域应用的上下文,需要的操作和属性,和表示法的变化。 信息分析( i n f o r m a t i o na n a l y s is ) 。在信息分析中,要定义和分 析为实现领域中应用所需的领域知识和数据需求。信息分析的目 标是用领域实体及其相互之间的关系表示领域知识,并使它们在 操作分析和体系结构建模中可以用来派生对象和数据定义。 操作分析( o p e r a t i o n a la n a ly s is ) 。在操作分析中,要识别领域 中应用的行为特性,例如数据流和控制流的共同性和差异、有限 状态自动机模型。 ( 3 )构架建模:这个阶段为领域中的应用提供软件解决方案。在这个 阶段中开发出体系结构模型,即领域中应用的高层设计。这个阶段 的焦点为识别并发进程和面向领域的共同模块。这个阶段中定义进 程,并将定义在领域模型中的特征、功能和数据对象分配到进程和 模块。 f o d a 方法定义明确,已被应用于商业和军事应用中。 3 2 3w iilt r a c z 的d s s a 方法 w i l lt r a c z 提出了进行领域工程的d s s a 方法。在最高的级别上,本过 程有五个阶段。每个阶段可以进一步划分为一些步骤或子阶段。每个阶段包 括一组需要回答的问题,一组需要的输入,一组将产生的输出和验证标准。 本过程是并发的( c o n c u r r e n t ) 、递归的( r e c u r s i v e ) 和反复的( i t e r a t i v e ) 。 或者可以说,它是螺旋型的( s p i r a l ) 。完成本过程可能需要对每个阶段经历 几遍,每次增加更多的细节。 1r 第3 章领域工程与u m l 本领域工程过程的五个阶段足: ( 1 )定义领域范围:本阶段的重点是确定什么在感兴趣的领域中以及 本过程到何时结束。这个阶段的一个主要输出是领域中的应用需要 满足的一系列用户的需求; ( 2 )定义领域特定的元素:本阶段的目标是编译领域字典和领域术语 的同义词词典。在领域工程过程的前一个阶段产生的高层块图将被 增加更多的细节,特别是识别领域中应用间的共同性和差异性; ( 3 )定义领域特定的设计和实现需求约束:本阶段的目标是描述解空 间中有差别的特性。不仅要识别出约束,并且要记录约束对设计和 实现决定造成的后果,还要记录对处理这些问题时产生的所有问题 的讨论; ( 4 )定义领域模型和构架:本阶段的目标是产生一般的构架,并说明 构成它们的模块或构件的语法和语义: ( 5 )产生、搜集可复用产品:本阶段的目标是为d s s a 增加构件使得 它可以被用来产生问题域中的新应用。 3 3u m l 统一建模语言( u n i f l e dm o d e l j n gl a n g u a g e ,u m l ) 是一种语言和符号, 用于规定、构建、可视化和文档化软件系统的模型。u m l 是2 0 世纪8 0 年代 后期于9 0 年代初期出现的面向对象分析与设计( o o a k d ) 方法浪潮的后继工 作。它直接统一了b e e c h ,r u m b a u g h ( o m t ) 以及j a c o b s e n 方法,而且所涉 及的范围更广。u m l 经历了与o m g ( 对象管理组织) 的标准化过程,现在已成 为o m 6 标准。 厦门大学工学烦十学位论文 寸 蜊。1 1 。1 7 9 t 争黢毒 抑。l 蜚毒 触。瓤觚博 赫赫l ,l ,i 款0 酶g 撩朝舞簌蓬 i 角f 1 l ,l 。l 封鲥k 缸争 争 u m l 嫩专i 蠛燃 鞯l 鲰蝌# 蝴g 冀窀燃 g o c c b g t 、 0 赫 驽 舟搏键 图3 2u m l 的发展历程 需要说明的是,u m l 是一种建模语言,而不是一种方法。在原理上,任 何方法都应建模语言和建模过程两部分构成,其中建模语言提供方法中用于 表示设计的符号( 通常是图形符号) ,建模过程则描述进行设计所需要遵循的 步骤。u m l 统一了面向对象的基本概念、术语及其图形符号,为人们建立了 便于交流的语言。 3 3 1u m l 的语义定义 u m l 通过元模型严格的为对象的结构模型和行为模型定义了语义,结构 模型强调系统中对象的结构,包括类、接口、属性和关系。行为模型强调系 统中对象的行为,包括它们的交互关系、合作性和状态。“。u m l 语言结 构一一基于四层元模型结构:元元模型、元模型、模型和用户对象。元 元模型层是元模型结构的基础,定义元模型描述语言的模型。它比元模型具 有更高的抽象层次,为准确定义元模型的元素和各种机制提供最基本的概念 和机制。元模型是元元模型的实例,是定义模型描述语言的模型。一个系统 往往是由多个模型的结合和通信组成。元模型通过把属性、操作、联系和通 第3 章领域工程与u m l 信进一步抽象为结构元素、行为元素来表达模型,并提供表达系统的机制。 另外,为了准确地表达模型地语义,提供了版型( s t e r e o t y p e ) 、标记值和约 束。模型是元模型的实例,是定义特定信息域描述语言的模型。模型规定了 对象的属性、操作以及联系和通信,保证对用户对象层的语义的正确描述。 用户对象( 用户数据) 是模型的实例,描述了一个特定的信息域,它是按照某 一领域的域模型组织的。任何软件系统在用j 、看米都是相互通信的具体对 象。如果排除o o 语言表示的细节,这些具体对象构成一个对象体系结构, 并完成具体的相互通信,其目的是实现软件系统的功能和性能。 3 3 2u m l 的组成 u m l 包括了一些可以相互组合为图表的图形元素。u m l 提供这些图的目 的是用多个视图来展示一个系统,这组视图被称为一个模型。4 1 ( m o d e l ) 。 一个系统要从它的需求、静态结构、动态行为以及实现( 代码模块映 射、软硬件配置等) 等不同方面来描述。这些不同的描述构成系统的不同视 图,即需求视图、结构视图、行为视图和实现视图。 ( 1 ) 需求视图:指明系统应该“做什么”,即描述系统的功能需求。需求 视图是整个视图的核心,它的内容驱动着其它视图的开发。系统的最终目标 是提供需求视图描述的功能。 ( 2 ) 行为视图:描述“什么时

温馨提示

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

评论

0/150

提交评论