(计算机应用技术专业论文)基于构件技术的erp系统的设计.pdf_第1页
(计算机应用技术专业论文)基于构件技术的erp系统的设计.pdf_第2页
(计算机应用技术专业论文)基于构件技术的erp系统的设计.pdf_第3页
(计算机应用技术专业论文)基于构件技术的erp系统的设计.pdf_第4页
(计算机应用技术专业论文)基于构件技术的erp系统的设计.pdf_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 随着软件规模和复杂性的不断提高,软件危机愈加明显暴露出来。e r p 系统 作为先进的企业资源规划软件其市场前景喜人,但是开发上存在周期长、稳定性 较难保证、资金投入大等问题。软件复用技术被认为是解决软件危机、提高软件 生产率和软件质量的主要途径。把软件构件技术系统地应用到e r p 等大型软件系 统的开发中来必将产生明显的经济效益,在理论上也有一定的研究价值。 本文深入分析了基于构件的软件工程相对于传统软件工程和面对象软件工 程的优缺点,说明基于构件的软件技术是软件发展的技术趋势,并简述了基于构 件的软件工程的过程、当前的方法和工具。 基于构件的软件工程包括两个并行过程:领域工程和应用工程,本文研究的 重点是领域工程。领域工程分为三个阶段:领域分析、领域设计和领域实现。本 文从e r p 系统中的一个小领域着手,采用领域工程中的方法进行领域分析,从而 达到研究整个e r p 系统构件化的一般方法的目的。在领域分析阶段采用面向特征 的领域建模方法建立领域模型,领域设计阶段采用基于模式和框架的技术进行领 域结构建模。 论文研究了基于构件的开发过程中复用构件库中的分析构件、设计构件和物 理构件的方法,通过对构件的复用,大大减轻了开发新系统的需求分析、系统设 计和编码的工作量;而且,构件通过反复多次的复用和完善,其可靠性和功能性 可以得到加强和完善,这样就使基于可复用构件建造的新系统的功能性和可靠性 得到自然的提升。管理思想的不断发展要求蕴含管理思想的e r p 系统也要与时俱 进,以适应客户不可预测的需求变化,而基于构件的软件技术为开发具有柔性的 e r p 系统提供了技术支持。本文从实用的角度研究了提取e r p 系统中的共性部分 并把这些共性部分实现为e r p 领域构件的一般方法,具有一定的实用价值。 关键词e r p ;软件复用;软件构件;领域工程 a b s t r a c t a b s t r a c t w i t ht h es i z ea n dc o m p l e x i t yo fs o f t w a r ec o n t i n u e st oi m p r o v e ,t h es o f t w a r e c r i s i se x p o s e dm o r ec l e a r l y e r ps y s t e m ,a sa l la d v a n c e de n t e r p r i s er e s o u r c ep l a n n i n g s o f t w a r e ,i se n c o u r a g i n gp r o s p e c t sf o ri t sm a r k e t ,b u tt h e r ei sl o n g t e r md e v e l o p m e n t , s t a b i l i t ym o r ed i f f i c u l tt og u a r a n t e et h a tl a r g ec a p i t a li n v e s t m e n ta n ds oo n s o f t w a r e r e u s et e c h n o l o g yi sc o n s i d e r e da st h em a i nw a yt os o l v es o f t w a r ec r i s i sa n dt o i m p r o v es o f t w a r ep r o d u c t i v i t ya n ds o f t w a r eq u a l i t y 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 t ob e a p p l i e d t ot h ee r ps y s t e m ,s u c ha sl a r g e s c a l es o f t w a r es y s t e m st ot h e d e v e l o p m e n tw i l lh a v es i g n i f i c a n te c o n o m i cb e n e f i t s t h e r ei sc e r t a i nr e s e a r c hv a l u e i nt h e o r y d e p t ha n a l y s i so ft h i sp a p e r ,c o m p o n e n t - b a s e ds o f t w a r ee n g i n e e r i n gc o m p a r e d t ot r a d i t i o n a ls o f t w a r ee n g i n e e r i n ga n ds o f t w a r ee n g i n e e r i n gs i d eo ft h ea d v a n t a g e s a n dd i s a d v a n t a g e so ft h eo b j e c tt h a ti st h es o f t w a r ec o m p o n e n to fs o f t w a r e d e v e l o p m e n tt e c h n o l o g y t r e n d s ,a n do u t l i n e s t h e c o m p o n e n t b a s e d s o f t w a r e e n g i n e e r i n gp r o c e s s ,t h ec u r r e n tm e t h o d sa n d t o o l s c b s ei n c l u d e st w op a r a l l e lp r o c e s s e s d o m a i ne n g i n e e r i n ga n da p p l i c a t i o n e n g i n e e r i n g t h ef o r m e ri st h ee m p h a s i si nt h i sp a p e r d o m a i ne n g i n e e r i n gi n c l u d e s t h r e ep h a s e s :d o m a i na n a l y s i s ,d o m a i nd e s i g na n dd o m a i ni m p l e m e n t t h e r ea r e m a n yu s e a b l em e t h o d sa n dt e c h n o l o g i e st oe r p ,t h eg o a lo fw h i c hi s t os o l v et h e p r o b l e mo fe r ps y s t e m f e a t u r e o r i e n t e d d o m a i na n a l y s i si sam e t h o do f d o m a i n a n a l y s i s p a t t e r na n df r a m e w o r k i sam e t h o do fd o m a i nd e s i g n i na d d i t i o n ,t h i sp a p e rs t u d i e st h em e t h o d st or e u s et h ec o m p o n e n t sf u n c t i o n a l i t y a n dd e p e n d a b i l i t yw i l lb ei m p r o v e db yr e u s i n g t h e r e f o r e ,t h ef u n c t i o n a l i t ya n d d e p e n d a b i l i t yo ft h en e w e r ps y s t e mb a s e do nt h e s ec o m p o n e n t sw i l lb ei m p r o v e d a c c o r d i n g l y t h em a n a g e m e n ti d e a sd e v e l o pp e r p e t u a l l y ,s oe r ps y s t e mf u s i n gt h e i d e a sm u s tg oa h e a dw i t ht h ee p o c h t h a ti st os a y ,e r ps y s t e mm u s th a v ef l e x i b i l i t y t of i tt h eu s e ru n c e r t a i nr e q u i r e m e n t ,a n dc o m p o n e n ts o f t w a r em u s ts u p p o r tt h e d e v e l o p m e n to f f l e x i b l ee r ps y s t e m t h i sp a p e rs t u d i e sas e r i e so fm e t h o d st op i c k o u tt h ec o m m o np a r t so fe r ps y s t e m sa n df u r t h e rt ob u i l dt h e e r pd o m a i n c o m p o n e n t ,w h i c hh a sp r a c t i c a lv a l u e i nt h ep r o c e s so fd e v e l o p i n gn e we r ps y s t e m s k e y w o r d se r p ;s o f t w a r er e u s e ;s o f t w a r ec o m p o n e n t ;d o m a i ne n g i n e e r i n g i i i 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名:毋每一日期啦 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:壬铲导师签名:掣吼趣乒纠 第1 章绪论 1 1 研究背景 i i 1 关于e r p 及其现状 第1 章绪论 e r p ( e n t e r p r i s er e s o u r c ep l a n n i n g ) 企业资源计划系统,是指建立在信息 技术基础上,以系统化的管理思想为指导,为企业决策层及员工提供决策运行手 段的管理平台。e r p 主要是突破企业自身范围的限制,把信息集成的范围扩大到 企业的上下游,管理整个供需链。 然而,e r p 应用的一个最大问题是实施成功率一直不高。许多企业发现,很 难找到适合自身的现有e r p 系统,多数e r p 系统需要进行二次开发。而企业定制 的e r p 系统的成本太高,多数应用企业及软件开发单位难以接受。目前的e r p 系统普遍有以下不足: ( 1 ) 以偏盖全,行业适应性差 虽然某些厂商推出了号称企业信息化全面解决方案的产品,但是其产品却置 行业特性于不顾,期望通过一套软件,用简单的参数控制解决所有企业的问题, 无异于痴人说梦。其最多只是解决了简单的财务问题。 ( 2 ) 缺乏先进的管理思想指导 一套先进e r p 系统必然包含着先进的管理思想,然而某些e r p 产品仍然抱着 旧有的财务观念,管理上偏重执行、事后控制和事后反馈,对于e r p 产品的核心 计划,仍然认识不足,执行不够。而且管理思想是不断发展的,现有的e r p 系统 跟不上管理思想的进步。 ( 3 ) 僵化,死板,系统的可操作性差 主要体现在e r p 系统标准业务流程与具体企业的实际工作流程的匹配上。很 多e r p 系统的实施都需要对企业进行全程的业务流程重组。但这样做实现起来风 险很大。业务流程重组除了涉及到i t 支撑之外,更多地涉及到企业的战略、组 织、绩效和管理模式等诸多方面,e r p 的流程只是其中的一部分。这样一来,一 方面整个项目周期加长,另一方面,“彻底的重组”对企业的冲击过大,给业务 流程重组之后的e r p 实施增加了众多不确定因素。 ( 4 ) 各个模块分裂割据,整体功能无法体现 企业生产、供应和销售等是通过企业的计划系统有机的联系在一起的,并保 持着连动关系。如果计划系统出错,那么连接的纽带就断了,整体性的功能根本 无法表现出来。而有些e r p 产品正是在关键的地方掉了链子,计划系统不堪一用, 北京- 丁业大学丁学硕士学位论文 使得整个系统无法发挥整体的效力,企业的动作就无法统一起来【2 5 】。 综上所述,企业需要的是能够方便实现业务流程重组( 动态业务流程) 、融合 先进的管理思想、可扩展性强的e r p 系统。也就是说企业需要的e r p 是具有柔性 的e r p ,这种柔性是面向开发者的柔性,而构件技术为生产柔性系统奠定了基础。 开发者通过e r p 业务构件组装形成e r p 的业务流程符合大多数企业熟悉的业务流 程和先进的管理思想的要求。 i i 2e r p 系统的开发方法及其特点 ( 1 ) 专用型e r p 软件 专用型e r p 软件是为满足特定用户要求而专门设计开发的e r p 系统,从使用 效果上看,这类系统一旦开发成功,易于保证特定用户的满意程度。这类系统的 缺陷是:其一适应性差。由于系统使用环境、时间和人员等变化,而导致整个系 统模式的变化。其二是开发消耗大。e r p 实施的涉及面广,需要消耗大量的人力、 物力、财力,频繁的变化往往使系统开发跟不上变化【6 】。 ( 2 ) 通用e r p 软件 遵循共同的业务运行模式,具有开发效率高,成本较低等优点。这类系统在 具体实施时由于不同企业的实际情况不同,必须更改系统的某些方面,以适应用 户的需要。其主要的不足在于:其一实用性差。由于企业管理模式、业务流程的 不同,而使系统的用户化工作量很大。其二定制余地有限。这类软件是以比较通 用的业务运行模式为前提的,所以在实施时,仅仅通过定制不能解决某些问题, 它往往强迫用户改变现有业务模式,进行业务流程重组,定制不能解决通用与具 体的矛盾【7 j 。 ( 3 ) 结构型e r p 软件 结构型e r p 系统由不同模块( 子系统) 组成,每一模块完成某个功能或某种需 求。结构型系统可以根据具体的用户要求,选用不同的模块来构造e r p 系统,从 而使系统有较好的针对性。但是模块化结构所包含的源代码量大而难以维护,即 对软件的整体性要求很高,要严格规定模块之间的相互关系与约束,系统重构的 代价高,更重要的是系统的扩展、升级十分困难嗍。 ( 4 ) 基于构件技术的e r p 软件模型 如何构造具有很好的适应性、可维护性和可重构性的e r p 系统已成为当前 e r p 系统研制的重要课题之一。而越来越成熟的构件技术在软件复用领域快速发 展,成为软件复用的核心技术,其特点表现在: 即插即用:构件可以方便地集成于框架中,不用修改代码,也不用重新编译。 以接口为核心:构件的接口和实现是分离的。构件通过接口完成与其他构件 第1 章绪论 和框架的交互,构件的具体实现被封装在内部,组装者只关心接口,不用知道其 实现细节。 基于构件的系统与采用其他技术的系统相比优势在于:一是系统开发难度降 低,维护方便,可以比较容易地扩充额外的功能;二是系统的某些功能可以独立 地进行升级,不会对其他的功能带来负面影响;三是系统集成性好【9 1 。 因此,基于构件技术的e r p 系统可以较好解决系统在开发及实施中的瓶颈问 题,正在成为研究的热点。 1 2 研究意义 基于构件的软件开发技术,彻底打破了原有软件基于代码层开发的固有模 式,使之完全可以构筑在“构件组装”的生产方式之上。这种新的生产方式,以 “构件”取代“代码 成为软件的“信息原子 ( 基本结构单元) 。面向构件的产 品不仅在客户需求吻合度、上线时间、软件质量上都领先于同类产品,大大提高 了项目的成功率,而且软件的开发和维护变得空前简单,客户可以随时随地获取 应对商业环境变化和i t 技术变化的最新信息化方案,真正实现“敏捷定制 。企 业解决方案将会面目一新,不再单一固化;它是一组或多组面向构件的模块,可 以按照企业自身需要灵活组装,并随着企业的变化不断重组重构、动态匹配,快 速实现像硬件那样的任意装配、定制。 随着经济全球化和全球信息化进程的加快,企业竞争模式不断在发展和变 化,电子商务技术的成熟、企业与客户和供应商时空距离的缩短、全球性资源优 化配置等,都对e r p 系统提出了新的要求。企业迫切需要一种将各种单独的信息 化系统结合到一起的信息化策略。软件构件技术就提供了这样的契机。这种基于 构件的软件开发方法使软件开发简单明了,通过构件封装了内部实现,使构件的 内部数据和外部功能分开,构件的使用者不需要知道构件的内部结构和实现,只 需了解构件的接口,就可以将构件用于自己的应用程序。此外,构件可以灵活地 布置在网络上,可以通过合理分配构件在网络中的位置使应用系统获得最大的效 率、性能、安全性和可维护性。e r p 领域的内聚性和稳定性为软件复用提供了软 件资产和潜在的经济利益,使得基于构件的e r p 系统具有可行性和实用价值。 总之,基于构件的e r p 系统具有以下三个重大意义: ( 1 ) 从根本上改革e r p 的落后的生产方式,从手工编码方式转向面向构件的 e r p 业务组装的生产方式。 ( 2 ) 从根本上解放落后的e r p 的生产力,基于构件的快速搭建e r p 系统的开 发方式解放了e r p 的生产力,使得e r p 的产品质量得到了保证,缩短了开发周期, 节约了开发成本与实施成本。 北京工业大学工学硕士学位论文 ( 3 ) 全面提高e r p 系统的面向开发者的柔性,提高e r p 系统的适应能力,从 技术上解决e r p 系统实施失败率高的问题。 1 3 本文的主要工作 本文根据传统e r p 系统存在的弊端,寻找适合e r p 应用的软件构件技术,本 文采用基于构件的软件开发技术建造新的e r p 系统,使两者的结合达到最佳方 式。结合实际应用,课题研究完成的主要工作可归纳如下: ( 1 ) 研究基于构件技术的e r p 系统开发过程模型以及开发策略; ( 2 ) 通过e r p 的领域分析,研究e r p 领域内的共性和可变性,抽象出e r p 系 统的领域模型并根据领域模型实现到构件模型的映射; ( 3 ) 通过e r p 的领域设计,提取逻辑构件,设计构件接口,并对构件进行封 装; ( 4 ) 研究基于构件技术的e r p 系统的应用工程,分别从需求分析阶段、设计 阶段和实现阶段对构件进行复用以及在各个阶段对构件进行适应性修改。 1 4 论文的结构 全文分为四章: 第一章:绪论。阐述了问题的提出,研究内容及研究现状,以及本文的主要 工作。 第二章:基于构件技术的软件工程。将传统的软件开发方法和基于构件技术 的软件开发方法进行对比,可以看到基于构件的系统具有多方面的优势。利用这 些优势将基于构件的技术引入到e r p 系统的开发当中。 第三章:领域工程。通过面向特征的领域分析方法和基于软件模式和框架的 体系结构的领域设计方法对从e r p 领域中抽取出某个小的领域来进行实例研究。 第四章:应用工程。这部分主要针对第一部分得到的可复用软件资产的复用 方法进行研究,探讨体现基于构件的软件开发方法的优势的具体方法,分别从需 求分析阶段、设计阶段和实现阶段对构件进行复用以及在各个阶段对构件进行适 应性修改。 第2 章基于构件技术的软件工程 第2 章基于构件技术的软件工程 软件开发技术是软件工程的主要研究内容之一。软件开发技术主要包括软件 开发方法学、软件工具与软件工程环境。随着软件系统的大型化和复杂化,仅仅 依靠传统的软件开发技术不足以克服系统开发的实质性困难,因此必须对开发技 术进行重新思考,寻求一种新型的软件开发技术,来提高系统开发效率、降低开 发成本、保证软件质量【1 0 1 。 2 1 传统的软件开发方法 2 1 1 结构化方法 结构化方法是早期占主导地位的软件构造与开发方法,在软件行业得到广泛 接受和使用。在利用结构化分析设计方法在进行系统开发时,首先关心的是系 统的功能模块( 过程) ,也就是将问题空间映射为功能子功能和功能界面,采用 模块化、自顶向下、逐步求精设计的过程,在结构化分析阶段以数据流图、数据 字典等从逻辑上刻画系统;在结构化设计阶段细化低层实现细节,并把数据流图 转换为模块结构图( m o d u l es t r u c t u r ec h a r t ) 。起初,按照工程标准和严格规范 将系统分解为若干功能模块。随着分析的深入,其中的某个功能被进一步分解为 若干个子功能及功能界面。然而,结构化方法存在一定缺陷,随着用户的需求和 软、硬件技术的不断发展变化,作为系统基本成分的功能模块很容易受到影响, 局部修改甚至会引起系统的根本性变化;开发过程前期入手快而后期频繁改动的 现象比较常见。用结构化方法开发的软件,其稳定性、可修改性和可重用性都比 较型1 1 1 。 2 1 2 面向对象开发方法 面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使 开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与过程。面向 对象方法认为,客观世界是由各种各样的对象组成的,每种对象都有各自的内部 状态和运动规律,不同的对象之间的相互作用和联系就构成了各种不同的系统。 当我们设计和实现一个客观系统时,如能在满足需求的条件下,把系统设计成由 一些不可变的( 相对固定) 部分组成的最小集合,这个设计就是最好的。而这些不 可变的部分就是所谓的对象。 北京工业大学工学硕士学位论文 面向对象技术有三个特征:封装、继承、多态。它是以对象为基础,利用特 定的软件工具直接完成从对象客体的描述到软件结构之间的转换,解决了传统结 构化开发方法中客观世界描述工具与软件结构的不一致性问题,缩短了开发周 期,解决了从分析和设计到软件模块结构之间多次转换映射的繁杂过程,是一种 很有发展前途的系统开发方法。随着统一建模语言u m l ( u n i f i e dm o d e l i n g l a n g u a g e ) 的出现,标志着0 0 ( o b j e c t - o r i e n t e d ) 方法学真正走向成熟,目前 己经成为广为接受的标准建模语言,并且许多建模工具商( 如r a t i o n a lr o s e ) 和 开发工具商( 如m i c r o s o f t ,o r a c l e ) 都纷纷支持u m l 。 面向对象方法将软件开发的工作过程分为四个阶段: 第一:系统调查和需求分析,对系统将要面临的具体管理问题以及用户对系 统开发的需求进行调查研究,即先弄清要干什么的问题。 第二:面向对象分析,简称为o o a ( o b j e c t - o r i e n t e da n a l y s i s ) ,即分析 问题的性质和求解问题,在繁杂的问题域中抽象地识别出对象以及其行为、结构、 属性、方法等。 第三:面向对象设计,简称为o o d ( o b j e c t 一0 r i e n t e dd e s i g n ) ,即对分析 的结果作进一步地抽象、归类、整理,并最终以范式的形式将它们确定下来。 第四:面向对象的程序,简称为o o p ( o b j e c t - o r i e n t e dp r o g r a m m i n g ) ,即 用面向对象的程序设计语言将上一步整理的范式直接映射( 直接用程序语言来取 代) 为应用程序软件。面向对象方法存在潜在的优势,例如提高程序的易理解性 和可维护性;提高程序的开发效率。但是同时它也存在一定的局限性,如o o 方 法主要通过类继承机制来支持软件复用,但继承多少破坏了封装,而且类的重用 程度不是很高,类与最终的实现系统之间存在很大的隔阂【l e 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 ) 、领域工程( d o m a i ne n g i n e e r in g ) , 第2 章基于构件技术的软件工程 软件架构( 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 ep r o c e s s ) 、c a s e ( c o m p u t e r a s s i s t e ds o f t w a r ee n g i n e e r i n g ) 技术等技术因素以及非技术因素, 且各种因素是互相联系、互相影响的,如图2 - 1 所示,它们结合在一起,共同影 响软件复用的实现【1 3 1 。 图2 1 实现软件复用的关键因素 f i g u r e2 1t h ek e yf a c t o ro f a c h i e v i n gs o f t w a r er e u s e 2 2 1 软件构件技术 构件是指应用系统中可以明确辨识的构成成分。在计算机百科全书中,软件 构件被定义为软件系统中具有相对独立功能、可以明确辨识、接口由契约指定、 和语境有明显依赖关系、可独立部署、且多由第三方提供的可组装软件实体。而 可复用构件是指具有相对独立功能和可复用价值的构件。 可复用构件应具备以下属性: 有用性:构件必须提供有用的功能。 可用性:构件必须易于理解和使用。 质量:构件及其变形必须能正确工作。 适用性:构件应该易于通过参数化等方式在不同语境中进行配置。 可移植性:构件应能在不同的硬件运行平台和软件环境中工作。 构件的概念已不再局限于源代码构件,而是延伸到需求、系统和软件的需求 规约、系统和软件的体系结构、文档、测试计划、测试案例和数据以及其他对开 北京工业大学工学硕士学位论文 发活动有用的信息。 随着i n t e r n e t 上软件技术的发展,软件服务化成为新的技术发展趋势,也 出现了以w e bs e r v i c e 、e j b 、c o r b a 、c o m + 等为代表的服务类型构件。此时,构 件在使用方式上发生了变化,即从原先直接使用构件实体转向通过网络调用构件 所提供的服务进行使用,而这些服务又可以通过集成组装其他服务形成粒度更大 的、新的服务提供给用户使用。我们看到,服务与传统构件既有相同性又有差异 性:首先,从应用系统的开发角度来看,目前这两个概念均作为系统的基本构成 单元,但是基于服务或构件进行系统的构建方式不同。基于构件的软件开发,需 将构件以源代码或者目标代码的形式集成到最终系统中,此时构件的源代码或者 目标代码是作为系统的组成成分的。基于服务的软件开发,服务只向服务的请求 者提供计算结果,最终系统集成的仅是服务访问地址,服务本身的源代码或者目 标代码不作为系统的组成成分。其次,服务是由一个或者一组构件实现的,而一 个或者一组构件又可以被发布为不同的服务,服务是构件运行时对外提供功能的 表象,用户使用服务完成特定任务,而构件是实现服务的载体。总之,服务在使 用方式、构件管理方式以及集成组装方式上有别于传统构件,但是由于服务本身 具有相对独立的功能和由契约制定的接口,并且可以被明确辨识、被集成组装到 新的应用中,因此仍然可将服务看作为一类新型构件。服务概念的引入,扩展了 构件的内涵和外延,有力地支持了基于构件的软件开发。 软件构件技术是支持软件复用的核心技术,是近几年来迅速发展并受到高度 重视的一个学科分支。其主要研究内容包括: ( 1 ) 构件获取。利用领域工程等技术,进行有目的构件生产和从已有系统中 挖掘提取构件。 ( 2 ) 构件模型。研究构件的本质特征及构件间的关系。构件模型定义了构件 的本质属性、规定了构件接口的结构以及构件与软件体系结构、构件与构件之间 的交互机制,构件模型通常还提供创建和实现构件的指导原则。 ( 3 ) 构件描述语言。以构件模型为基础,解决构件的精确描述、理解及组装 问题。 ( 4 ) 构件分类与检索。研究构件分类策略、组织模式与检索策略,建立构件 库系统,支持构件的有效管理。 ( 5 ) 构件组装。在构件模型的基础上研究如何通过构件的接口使软件构件相 互链接以构造新应用系统。 ( 6 ) 标准化。包括构件模型的标准化和构件库系统的标准化。 经过软件复用的研究和实践方面的努力,在软件构件技术方面已经取得了一 定的成果。譬如c o m 、e j b 、w e bs e r v i c e 等已经成为成熟的软件构件模型。一些 政府、军方或企业发布了自己的构件库系统,如r e b o o t 系统、c o m p o n e n t s o u r c e 第2 章基于构件技术的软件工程 等;i b m 、m i c r o s o f t 等公司对外提供了服务注册中心_ i i d d 工站点。在某些领 域,如科学计算,已有商用的构件存在。同时,存在大量独立于应用领域的计算 机待定的软件构件,如程序设计语言的类库、函数库等。但对大多数特定领域来 说,可复用构件仍十分短缺,从而形成了一个巨大的应用软件构件市场【1 4 1 。 2 2 2 基于架构的软件开发 软件架构也称软件体系结构( s o f t w a r ea r c h i t e c t u r e 简称s a ) 是一种由特定 领域的软件体系结构所决定的软件构造框架。广义地讲,它也是一种可重用构件, 但是它与普通构件的区别是:它不是解决软件的某个局部问题,而是描述系统的 整体设计格局,包括该软件由哪些主要部分构成以及各部分之间关系,但是不涉 及每个部件的细节。 软件开发可被看作一个组装过程,在软件架构的指导下寻找可复用构件或开 发新构件并进行系统组装,而不仅仅是按常规的开发过程,根据当前系统的需要 临时去寻找构件。它为c b d 提供了构件组装的基础和上下文。软件开发实际上是 从问题域向最终解决方案逐步映射和转换的过程,而特定领域软件架构 ( d o m a i n - s 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 r c h i t e c t u r a ls t y l e ) 分别从问题域和软件解决方案提供了若干经过考验的候 选转换路径。特定领域软件架构是一个领域中的所有应用系统所共有的体系结 构,是针对领域模型中的领域需求给出的解决方案,也是识别、开发和组织特定 领域可复用构件的基础。架构风格则根据系统结构的组织模式确定了一组可以用 于风格实例中的构件和连接件,它们的拓扑结构、组装规则以及局部和全局约束, 从而定义了一个面向系统结构的架构家族。 一个典型的软件架构是由系统中的构件、连接件和约束构成的配置格局。基 于软件架构的软件开发侧重于“拆卸”与“安装”各种可独立开发的构件,其中 一个主要的特点是可互换性,即把外部独立开发的构件嵌入本系统的能力。这些 可以根据层次化、模块化和信息隐藏等技术来实现。研究软件架构有利于发现不 同系统的高层共性,保证灵活和正确的系统设计,对系统的整体结构和全局属性 进行规约、分析、验证和管理。将架构作为系统构造和演化的基础,可以实现大 规模、系统化的软件复用。 一般来说,在对系统构件约束最小的地方复用性最大,而作为系统的早期设 计的软件架构对构件的约束最小。因此,基于软件架构的开发可很好地实现软件 复用。软件架构是一门新学科,对其研究正在发展软件架构为软件系统提供了一 个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作 用、指导元素集成的模式以及这些模式的约束组成,不仅指定了系统的组织结构 北京工业大学工学硕士学位论文 和拓扑结构,并提供了一些设计决策的基本原理。 当前对s a 的描述存在两种不同的思路:侧重研究的思路和侧重实践的思路。 前者使用专门的体系结构形式化语言进行描述,代表有各种体系结构描述语言, 如a c m e 语言、r a p i d e 语言等;后者使用面向通用目的的图形化建模符号进行描 述,代表有统一建模语言等1 5 1 。 2 2 3 领域工程 系统化复用的成功依赖于很多因素,其中领域工程是系统化的软件复用成功 的关键。e r p 领域是一组相关的e r p 应用系统,相关方面是这些e r p 应用系统的 公共设计、公共服务、公共技术和公共信息架构。e r p 领域工程对e r p 领域中的 e r p 应用系统进行分析,识别这些应用的共同特征和可变特征,对这些特征进行 选择和抽象,形成e r p 领域模型,依据e r p 领域模型构建e r p 领域中各e r p 应用 系统所共有的架构,即e r p 领域的软件架构( e r pd o m a i n s o f t w a r ea r c h i t e c t u r e , e r p d s a ) ,并以此为基础识别、开发和组织可复用e r p 构件。实施e r p 领域工程 主要包括三个阶段: ( 1 ) e r p 领域分析:主要目标是获得e r p 领域模型( e r pd o m a i nm o d e l ) 。e r p 领域模型描述e r p 领域中所有e r p 应用系统的共同需求,称为“e r p 领域需求”。 e r p 领域分析是系统化、形式化、有效复用的关键。将知识转换成为一般性e r p 规格说明、设计和架构就是通过领域分析实现的。在这个阶段中首先要进行一些 准备,包括确定e r p 领域边界从而明确分析对象;识别信息源,可能的信息源包 括现存e r p 应用系统、技术文献、问题域和e r p 应用系统开发的专家、e r p 领域 演化的历史记录等;分析e r p 领域中应用系统的需求,确定哪些需求是被e r p 领域中的应用系统广泛共享的,哪些是可变的,从而建立e r p 领域模型。 ( 2 ) e r p 领域设计:目标是获得e r p 领域架构e r p d s a 。e r p d s a 描述在e r p 领 域模型中需求的解决方案,但它不是单个e r p 应用系统的表示,而是适应e r p 领域中多个应用系统需求的高层次设计。建立e r p 领域模型之后,就可以派生出 满足被建模e r p 领域需求的e r p d s a 。由于e r p 领域模型中的领域需求具有一定 的变化性,e r p d s a 也要相应地具有变化性。由于复用基础设施是依据e r p 领域 模型和e r p d s a 来组织的,因此通过获得e r p d s a 也就同时形成了复用基础设施的 规约。 ( 3 ) e r p 领域实现:主要目标是依据e r p 领域模型和e r p d s a 来开发和组织可 复用信息。这些可复用信息可能从现有e r p 应用系统中提取得到,也可能需要新 的开发。它们依据e r p 领域模型和e r p d s a 进行组织,从而支持系统化的软件复 用。这个阶段也可以看作复用基础设施的实现过程。主要行为是定义一种机制以 第2 审基于构件技术的软件工程 使需求可以映射到由可复用构件创建的e r p 应用系统。根据所采用的复用策略和 e r p 领域的成熟和稳定程度,这种机制可能是一组与e r p 领域模型和e r p d s a 相 联系的可复用构件,也可能是e r p 应用系统的生成器。 e r p 领域工程将关于e r p 领域的知识转化为该领域中系统共同的规约、设计 和架构,使得可以被重用的信息范围,扩大到了抽象级别较高的分析和设计阶段。 e r p 领域工程是一个反复的、逐渐精化的过程。e r p 系统软件复用的技术问题可 以分为两大类:e r p 领域工程,即针对e r p 软件复用进行开发;e r p 应用工程,即 采用复用进行e r p 应用系统开发。对e r p 软件复用技术的研究集中在规格说明、 验证、设计、实现、确认、分类、检索和可复用软件资产的合成共八个步骤。e r p 领域工程完成前六个步骤,e r p 应用工程完成后两个步骤。对复用运作最重要的 组织决策之一,是组织结构以e r p 领域为中心还是以e r p 应用系统为中心。在以 e r p 领域为中心时,e r p 领域工程团队决定可复用e r p 软件构件的开发,由e r p 应用工程团队调整其设计原则或活动以充分利用已有的可复用e r p 软件构件。 e r p 领域工程团队的任务包括:e r p 领域分析、e r p 领域工程、e r p 构件获取、e r p 构件分类和e r p 构件维护。图2 2 给出了一种e r p 领域工程与e r p 应用工程协作 关系的过程模型,其中e r p 领域工程活动与e r p 应用工程围绕公共可交付e r p 应用系统产品交汇在一起,各种应用工程活动使用可复用构件库,并向可复用构 件库提供构件【1 6 j 。 2 3 面向特征的领域分析方法 面向特征的领域分析方法( 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 ) 首 次将特征的概念引入到领域分析的研究中,并把特征定义为应用系统中用户可见 的、显著的或具有特色的方面、品质和特点等。同时,在f o d a 中,特征也是捕 获特定领域中各应用系统之间的共性和变化性的基本表示。特征模型则作为领域 分析模型所包含的一个子模型,表示了特定领域具有的一组可复用特征以及这些 特征之间的关系。 f o d a 方法主要包括三个阶段:上下文分析。领域建模和体系结构建模。上 下文分析阶段的主要目的是确定被分析领域的范围,并建立相应的上下文模型。 上下文模型一般是由一个或多个结构图和数据流图组成。上下文分析之后的下一 个阶段是领域建模和功能模型。特征模型的主要作用是捕获领域内的应用系统所 具有的一组共性和变化性特征及其之间的关系。同时,特征模型还为实体关系模 型和功能模型的参数化提供了依据。实体关系模型主要是通过对领域知识和现有 应用系统的分析,挖掘领域中所存在的各种实体以及这些实体之间的关系。同时, 实体关系模型还定义了功能分析阶段和体系结构建模阶段所需要的各种对象或 北京工业大学工学硕士学位论文 数据。功能模型的主要作用是识别并建模领域中的应用系统具有的共性和变化性 功能,从而为领域中新应用系统的开发提供一个抽象的功能模型。通过抽象功能 模型的实例化或定制,可以得到适合具体应用系统需求的功能模型。领域模型之 后的下一个阶段是体系结构建模阶段。f o d a 方法中的体系结构模型是对领域中 应用系统的一个高层设计,主要关注领域中应用系统所具有的共性模块和进程, 并在这些模块和进程与领域模型中的特征、功能、数据和对象等元素之间建立关 联关系【1 7 1 。 2 3 1 上下文分析 上下文分析阶段的主要目的是明确当前领域的范围。这个阶段将对所有与当 前领域存在关系的外部元素进行分析,并且评估这种关系可能存在的变化性。已 经存在的领域术语、领域应用和工程约束等信息将构成该阶段的主要输入。 上下文分析阶段的产物是上下文模型。f o d a 中的上下文模型中由一个或多 个结构图和数据流图组成。结构图主要描述了当前领域与其周边领域之间的层次 位置关系。其周边领域包括较当前领域更高层的领域、更底层的领域以及同层领 域。所谓更高层的领域是指涵盖了当前领域的领域,即当前领域仅是更高层领域 所包含的一个子领域。所谓更底层的领域是指当前领域范围之内已经被确切定义 了的领域。因此,更底层的领域即当前领域的子领域。所谓同层领域是指和当前 领域有交互,但又互不包含的领域。任何与当前领域发生直接交互的领域都必须 在结构图中描述出来。需要的时候,可以用多个结构图来进行描述。 数据流图描述了当前领域和所有其他领域或者实体进行交互所产生的数据 流。用于领域分析的数据流图与传统的数据流图最大的区别在于:前者的数据流 图中必须显示描述出跨越领域边界的数据流可能具有的变化性。如果由于应用系 统中的不同特征而导致该变化性的产生,则必须在特征模型中捕获这些特征及其 所导致的变化性。因此,上下文建模和特征建模这两个阶段可能是并行或迭代进 行的。此外,上下文模型中还必须包括以下信息:当前领域的主要功能及其复用 价值、领域分析的目标以及相关的一些标准等【1 8 j 。 2 3 2 领域建模 在明确了被分析领域的范围之后,领域建模阶段开始着重于对领域中各应用 系统样本之间的共性以及变化性进行分析,并且通过建立多种模型来对共性和变 化性的不同的方面进行建模。该阶段由以下三个主要活动组成:特征分析、实体 关系建模和功能分析。 特征分析

温馨提示

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

评论

0/150

提交评论