首页 正交软件体系结构

正交软件体系结构

举报
开通vip

正交软件体系结构 —117— 基于正交软件体系结构的 CRM系统 汪保杰,王如龙 (湖南大学软件学院,长沙 410082) 摘 要:为解决软件体系结构在应用软件领域难以实施的问题,避免软件开发的盲目性,提高软件质量,通过对正交软件体系结构理论的 研究,给出其在客户关系管理系统中的运用。事实证明,正交软件体系结构具有结构清晰、易于理解和修改、重用力度大等优点。 关键词:软件体系结构;正交软件体系结构...

正交软件体系结构
—117— 基于正交软件体系结构的 CRM系统 汪保杰,王如龙 (湖南大学软件学院,长沙 410082) 摘 要:为解决软件体系结构在应用软件领域难以实施的问题,避免软件开发的盲目性,提高软件质量,通过对正交软件体系结构理论的 研究,给出其在客户关系管理系统中的运用。事实证明,正交软件体系结构具有结构清晰、易于理解和修改、重用力度大等优点。 关键词:软件体系结构;正交软件体系结构;体系结构风格;线索 Customer Relationship Management System Based on Orthogonal Software Architecture WANG Bao-jie, WANG Ru-long (Software School, Hunan University, Changsha 410082) 【Abstract】In order to solve the problem that the software architecture in the area of application is difficult to implement, avoid the blindness of software development and improve software quality, through the theoretical study of the orthogonal software architecture, this paper gives its usage in customer relationship management system. The facts are proved that the orthogonal software architecture has the advantages with clear architecture, easy to understand and modify, great efforts to reuse and so on. 【Key words】software architecture; orthogonal software architecture; architecture style; clue 计 算 机 工 程 Computer Engineering 第 35卷 第 24期 Vol.35 No.24 2009年 12月 December 2009 ·软件技术与数据库· 文章编号:1000—3428(2009)24—0117—04 文献标识码:A 中图分类号:TP311.5 1 概述 随着软件规模和复杂度不断地扩大和增加,软件开发的 成败在很大程度上取决于软件体系结构的设计。软件体系结 构是对系统构件及其交互关系的高层抽象描述,超越了算法 和数据结构这些常规的设计概念[1]。 面向对象、面向组件、面向服务已是当今主流的软件开 发思想,同时以演化和增量为基础的迭代开发模式也是主流 的开发过程。尽管如此,如果软件体系结构设计不当,则可 能引起系统大面积修改,甚至整个体系结构重新设计。鉴于 软件体系结构的重要性,文献[2]将软件体系结构视为软件开 发中第 1 类重要的设计对象,大量实践也证明了:一个成功 的软件系统往往都有一个好的软件体系结构。 软件体系结构是需求分析和软件设计之间的桥梁,实现 需求到设计的平稳过渡,同时又贯穿于整个软件开发过程。 正交软件体系结构重点研究如何最小化修改工作量以及如何 使系统大粒度的重用等,从而使得应用系统的开发和维护从 根本上得到简化。 2 正交软件体系结构 2.1 正交性概念 正交(Orthogonal)性是几何中的术语,如果两条直线相交 成直角,则它们就是正交的,比如图 1 中的坐标轴。用向量 术语说,这 2 条互不依赖的直线,沿着某一条直线移动,该 直线投影到另一条直线上的位置不变,那他们是正交的。在 计算机术语中,正交性用于表示某种不相依赖性或解耦性。 如果 2 个或者多个事物中的任何一个发生变化,不会影响到 其他事物,那么这些事物就是相互正交的。在分层结构的系 统中,数据操作层与用户界面表示层是正交的,改变界面而 不影响数据操作,更改数据操作方式而不用改动界面。 Y X 沿Y轴方向平行移动 X坐标值不变 O 图 1 正交坐标 2.2 正交软件体系结构概念 正交软件体系结构是一种以垂直线索为基础的层次化结 构,它由组织层(layer)和线索(thread)构成,组织层是由具有 相同抽象级别的构件组成的,线索是相对子系统的特例,它 是由一组分布在不同层并有调用关系的构件组成的。每个线 索完成整个系统中相对独立的一部分功能,线索与线索之间 是无关的,同一层的构件不存在调用关系,这样的结构就是 完全正交的,但实际中很难实现,即一般是允许小部分非正 交结构的存在。正交软件体系结构其实就是将软件功能正交 分解,按功能的正交相关性,垂直分割为若干个线索,线索 又分为几个层次。其主要特征可归纳如下: 基金项目:国家科技支撑 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 基金资助项目(2006BAF01A13) 作者简介:汪保杰(1981-),男,硕士研究生,主研方向:软件体系 结构;王如龙,教授 收稿日期:2009-08-13 E-mail:wbjeasygo@163.com —118— (1)由完成不同功能的 n(n>1)个线索(子系统)组成。 (2)系统具有 m(m>1)个不同抽象级别的层。 (3)线索之间是相互独立的(正交的)。 (4)系统有一个公共顶层(驱动层)和公共底层(公共构件 和数据层)。 对于大型的且比较复杂的软件系统,线索还可以划分为 更低一级的线索(二、三级子线索等),形成多级正交结构[3], 如图 2所示。 图 2 多级正交软件体系结构框架 图 2 为二级线索、四层结构的正交软件体系结构图。在 图中,ABDK为一条线索,ACEK也是一条线索。因为 B, C 处于同一层次中,所以不允许互相调用;D, E处于同一层次 中,也不允许互相调用。一般来讲,第 1 层为驱动层,触发 线索执行,第 4层为公共构件和数据层,供整个系统调用。 层级理论是构建复杂软件体系的基本原则[4]。正交软件 体系架构以其水平层次分割、垂直线索划分,借助于正交性 描述,使问题得以进一步简化,易于被系统分析设计人员把 握,同时它能够帮助软件系统的各有关权益方形成统一认识。 由于线索的正交特性,变更仅会影响到某一条或多条线索, 而不会牵连到其他无关线索。这样就把变更局部化,缩小了 变更范围,减小了修改的工作量。 2.3 正交软件体系结构设计过程 正交软件体系结构设计过程分为 2 个阶段:原型阶段和 演化阶段。开发原型的主要目的是为了确认需求,设计体系 结构基线。软件开发小组需要建立一系列原型,与用户一起 讨论和评审。原型有助于需求的清晰化,同时也有助于进一 步分析系统的可行性,更清楚地认识系统,完善对系统的 理解。 原型开发的第 1 个迭代周期的目标并不明确具体。为了 提高开发效率,缩短开发周期,可将开发人员分为 2 组,一 组负责界面原型;一组负责业务模型。界面原型是界面层次 的水平模型,没有真正地实现系统功能。业务模型可用 UML(统一建模语言)图表述,最终生成系统的 SRS(软件需求 说明书)。原型开发的第 2个迭代周期的任务是设计和建立正 交软件体系结构。本次迭代大致分为 6个阶段[5]: (1)标识构件:为系统生成逻辑结构,比如生成类图、包、 构件等。 (2)提出软件体系结构模型:选择合适的软件体系结构风 格是必要的,在此基础上,开发人员通过软件体系结构模型, 熟悉了软件体系结构属性等方面的要求,虽然这个模型可能 存在错误,但它为整个系统的演化确立了目标。 (3)把已标识的构件映射到软件体系结构中:把第(1)阶段 标识的构件映射到体系结构中。 (4)分析构件,建立连接件:为了把已标识的构件集成到 体系结构中,必须分析所有构件的关系,可结合 UML 图表 述,比如活动图、时序图等。 (5)生成软件体系结构。关键构件决定软件体系结构,主 要是在第(4)阶段的基础上做精化。 (6)正交化。通过以上几个阶段产生的软件体系结构不一 定满足正交性(同一层次的构件之间可能存在相互调用)。通 过从左至右、自顶向下地增加、删除、拆分合并构件,把不 满足正交性的线索和构件正交化。 2.4 正交化简易算法 定义 1 线索由构件和连接件组成,记作 Th。2 条线索 Th1,Th2正交表示为 Th1⊥Th2,共享构件 S12表示 Th1和 Th2 的公共构件集,即 S12=Th1∩Th2。 定义 2 ∃C1∈Th1-S12, ∃C2 ∈Th2-S12,如果 C1和 C2之间 存在连接件,就把这 2 个构件改造为 C11,C22,使 C11和 C22 无关,这个过程就是正交化过程。 下面是正交化过程的简易正交算法描述: 输入 Th1, Th2 输出 Th1, Th2, S12,且 Th1⊥Th2 正交函数过程: 提炼线索的公共构件到 S12中; do{ ∃ C1 Th∈ 1-S12 ,∃ C2 Th∈ 2-S12; If( C1和 C2有连接件){ if (C1调用了 C2){ 按层次把 C2合并到 C1所在的构件中; }else if(C1使用了 C2产生的数据){ 把 C2产生的数据存放于公共低层; } } } While(Th1, Th2有连接件) 返回 2 个正交线索 Th1, Th2和线索公共构件集 S12; 正交简易算法可简单地使 2 个非正交的线索正交化。然 而,软件体系结构的正交化过程是需要工作量的,而且也要 在工作量和系统冗余及性能上做一定的权衡。 2.5 正交软件体系结构的演化控制 正交软件体系结构的重用粒度大。在演化控制和新系统 开发过程中,逐渐建立线索库和构件库,如果有新需求,可 以重用库中的线索和构件,以提高开发效率。 因此,对新需求可以通过在原软件体系结构基础之上新 增、修改、删除线索来完成。对线索中的构件进行修改和添 加时按照从左到右、自顶向下的原则,先修改高级构件,然 后根据需要修改被其调用的构件。基于正交软件体系结构开 发的软件,必须按照正交的演化步骤[5]修改。其实演化过程 也是正交软件体系结构的验证和完善过程。 (1)变动需求归类。将变动对应到相应的线索和构件上, 对于新需求需要建立的新的线索和构件,都先作好标记。 (2)制定演进计划。在对原有模型改动前,需要制定一个 周密的演进计划,作为后续开发工作的指南。 —119— (3)增加、删除和修改构件。在第(1)步的基础上,开发人 员依据演进计划对线索和构件进行增删改。 (4)更新构件关系。参照正交化简易算法对构件关系做必 要调整,使线索和构件满足正交性。 (5)产生演化后的新软件体系结构。在原有系统上的修改 必须映射到原有体系结构上,作为后续开发的基础。 (6)对以上修改作阶段性技术评审。 (7)迭代演进。迭代地进行第(3)步~第(6)步,直到新体系 结构足够详细。 3 基于正交软件体系结构的 CRM系统 3.1 系统功能结构简介 本文所设计开发的 CRM 产品是采用一体化设计思想[6] 的层次式结构。其部分功能结构如图 3 所示,由 4 个主要模 块组成,每个模块又分为若干子模块,如决策支持模块通过 OLAP、数据挖掘技术为企业的决策人员、市场人员、销售人 员等更好地进行决策提供准确的信息;综合管理模块对企业 内部的各种信息进行有效的管理;电子商务模块为网上交易 平台,加快企业客户反应速度,降低成本支出;系统管理模 块可对系统进行有效的管理,比如系统维护、系统监控、风 格管理等。 图 3 CRM系统主要功能结构 3.2 基于线索的层次式概要设计 在需求调研过程中发现不同客户公司的关系管理流程差 异较大,致使软件在设计阶段具有很多不确定需求。考虑到 将来的需求变化,以使体系结构清晰,易修改,在软件设计 之初引入了正交软件体系结构的设计思想。在设计开发 第 1个版本时,将系统划分为 4个主线索,20个二级子线索, 34个三级子线索,15个公共构件。 主线索分别是决策支持线索、综合管理线索(见图 4)、电 子商务线索和系统管理线索。每个主线索又分为若干个二级 线索,比如综合管理线索分为 7 个二级线索,有的二级线索 又细化为多个三级线索,如图 5的文档信息管理的三级线索。 系统采用非完全正交结构,即允许部分线索互相调用,形成 公共构件。由于非完全正交范围不大,因此对整个系统的影 响可以忽略不计。 图 4 综合管理模块主线索 图 5 文档信息管理的三级线索 线索是独立的,即线索之间不互相调用,比如:文件管 理不调用报表管理中的构件,其中的一条完整的线索如图 6 所示,线索分为 5 层(顶层,底层和三级线索构成的 3 层), 这样系统构成五层三级正交结构。系统在逻辑上分为 3 层, 即数据获取层、业务逻辑服务层和页面表示层,采用 JSF 开 发模式[7],遵循 MVC(模型-视图-控制)分层体系结构风格。 通过系统结构的分层和功能的正交分解,使系统的变动可以 分解到不同的层次和线索,使局部的变动不会影响到系统的 整体运行。 客户关系管理系统 综合管理模块 文档信息管理 文件管理 公共构件和数据平台 映射实现 FileView FileService FileVO FileDAO FileTable FilePOJO 图 6 完整的一条线索结构 —120— 3.3 基于线索的任务管理与实现 在软件体系结构设计完成之后,开始正式的开发工作, 按软件生命周期分别进行下一步的概要设计、详细设计、编 码和测试等。基础数据平台和公共构件由核心人员提前开发。 由于采用了正交思想,开发小组成员可并行开发,视开发难 度,每个成员负责一条或数条线索,各条线索之间互相独立, 因此各个成员互不牵制,大大提高了编程效率,缩短了开发 周期。在开发过程中,通过对线索及其负责人表的维护,对 问题追踪和 Bug 管理带来了极大的方便。 3.4 基于线索的系统演进 系统开发完成第 1 个版本后,客户提出大量新需求和改 进需求,比如其中的 2 个:一是时间管理功能;二是报表打 印和导出 Excel 功能。 按照 2.5 节介绍的演化控制过程, 发现新的线索和构件如下: (1)在综合管理模块一级线索下增加时间管理二级线索, 再在时间管理下增加三级线索,如工作日历、记事本、Email 在线管理等。 (2)打印和导出功能属于公共构件,置于公共构件层。比 如在市场竞争分析和文档信息管理等线索中可调用该打印和 导出构件。 以上变更中新增了时间管理线索和打印导出构件,依照 正交化简易算法将新的体系结构正交化。通过 CRM 整改与 移植证明,将基于正交体系结构的 CRM 系统从一个组织移 植到另一个组织,大约只需要从头开发的 10% 的工作量。 4 结束语 软件体系结构的好坏是决定软件系统成败的主要因素, 软件体系结构已经成为国内外软件研究的热点,本文依据正 交思想并结合客户关系管理系统实例,论证了正交软件体系 结构的优越性。事实证明,将软件按层次划分为多级线索, 有利于功能的划分和粒度的控制,使软件结构更加清晰,使 开发工作量分配均匀,能方便地实现结构调整,便于移植, 重用粒度大。 软件体系结构设计是一种平衡的设计,没有完美的体系 结构,体系结构的设计要简单灵活,便于扩充,因此,找出 平衡点是关键,而正交性便是正交软件体系结构的平衡点。 参考文献 [1] 左爱群, 黄水松. 软件体系结构的发展与研究[J]. 计算机工程与 应用, 1999, 35(3): 19-21, 29. [2] Perry D E, Wolf A L. Foundations for the Study of Software Architecture[J]. ACM SIGSOFT Software Engineering Notes, 1992, 17(4): 40-52. [3] 张友生. 软件体系结构[M]. 北京: 清华大学出版社, 2004. [4] 张海波, 王小非, 曹万华, 等. 新型软件体系结构研究[J]. 计算 机与数字工程, 2007, 35(1): 50-54. [5] 李海洋, 李柏林, 郭荣佐. 正交软件体系结构设计和演化方法应 用研究[J]. 计算机应用研究, 2007, 24(1): 78-82. [6] 张承江, 彭加亮, 闫朝升. 客户关系管理系统的研究[J]. 信息技 术, 2007, 31(1): 103-105. [7] 朱庆生, 葛 亮. 新一代 Web 应用 JSF[J]. 计算机科学, 2005, 32(7): 224-227. 编辑 任吉慧 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (上接第 116页) 4 结束语 本体概念获取是本体构建的基础。本文采用基于最大熵 模型的获取方法,可以获得领域内的名词性短语作为领域概 念,而这些概念不是通用概念,它们能更好地反映领域知识。 尽管从实验数据可见,本文的领域概念获取方法的正确率和 召回率仍有待提高,但目前的实验结果对于电梯领域基于专 利摘要的本体构建工作起到了积极的作用,并为后续的本体 构建工作奠定了基础。同时,目前所得的领域概念只是领域 概念的一个部分,接下来的工作是通过提取领域文档中句法 模式来动态地不断更新本体概念,挖掘概念间的层次和非分 类关系,最后构建本体。 参考文献 [1] Yoo Jung An, Geller J, Wu Yita. Automatic Generation of Ontology from the Deep Web[C]//Proc. of the 18th International Conference on Database and Expert Systems Applications. Washington D. C., USA: IEEE Computer Society, 2007: 470-474. [2] 张 新, 党延忠. 基于规则与统计的本体概念自动获取方法研 究[J]. 情报学报, 2007, 26(6): 813-820. [3] Berger A L, Pietra V J D. A Maximum Entropy Approach to Natural Language Processing[J]. Computational Linguistics, 1996, 22(1): 38-73. [4] 李素建, 刘 群, 杨志峰. 基于最大熵模型的组块分析[J]. 计算 机学报, 2003, 26(12): 1722-1727. [5] 李素建, 刘 群, 张志勇, 等. 语言信息处理技术中的最大熵模 型方法[J]. 计算机科学, 2002, 29(7): 108-110. [6] Darroch J N, Ratcliff D. Generalized Iterative Scaling for Log-linear Models[J]. Annals of Mathematical Statistics, 1972, 43(5): 1470-1480. [7] 周雅倩, 郭以昆, 黄萱菁, 等. 基于最大熵方法的中英文基本名 词短语识别[J]. 计算机研究与发展, 2003, 40(3): 440-446. [8] Salton G, Buckley C. Term-weighting Approaches in Automatic Text Retrieval[J]. Information Processing & Management, 1988, 24(5): 513-523. 编辑 顾逸斐
本文档为【正交软件体系结构】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_389261
暂无简介~
格式:pdf
大小:159KB
软件:PDF阅读器
页数:4
分类:互联网
上传时间:2010-07-02
浏览量:57