(计算机系统结构专业论文)基于软件重用的信息系统框架设计.pdf_第1页
(计算机系统结构专业论文)基于软件重用的信息系统框架设计.pdf_第2页
(计算机系统结构专业论文)基于软件重用的信息系统框架设计.pdf_第3页
(计算机系统结构专业论文)基于软件重用的信息系统框架设计.pdf_第4页
(计算机系统结构专业论文)基于软件重用的信息系统框架设计.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机系统结构专业论文)基于软件重用的信息系统框架设计.pdf.pdf 免费下载

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

文档简介

重瘗查堂堡主兰垡丝塞! :塑! l 摘要 随着现代社会信息技术的快速发展,对信息的处理和利用已经深入人类生 活的各个方面。人们处理信息离不开信息系统,信息系统的根本目的是利用信息 技术,实现信息资源的开发利用。传统的信息系统开发周期长,开发技术也比较 复杂,处理的业务相对固定,已不适应当前信息系统需要动态、及时处理信息的 要求。 近年来,软件重用作为一种新技术越来越引起人们的重视,已成为提高软件 生产率,解决软件危机问题的一个重要途径。软件重用是一种使用预先构造好的、 为重用目的而设计的软件构件来建立或者组装软件系统的过程。它的基本思想其 实非常简单,即放弃那种原始的、一切从头开始的软件开发方式,转而利用公共 的可重用构件来组装新的软件系统。这些可重用构件包括对象类、框架或者软件 体系结构等。 本论文研究一种基于软件重用思想的信息系统框架设计问题。论文首先对信 息系统及其传统开发方法作了一番简要介绍,然后介绍了相关的软件重用理论。 接下来针对传统信息系统开发方法的不足,以当前数据库开发中应用最为广泛的 关系模型为基础,结合面向对象思想,提出了一种层次主键模型。该模型具有稳 定的结构,能够帮助开发人员更方便地实现软件重用的目的。之后以该模型为基 础,在使用现有的软件开发技术情况下,提出了开发信息系统框架的设计方法, 并对使用该方法开发信息系统进行了描述。 论文讨论了一种新的信息系统开发方法:先提出一种基于关系数据库,能够 顺利用于软件重用的层次主键模型;在此基础上设计并实现一个可重用的信息系 统框架,再在框架的基础上开发信息系统软件。这种方法具有开发简单、可维护 性强、可管理性强、伸缩性强等特点。最后以使用该方法开发个教育信息系统 为例,将论文提出的设计方法应用到该系统中,并对整个开发过程进行了简单的 描述。 关键词:软件重用,框架,体系结构,信息系统,层次主键模型 重盎盔堂堡主兰垡笙奎一一二基奎查! 曼 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to ft h ei n f o r m a t i o nt e c h n o l o g yi nm o d e r ns o c i e t y , t o m a n a g e a n du s et h ei n f o r m a t i o ni sn o w g o i n gd e e p i n t ot h ep e o p l e sl i f e p e o p l ec a nn o t m a n a g ei n f o r m a t i o nw i t h o u ti n f o r m a t i o ns y s t e m t h eb a s i ca i m o fi n f o r m a t i o ns y s t e m i st om a n a g ea n du s et h ei n f o r m a t i o nu s i n gi n f o r m a t i o nt e c h n o l o g y h o w e v e r , i tt a k e s l o n gt i m e t od e v e l o pa ni n f o r m a t i o ns y s t e mu s i n gc o n v e n t i o n a lm e t h o dt h a ti sc o m p l e x a n dt h eo p e r a t i o nw h i c hi n f o r m a t i o ns y s t e mc a nh a n d l ei ss t a b l e s oi tc a l ln o ta d a p tt o t h er e q u i r e m e n tt h a tt h ei n f o r m a t i o ns y s t e ms h o u l d m a n a g e t h ei n f o r m a t i o ni nt i m e s o f t w a r er e u s ei s n o r er e g a r d e db y p e o p l e t h e s ey e a r s i ti sa ni m p o r t a n ta p p r o a c h t oi m p r o v et h es o t t w a r ep r o d u c t i v i t ya n dr e s o l v et h es o f t w a r ec r i s i s s o f t w a r er 吼l s ei sa p r o c e s sa n dt h eb a s i cp r i n c i p l eo f s o f t w a r er n l s ei ss i m p l e i tc o n s t r u c t ss o r w a r ew i t h t h er e u s a b l ec o m p o n e n t sp m d u c e db e f o r e t h er e u s a b l e c o m p o n e n t si n c l u d eo b j e c t c l a s s ,f r a m e w o r ka n da r c h i t e c t u r ee t c i nt h i s p a p e r , t h ei n f o r m a t i o ns y s t e mf i a r n e w o r kb a s e d o ns o f t w a r er e b s ei s r e s e a r c h e d i n f o r m a t i o ns y s t e ma n dt h ec o n v e n t i o n a ld e v e l o p m e n tm e t h o da r ef i r s t l y i n t r o d u c e d ,a n dt h e n t h es o f t w a r er e u s e t h e o r y b e c a u s eo ft h e s h o r t a g e o ft h e c o n v e n t i o n a l d e v e l o p m e n tm e t h o d ,t h el a y e rp r i m a r yk e ym o d e li sp r o p o s e dt h a ti s b a s e do nt h em l a f i o nm o d e la n d o b j e c t o r i e n t e dt h i n k i n g t h i sm o d e lh a ss t a b l e s l r u c t u r et o h e l pt h ed e v e l o p e ra c h i e v i n gs o f t w a r er e u s e i ns u c c e s s i o n ,t h ed e s i g n m e t h o do ni n f o r m a t i o ns y s t e mf r a m e w o r kw h i c hi sb a s e do nt h el a y e rp r i m a r yk e y m o d e li sb r o u g h tf o r w a r dw h i l e u s i n gt h et e c h n o l o g y i ne x i s t e n c e t h e r ei san e wi n f o r m a t i o ns y s t e md e v e l o p m e n tm e t h o di nt h i sp a p e r i ti st h a t d e s i g n i n ga ni n f o r m a t i o ns y s t e mf r a n - l e w o r kf i r s t l ya n dd e v e l o p i n gi n f o r m a t i o ns y s t e m b a s e do nt h ef r a m e w o r k t h i sm e t h o dh a s m a n ye x c e l l e n c e s ,s u c h a s s i m p l e d e v e l o p m e n t , b e t t e rm a i n t a i n a b i l i t y , b e t t e rm a n a g i n g ,s t r o n gr e t r o a c t i v i t ye t c a tl a s ti t t a k e sa ne d u c a t i o ni n f o r m a t i o ns y s t e ma se x a m p l eu s i n gt h em e t h o dt o d e v e l o pt h e i n f o r m a t i o n s y s t e m k e y w o r d s :s o f t w a r er e u s e ,f r a m e w o r k , a r c l l i t e e t u r e ,i n f o r m a t i o ns y s t e m , l a y e rp r i m a r yk e y m o d e l 1 i 重鏖查堂堡主堂垡笙苎 一一一土童生 1 绪论 1 1 引言 现代社会是信息社会。随着现代信息技术的快速发展,对信息的处理和利用 已经深入人类生活的各个方面,人们对信息的处理和利用离不开信息系统。信息 是信息系统的重要成分。信息系统能否发挥作用,发挥多大的作用,都取决于有 没有足够的、高质量的信息。信息系统的根本目的是利用信息技术,实现信息资 源的开发利用。 1 2 信息系统开发相关概念 1 2 1 信息与信息系统 信息( i n f o r m a t i o n ) 是现代社会中人们广泛使用的一个概念。“信息一词来源 于拉丁文,愿意为解释、陈述。随着信息的地位和作用的不断增强,现在能够比 较准确地包含信息本质特征的定义是:信息是经过加工的数据;信息是有一定含 义的数据;信息是对决策有价值的数据;信息是反映着客观世界中各种事物的特 征和变化,并可借助某种载体传递的有用知识 1 】。 信息系统是以加工处理信息为主的系统,它由人、硬件、软件和数据资源组成, 目的是及时、正确地收集、处理、存储、传输和提供信息。广义上说,任何进行 信息加工处理的系统都可视为信息系统,如生命信息系统、企业信息系统、文献 信息系统、地理信息系统等【l 】。信息系统的功能是对信息进行采集、处理、存储、 管理、检索和传输,并且能向有关人员提供有用的信息。 1 2 2 信息系统的体系结构 一个信息系统有所变动,其直接体现就是程序代码改动,不根据设计直接修 改代码是十分危险的。设计是功能和性能的逻辑实现。早期的信息系统都是“先设 计,后编码”,当时所说的设计指模块对象设计,现在设计是指整个系统的设计, 包括增、删以及换掉模块对象,或者改变它们的关系。只修改物理实现( 源代 码) ,逻辑功能就会走样。同样,没有一个全局的观点,直接修改设计也是十分危 险的。因为模块对象在实现程序逻辑时会形成体系结构( a r c h i t c c 伯r e 不同层 次上各职能模块对象各司其职,它们交互形成的结构就是体系结构) ,如果修改 某部分而不计其余,这个有机的体系结构就有可能崩溃。 体系结构并不是编程以外的东西,一个信息系统就是一个体系结构( 模块及 其结构关系总是有的) ( 2 】。只是过去在实现模块分工、集成功能时自然形成,现在 把注意的焦点转向体系结构实现要求的功能。先表述所设计的体系结构,下步 重盎奎堂堡主兰壁垒奎 ! 垄! 生 才是构件( 模块对象) 的设计与编码。不要急于设计、编码实现构件,先定义 构件是什么,分析构件间的关系更为重要。这就是以体系结构为中心的信息系统 开发。它特别适用于分布式对象系统,以体系结构实现业务逻辑,然后到各个异 质结点上设计实现这个体系结构。业务有了更改,就改变体系结构的可变部分, 重新在各结点上实现:反之,某结点有了更改,只是重新实现该节点,对体系结 构的影响很小,甚至不会影响代业务逻辑。 体系结构有助于更加宏观、系统地看待整个信息系统。一个信息系统从纵向 看不外乎是3 个层次的体系结构的综合。硬件以上有技术基础设施( 操作系统、 网络协议、程序运行设施及支持语言的编程规范的设施等) ;第2 层是实现业务逻 辑的应用系统;第3 层是各种用户界面。它们都是由各种不同的构件有机交互, 形成体系结构而实现的。从横向看也是体系结构,例如,用户界面层可以采用两 层的客户服务器结构的客户端;也可以是带中间件的3 层结构的客户端;再如, 业务逻辑层可以是层层调用的树状紧耦合的模块结构,也可以是松耦合的对象 消息结构,只要把各层次、各构件的接口定义清楚就行。 1 2 3 基于模型的信息系统开发 在以体系结构为中心的信息系统开发中,为了控制系统的易变性、处理的复 杂性,使用模型来更加抽象、更加本质地描述体系结构。抓住了模型,才可以看 到哪些变动是不影响程序逻辑的一次新实现,哪些变动影响了应用逻辑。业务演 进就是体系结构的演进,更本质的是模型的演进。 建模在信息系统开发的最初就有,如数据流图、e r 图等,都是在利用模 型。此时,建模只是信息系统做不出来不得已而为之的手段,不是目的。现在情 况则不同,模型是主要的,不仅要建立模型,还要维护模型,随着信息系统的演 进,还需要维护模型的演进。从业务过程模型映射为解决方案的体系结构模型, 就是以体系结构模型实现了业务模型。体系结构是体系结构模型的一次例化实现。 构件设计模型是体系结构的实现,构件又是构件设计模型的实现。一个实例体系 结构总要落实到分布式的某些站点上,如果某个站点更换或增、删,依据体系结 构模型就可以审查是否可行,以及怎样修改才对业务更为有利。这就是对体系结 构模型的维护。 当今信息系统开发有许多模型,不同的抽象层次上都可以有自己的模型,如 概念模型、逻辑模型及物理模型;不同的开发阶段也可以有自己的模型,如分析 模型、设计模型及小组建模模型。 1 3 信息系统开发方法的改进 信息系统的开发是一项艰巨的工作,需要大量人力、物力和时问的投入。系 2 _ 重鏖查堂堡圭兰垡丝壅 ! 堡丝一 统开发的效率、质量、成本及用户的满意程度,除了管理、技术等方面的因素外, 很大程度上取决于系统开发方法的选择。 1 3 1 信息系统的传统开发方法l i 儿圳 早期的信息系统开发方法,在编程前不重视系统分析和设计,不重视在系统 开发前完成必要的文档。2 0 世纪7 0 年代以来,西方在经历了“软件危机之后,开 始重视系统开发方法的研究,提出了一系列的系统开发方法,常用的有结构化方 法、原型法、面向对象方法和信息:翻翌方法等。其中,结构化方法和面向对象方 法是几乎所有方法的基础。 1 结构化方法 结构化方法( s t r u c t u r e ds y s t e ma n a l y s i sa n dd e s i g n ) 是指用系统工程 的思想和工程化的方法,按照用户至上的原则,自顶向下整体性分析与设计和自 底向上逐步实施的系统开发方法。 结构化方法是系统工程思想和工程化方法在系统开发领域的运用。它先将整 个信息系统开发过程划分出若干个相对独立的阶段,如系统规划、系统分析、系 统设计、系统实施等,再严格规定每个阶段的任务和工作步骤,同时提供便于理 解和交流的开发工具方法。在系统分析时,采用自顶向下、逐层分解,由抽象到 具体的逐步认识问题的过程;在系统设计时,先考虑系统整体的优化,再考虑局 部的优化问题;在系统实施时,则坚持自底向上,先局部后整体,通过标准化模 块的链接形成完整的系统。 结构化方法是具有良好效果的经典方法之一。它强调系统开发过程的整体性 和全局性,严格地区分开发阶段,发现问题及时反馈和纠正,从而使每一阶段的 工作都有可靠的依据,避免开发过程的盲目和混乱状态,极大地提高了系统开发 的成功率。但是,结构化方法的开发周期过长,不能随便变更前一阶段的工作成 果,难以适应迅速变化的环境。 2 面向对象方法 面向对象方法是从2 0 世纪8 0 年代各种面向对象的程序设计语言( s m a l l t a l k 、 c 付等) 逐步发展而来,从面向对象的角度进行系统的分析与设计,为人们认识事 物,进而开发系统提供一种全新的思路和方法。 客观世界是由各种各样的对象组成。对象是一个独立存在的实体,从外部可 以了解它的功能,但其内部细节是“隐藏”的,不受外界干扰。每种对象都有各自的 内部状态和运动规律,不同的对象之间相互作用和联系构成各种不同的系统。面 向对象方法的基本思想,是基于所研究的问题,对问题域进行自然分割,识别其 中的对象及其相互关系,建立问题域的信息模型。在此基础上进行系统设计,用 对应对象和关系的软件模块构造系统。 3 重壅奎堂堡圭兰垡堡兰丝! 生 面向对象方法的出发点和所追求的基本目标是使分析、设计和实现一个系统 的方法,尽可能接近人们认识一个系统的方法。首先通过对阀题域进行自然分割 ( 对象及其关系) ,以便以接近人类思维的方式建立问题域模型;然后对客观实体 进行结构模拟和行为模拟,使设计出来的系统尽可能直接地描述现实世界,并且 达到控制软件复杂性和降低维护难度的目的。 1 3 2 信息系统的动态性 在早期的信息系统开发中,对一个大的系统开发出运行无误、功能齐全、性 能较好的程序是很不容易的,周期长,开发技术也复杂,通常需要用户一次把需 求说清楚,程序交付后,即使有业务变动,也都迁就已经使用的软件。一直等到 软件实在落后,才提出需求,重新开发。现在情况则大不相同。不再是用户迁就 软件系统,而是软件系统要为用户的业务服务。业务通常随着时日而变,信息系 统的需求也随之改变,相应的软件就必须是可连续变更的。 传统的信息系统开发方法往往假设需求是可以说清楚、能够固定下来的,因 而一旦评审通过,没有充分的理由绝不修改需求。但信息系统是动态变化的,用 户的需求是变动的,用户对其需要什么的理解往往随着系统的开发和使用在改变, 随着其业务政策、市场及组织结构的改变而要求追加需求的改变。这导致了一种 新的开发需求,需求的“变”是恒定的,“不变”倒是特例。于是,传统开发方法中需 求的“不变”和新需求的“变产生了矛盾,出现了软件危机。这需要新的开发方法或 者对传统开发方法加以改进,以解决这样的软件危机。 1 3 3 基于软件重用思想开发信息系统 为解决1 3 2 节所说的软件危机问题,本文在传统的面向对象开发方法的基础 上,基于软件重用的思想,提出了一种新的信息系统开发方法。即通过分析信息 系统的特点,提取出信息系统中的“不变特性”,集成到一个信息系统框架之中,再 根据特定信息系统的需求,在框架的基础上实现需求的“可变特性”,从而得到可应 用的信息系统软件。 4 重鏖盔堂堡主兰垡堡奎上j 型塑i i 生 2 软件重用 2 1 引言 近年来,软件重用( s o f t w a r er e u s e ) 作为一种新技术越来越弓i 起人们的重视, 因为人们认识到要想提高软件的生产效率,解决软件危机问题,软件重用是一个 重要途径。软件不仅可以在代码级重用,而且还可以在系统的需求分析、软件设 计、编码、测试以及形成文档等各个开发阶段和各个层次上实现重用3 1 。 2 2 软件重用 软件重用是一种使用预先构造好的、为重用目的而设计的软件构件来建立或 者组装软件系统的过程。它的基本思想其实非常简单,即放弃那种原始的、一切 从头开始的软件开发方式,转而利用公共的可重用构件来组装新的软件系统。这 些可重用构件包括对象类( o b j e c tc l a s s ) 、框架( f r a m e w o r k ) 或者软件体系结构 ( s o f t w a r ea r c h i t e a u r e ) 等【4 】。 2 2 1 软件重用的必要性【5 】【3 5 1 通常情况下,软件系统的开发包含以下几个阶段:需求分析、设计、编码、 测试、维护等。当每个软件系统的开发都是从头开始时,在系统开发的过程中必 然存在着大量的重复劳动,如需求分析和设计的重复、编码的重复、测试的重复 和文档工作的重复等等。 通过探讨软件系统的本质,可以发现其中通常包含三类成分: 1 通用基本构件:指特定于计算机系统的构成部分,如基本的数据结构、用 户界面元素等,它们可以存在于各种软件系统中。 2 领域共性构件:指软件系统所属领域的共性构成部分,它们存在于该领域 的各个软件系统中。 3 系统专有构件:指每个软件系统的专有构成部分。 软件系统开发过程中的重复劳动主要在于前两类构件的重复开发。 软件重用找出软件系统开发过程中的共性,在开发一个新系统时,不必从头 开始,而是以已有的工作为基础,充分利用过去软件系统开发中积累的知识和经 验,如需求分析的结果、软件设计方案、源代码、测试方案、测试案例等,从而 将开发重点集中于软件系统的专有构成部分。 通过软件重用,在软件系统的开发过程中,可以充分利用已有的开发成果, 消除包括分析、设计、编码、测试等步骤在内的大量重复劳动,从而提高软件开 发的效率。同时,通过重用高质量的已有开发成果,可以避免重新开发可能引入 5 重鏖查兰堡主堂垡笙苎 ! 鏊生重旦 的错误,从而提高了软件的质量,并且减轻了开发人员的劳动强度和负担。 2 2 2 软件重用的基本概念4 】 5 】 1 3 】【1 4 】 重用概念的第一次引入是在1 9 6 8 年n a t o 软件工程会议上。在此之前,子程 序的概念也体现了重用的思想,但其目的是为了节省当时昂贵的机器内存资源, 并不是为了节省开发软件所使用的人力资源。然而子程序的概念能够用于节省人 力资源,如后来出现的通用子程序库,可以供程序员在编程时使用。 在其后的发展过程中,有许多重用技术的研究成果和成功的熏用实践活动, 但是,重用技术在整体上对软件产业的影响却不如人意。这是由于技术和非技术 原因等多种因素造成的,其中,技术不成熟是主要原因。近十几年来,面向对象 技术出现并逐步发展成为主流,这为软件重用提供了基本的技术支持。软件重用 的研究重新成为热点,被视为解决软件危机,提高软件生产效率和质量的现实可 行的途径。 分析传统产业的发展,即基本模式均是符合标准的零部件( 构件) 生产以及 基于标准构件的产品生产( 组装) ,其中,构件是核心和基础,“重用”是必需的手 段。实践表明,这种模式是产业工程化、工业化的必由之路。标准零部件产业的 独立存在和发展是产业形成规模经济的前提。机械、建筑等传统行业和年轻的计 算机硬件产业的成功发展均是基于这种模式,并充分证明了这种模式的可行性和 工e 确性。软件产业要发展并形成规模经济,标准构件的生产和构件的重用是关键 因素。这也正是软件重用受到高度重视的根本原因。 软件重用可以从多个角度进行考察。根据重用的对象,可以将重用分为产品 重用和过程重用。产品重用是指重用已有的软件构件,通过构件集成得到新的软 件系统。过程重甩是指重用已有的软件开发过程,使用可重用的应用生成器来自 动或半自动地生成所需系统。过程重用依赖于软件自动化技术的发展,目前只适 用于一些特殊的领域。产品重用是目前重用的主要途径。 依据对可重用信息进行重用的方式,可以将软件重用区分为黑盒重用和白盒 重用t 黑鑫重用是指对已有构件不需做任何修改,直接进行重用。这是理想的重 用方式。白盒重用是指已有构件并不能完全符合用户需求,需要根据用户需求进 行适应性修改才能使用。 目前,软件重用的实践有三个趋势: 1 将软件重用的实践惯例化、用户化,不仅考虑技术的因素,而且考虑管理 的因素。 2 将重用技术集成到软件开发的过程中,并且研究软件过程形式化的问题。 3 将领域工程标准化,研究支持领域工程的方法和工具。 有关软件重用的基本概念在不断完善中,软件重用的技术和方法也目渐成熟, 6 重庆大学硕士学位论文 2 软件重用 但仍然未能达到期望的成果,只是在专有领域取得一定的进展,在通用领域尚处 于探索阶段。这有技术上和非技术的原因。技术方面的原因主要是难以对领域进 行抽象,建立一个通用的模型。非技术原因则主要是在管理方面,有组织的、经 济的等多方面的问题。 现在各方面已注意对软件重用的支持,也有一些成果性产品,如国外的d m c o 系统,g e n e s i s 系统,1 p ( i n t e l l i g e n tp a d ) 方法等。但这都不是广泛的、系统的和形式 化的。软件重用的成功需要将软件重用集成到软件开发过程中去,将其思想贯彻 到软件开发的每一个过程中,而不是将重用单独看作一个过程。随着软件重用重 要性认识的普及,可以期望借助于先进的软件开发技术,融会人工智能知识、人 类工程知识、软件工程知识,使软件重用成为一神系统化的活动丽集成到软件开 发过程中去,建立通用的可重用软件,开发出支持软件重用的软件开发环境和 c a s e 工具,在领域内建成通用的可重用库。 2 2 3 软件重用的技术【6 】【7 】 软件重用有三个基本问题。一是必须有可以重用的对象;二是所重用的对象 必须是有用的:三是重用者必须要知道如何去使用被重用的对象 36 1 。软件重用包 括两个相关过程:可重用构件的开发和基于可重用构件的软件系统的构造。解决 好这几个问题才能真正成功实现软件重用。 与以上几个方面的问题相联系,成功实现软件重用的关键因素( 技术和非技 术因素) 主要包括:软件构件技术( 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 ) 、领域工程 ( d o m a i ne n g i n e e r i n g ) 、软件体系结构( s o m v a r ea r c h i t e c t u r e ) 、软件再工程 ( s o f t w a r e r e e n g i n e e r i n g ) 、开放系统( o p e ns y s t e m ) 、软件过程( s o f t w a r e p r o c e s s ) 、 c a s e 技术等以及各种非技术因素。 可重用构件是软件重用的核心。重用构件的获取、管理和使用构成了软件重 用的三个要素。 重用技术主要有以下四种,这些技术在软件开发过程中都有所体现。 抽象技术:主要研究如何得到一个可重用的构架。关键是提供一种能够形式 刻画构架各个部分的描述设施,以便于重用。 选择技术:根据要求,在重用库中进行检索和匹配以得到所需的构架。 例化技术:是选择过程的继续。通过例化,把选定的满足问题规范的构架之 实现体转换成可执行的程序代码。 集成技术:例化的结果往往是一些较小规模的功能程序模块,集成所要做的 工作就是把各模块组合成套完整的软件系统。 这四种技术又可以分为两大类:领域工程,即针对重用进行开发,包括抽象 技术和例化技术;应用工程,即采用重用进彳亍开发,包括选择技术和集成技术。 重庆大学硕士学位论文 2 软件重用 其中,领域工程是软件重用技术的重点。 2 3 领域工程 领域是由一组相关系统表征的知识或活动范围。领域工程是开发跨整个应用 系统,或者应用系统族的可重用资产( 软件开发过程各个阶段中所得到的可重用 的产品,包括需求规格说明、源代码、测试数据等) 所涉及的一组活动。领域工 程的目的是开发可重用的构件,其产品是能够被设计为可重用的【6 。 2 _ 3 1 什么是领域工程 大多数较件系统可以根据业务领域和它们支持的任务类型来划分类别,例如, 医学记录系统、订单处理系统、库存管理系统等等。可以把根据系统类别而组织 的领域称为纵向领域( v e r t i c a ld o m a i n ) 。类似地,也可以根据软件系统各部件的功 能把它们分类,例如数据库系统、容器库、工作流系统等等。可以把根据软件部 件的类别而组织的领域称为横向领域( h o f i z o u t a ld o m a i n ) 。 在一个领域内特定的系统或者构件分享很多特性,因为它们也分享许多需求。 因此,在一个特定的领域内构造系统时,可以利用已经获得的知识。通过以可重 用资产的形式捕捉这个领域的知识,能够在更短的时间内,以更低的成本、更高 的质量得到需要的系统。领域工程就是一个为达到此目的而采取的系统化步骤。 领域工程是在构造一个特定领域内的系统( 族) 或者系统( 族) 的某些部分 时,以可重用资产的形式,收集、组织并保存过去经验的活动,以及在构造新系 统( 族) 时,提供一种充分的方法来重用这些资产。包括领域分析、领域设计和 领域实现 领域工程与传统的软件工程有所不同:传统的软件工程关注于满足一个单独 的系统的需求,而领域工程关注于提供对一个系统族的可重用解决方案。表2 1 比 较了两者的不同。 表2 1 传统软件工程和领域工程的比较 一一上! 丝:! ! ! ! ! 竺2 型! ! ! ! 业璺罂出! 篓业型蛔虫婴垂! ! 出 软件工程 领域工程 需求分析 领域分析 垄= 尘丕笙型堡董鲞 塑墨垫夔型堡亘重旦:要塞型塑煎耋 系统设计 领域设计 = 尘墨笙堕主虽然盐 鱼! 堡旦王墨堕整盟卫重旦盟堡盐塑二全主曼盐型 系统实现 领域实现 产生系统实现 制作可重用的构件、内部结构和制作过程 重庆大学硕士学位论文2 软件重用 在应用工程中重用领域工程的结果,就是利用在领域工程中开发的可重用资 产制作具体的软件系统的过程。如图2 1 所示,领域工程和应用工程是两个并行的 过程。 领域工程 领域知识领域橙猁惭城健均旭 刊领域分析领域设计 领域:垂现 新需求i 客户需要 定制设计定制开发 产品 j 需求 析j7 f 产点芦置f7 f 劁 i 测试i 7 一i 图2 1 基于领域工程的软件开发 f i 9 2 1t h e s o f t w a r e d e v e l o p m e n tb a s e do nd o m a i ne n g i n e e r i n g 2 3 2 领域分析 1 领域分析的基本概念 领域工程不仅是建立和维护知识体系所需的一组活动,还是有效开发和维护 应用系统族所需的技术基础设施。从大的方面讲是领域工程,从小的方面看是领 域分析,它被认为是获得系统化、可伸缩和具有可证明优势的软件重用基础。领 域分析( 以及一般意义上的领域工程) 的基本前提是,机构常常开发具有许多共 性的计算机系统,这类系统要么与其应用领域有关( 如:记账、工资管理等) :要 么与系统所要求的技术解决方案有关( 即知道如何实施技术方案) 【6 】。 领域分析是通过研究现有系统及其开发历史、由领域专家获取的知识、基础 理论及领域中正在发展着的技术,标识、收集、组织和表达领域中相关信息的过 程。简单地说,领域分析是获取、分析和建模有关领域内应用系统的信息,也就 是公共特征和变化原因的过程。 领域分析的目的是:选择和定义要解决的领域,确定领域范围;收集相关的 领域信息,产生一个能获取同一领域内应用系统之间关系的领域模型。 2 领域模型 领域模型是刻画相关应用系统族内部要素和关系的术语和语义。领域模型通 常包括: 领域定义:通过研究领域内已有系统的例子、反例( 领域外的系统) 以及包 9 里盎查兰堡圭堂垡笙苎 ! 型型:重星l 含或者不包含的一般规则来定义领域的范围,刻画它的内容特性。领域定义的好 处之一就是给出了领域的共同观点。 领域字典:定义领域词汇。 概念模型:以某种合适的建模方式( 如:对象图、交互图或者实体关系图和 数据流图) 和非正式文档来描述领域内的概念。 特征模型:定义一组可重用的需求,用于指定一个领域内的系统。这样的需 求通常称为特征( f e a t u r e ) 。一个特征模型描述哪一种组合是有意义的,它们中的 哪一个最好是在某个条件前提下的,以及为什么。特征模型代表了概念模型的可 定制方面,以及最后的整个可重用软件的定制方面。特征模型还是在应用工程中 开发定义具体系统方法的基础。就像一本订购手册,告诉客户可用的构件和默认 的制作过程覆盖了哪些特征( 也就是说,附加特征需要定制开发) 。 3 领域需求与应用需求 领域分析要求分析区分领域中应用系统族共有的需求和特定应用系统专有的 需求。抽象出系统族的公共需求,有助于在领域工程中标识可重用资产和在应用 工程中正确使用可重用资产。图2 - 2 给出了一个领域工程中的领域需求例子。 f i 醇2t h ed e m a n dp r o c e s so f d o m a i ne n g i n e e r i n g 2 3 3 领域设计和领域实现 领域分析的目标是最大化同一个领域内多个应用系统中的领域模型和产品的 可重用性【6 1 。领域分析的下一个阶段是领域设计和领域实现。给定在领域分析阶段 1 0 重壅查璺堡主堂垡笙塞 ! 鏊! 兰盟 确定的一组共性和可变性,使设计和实现的领域构件能够最大化其在多个应用系 统中所使用的公共部分,尽可能减少可变部分。 1 领域构件 可重用性的定义包含两个相关属性: 可重用产品要适合各种不同要求的问题, 有用性和适用性。有用性主要考虑特定 而适用性考虑可重用构件的打包生成问 题。可重用领域构件应该具有有用性和适用性,其实现包括固定部分( 包含可重 用资产必须原封不动使用的部分) 和可变部分( 资产依赖于具体使用的部分,可 能随可重用资产一起提供,也可能必须由用户提供) 。图2 3 说明了这一点。 :j 厂一一一一一一一一 可变部分的实现 常常由用户提供 固定部分的实现 常常包含在资产中 在一定程度上,领域分析要处理有用性,而领域设计和领域实现要处理适用 性。在领域分析中,要标识公共需要:给定一组公共需要,领域设计和领域实现 要生成领域构件。 2 体系结构 领域设计的目的是开发用于领域中应用系统族的一个体系结构,并设计一个 制作计划。 软件体系结构是对一个软件系统的子系统和构件以及它们之间关系的描述。 抽象地说,它描述了构建系统的基本要素、这些基本要素之间的交互、指导它们 组合的模式以及对这些模式的限制【8 1 。一般而言,根据构件和这些构件之间的交互 来定义一个特定的系统。这样的系统也可以依此类推,在设计更大的系统的时候 用作一个( 组合的) 基本要素。系统的体系结构是软件开发活动的结果。 体系结构中的元素和它们的联系模式被设计成满足与要构建的系统( 或系统 族) 有关的需求。当开发一个软件架构的时候,不仅仅考虑功能需求,还要考虑 非功能需求,如性能、健壮性、可扩展性、重用性等。 重庆大学硕士学位论文 2 软件重用 重复发生的某些元素安排被证实在许多体系结构设计中都非常有用,这些安 排被称为体系结构模式。每一个体系结构模式的目的都是为了满足一组不同的需 求,并且可以用常见的模式形式已文档记录下来。常见的模式有: 层模式( 1 a y e rp a t t e r n ) :把子任务安排成组,每一个子任务组都位于一个特定 的抽象层次上。 管道和过滤器模式( p i p e s a n df i l t e r sp a t t e r n ) :一个处理数据流的安排,在过滤 器构件中封装了很多处理步骤。数据通过管道在相邻的过滤器中传输,过滤器可 以被重新组合以构建相关的系统或者系统行为。 黑板模式( b l a c k b o a r d p a t t e r n ) :几个特定的子系统把它们的知识组合在一起, 构建一个问题的一个部分或者近似解决方案。 代理模式( b r o k e rp a t t e r n ) :分离的构件通过远程服务调用而交互。代理构件 负责协调通信、传输结果以及异常。 模型一视图一控制器模式( m o d e l v i e w c o n t r o l l e r ) :把一个交互系统分离成三个 构件,一个模型包含核心的功能和数据,一个或者多个视图为用户显示信息,一 个或者多个控制器处理用户输入。 微内核模式( m i e r o k c r n e lp a t t e r n ) :把一个很小的功能内核从扩展功能和客户 特定部分中分离开来。 实际的体系结构通常同时基于多个这些或者其他模式。 系统族的体系结构设计是一个高层设计:目的是提出一个灵活的结构,在满 足所有重用的需求的同时,也为最后的特定系统实现保留了很大的自由程度。用 于系统族的体系结构必须包括它所覆盖的差异( 可定制性) 的一个明确表示i m 。 3 领域实现 领域设计的后续是领域实现,包括使用合适的技术来实现体系结构、领域构 件和过程计划。实现可能要求编写开发人员指南,实现一个重用结构,并且建立 特定应用程序的生产过程。 2 3 4 领域分析和领域工程方法概览 现在,已经有了很多领域分析和领域工程方法,但是其中有两个值得特别注 意这两个方法就是面向特征的领域分析( f e a t u r e o r i e n t e dd o m a i na n a l y s i s f o d a ) 和重用驱动的软件工程业务( r e u s es o r w a r e e n g i n e e r i n gb u s i n e s s r s e b ) 。 1 面向特征的领域分析【1 0 】 f o d a 由于领域模型和领域分析的引入而闻名。 f o d a 过程包括两个阶段: ( 1 ) 上下文分析:目的是定义要分析的领域的边界,就是确定领域范围。 ( 2 ) 领域建模:目的是产生领域模型。 重庆大学硕士学位论文 2 软件重用 f o d a 上下文分析定义了有可能产生有用的领域产品的领域范围。同时,还建 立了领域焦点和其他领域或者实体的关系。 f o d a 领域建模阶段,确定和建模领域内各应用系统之间主要的通用性和差 异性。这个阶段包括以下步骤: ( 1 ) 信息分析( i n f o r m a t i o n a n a l y s i s ) :以领域内实体和它们之间关系的形式, 捕捉领域知识。在这个阶段使用的建模技术可能有面向对象建模、实体关系建模 等。信息分析的结构是信息模型( i n f o r m a t i o nm o d e l ) ,它与2 3 2 2 节提及的概念 模型相对应。 ( 2 ) 特征分析( f e a t u r e a n a l y s i s ) :将领域内相关系统的共性和差异作为特征而 标示出来,并且在特征模型中加以描述。 ( 3 ) 工作分析( o p e r a t i o n a l a n a l y s i s ) :识别领域中控制流和数据流之间的共性 和差异。通过捕捉信息模型中的对象和特征模型中的特征之间的行为关系,产生 表示应用如何工作的工作模型。 2 重用驱动的软件工程业务 r s e b 是一种重用和面向对象的软件工程方法,基于u m l 、0 0 软件工程和 0 0 业务过程再工程。它被设计来同时便于可重用面向对象软件的开发和软件重 用。 r s e b 有独立的过程,用于为重用而进行的工程( 领域工程) 和带有重用的工 程( 应用工程) 。r s e b 的领域工程包括两个过程: ( 1 ) 应用族工程( a p p l i c a t i o nf a m i l ye n g i n e e r i n g ) :开发和维护整个领域系统 体系结构的过程。 ( 2 ) 构件系统工程( c o m p o n e n tf a m i l ye n g i n e e r i n g ) :为应用系统的不同部分 开发构件系统的过程。 在r s e b 中,应用工程被称为应用系统工程( a p p l i c a t i o ns y s t e me n g i n e e r i n g ) 。 把领域工程分成应用族工程和构件系统工程,是一种明确的区分:一个是对整 个领域的体系结构进行工程;另一个对用于特定应用系统的可重用解决方案进行 工程。图2 4 显示了应用r s e b 进行开发的流程。 r s e b 明确地集中于建模差异性。在抽象层,一个差异点确定一个或者多个位 置,在那里可能发生差异。差异点是在更加具体的模型中,使用不同的可变机制 来实现的n 实际上,在过程中使用的任何模型都应该支持某种可变机制,以实现 过程中的差异点。 萋壅查堂堡主堂焦笙壅一三- 鏊笪! 重! l f i 9 2 4t h ed e v e l o p m e n tp r o c e s so f r s e b 特定应用系统 2 3 5 领域工程和面向对象方法i l l 】【1 7 】 面向对象( o o ) 方法相对于结构化方法表现了相当大的优势,并且已经在业 界得到了广泛的接受。但是,它并不是为了支持软件重用而设计的。领域工程和 面向对象方法的整合为这个问题提供了一个解决方案。 1 传统面向对象方法的不足 传统的0 0 方法,都将重点放在开发一个单独的系统上,而不是系统族。这 些方法对于开发可重用的软件都是不充分的,开发可重用的软件要求重点关注系 统族而不是单独的系统。 就过程和建模丽言,传统的0 0 方法有以下不足; 没有区分为重用而进行工程和带有重用的工程:考虑重用就需要把面向对象 软件工程分成为重用而进行工程( 如领域工程) 和带有重用的工程( 如应用工程) 。 为重用而进行工程的范围是个系统族,它使可重用构件的生产成为可能。带有 重用的工程的过程必须利用可重用资产来设计,这些资产是为重用而进行工程的 过程中产生的。当前的0 0 方法缺乏这些性质。 没有领域范围界定阶段:因为0 0 方法集中于设计单独的系统,所以其目标 是满足一个单独系统的客户需求,而不是分析和满足一个系统族的风险承担者。 没有区别在一个应用程序内部和几个应用程序之间的差异性建模:当前的0 0 没有区分应用程序内部的差异性,而且,0 0 用

温馨提示

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

最新文档

评论

0/150

提交评论