特定领域的COTS解决反感系统,其提供的功能很可能会在特定情况下引起问题,企业资源规划【ERP】系统如那些由SAP和BEA所生产的系统,是大型集成系统,一个通用ERP系统包含大量模块,
这些模块可以以不同的方式来组合为一个客户创建一个系统。配置过程包括选择要包括的模块,配置这些单个模块,定义业务过程和业务规则,定义系统数据库的结构和组织。
ERP系统结构有几个关键特征1支持不同的业务功能的众多模块2定义好的一组业务流程,与每个模块相关联,设计在那个模块中的若干活动。3一个共同的数据库拥有所有相关业务功能的信息。4一个使用于数据库中的所有数据的业务规则。
大多数大公司都使用ERP系统来支持它们的某些或全部功能,ERP是使用最广的软件复用的形式。
(软件复用(SoftWare Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费)
对于特定领域的COTS以及ERP来说,系统需要大量的配置,来适应每一个机构的安装要求,会涉及到1从系统中选择所需要的功能2建立数据模型定义在系统的数据库中机构的数据是如何组织的。
3定义适用于数据的业务规则4定义和外部系统的预期交互5设计由系统生成的输入形式和输出报告6设计新的业务流程,符合系统支持的基本的过程模型7设置参数,它定义了是如何在基础平台上进行部署的。
一旦配置设置完成,一个COTS解决反感系统就可以进行测试了。当配置系统时,而不是使用传统的编程语言来开发时,测试是一个重大问题,因为这些系统是使用一个可信赖的平台来开发的,明显的系统错误和崩溃是相当少的,相反的,这些问题会涉及业务之间的过程和系统配置的相互作用,这些可能只能被最终用户检测出来,因此可能不会在系统测试过程中被发现,此外,不能使用依靠测试框架如JUnit框架的自动化单元测试,这个基本系统是不可能支持任何形式的测试自动化的,可能没有完整的系统规范可用于来派生出系统测试。
COTS集成系统是包括两个或更多COTS产品的应用程序,或者有时候是遗留应用系统,当没有单个的COTS产品满足你的需求时,或是当你想融入一个新的COTS的系统到已经在使用的产品中时,可以使用这个方法,如果这些接口已经定义好了的话,这个COTS的系统到已经在使用的产品中时,可以使用这个方法。
通过COTS产品进行开发,需要做设计选择,比如1哪个COTS产品提供最为恰当的功能2数据如何交换3实际使用产品的哪些特性。
下面举了一个集成的例子来说明。原则上,集成一个大规模的商业现货系统与集成其他组件没什么两样。然而这些产品通常都是一些大型系统并且经常作为一个独立系统出手,因此产生了一些额外问题。有四个关于COTS系统集成的问题1对功能和性能缺乏控制2商业现货系统间的互操作问题3无法控制系统的进化4COTS产品厂商的支持。
在许多情况下,使用COTS产品比不使用这些产品在系统维护和进化方面的成本要有所提高。所有这些困难都是生命周期问题,它们不仅仅影响初始的系统开发。参与系统维护的人员与最初的系统开发人员之间的差距越大,在COTS产品集成时真正出现困难的可能性就越大。
现在大多数新的业务软件系统是通过复用以往已经实现的系统的知识的代码来开发的,复用软件有很多方法,这些包括从对库中类和方法的 复用到对完整应用系统的复用
以上主要关于软件复用在现代软件行业的应用。