当前位置:文档之家› 浅谈软件复用技术及其应用

浅谈软件复用技术及其应用

<B style='color:black;background-color:#ffff66'>浅谈</B>软件复用技术及其应用___________________________________________________________ ____________________ 【摘要】随着企业信息化建设的不断深入,集团公司多个烟厂生产指挥系统建设将相继展开。

在企业中充分运用软件复用技术,不仅可以规范企业的业务流程,进而对企业的业务过程进行优化重组,而且构建可复用的软件系统本身就是企业非常重要的知识库和规则库,可以成为指导企业实施和扩展管理信息系统的模型。

在深入分析企业需求基础上建立可复用的企业业务模型可以在最大程度上提高企业实施ERP的成功率,降低信息化投资的成本,缩短建设周期。

所以大力发展并推广软件复用技术对于促进集团化规模下的多个烟厂信息化建设有重要的现实意义。

【关键词】软件复用模块化生产指挥系统___________________________________________________________ ____________________ 1 软件复用技术概述 1.1 软件复用技术的概念大多数情况下所讨论的软件可复用性指软件本身的可重用性,即软件代码实现的可重用性。

而实际上,软件复用远不止这些,软件开发的全生命周期都有可重用的价值,包括项目的组织、软件需求、设计、文档、实现、测试方法和测试用例都是可以被重复利用或借鉴的有效资源。

软件较强的可复用一直是软件工程所追求的目标之一,软件工程界希望有一天能和其它工业领域一样,利用标准化的软件模块快速构建特定的应用系统。

事实上,这种努力也取得了相当大的进展,但是与人们所期望的目标还是有不少差距,软件模块还远没有机械设备的零部件那样拆卸、维修、更换方便和简单。

1.2软件复用技术对企业信息化建设的意义在企业中软件复用技术的运用,不仅可以规范企业的业务流程,发现业务流程中不合理的环节,进而对企业的业务过程进行优化重纽,而且构建可复用的软件系统本身就是企业非常重要的知识库和规则库,可以成为指导企业实施和扩展管理信息系统的模型。

在深入分析企业需求基础土建立可复用的企业业务模型可以在最大程度上提高企业实施ERP或者其他管理信息系统的成功率。

所以大力发展并推广软件复用对于促进企业管理规范和信息化有重要的现实意义。

2 实现软件复用应考虑的主要问题 2.1程序设计结构方面的考虑: 1)需求的符合性:需求调研阶段注意提炼共性的功能性需求、和个性化的非功能性需求;软件项目最主要的目标是满足客户需求。

在进行构架设计的时候,大家考虑更多的是使用哪个运行平台、编成语言、开发环境、数据库管理系统等问题,对于和客户需求相关的问题考虑不足、不够系统。

一般来说,功能需求决定业务构架、非功能需求决定技术构架,变化案例决定构架的范围。

需求方面的知识告诉我们,功能需求定义了软件能够做些什么。

我们需要根据业务上的需求来设计业务构架,以使得未来的软件能够满足客户的需要。

非功能需求定义了一些性能、效率上的一些约束、规则。

而我们的技术构架要能够满足这些约束和规则。

变化案例是对未来可能发生的变化的一个估计,结合功能需求和非功能需求,我们就可以确定一个需求的范围,进而确定一个构架的范围。

在充分考虑用户共性需求和个性化需求基础土建立的系统架构,使实现软件复用的前提。

2)业务流程的可调整性应当考虑客户业务流程可能出现的变化,所以在系统构架设计时要尽量排除业务流程的制约,即把流程中的各项业务结点工作作为独立的对象,设计成独立的模块或组件,充分考虑他们与其他各种业务对象模块或组件的接口,在流程之间通过业务对象模块的相互调用实现各种业务,这样,在业务流程发生有限的变化时(每个业务模块本身的业务逻辑没有变的情况下),就能够比较方便地修改系统程序模块或组件间的调用关系而实现新的需求。

如果这种调用关系被设计成存储在配置库的数据字典里,则连程序代码都不用修改,只需修改数据字典里的模块或组件调用规则即可。

3)业务信息的可调整性应当考虑客户业务信息可能出现的变化,所以在系统构架设计时必须尽可能减少因为业务信息的调整对于代码模块的影响范围。

2.2源代码的组织结构方面的考虑: 1)可扩充性:糸统方案的升级、扩容、扩充性能;不同客户瑞、应用服务器、数据库管理系统:如果潜在的客户使用的客户瑞可能使用不同的操作系统或浏览器,其可复用性必须考虑客户端程序的可移植性,或尽量不使业务逻辑放在客户端;数据处理的业务逻辑放在数据库管理系统中会有较好的性能,但如果客户群中不能确定使用的是同一种数据库管理系统,则业务逻辑就不能确定数据库管理系统中; 2)可移植性:不同客户端、应用服务器、数据库管理系统;达到可移植性一定要注重标准化和开放性:只有广泛采用遵循国际标准,开发出开放性强的产品,才可以保证各种类型的系统的充分互联,从而使产品更具有市场竞争力,也为未来的系统复用和升级扩展提供了基础。

3 软件复用在两个烟厂生产指挥系统中的初步应用 3.1需求复用 1)烟厂生产指挥系统核心业务的识别与抽取在整个(集团)公司信息化集成系统建设的总体规划指导下,我们经过深入的分析调研,发现在上海卷烟厂和高扬公司的业务应用中都包含了:计调子系统、设备子系统、物料子系统、工质子系统、车间管理系统、机台电脑系统,以及综合信息与系统维护,涵盖了大部分条线的业务流程。

在系统分析时,可以将这些业务工作流程抽象出来,如工作计划的下达,工艺卡片的下达,机台电脑的管理,物料扫描发放等;两个系统的开发有先后,在上海卷烟厂生产指挥系统开发的基础上,再进行高扬生产指挥系统的需求调研时,我们可以有针对性的开展,并节约了流程梳理的时间,直接把精力集中在具体单据格式等细节问题上,提高了需求调研的效率。

2)两个生产指挥系统中非业务性需求分析一般的应用软件产品除了完成业务所需要的功能外,还必须有一些支持模块,以支持系统的正常运行。

在上海卷烟厂和高扬公司两个生产指挥系统中都包括这样一些模块:权限管理模块和系统维护支持模块。

权限管理是各部门、各级人员使用系统各项的基础,这对于每一个的生产应用系统来说都是必不可少的,并且其模式及细分程度应该类似。

系统维护支持模块是为了软件系统的正常运作所提供的必不可少的功能,如系统权限管理、日志管理、数据库备份/恢复功能等都属于此类。

所有的这些都可以作为烟厂生产指挥系统的公共模块加以复用。

3)软件界面风格对于类似的使用对象来说,保持两个生产指挥系统在风格上的一致性是非常重要的。

它不但可以减少软件的维护、培训费用,缩短用户的适应期;而且还可以在软件开发时进行界面风格复用,减少软件开发费用。

因此我们在两个生产指挥系统项目的开发时保证软件在风格上的一致性、操作方式上的一致性是至关重要的。

3.2架构设计复用基于烟厂生产指挥系统在整个企业信息集成系统中承上启下的作用,是生产活动与管理活动信息沟通的桥梁,对实时的要求较高,因此,我们在系统设计时,采用了以统一的系统架构。

对于车间级以上的各个业务系统(如计划调度子系统,设备子系统,工艺质量子系统,物料子系统),采用了C/S 模式;考虑到车间作业系统有以下特点:客户端数目较多,联接时间长;客户端并发操作,实时响应要求高;客户端业务操作性强,界面要求高;系统要求具有较高的稳定性和安全性;与原有业务系统联系紧密。

所以我们采用了客户端/中间件/服务器技术。

该技术实际上是三层结构技术。

在客户端采用传统Client方式,用PB或者Delph1寄工具进行开发。

因为前台采用C1ient,所以中间件的选择应当适合客户机和服务器之间的联接和通讯。

整个系统的技术框架如图1所示:图1整个系统的技术框架图 3.3模块化的设计在系统开发时,我们采用了模块化的技术。

按照功能将一个软件切分成许多部分单独开发,然后再组装起来,每一个部分即为模块。

其优点是利于控制质量、利于多人合作、利于扩充功能等,是软件工程中一种重要的开发方法,并为软件复用提供强有力的支持。

烟厂生产指挥系统是一个功能和模块比较多的大型系统,系统之间各个功能模块之间的相互引用特别复杂。

高扬生产指挥系统中增强了系统模块化的设计,使得模块之间的引用尽量减少,即使有引用也以可识别的方式来区分,这样就避免了系统内部各个核心模块功能级的耦合度,使得核心模块特别是各个业务条线的内聚度提高。

从而也避免了相似功能的重复编码,提高了程序的可维护性,简洁性、可读性。

目前各个核心业务模块之间的耦合度只到数据级,严格控制并禁止了功能级的耦合度,各个模块尽量只引用模块内定义的函数和数据窗口以及外部的结构。

将各个条线公用的数据窗口从原来的通用的数据窗口pbl中分离,减少了条线间的功能级的耦合度。

目前系统所定义的核心模块有:生产计划的接收下达模块,成品交库模块,辅料配料模块,工艺卡片下发模块。

3.4代码复用另外,在编码过程中的一个重要复用是算法的复用。

由于在函数设计时基本上每一个都提供了相似的功能,如新增、删除、修改、查询,而这些操作的算法基本上是一致的,差别只在于SQL语句的差别;所以在设计编码时,可以先设计一个共用的函数提供这些功能,在其他功能实现时可以调用这些函数,实现算法的重用。

3.5项目组织结构的复用在软件复用的过程中,仅仅有软件复用方法是不够的,还必须有复用的开发组织结构可以支持。

两个烟厂生产指挥系统也采用了复用的组织模式开展项目实施。

基于模块独立性、层次性,保证项目开发成员工作之间的相对独立性,模块联结方式应该是纵向而不是横向,模块之间应该是树状结构而不是网状结构或交叉结构,这样就可以把开发人员之间的通信、模块开发制约关系减到最少。

同时模块独立性也比较利于配置管理工作的进行。

复用的组织架构主要由三组成员纽成:复用函数创建组、应用纽和协调组。

复用函数创建组的成员,主要收集归纳并创建可以复用的函数提供给应用组使用;应用组分两个生产指挥项目分别进行相对独立的业务逻辑的设计与实现,在开发过程中使用复用函数创建组提供的可复用的函数进行业务逻辑的快速实现,并帮助复用函数创建者归纳,收集可复用的流程;协调组主要由项目经理承担。

主要在构建创建组和构件复用组织间起协调的作用,起到函数的分发推广的作用。

其实在软件复用过程当中,不仅仅通用函数可以复用,在业务层模块之间也可相互引用。

但是在引用时,也应该尽量避免模块之间的交互,提高模块的内剧性、降低模块间的耦合性。

在模块之间的引用协调也由协调组完成。

3.6结论与不足在两个生产指挥系统的开发过程中,我们主要采用了以上方法进行软件的复用开发。

实现了软件领域横向的复用和产品开发过程中的纵向层次架构的复用;并在软件开发过程中采用全程(从需求分析到编码实现)复月的策略进行软件开发,从而大大提高了软件产品的可复用性,提高了软件开发的生产率,并为后继类似的其他烟厂生产指挥系统的开发提供了良好的可复用基础。

相关主题