软件复用的CRM系统的柔性化设计研究

    |     2015年7月13日   |   会议会展   |     0 条评论   |    340

|悠虎|2010-06-02

1 引 言

客户关系管理(Customer Relationship Management,CRM)是企业为提高核心竞争力,达到竞争致胜、快速成长的目的,树立以客户为中心的发展战略,并在此基础上开展的包括判断、选择、争取、发展和保持客户所需实施的全部商业过程。客户关系管理在解答企业如何达成全面的自动化、电子化运营,以及如何实现"以客户为中心"的经营模式两大问题上为现代企业提供了解决的方案和目标。客户关系管理,是企业以客户关系为重点,通过开展系统化的客户研究,通过优化企业组织体系和业务流程,提高客户满意度和忠诚度,提高企业效率和利润水平的工作实践。客户关系管理,也是企业不断改进与客户关系相关的全部业务流程,最终实现电子化、自动化运营目标的过程中,所创造并使用的先进的信息技术、软硬件和优化的管理方法、解决方案的总和。

目前,CRM系统开发的主要方法是生命周期法、原型法和面向对象法等。无论是生命周期法还是原型法或者面对对象开发方法,都不能填补用户对软件需求与软件生产能力之间的沟鸿,主要的原因在于:(1)现行的开发方法是建立在传统的企业职能部门基础上,基于一种相对不变的业务流程。在开发过程中或者是系统运行一段时间之后,一旦系统的需求发生变化或者系统功能要求升级,通常会导致数据模式和各种界面信息等发生改变,这些改变又通常会导致大量的修改源程序,这给CRM系统的开发带来了很大的不确定性。(2)现行的软件开发往往只是针对特定的项目和需求,很少甚至根本不考虑到同一领域(问题域)内需求的相似性,一个系统开发的经验或者教训很少被应用到新系统开发中,新系统的开发要重新从零开始,造成大量的重复劳动和资源的浪费。

鉴于此,本文提出了一种基于软件复用的CRM系统的柔性化设计方法。本研究具有较高的现实性意义:(1)适应企业管理多态性的变化,更好的满足企业的应用需求。客户需求与市场变化的不确定性,需要企业管理流程和业务流程处于不断的调整和变化之中,它导致了企业管理的多态性。CRM系统要满足企业管理的需要,就必须充分考虑到这种情况,在系统构架时就要求其必须具有柔性和复用性;(2)解决开发者的问题:开发效率、开发成本、延长CRM系统的生命周期。随着面向对象技术、模式技术、重构以及新的软件开发工程学的成熟与广泛应用,组件/构件技术的出现使得软件复用技术达到了一个新的高度。这些技术可以有效地提高开发效率、降低开发成本,提高软件系统的可靠性、可维护性和健壮性。

2 软件复用技术

软件复用是将已有的软件及其有效成分用于构造新的软件或系统。它不仅是对软件程序的复用,还包括对软件生产过程中其它劳动成果的复用,如项目计划书、可行性报告、需求分析、概要设计、详细设计、编码(源程序)、测试用例、文档与使用手册等等。实现软件复用的相关技术主要包括:软件构件技术(Software Component Technology)、领域工程(Domain Engineering)、软件体系结构(Software Architecture)、面向对象技术(Object-Oriented Technology)、软件再工程(Software Reengineering)、开放系统(Open System)、软件过程(Software Process),CASE技术以及各种非技术因素,它们结合在一起,共同影响软件复用的实现。软件复用可分为对产品的复用和对过程的复用。从软件工程的角度看,软件复用发生在构造新软件系统的过程中,如在一个程序的构造期间,对已存在源代码的使用就是软件复用。而最为系统、最为工程化的软件复用活动是基于复用库的软件复用。软件复用可以看作是重新应用已有软件开发过程的思想,这意味着开发过程的所有阶段所包含的知识都是可复用的。

软件复用按抽象程度的高低,可以划分为如下的复用级别:(1)代码的复用,包括目标代码和源代码的复用。当前大部分编程语言的运行支持系统都提供了连接(Link)、绑定(Binding)等功能来支持这种复用;(2)设计的复用,设计结果比源程序的抽象级别更高,因此它的复用受到实现环境的影响较少,从而使可复用构件被复用的机会更多,并且所需的修改更少;(3)分析的复用,可复用的分析成分是针对问题域的某些事物(问题)的抽象程度更高的解法。

从对复用产品的了解程度和复用方式看,可以将复用分为:(1)黑盒复用,黑盒复用指对已有产品或构件不需作任何修改,直接进行复用,这是理想的复用方式。它主要基于二进制代码的复用,包括可执行程序的复用和基于库(包括动态链接库和静态库)的复用。(2)白盒复用,白盒复用指根据用户需求对已有产品进行适应性修改后才可使用。白盒复用一般为源代码级的复用,以及相应的测试用例、文档等的复用。另外按复用方法分,软件复用可分为组合式复用和生成式复用。按软件复用的应用领域,软件复用可以分为横向复用和纵向复用。

软件复用技术的优点可总结如下:(1)提高软件生产率,减少开发时间和费用。生产率的提高不仅体现在代码开发阶段,在分析、设计及测试阶段同样可以利用复用来节省开销。用可复用的构件构造系统还可以提高系统的性能和可靠性,因为可复用构件经过了高度优化,并且在实践中经受过检验;(2)提高软件质量,开发出来的软件可靠性高;(3)降低开发风险;(4)简化软件开发流程,使得软件开发易于管理;(5)降低维护的难度、工作量和费用,且有可能延长运行期以提高软件系统的效益。由于使用经过检验的构件,减少了可能的错误,同时软件中需要维护的部分也减少;(6)共享有关关键系统的知识,便于学习系统结构和建立好的系统,促进软件开发过程的标准化,易于提供文档资料等。

3 CRM系统的柔性化设计

柔性应用软件系统(Flexible Software System)是指在一定范围内能够满足和适应不断变化的需求的应用软件系统。一般来讲,CRM软件系统的柔性主要体现在基于开发者的柔性,当开发一个新的应用系统时,不必从头开始设计,进行大量的代码编写,而是充分利用已有的可复用资源,如搭积木一般,重新组装或者稍加修改可用资源就可组成新的系统,这样可以节省大量重复的人力、物力的投资。基于开发者的柔性包括两层含意:(1)开发某个CRM系统时充分利用先进的软件开发方法,使得系统能够满足不断变化的需求,并且尽可能的使得系统由可复用的部件组成;(2)当开发行业内一个新的应用系统时,不必从头开始设计,进行大量的代码编写,而是充分利用已有的可复用资源,如搭积木一般,重新组装或者稍加修改可用资源就可组成新的系统,这样可以节省大量重复的人力、物力的投资。下列的各种技术、方法和理念可以尽可能地实现和提高开发者的柔性。

多层次极限编程(eXtreme Program,XP).极限编程一种由Smalltalk社团大师Kent Beck提出的增量式轻量级的软件开发方法。XP是以开发符合客户需要的软件为目标而产生的一种方法论,XP使开发者能够更有效的响应客户的需求变化,哪怕在软件生命周期的后期。同时,XP也很强调团队合作。团队包括:项目经理、客户和开发者。他们团结在一起来保证高质量的软件。XP强调四种价值观:交流、简易、反馈和勇气。XP程序员之间紧密的相互交流。XP程序员也和客户紧密的交流。他们总是保持设计简单明了。项目一开始,XP就强调通过对软件的不断测试来获得反馈,程序员尽可能早的把软件交给客户,并实现客户对软件需求提出的变化,多层次XP对与需求变化的适应性主要得益于:(1)多层次XP不是采用瀑布式的软件工程方法,而采用增量式的原型法。将一个软件开发项目分为多个迭代周期,每个周期实现部分软件功能。在每个周期都进行提出需求、设计软件架构、编码、测试、发布得软件开发的全过程。每个周期都进行充分的测试和集成。(2)多层次XP强调简单设计。简单的设计总是花较少的时间完成复杂的任务,总是做有可能完成的最简单的事情。(3)实践迭代。迭代主要依靠的是重构。重构就是在不改变代码行为的前提下,对其进行一系列小的改造,旨在改进系统结构的实践活动。

在多层次XP编程中使用模式。模式有以下几个基本要素:(1)模式的名称(pattem name),用一两个词来描述模式的问题、解决方案和效果;(2)问题(problem)描述了应该如何使用模式,它解释了设计问题和问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等;(3)解决方案(solution)描述了设计的组成部分,它们之间的相互关系及各自的职责和协作方式。(4)效果(eonsequenees)描述了模式应用的效果及使用模式应权衡的问题。模式是在同一时间里发生在世界上的一件事物和如何创建这个事物以及我们何时必须创建它的规则。它既是一个过程,也是一个事物;既是一个活生生的事物描述,又是产生那个事物的过程描述。模式就是解决某一类问题的方法论,是人们解决一类问题的经验积累,在开发大型、复杂的软件系统中能极大的提高软件生产率,因此在解决行业背景CRM开发问题中应能起到重要的作用。事实上,XP内含很多设计理念,但是它与现有的软件流程有着不同的运作方式。XP藉由多种实务技巧赋予演进式设计崭新的风貌,让演进变成一种实用的设计方法。XP是开发的一种流程,但模式可是设计知识的骨干,不管是哪种流程这些知识都是很有用的。不同的流程使用模式的方式也就不同,XP强调等到需要时才使用模式以及透过简单的实践逐步导入模式。所以模式仍然是一种必须获得的关键知识。XP和模式在软件开发中的优点使得我们相信:在XP场景内模式会工作得更好;并且当XP包含模式时,XP也会工作得更好。

通用模块的开发–行业CRM的复用。虽然各问题域内的CRM系统千差万别,即使在同一行业内部,由于各个企业管理模型的不一样,CRM系统会有很大的差异。但从CRM系统的核心功能来看,系统的组成可以分成三个部分:(1)对信息进行管理,包括从系统外部采集数据并保存到系统数据库中,对数据库数据进行删除、修改等数据维护操作;(2)对数据库数据进行加工处理向外部提供数据,比如数据查询、分类汇总统计、数据输出等;(3)系统的维护。因此对于给定领域可以开发出通用的数据采集、数据处理、查询系统、统计报表和报表打印等的标准行业模块。这样对一具体应用的CRM系统,可自己有标准模块或通过适当的修改组装而成。在数据库设计的基础上,模块化处理是CRM软件开发的行之有效的方法和手段,对于通用型CRM软件应从应用中提炼和归纳出更加标准、更加规范的功能模块。一个通用型CRM软件,是由若干功能模块和若干控件组合而成。设计思路是:开发人员设计出一套能满足实际工作需要的通用型功能模块和控件。其中大部分的功能模块和控件都配有参数文件。这些参数文件都是独立于程序体的、具有数据结构的表文件,对于不同的用户需求。配以不同的参数文件,而通用型功能模块和控件不需改动。

4 柔性化CRM的简单实例

本文设计的柔性化CRM系统的逻辑结构如图1所示。这是一种典型的基于B/S模式的三层结构体系:浏览器用作用户界面,客户可以通过浏览器端浏览xx公司的商品信息,与XX公司进行电子商务活动,享受XX公司提供的各种客户服务等;XX公司的相关工作人员可以通过浏览器浏览公司的相关信息,同时可以根据预先设定的不同权限向系统中录入各种数据。WEB服务器用于客户关系管理系统的内部逻辑处理和数据库的连接(不单独设置数据库服务器,而将它结合到WEB服务器中,并共用一台机器).

CRM应用系统主要由市场管理(Marketing),销售管理(Sales)、服务管理(Service)、呼叫中心(Call Center)、电子商务(Business)五部分组成。由于采用基于软件复用的柔性设计技术,所以可以很容易的将在市场管理、销售管理、服务管理以及呼叫中心模块的内容集成到电子商务模块中,同时呼叫中心的大部分功能也可以并且也应该使用销售管理、服务管理模块中开发的组件。因此在开发过程中,要充分利用基于软件复用的柔性设计技术的优点,组件的高度可复用性,减少开发的成本,加快开发的进度,并同时可以控制开发的质量。在开发CRM应用系统的数据结构时一定要以客户信息为核心,一方面是为企业提供一个良好的易于操作的用户界面,另一方面是提高开发的可控性,减少开发成本与风险。以客户信息为核心,所有的模块的内容都是围绕客户,这样也使得应用系统的可拓展性大为提高,维护性加强。对于开发人员,尤其是系统分析员,所有的功能内容对于他来说都是一种"构件",各个模块功能之间的耦合性大为降低,很显然会使整个开发过程更加易于控制。

5 结 论

鉴于目前CRM系统开发中存在的可复用性差的问题,本文提出了一种基于软件复用的CRM系统的柔性化设计方法。本研究具有较高的现实性意义:适应企业管理多态性的变化,更好的满足企业的应用需求;本文技术可有效地提高开发效率、降低开发成本,提高软件系统的可靠性、可维护性和健壮性。
 

责编:maqianshuang

转载请注明来源:软件复用的CRM系统的柔性化设计研究

相关文章

回复 取消