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)分析的复用,可复用的分析成分是针对问题域的某些事物(问题)的抽象程度更高的解法。