已阅读5页,还剩62页未读, 继续免费阅读
(控制理论与控制工程专业论文)基于uml建模的领域工程方法在报刊配送mis系统中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 近年来,随着“软件危机愈加明显的暴露出来,如何提高软件生产率成为 软件产业的重要课题。软件复用是在软件开发中避免重复劳动的解决方案。通 过软件复用,可以提高软件开发的效率和质量。领域工程是实现软件复用的关 键技术之一。领域工程为一组相似或相近系统的应用工程建立基本能力和必备 基础,它覆盖了建立可复用软件构件的所有活动。领域工程中产生的可复用资 产为领域内新系统的开发提供了依据。 本文在研究上述软件复用技术的基础上,针对报刊配送管理信息系统 ( m a n a g e m e n ti n f o r m a t i o ns y s t e m ,m i s ) 领域存在的问题,对报刊配送m i s 系统 领域进行了领域工程,主要工作和研究成果如下: 第一,详细研究了软件复用和领域工程的历史和研究现状,介绍了统一建模 语言( u n i f i e dm o d e l i n gl a n g u a g e ,u m l ) ,针对目前领域工程方法在分析和设计 阶段存在的不足,将u m l 建模技术引入领域工程方法,使得领域分析和领域设 计更加具体,可操作性更强。 第二,综合分析了报刊配送m i s 系统的功能和应用现状,将面向对象的领 域工程方法应用于报刊配送管理领域,识别其共同特征和可变特征,抽象出领 域面向对象分析模型,依据模型设计了报刊配送m i s 系统领域的体系结构,即 特定领域的软件构架( 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 ) 和可复用的 构件库。 第三,利用d s s a 和可复用构件库,成功实现了一个中等规模的软件系统一 天津每日新传媒报刊配送m i s 系统。 关键字:软件复用领域工程统一建模语言( u m l ) 特定领域软件构架( d s s a ) 报刊配送m i s 系统 a b s t r a c t a b s t r a c t i nr e c e n t y e a r s ,d u et ot h e “s o f t w a r ec r i s i s ”,h o wt oi m p r o v es o f t w a r e p r o d u c t i v i t yh a sb e c o m ei m p o r t a n ti s s u ei ns o f t w a r ei n d u s t r y s o f t w a r er e u s eo f f e r sa s o l u t i o nt oa v o i dr e p e a t e dw o r k t h r o u g hs o f t w a r er e u s e ,w ec a l l i m p r o v et h e e f f i c i e n c ya n dq u a l i t yo fs o f t w a r ed e v e l o p m e n t d o m a i ne n g i n e e r i n gi sap r o c e s s e s t a b l i s h i n g f u n d a m e n t a l c a p a b i l i t y a n d n e c e s s a r y b a s i sf o r t h e a p p l i c a t i o n e n g i n e e r i n go fag r o u po fs i m i l a rs y s t e m s i tc o v e r sa l lt h ea c t i v i t i e st ob u i l dr e u s a b l e s o f t w a r ec o m p o n e n t s t h er e u s a b l ep r o d u c t so fd o m a i ne n g i n e e r i n gp r o v i d ea b a s i so f d e v e l o p m e n to ft h en e ws y s t e mi nd o m a i n b a s e do nt h es t u d yo fs o f t w a r er e u s et e c h n i q u e s ,a i m i n ga tt h ee x i s t i n gp r o b l e m s o ft h en e w s p a p e rd e l i v e r y m i s ( m a n a g e m e n ti n f o r m a t i o ns y s t e m s ) ,t h i s a r t i c l e a p p l i e sd o m a i ne n g i n e e r i n gm e t h o r dt ot h en e w s p a p e rd e l i v e r ym i sd o m a i n ,t h em a i n w o r ka n dr e s e a r c hr e s u l t sa r ea sf o l l o w s : f i r s t ,t h ea r t i c l eg i v e sad e t a i l e ds t u d yo fs o f t w a r er e u s ea n dd o m a i ne n g i n e e r i n g , b r i e f l yi n t r o d u c e su m l ( u n i f i e dm o d e l i n gl a n g u a g e ) a i m i n ga tt h ed e f i c i e n c yi nt h e s t a g eo fd o m a i na n a l y s i sa n dd e s i g n ,w eu s eu m l a sm o d e l i n gt o o li nt h ed o m a i n e n g i n e e r i n gm e t h o r d ,a sar e s u l t ,t h ei m p l e m e n to fd o m a i ne n g i n e e r i n gb e c o m e sm o r e c o n c r e t ea n dm o r ew o r k a b l e s e c o n d ,i ta n a l y s e st h en e w s p a p e rd e l i v e r ym i sf u n c t i o n sa n ds t a t u sq u o ,a p p l i e s t h ed o m a i ne n g i n e e r i n gm e t h o db a s e do no b j e c t o r i e n t e dt ot h en e w s p a p e rd e l i v e r y m i s ,t h e ni d e n t i f i e st h e i rc o m m o nc h a r a c t e r i s t i c sa n dv a r i a b l ec h a r a c t e r i s t i c s ,a n d a b s t r a c t sd o m a i no b je c t - o r i e n t e dm o d e l f i n a l l y , w ep r o d u c en e w s p a p e rd e l i v e r ym i s a r c h i t e c t u r e ,t h a ti ss p e c i f i cd o m a i ns o f t w a r ea r c h i t e c t u r e ( d s s a ) t h i r d ,b yu s i n gt h er e u s a b l ed s s aa n dc o m p o n e n t s ,w es u c c e s s f u l l yi m p l e m e n t am e d i u m s c a l ea p p l i c a t i o ns o f t w a r es y s t e m t i 觚j i nd a i l yn e wm e d i an e w s p a p e r d e l i v e r ym i s k e y w o r d s :s o f t w a r er e u s ed o m a i ne n g i n e e r i n gu m ld s s an e w s p a p e r s d e l i v e r ym i s l i 南开大学学位论文版权使用授权书 本人完全了解南开大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:豇卜鹏 9 0 9 孑年j 月厂宫日 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 解密时间:年月日 各密级的最长保密年限及书写格式规定如下: j 。”、。一一”一4 “。“q “”“一“j 。“。? j 1 “。“”一”1 “j 。1 j w “j ”r ,内部5 年( 最长5 年,可少于5 年) 秘密1 0 年( 最长1 0 年,可少于1 0 年) : 机密2 0 年( 最长2 0 年,可少于2 0 年) 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名:醐、鹏 上们8 年r 月,p 日 第一章绪论 第一章绪论 第一节引言 随着计算机技术的进步,计算机的应用领域越来越广泛,软件无论在规模、 复杂度,还是在成本和开发周期上都迅猛增长,“软件危机愈加明显地暴露出 来,提高软件生产率成为软件产业的当务之急。软件复用是解决“软件危机” 的重要手段之一,也是软件技术发展的目的之一【ij 。复用概念的第一次引入是在 1 9 6 8 年n a t o ( 北大西洋公约组织) 软件工程会议上,m c l l r o y 的论文“大量生 产的软件构件 中1 2 】。近四十年的实践证明,软件复用可以有效地提高软件生产 率,降低开发成本,缩短开发周期,提高软件系统的质量,复用的对象也从早 期单纯的代码复用扩展到对软件开发过程中一切有价值的信息的复用。面向对 象技术通过对客观世界的抽象,将有关联的变量和函数封装在一个对象中,简 化了编程的复杂性,提高了程序的可读性,通过接口封装了可复用的代码实现。 面向对象技术为软件复用提供了基本的技术支持,使得软件复用研究成为热点。 1 1 1 软件复用的历史与现状 软件复用的历史,大致可划分为萌芽期、发展期和初步实用期3 个历史时 期【2 】o 7 0 年代末以前,软件复用处于萌芽期,人们对软件复用技术的认识起源于 对数据( 程序) 共享的要求。人们产生了在同一系统中共享某些程序片段的想 法,并尝试了程序和数据相分离的做法。随着数据库技术的不断成熟与发展, 逐渐实现了在不同系统间共享数据以及某些与数据库密切联系的程序段。t 这一 时期,完整的软件复用的概念尚未形成,仅有复用软件的愿望。与此同时,人 们总结出不少软件设计方法和表示方法,但没有着重考虑软件设计的可复用问 题,特别是分析结果的重用【3 4 】,由于没有任何形式化的复用知识表示,更谈不 上辅助工具的支持。 7 0 年代末到8 0 年代末,软件复用技术迅速发展成为软件工程的一个重要的 应用领域1 2 】。但由于注意力放在如何收集、提炼和改造软件系统构件上,而忽略 1 第一章绪论 了其弛方蘧的淘题,以致进展缓慢。懿年代起,人们不仅已认识到软件复需闯 题涉及多方面的知识,如软件工程知识、应用领域知识、人类工程学知识和人 工智能知识,而且还认识到在软件复用实施孛管理因素的重要性净l 。这时期, 软件复用在子程序库、报告生成器、编译器等方丽都取得了长足进展。同时, 人们已对何为软件复用有了一个非形式化、不够完整的概念;对复用信息的提 炼、组织和存储进行了初步探讨,已经理解了软件的组装技术及基于对象的设 计技术等1 6 j ,但上述理解仍是非形式化的,人们仍不能以任何系统化途径实现复 用。这一时期被称为发展期。 8 0 年代后期至今,软件复用领域取得些实用成果,软件复用进入初步实 餍期。各厂商开发了许多支持复用豹软件系统,如t o s h i b a 的软件工厂,d r a c o , g e n e s i s 系统等。从实现角度看,9 0 年代以前,软件复用主要以采用非面向对象 技术来实现,复用的效果则主要以软件生产率和软件质量热标准来加以衡量。 与此i 列时,软件复用的理论研究方向也发生了根本性的变化,人们已不仅只研 究技术阉题也开始研究非技术闯题。人们在8 0 年代后期已认识到管理阅题是提 高复用效率、发挥复用潜力的关键,管理问题比技术问题更为复杂。 进入9 0 年代中期后,软件复用研究与实践呈现以下3 个趋势: 。( 1 ) 软件复用的用户化、惯例化过程中,不仅考虑到技术翔题两整考虑到管 理问题【5 】o f 2 ) 将复燎技术集戏到软件开发过程中,着手研究软件避程形式化鲶问题f l 。 ( 3 ) 着手将领域分析标准化,开发支持领域分析的方法和工具峭l 。 软件复用怒在软件开发中避免重复劳动的解决方案l l 。在软件复用概念提 出之后的发展过程中,有许多复用技术的研究成果和成功的复用实践活动。但 是,复用技术在整体上对软件产业的影响并不尽如入意。这是由于技术方面和 菲技术方面的种种因素造成的,丽技术上的不成熟是主要原因翻。运十几年来, 面向对象技术的出现并逐步成为主流技术,为软件复用提供了基本的技术支持, 使其成为现代软件工程科学 本系中的重要部分,是现代软件开发的重要原则和 方法之- - 9 1 。面向对象技术的主要概念及原则与软件复用的要求十分吻合,因而 有翻予软件复用。实现软件复用的关键因素之一是领域工程( d o m a i n e n g i n e e r i n g ) 1 9 l 。随着计算机在领域应用中的逐步增多,针对特定领域的软件需 求越来越大,在这种情况下,研究蘑囊对象的领域工程方法变褥十分追切。 目前,最成熟、最系统化和工程化的软件复用是基于复用库的软件复用p ”。 2 第一章绪论 1 1 2 领域工程的历史和研究现状 领域工程是一种在特定领域收集、组织、保留构建系统的经验或系统构件 的形成可复用资产的活动,同时在构建新系统时提供用于复用这些资产的适当 方法【1 2 1 。 在8 0 年代和9 0 年代早期的大量工作中,例如文 1 2 】,用于开发可复用软件 的领域工程方法受到了特别的关注。n e i g h b o r s 提出了第一个软件工程方法和原 型基于转换技术的d r a c o 方法。该方法主要思想包含:领域分析、特殊领域 语言和构件。d r a c o 方法支持将软件构建知识组织到许多相关领域。每一个d r a c o 领域都封装了需求和一系列相似系统的不同实现。n e i g h b o r s 的工作对领域工程 的研究做出了巨大贡献,提出了很多概念,例如产生式编程,转换系统和构件。 经过多年的研究与实践,当前已提出若干种领域工程方法,取得了一定的 成果。其中比较有代表性的方法是卡耐基梅隆大学软件工程研究所提出来的 面向特征的领域分析方法( f e a t u r e o r i e n t e dd o m a i n a n a l y s i s ,f o d a ) 方法1 1 3 j 、w i l l t r a c z 提出来的领域特定的软件构架方法( 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 ) u 4 】、乔治梅森大学h a s s a ng o m a a 教授提出来的演化的领域生命周期模型 ( e v o l u t i o n a r yd o m a i nl i f ec y c l em o d e l ,e d l c ) 1 1 5 j 以及贝尔实验室提出来的面向 家族的抽象、规约和翻译( f a m i l y o r i e n t e da b s t r a c t i o n ,s p e c i f i c a t i o n ,a n d t r a n s l a t i o n ,f a s t ) 领域工程方法【l6 1 ,系统化的、模型驱动的复用方法 r s e b ( r e u s e d r i v e ns o f t w a r ee n g i n e e r i n gb u s i n e s s ) t j ,惠普实验室综合f o d a 方 法和r s e b 方法提出的f e a t u r s e b 方法( 1 8 1 ,针对遗产系统的领域工程方法 o d m ( o r g a n i z a t i o nd o m a i nm o d e l i n g ) 【1 9 j ,将产品线生命周期划分为三个部分的 p u l s e ( p r o d u c tl i n es o f t w a r ee n g i n e e r i n g ) 方法1 2 0 1 。此外,卡耐基梅隆大学软件 工程研究所对领域工程及软件复用的研究正由f o d a 方法逐渐演化成基于产品 线的软件复用方法。 1 1 3 领域工程方法的不足 以上几种领域工程方法主要是属于结构化范型的。而近十几年来兴起的面 向对象方法的主要概念与原则与软件复用的要求比较吻合,从而给软件复用提 供了比较好的支持,使得对于复用技术的研究也逐步转向以面向对象方法为基 础,并产生了一些新的复用技术【2 1 1 ,领域工程方法也慢慢由结构化范型向面向 对象范型转化。北大青鸟领域工程方法是一种面向对象的领域工程方法。 3 第一章绪论 另外,当前的领域工程方法在领域分析和设计阶段,只给出了分析与设计 的内容和目标,对于采用何种手段、基于何种角度进行领域分析和设计,并没 有给出明确的指导。针对上述问题,本文尝试将u m l 建模语言引入领域分析与 设计阶段,将面向对象思想作为领域分析与设计阶段识别领域共同特征和可变 特征的指导思想,从而得到了一种基于u m l 建模的面向对象领域工程方法。 第二节m i s 系统与报刊配送领域 1 - 2 1管理信息系统 管理信息系统( m a n a g e m e n ti n f o r m a t i o ns y s t e m s ,m i s ) ,是人和计算机设备 或其他信息处理手段组成并用于管理信息的系统,综合了管理科学、信息科学 和系统埋论等学科| 2 2 】。m i s 管理的对象就是信息,信息是经过加工的数据,信 息是对决策者有价值的数据。信息的主要特征是来源分散,数量庞大。信息来 源于生产第一线,来源于社会环境,来源于市场,来源于行政管理等部门。信 息具有时间性。信息的加工方式有多种形式。 近年来,随着信息技术的飞速发展和管理科学的不断创新,管理信息系统 的概念正在突破原有的界限,向着系统发展的网络化,系统开发方法的统一化 以及系统运行的智能化这三个方向发展【z 引。代表这三个方向发展趋势的技术分 别是智能方向的智能决策支持系统( d s s ) ,计算机集成制造系统( c i m s ) 币i i 企业资 源计划系统( e r f ) ,以及电子商务【2 4 。许多新的技术和理念被引入到管理信息系 统的研究中来,比如数据仓库、神经网络和遗传算法等。 最早应用于企业的管理信息系统主要是面向事务的单项业务处理,如工资 管理和人事管理等【2 引。由于各系统之间缺乏整体设计,数据重复存储及数据不 一致,彼此之间形成事实上的应用孤岛。2 0 世纪7 0 年代前的计算机管理系统大 都可归于该类。现代企业应用的管理信息系统,主要经历了物料需求计划 ( m a t e r i a lr e q u i r e m e n tp l a n n i n g ,m r p ) ,物料需求计划扩展( m r _ pi i ) 禾u 企业资源 计划系统( e r p ) 这三个阶段,目前正向e r pi i 协同电子商务的方向发展。 在企业管理信息系统的技术研究中,大致经历了从主机终端模式到客户机 服务器模式,再到当前w e b - - - 层体系架构的历程。企业管理信息系统向着高度 信息共享的方向不断发展。如何让企业客户能够快捷、高效地获取所需的各种 4 第一章绪论 信息将是今后企业信息系统发展的一条主线【2 6 1 。一方面,如何协调管理企业的 结构性和非结构性数据将成为研究的重点;另一方面,企业内部运行着各种数 据库管理系统,各种业务数据存放又比较庞杂,如何能在分布式环境的数据中 发现商机和预警点,为企业的决策经营服务,也将是企业管理信息系统追求的 重要目标。 1 2 - 2 报刊配送m l s 系统 报刊配送m i s 系统是一个信息管理的平台,将信息技术与报刊配送管理技 术结合到组织的管理活动中,是报刊由发行到读者手中的流动过程的服务体系。 根据实际需要,将报刊订货、进货、到货、分发和结算等业务流程有机结合, 实现对每日的业务数据的存储和管理,帮助报刊配送中心实现对报刊配送过程 的管理,并根据业务数据实现各种业务报表和单据的打印。报刊配送m i s 系统 实现了报刊配送管理的数字化、信息化和自动化,使得不同部门之间形成了高 效的信息联动。报刊配送m i s 系统实现了配送信息的高效存储、管理、共享以 及数据的安全备份恢复。大大提高了配送系统的生产效率,有效地降低了生产 成本。 1 2 3 领域工程方法在报刊配送m i s 系统应用的可行。 生分析 报刊配送m i s 系统作为一种企业管理信息系统应该具有可重构性。系统的 可重构性是为了适应变化对软件开发提出的新要求,这里“可重构 的含义包 涵两点:需求的重构。如何使系统的设计能够满足不同企业的需要或适应企 业需求的变化,就是将系统的不同功能进行构件式封装,针对不同的管理模式、 业务逻辑,选择特定的构件组合实现。是在系统设计与开发过程中,尽量采 用已有的可复用软件资源。 目前国内专业的报刊配送m i s 系统研究并不广泛。由于报刊配送行业的业 务逻辑过于复杂,致使报刊配送m i s 系统开发成本相对较高,且存在重复开发、 商品化程度低以及变化性适应能力差等问题。 领域工程是为一组相似或者相近应用系统建立基本能力和必备基础的过 程。领域工程对一个领域中的若干应用系统进行分析,识别其共同特征和可变 特征,进行抽象形成领域模型,依据领域模型产生出领域中一类应用系统共同 具有的体系结构。 5 第一章绪论 。通过研究比较,我们发现各地报刊配送领域的业务模式和业务逻辑都比较 类似,其配送管理具有非常大的相似性。这点符合实施领域工程的前提,即 领域特征的相对稳定性。对报刊配送系统分析和研究后,可以总结出以下结论: ( 1 ) 具有同一功能的报刊配送管理中心,其核心业务基本相同,与规模、覆 盖地区无关: ( 2 ) 由于报刊配送领域的自身特点,导致其业务部门的相对稳定以及业务流 程的相对不稳定: ( 3 ) 作为m i s 系统,报刊配送管理信息系统的软件体系结构层次清晰; ( 4 ) 由于配送业务的特点,系统需要处理大量订货,配送信息,因此数据的 处理和存储至关重要; ( 5 ) 此类系统对安全性要求较高。 上述分析充分的说明了领域工程在报刊配送m i s 系统领域进行实施具有较 高的可行性。 第三节课题背景和研究意义 本文课题来源于南开大学与天津每日新传媒发展有限公司的合作项目。 报刊配送是一个历史悠久的行业,但是目前该行业的管理方法和手段相对 陈旧,须都仍处于半手工处理状态。因此,报刊配送领域的信息化建设迫在眉 睫。 通过领域工程方法构造的软件系统往往可以提供一类产品组的通用体系结 构和可重用构件,而相关的应用工程则是为单个应用系统设计的最佳解决方案。 由这种方式构造的应用系统族具有高度的结构性、系统性、复用性,并可缩短 新系统建立的时间和资金成本【27 1 ,特别适用于报刊配送m i s 领域。 针对这一现状,本文希望借助于u m l 建模工具,依据对此类系统的开发实 践经验积累和对领域工程方法的理解,以对实际项目天津每日新传媒报刊 配送管理信息系统应用平台的研制和开发为背景,来探讨领域工程方法在报刊 配送m i s 系统领域中的应用以及此类系统的构建。 好的方法必须应用于实践才能够实现其价值,而在实际应用的基础上,对 已有的知识和方法不断修正,能够促进理论和方法的完善和提高。我们在实际 6 第一章绪论 的软件开发过程中综合使用了面向对象技术、统一建模语言、设计模式和领域 工程方法等技术和方案,成功地构建了报刊配送领域m i s 系统软件构架和可复 用的构件资产,并以此实现了一个具体的应用系统。 第四节本文的主要内容 本文主要研究了面向对象的领域工程方法,在软件复用理论的指导下,借 助于u m l 建模技术和设计模式,通过领域工程方法的实施,针对特定的报刊配 送管理领域,建立了报刊配送m i s 系统的领域模型,并对该模型进行了设计和 实现,从而形成了一套较为完整的报刊配送m i s 领域应用系统的解决方案。 论文共分六章,其结构安排如下: 第一章为绪论,首先介绍了软件复用的历史与研究现状,领域工程方法的 历史与研究现状,分析了当前领域工程方法存在的不足,由此引出了基于u m l 建模的领域工程方法。然后,介绍了管理信息系统和报刊配送m i s 系统,给出 了在报刊配送m i s 系统中进行领域工程的可行性分析,最后介绍了本文的课题 来源和背景。 第二章介绍了软件复用技术和领域工程方法,研究了软件复用与领域工程 的关系,最后介绍了统一建模语言( u m l ) 。 第三章提出了面向对象的领域工程方法在报刊配送领域的实施方案,研究 了领域工程方法实施的三个阶段,最后指出本文重点讨论的问题,对于变化性 的处理进行了详细的研究。 第四章按照领域工程方法的要求,对报刊配送m i s 系统进行了领域需求定 义,分别给出了数据需求和功能需求。在需求定义的基础上,对报刊配送m i s 领域进行了总体分析和重点功能模块分析,最终得到报刊配送m i s 系统的领域 分析模型,包括特定领域软件构架模型和变化性处理的规约。 第五章依据报刊配送m i s 系统的领域面向对象分析模型,进行了基于u m l 建模技术的领域设计和实现。利用领域工程中得到的报刊配送m i s 系统的软件 构架和构件库,成功实现了一个报刊配送领域的应用系统天津每日新传媒 报刊配送m i s 系统。 第六章为总结与展望,总结了本文的工作。 7 第二章软件复川相关技术 第二章软件复用相关技术 第一节软件复用技术 面向对象技术的出现并逐步成为主流技术,为软件复用提供了很好的基础, 软件复用再一次进入人们的视野,被视为解决“软件危机”,提高软件生产率和 质量的现实可行的途径吲。 2 1 1软件复用概念 软件复用是指在两次或者多次不同的软件开发过程中重复使用相同或相似 软件元素的过程【| 】。软件复用是软件的重要属性,它可以使某一软件系统中独立 的软件构件与其他软件系统结合在一起以完成某项复用的功能【2 9 1 。 软件复用概念的第一次引入是在1 9 6 8 年n a t o 软件工程会议上,m c i l r o y 的论文“大量生产的软件构件 中。在此之前,子程序的概念也体现了复用的 思想。但其目的是为了节省当时昂贵的机器内存资源,并不是为了节省开发软 件所需的人力资源。然而子程序的概念可以用于节省人力资源的目的,从而出 现了通用子程序库,供程序员在编程时使用l 】。在其后的发展过程中,有许多 复用技术的研究成果和成功的复用实践活动。但是,复用技术在整体上对软件 产业的影响却并不尽如人意。这是由于技术方面和非技术方面的种种因素造成 的,其中技术上的不成熟是一个重要原因。 许多研究人员从不同的角度给出了软件复用的概念:b i g g e r s t a f f 和r i t c h e r 认为软件复用是在新的开发项目中使用以前已经获得的概念和对象:t r a c z 对软 件复用的定义是,重复使用特别为复用目的而设计的软件。这个定义认为软件 复用具有事先性,而将反复利用不是特别为复用目的设计的软件的过程称之为 软件挽救1 3 0 】;g a m b h i r 把在多个应用中使用相同的软件构件称作软件复用,不区 分软件复用与软件挽救之间的区别。目自 f 广泛为人们接受的软件复用的定义主 要吸收了t r a c z 的思想,认为软件复用是指重复使用“特别为复用目的而设计的 软件”的过程,而可复用软件则是指为了复用目的而设计的软件,是指在开发 新的应用系统时重复使用以前的资源,如设计、代码、测试用例、文档、开发 r 第二章软件复用相关技术 知识和经验等【3 l 】。 软件复用是提高软件生产力和软件质量的一门重要技术【3 2 1 。早期的软件复 用主要是代码级别的复用,通常是一些定义良好的函数包和功能模块,后来扩 大到报刊领域知识、开发经验、设计决定、体系结构、需求、设计、代码、二 进制可执行程序和文档等一切软件开发有关方面。 复用暗含了一个已存在的过程,它包含了寻找、获得和使用一个应用系统 中己知质量的软件资产相关的所有活动。当谈论复用时,一般包括以下三种类 型的过程: ( 1 ) 应用过程公司用于指导应用软件有规律的开发、测试和生命周期支持 的过程和实践。 ( 2 ) 领域工程公司用于为一类系统或应用软件定义范围、制定结构着u t g , j 建 可复用资产的基于复用的过程和实践。进行这些活动一般是为了指出哪些部分 应该创建成可复用的。 ( 3 ) 资产管理公司用于管理资产并使这些资产为潜在的用户可用的过程 和实践。工程是使用这些过程和时间去检索库以找到感兴趣的可复用资产。 实现软件复用的关键技术主要包括:软件构件技术( s o f t w a r ec o m p o n e n t t 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 f t w a r ea r c h i t e c t u r e ) 、 软件再工程( s o f t w a r er 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 9 第二章软件复用相关技术 p r o c e s s ) 、c a s e ( c o m p u t e ra i d e ds o f t w a r ee n g i n e e r i n g ,计算机辅助软件工程) 技 术等p 3 1 。 2 1 - 2 系统化的软件复用 软件复用可以从多个角度进行研究 3 4 1 ,例如依据实现复用的策略,可以区 分为组装式i 拘( c o m p o s i t i o n a l ) k m 和生成式的( g e n e r a t i v e ) 复用;依据复用可复用 信息的方式,可以区分为黑盒( b l a c k b o x ) 复用和白盒( w h i t e - b o x ) 复用。 对复用进行分类的方式之一是依据复用的组织方式,将复用区分为系统化 的( 或有计划的) 复用( s y s t e m a t i c ,p l a n n e dr e u s e ) 和个别的( 或“机会主义的 ) 复用( a d h o c ,o p p o r t u n i s t i cr e u s e ) p 川。 在个别的软件复用中,存在一组可复用构件,应用开发者对它们进行选择 和复用。应用开发者的责任包括识别可能进行复用的机会,选择满足需要的构 件或经过修改可以满足需要的构件,得到这些构件并利用它们组装成新的应用 系统【3 6 i 。在这种复用中,复用是在个人的,而不是在项目的级别是进行的,也 没有定义复用的过程i j 4 。 在系统化的软件复用中,不但存在一组可复用构件,而且定义了在新的应 用系统的开发过程中复用哪些构件以及如何进行适应性修改【35 1 。由于一般性地 识别、表示和组织可复用信息是非常困难的,因此系统化的复用将注意力集中 1 0 第二章软件复用相关技术 于特定的领域,而且在系统化的复用中非常重视软件生命周期中抽象级别较高 的产品的复用1 3 引。在这种复用中,复用是在项目级别进行的,定义了复用的指 南和过程,定义了度量标准以衡量复用的效率1 3 4 】。 与个别的软件复用相比,系统化的软件复用对于提高软件的质量和生产率 具有更大的作用。由于将注意力集中于特定的领域,使得软件开发组织可以获 得对该领域的深入了解,对于可复用信息的识别和表示会比较容易和准确,根 据这些定义的复用指南会对复用过程较有帮助。完整定义的复用过程和对复用 的度量,使得复用可以比较规范和系统化,从而有助于实现软件开发组织实施 复用的预期目标。 同时实施系统化的软件复用也有较大的风险。实施系统化的软件复用的软 件开发组织需要解决一系列技术和非技术的问题,例如,分析本组织的需要, 定义适合这些需要的复用过程,调整人员的组织方式,建立度量标准以衡量复 用的效率,并据此调整复用过程,估计投资和收益,建立特定领域的可复用构 件,等等。这些行为需要较大的前期投资和整个软件开发过程和原则的变化, 而预言这些投资的回报却是困难的。 2 。1 。3 复用基础设施 在系统化的软件复用中,充分的可复用信息的存在是非常重要的。这些信 息需要被显式地表示,以便在开发过程中被复用。这些可复用信息,和为方便 地定位和操作它们的一些辅助信息一起构成了复用基础设施( r e u s e i n f r a s t r u c t u r e ) 1 3 8 j 。复用基础设施也是基于特定领域的。 复用基础设施必须适应软件开发组织的需要。它根据具体的需要回答下列 问题:可复用的信息包括哪些类型,可复用信息如何描述,可复用信息如何进 行分类以利于检索等等。 在复用实施的过程中,复用基础设施是不断演化的。在开发新系统时,开 发者从复用基础设施中获得可复用信息,将它们集成到新系统中去。在此过程 中可能产生对于复用基础设施的关于信息描述、分类方式等方面的反馈意见, 复用基础设施将根据这些意见进行调整。新系统可能具有自己的特征,它的开 发就可能需要复用基础设施中没有包含的信息,这就需要进行新的开发。当新 系统开发完成,成为现有系统时,复用基础设施就需要根据当前所有的现有系 统进行演化,以尽可能地把握本领域中系统的共同特征。复用基础设施的演化, 1 l 第二章软件复用相关技术 是可以并且需要随着领域中系统的开发持续进行的瑟9 1 。 第二节领域工程 系统化复用的成功依赖于很多因素,其中领域工程是系统化的软件复用成 功的关键1 3 4 l 。 通过领域工程,将关于一个领域的知识转化成为一组靓约、构架和相应的 可复用构件。由于这些信息来自于同一领域中现有的系统,因此它们具有较高 的可复用性。这些可复周信息构成了复用基础设旎的重要组成部分。因此,复 用基础设施的形成是通过领域工程实现的。 复用基础设施的演化也是通过领域工程。当一个领域中的应用系统增加了 的时候,通过领域工程,可以对这些系统进行新的分析,将新系统的特征也包 含在规约、构架和可复用构件中,从而使本领域中系统开发的知识和经验尽可 能地反映在复用基础设施中,以促进新系统的开发。 领域工程对于系统化的软件复用的意义还在于,领域工程不仅产生了可复 用性较高的构件,丽且通过产生构架定义了复震的时机和复耀静上下文。这样 就对开发者复用这些构件提供了有力的支持,使得复用变得规范、系统和高效 f 3 5 1 。 2 2 1 领域定义 领域是由具有类似用户需求的一组或一族相关系统所组成的一个系统集, 它展示了现有各系统的共性、个性和可复用资源,并为相似系统的开发提供了 参照模型湖。 存在很多方式定义一个领域f 4 0 i 。我们的目光集中在描述领域的内部是什么, 领域的边界是什么以及领域的外部是什么【引i 。 2 2 2 领域工程概念 领域工程是针对一个应用领域中的若干系统进行分析,并识别这些系统共 享的领域需求,设计出能够满足这些需求的构架,并在此基础上开发和组织该 领域的可复用构件的过程。其中“领域”是指一组具有相似或相近软件需求的 1 2 第二章软件复用相关技术 应用系统所覆盖的功能区域【2 1 1 。 2 - 2 - 3 领域工程的基本假定 进行领域工程的研究和实施领域工程是基于两个基本的认识1 4 z j : ( 1 ) 可复用信息的领域特定性。可复用性不是信息的一种孤立的属性,它依 赖于特定的问题和特定的问题解决方法。即,我们说某信息具有可复用性,是 指当使用特定的方法解决特定的问题时,它是可复用的。基于这一基本认识, 在识别、获取和表示可复用信息时,应采用面向领域的策略。 ( 2 ) 问题领域的内聚性和稳定性。关于现实世界问题领域的解决方法的知识 是充分内聚和充分稳定的,这才使得获取和表示这些知识的努力是有意义的。 这一基本认识是实际观察的结果。一个问题领域的规约和实现知识的内聚性, 使得可以通过一组有限的、相对较少的可复用信息来把握这些可以解决大量问 题的知识。领域的稳定性,使得获取和表示这些信息所付出的代价,可以通过 在一段较长的时间内多次复用它们来得到补偿。 第三节软件复用与领域工程的关系 2 3 1软件复用及其难点 软件复用是当前软件工程研究的重要课题。为达到软件复用可能产生的效 果,有许多问题需要研究,其中包括一些非技术问题,如软件开发组织中的人 员组织、管理模式、开发人员的培训、知识产权问题等,以及一些技术问题, 如对于复用的度量、关于复用的成本收益模型、可复用构件的生产、基于复用 的开发等【3 7 j 。其中,如何正确地识别和组织可复用信息,使得它们在软件开发 中能够被复用,并且易于被复用是一个重要的问题,也是软件复用的一个难点。 2 3 2 领域工程对软件复用的支持 从软件开发过程的角度看,有关软件复用的问题可以分为两类,一类是关 于面向复用的开发( d e v e l o p m e n t f o rr e u s e ) ,另一类是关于基于复用的开发 ( d e v e l o p m e n tw i t hr e u s e ) 。第一类问题主要是关于如何产生具有较高可复用性的 构件或生成过程,第二类问题包含三个方面,即:如何找到可复用构件,如何 1 3 第二章软件复用相关技术 判断可复用构件是否符合当前需要,以及如何对可复用构件进行适应性修改【4 3 】。 领域工程有助于产生具有较高可复用的构件。领域工程将关于领域的知识 转化为领域中系统共同的规约、设计和构架,使得可以被复用的信息的范围, 扩大到了抽象级别较高的分析和设计阶段。由于通过领域工程产生的可复用构 件来源于领域中现有的系统,体现了领域中系统的本质需求,因此这些构件具 有较高的可复用性】。 同时,领域工程产生了领域模型和特定领域的软件构架( d s s a ) 或应用系统 的生成过程,这对于基于复用的开发很有帮助。可复用构件是根据领域模型和 d s s a 组织的,方便了构件的检索。开发以领域模型和d s s a 为线索进行,可以 帮助开发者识别复用机会,判断可复用构件是否符合当前需要。d s s a 为构件组 装提供了上下文,使得利用可复用构件组装或生成新的系统较为容易。 第四节统一建模语言u m l 2 4 1u m l 的历史 u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 1 4 5 j 是在多种面向对象分析与设计方法相互 融合的基础上形成的,其发展历史可以大致概括为四个阶段。最初的阶段是面 向对象方法学家的联合行动,由gb o o c h 、j r u m b a u g h 和i j a c o b s o n 将他们各 自的方法结合起来,形成u m l 0 9 。第二阶段是公司的联合行动,由十多家公司 组成u m l 伙伴组织,共同提出u m l l 0 和1 1 ,于1 9 9 7 年被对象管理组织( o m g ) 正式采纳作为建模语言规范。第三阶段是在o m g 控制下对u m l 规范进行修订 和改进,产生了u m l l 2 、1 3 、1 4 和1 5 等版本。目前所处的阶段是本世纪开 始以来的重大的修订,推出了全新的版本u m l 2 。0 。 u m l 用于对软件密集型系统进行可视化、详述、构造和文档化,也可以用 于业务建模以及其他非软件系统的建模。u m l 定义了系统建模所需的概念并给 出其可视化表示法,但是它并不涉及如何进行系统建模。因此它只是一种建模 语言,而不是一种建模方法。u m l 是独立于过程的,就是说,它可以适应不同 的建模过程。u m l 的出现使面向对象建模概念和表示法趋于统一和标准化。目 前,u m l 已成为被广泛公认的工业标准,拥有越来越多的用户。现今的大部分 面向对象系统建模均采用u m l l 4 刨。 1 4 第二章软什复用相关技术 u m l 是一种定义良好,易
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤炭委托合同2026年仓储服务
- 大庆二模试题及答案
- 胚胎学试题及详解
- 政治学与行政学题目及答案
- 集成电路测试题库及答案
- 医学影像CT诊断题库及答案
- 儿童心理发展题目及分析
- 化工企业可燃性粉尘清理制度
- 2026年审计师考试冲刺试卷黄金密押考前点题
- 2026四川绵阳市北川生态环境监测站招聘编外人员1人考试备考题库
- 红木鉴赏与收藏知到智慧树章节测试课后答案2024年秋海南热带海洋学院
- 《新能源乘用车二手车鉴定评估技术规范 第1部分:纯电动》
- 《配电设施防洪涝设计规程》
- 从“智人”到“数字人”
- DB11T 3032-2022 水利工程建设质量检测管理规范
- 媒体创意经济:玩转互联网时代学习通超星期末考试答案章节答案2024年
- 工程造价咨询服务投标方案(技术方案)
- GB/T 44299-2024探测器探测范围的测量方法和声明用于大和小运动探测的被动式红外探测器
- GSTGM9000图形显示装置软件用户手册
- 明管结构计算书(Excel)
- 2023年同等学力申硕经济学综合历年真题及答案
评论
0/150
提交评论