一个软件系统(如:oa、erp、crm、财务软件、定制开发的系统等)尤其是定制开发的软件,在日常的使用过程中需要不断的进行维护,首先是由于用户需求的细化和业务模式的优化,导致其需求和功能不是一层不变的,需要通过对软件的维护进行完善和适应性的调整;其次,需要保障软件系统运行环境的稳定,如:硬件、网络、系统软件的配置,以及软件系统的性能优化等,本文中描述的软件系统的可维护性主要是指前者。

软件系统的可维护性可以定义为:维护人员理解、改正、改动和改进这个软件的难易程度,提高可维护性是支配软件工程方法论所有步骤的关键目标。软件的维护可以分为一般的日常维护和开发维护,日常维护主要通过软件自身提供的后台管理和配置功能实现,而代码级的开发维护一般由软件厂商来实现。那么影响软件系统可维护性的主要因素有哪些呢?
1、软件系统的技术架构和系统设计
首先,软件系统所采用的开发平台、开发语言及其他相关技术等,对开发维护的难易程度有着非常大的影响,如果采用的技术过于复杂,对开发维护的技术人员要求高,无形中增加了对指定技术人员的依赖,系统的可维护性无从谈起。因此,选择主流、先进(技术先进不等同于难度高)的技术可以保障软件系统的可维护性。
其次,一个好的软件系统必需考虑到后续的扩展和维护,良好的技术架构和系统设计是后续确保可维护性的先决条件,可以降低后续软件系统开发维护的技术难度、节省时间,大大减少因系统反复修改导致的出错率。
最后,过硬的技术架构和系统设计,需要技术和经验长时间的积累与沉淀,行业开发经验的积累也同样重要。
2、软件开发设计和编码的质量
只有好的系统架构和设计和不够的,软件系统最终是由一行行编写的代码实现的,软件开发层面的系统设计,以及编码的质量直接和系统的稳定性和可维护性息息相关,软件系统设计人员的技术和经验,软件开发人员的技术经验、软件开发团队的管理水平和行业经验奠定系统的可维护性。
3、强大的系统后台管理,提升软件系统的维护能力
一般的维护尽量通过非代码开发方式实现,提升系统维护的效率、降低维护成本,保障系统的稳定。系统的拥有很好的灵活性和可维护性,一般需求功能的调整通过后台管理和自定义功能实现,可以大大的减少开发维护的工作量,降低技术难度,一般用户自己都可以进行日常维护。
4、避免大量的定制开发,降低系统维护的工作量
定制开发的系统由于很多功能是新开发的,软件系统的可维护性一般相对要差些,系统需要一段时间的维护才能日趋完善,而且很多都是软件厂商负责的开发维护,因此功能完善和系统维护的工作量也比较大、耗费的成本高。
5、保障系统环境的稳定,降低系统维护的工作量
确保硬件、网络、系统软件等运行环境的稳定,减少因此产生的问题检测和排查,降低系统的维护工作量。
软件系统的可维护性有着重要的意义,是厂商后续提供良好服务的先决条件,软件维护可能是伴随着软件使用的始终,良好的可维护性可以降低软件维护难度,节省软件的维护时间和成本。在很多的案例中,由于系统设计和技术架构的落后,系统的可维护性差,导致后续软件维护的成本非常高,最终用户无法长期承受,影响了软件的应用效果。