设备管理遗留系统再工程技术综述

设备管理遗留系统再工程技术综述

1遗留系统与软件再工程

1.1遗留系统的定义、成因及处理策略

用户需求和技术等外部环境的变更。尽管设备管理系统成功应用后不会像硬件设备一样因使用运行时间过长而出现疲劳磨损、老化而失效,但受制于企业用户需求的变更和技术的发展,原系统的可用性会持续不断下降,越来越跟不上企业业务需求和行业发展。设备管理遗留系统处理策略主要包括如下三类:①完全舍弃遗留系统,并开发新设备管理系统。首先全新开发设备管理系统,再导入老系统历史数据。此方法需要投入较大的人力、物力、财力和时间成本,并承担项目风险,因此仅适用于原系统彻底不适应企业需求、无法升级改造的情况。②遗留系统集成扩展。此策略采用业务处理和决策支持分析相隔离的原则,保留原有业务平台,而重新开发与之集成的决策支持系统。此方法适用于业务处理系统满足需求,然而软件难以直接扩展,而企业又希望投入较小的精力和成本加强分析决策功能的情况。③遗留系统再造。基于对原设备管理系统的调研、梳理和评估,得出系统的原有问题、最新需求和数据结构,再合理取舍原有代码以便重用,并选用适合技术对遗留系统进行改造,以适应业务的最新需要。改造可包括系统架构、数据结构、人机界面、功能或性能的再工程。具体策略的选用需综合考虑遗留系统的具体情况和客户需求再做定夺。

1.2软件再工程的定义和一般过程

软件再工程(SoftwareRe-engineering),亦称为软件革新或软件改造,是指基于对现存系统的分析和改造,以新形式来重新组装和构建现有系统,以提高软件的可用性、可维护性和可升级性。广义而言,软件再工程一般不是从零全新开发,而是对一次工程后的成品软件再次开发,并涵盖了软件生命周期维护阶段的适应性、完善性和预防性维护活动[11]。软件再工程是处理遗留系统的最有效方法,其一般过程包括三步:(1)逆向工程。分析程序以提取系统架构、数据结构和数据等原设计或开发信息,从而在比源代码更高的抽象层次上复原或创建出程序蕴藏的表示元。在原系统资料完整清晰的情况下,往往可直接用再设计取代繁琐的逆向工程过程。(2)重构。重构是指在不影响系统的功能和使用的前提下,转换系统同层次内的抽象表示,以提升软件质量、稳定性、扩展性和可维护性。一般可按需进行数据重构和代码重构。(3)正向工程。该活动基于逆向工程或类似手段恢复或获取的需求、设计信息、代码信息等资源,结合需求变更、技术改造、代码重用、重构等手段,把设计信息转化为代码,以开发一套新系统,最终适应客户需求。每阶段的工作难度和工作量视遗留系统的具体情况而定。

2某制造企业设备管理遗留系统存在的不足

某制造企业十多年前外购并实施了基于C/S、B/S混合架构的设备管理系统。该系统曾经很好的满足了企业的设备管理需求,然而随着企业规模的扩张和时间的推移,原系统缺陷日益凸显,其主要体现在:(1)系统难以直接在当前基础上修改和迭代,具备明显的遗留特性。由于时间久远,原系统提供商早已不复存在,且其C/S界面采用PB语言开发,该技术平台几乎已被淘汰,不再适应业界最新潮流。(2)用户体验和功能方面难以满足企业对设备信息日益增长的需求。一是随着企业设备管理的日益精细化,新增大量的设备统计报表需予以信息化和可视化;二是设备管理遗留系统操作和显示不够直观;三是原系统的C/S版界面安装繁琐,操作不便,已不再适应当今潮流。(3)查询统计运行缓慢。原系统开发时企业规模较小,且服务器性能一般,设计者对数据量和性能压力估计不足。随着企业设备资产、管理人员的增多及常年使用累计了海量的数据记录,系统查询、统计报表运行速度较为缓慢,易于宕机。

3关键实现技术

通过分析设备管理遗留系统的不足、调研获取的项目资料及客户意见,决定采用遗留系统再造即软件再工程方法改造系统满足客户需求,其理由在于:(1)设备管理系统需保证日常不间断使用,全新开发意味着用户需承担丢弃老系统、重新大量投资和等待较长时间的风险,且项目预算有限,故排除全新开发策略。(2)原业务系统采集数据无法满足新增报表的字段需求,新增需求并非是决策支持,且技术平台较老,扩展性差,故不适合集成扩展策略。(3)原系统的数据结构可在重用基础上修改,存储过程代码和服务端软件代码部分可重用,符合软件再工程的前提。此外,由于大部分源代码和系统保留完整,且用户需求清晰,本系统再工程无需采用逆向工程手段,可直接进行系统再设计、重构和正向工程开发。由此,下文首先给出系统再工程情境下的总体架构再设计、功能模块再划分及数据结构重构的思路,再阐述系统实现应用的重构及正向工程技术。

3.1系统再设计

3.1.1总体架构再设计

为克服原系统弊端,首先将原系统的服务端代码迁移为WCFRIAService模块服务,再基于Silverlight技术重写客户端,最终升级为面向富客户端环境的展现层、服务层和数据层三层架构。系统总体架构再设计后的主要技术特色为:(1)由技术滞后的C/S、B/S混合架构升级到富客户端架构,实现了客户端技术和环境的统一,解决了客户端异构、浏览器异构问题,安装升级运维更加便捷。(2)展现层从单一的用户界面扩展为用户界面和视图模型,以支持数据双向绑定和页面显示逻辑,并实现基于RiaService类与服务层交互,显著减少了数据访问代码的开发量。(3)服务层在原数据访问、业务逻辑模块的基础上新增了WCFRIAService模块,以支持统一的富客户端架构。(4)数据层组成不变,仍为设备数据库和集成数据接口,然而其数据结构需参照最新用户需求重构。

3.1.2功能模块再划分

根据调研用户需求和分析原系统,重划分设备管理系统的功能结构,如图2所示。再划分前后的主要改进为:(1)原系统仅支持单一企业运行管控,改进后的固定资产管理增加了集团管理的功能,实现了集团公司对下游分公司设备资产变更的管控。(2)设备日常运行管理不仅负责采集设备利用率、综合效率求解所需的运行数据,还应记录与故障密切相关的设备参数,以便进行预防性维护决策和故障分析。(3)新增设备布局功能界面,使得单据维护和设备选取可在直观可视化的情境下完成,更为易用。(4)统计报表增加了瓶颈设备统计、工单完成率统计,已便于定位影响生产效率的瓶颈设备及闭环化管理设备预防维护和故障维修工作。(5)系统基础数据管理新增集成设置功能,专用于系统管理员或实施人员维护集成信息,以便对外部信息系统共享其所关注的设备信息。

3.1.3数据结构重构

为适应系统功能模块再划分,系统数据结构需进行少量重构,主要变更如下:(1)所有数据表新增“所属公司”和“所属岗位”字段以细化记录行归属定义,为未来集团化的设备管理和用户授权奠定数据基础。(2)为实现设备布局功能,在数据库中新增“指引线信息表”,以便以箭头形式指示生产流程和设备间的工艺关联;新增“缓存版本表”,以便提升布局的加载速度和系统其他静态信息的加载;设备实物信息表新增“X坐标”“、Y坐标”字段,以标定设在布局中的相对位置。(3)为加快查询速度,分别为各统计报表新增“统计结果临时表”,统计报表模块的存储过程优先写入此类临时表,以减少不必要的重复计算,并错开报表获取高峰,从而加快用户查询速度。

3.2基于MVVM设计模式的代码重构技术

设计模式是实现系统重构和代码重用的最重要手段之一。原系统的C/S、B/S程序未采用任何设计模式,其页面代码和展示逻辑代码耦合性较强,代码冗余大,维护繁琐。针对此问题,在本项目软件再工程中实施了MVVM设计模式,并收获了良好的应用效果。MVVM是“模型(Model)—视图(View)—视图模型(ViewModel)”的简称,其基于Silverlight数据绑定特性,将设备管理系统中紧密联系的前台页面和逻辑代码灵活解耦为模型、视图、视图模型三大组成部分。如图3所示,模型部分基于WCF数据通信技术提供对处于数据层的设备数据库和集成数据接口的双向操作,以便为视图和视图模型提供基础数据支撑。视图是模型的具体实现即设备管理系统的用户界面,可根据业务和数据需求与多个视图模型绑定,一个视图模型也可映射到不同的视图。视图模型介于视图和模型之间发挥解耦和承接作用,用于描述和存储业务的概念模型,并可包含视图所需的接口和属性,响应用户界面的操作,以便从模型获取最新数据,并反馈结果给当前用户。相比重构前,应用MVVM设计模式重构设备管理系统带来的优点主要有:(1)代码耦合性和开发量降低,可重用性显著提升。此前系统的模型修改往往直接导致视图不再可用,还需重新编写显示逻辑代码。而MVVM模式下视图和模型不再直接关联,任意一方变动并不意味着另一方必须随之改变,一切的变化可通过视图模型部分灵活协调,且视图模型中的方法和函数可在整个系统中大范围重用。此外,数据绑定特性的存在也省去了大量的数据访问代码。(2)实现了关注点分离,代码层次大为清晰,易于分工协作,加快开发效率。前端界面设计师可专注于设备管理系统前台页面设计和用户体验,后台程序员可全力从事逻辑代码的开发,相互影响减小到最低程度。专业分工有助于分类测试和开发管理,可提升软件开发质量。

3.3基于组件式开发的正向工程技术

原系统代码调用和组装较为随意,冗余较大,不便维护。为克服上述缺点,在本项目的正向工程中大力应用了组件式开发。软件系统中的组件是一类二进制形式、面向对象、即插即用、可重用的软件文件块。广义而言,封装的对象类库、框架、模型、文档等可重用的软件单元均属于组件。组件式开发即基于软件复用思想,根据项目需求从组件库中选配或定制开发合适的组件,并将各组件连接组装集成为一套功能完整、适合应用的软件系统。参照设备管理系统各模块功能性及组件通用性特点,本项目主要采用了程序级组件复用,总体上抽取和构建了公用组件和专用组件两大类组件。公用组件一般提取自各模块的共性需求,需跨模块共享调用,如分页组件、表头工具栏组件、报表组件、统计组件、权限组件、数据校验组件、数据访问组件等。专用组件专门负责满足某些特色功能需求,封装后可在系统中小范围重用,包括设备选择、人员选择、故障选择、设备布局可视化等组件。应用组件式开发带来的主要优点有:(1)开发效率高,缩短了工期,节约了正向工程的成本。由于大量基础和公用功能为组件提供,减小了系统开发的复杂度、工作量和开发人员的劳动强度,降低了开发成本。(2)软件可维护性、可升级性和质量显著提升。组件式开发降低了设备管理系统模块间的耦合性和冗余性,提升了软件的一致性和可复用性,使其内部层次更为清晰可读,更易维护升级,代码质量显著提升。此外,原分散实现的查询统计功能借由统一组件支持实现,查询性能得到了显著提升。

4实践

基于遗留系统再工程的思想、Silverlight5.0平台为某企业升级开发了设备管理遗留系统。由于采用了先进的处理策略、开发思想和平台,整套系统平台从需求调研到做完升级开发和数据迁移仅由4人小团队耗时4个月完成。再工程后系统功能、用户体验和性能均显著提升,类似如图4和图5所示,改进后实现直观的可视化设备管理和故障统计,优于原系统的纯表单录入和查看,可满足企业未来相当长时间内的设备管理需求。项目符合客户预期,解决了设备管理遗留系统难题,节约了甲乙双方的成本和时间,还最大限度保护了企业已有和未来的IT投资,达到了双方满意共赢的效果。图4基于设备布局的可视化设备管理Fig.4VisualEquipmentManagementbasedonEquipmentLayout图5设备故障统计Fig.5EquipmentFailureStatistics

5结束语

针对设备管理遗留系统的升级和改造问题,研究并提出了其软件再工程策略和相关技术。相关研究成果有助于加速老旧信息系统改造,减小“信息孤岛”现象,提升企业信息化水平和管理水平。鉴于遗留系统的升级改造问题不仅存在于设备管理信息化环节,还广泛浮现于其他资源或业务的信息化领域,研究实践对类似遗留系统的处理也具备较好的借鉴意义。

作者:顾嘉 张华 涂海宁 熊根良 单位:南昌大学机电工程学院