您现在所在的位置是:首页 > 业界新闻

商业服装行业管理软件维护

软件维护活动类型总起来大概有四种:纠错性维护(校正性维护)、适应性维护、完善性维护或增强、预防性维护或再工程。除此四类维护活动外,还有一些其它类型的维护活动,如:支援性维护(如用户的培训等)。

以服装行业管理软件为例,软件交付用户之后就进入了软件的维护阶段,在这个阶段对产品所作的修改被称为维护,其目的是保证软件在交付用户之后的正确性和适应性。大型软件的维护成本可达开发成本的4倍左右。因此,在软件的开发阶段就应该考虑软件的可维护性,以减少将来软件维护所需要的工作量。
教学要求
①掌握软件维护的概念和目的。
②掌握软件维护过程。
③掌握软件维护方法。
重点和难点
①软件维护的内容、难点、可维护性。
②软件维护的过程和方法。

1O.1概述
1.维护的定义
软件维护是指软件交付使用之后,因软件中存在的缺陷,以及因需求和环境的变化,对软件进行修正的过程。
软件维护占到一个开发组织所花费的全部工作量的60%~80%。除去修正软件中潜藏的错误之外,更多的工作是根据需求和技术的变化,对软件进行调整以满足用户的新需要7。影响软件维护工作量的因素主要有以下几点:
·系统大小:系统越大,功能越复杂,理解起来越困难,因而需要更多的维护工作量。
·程序设计语言:程序语言的功能越强,生成程序所需的语句就越少;语言的功能越弱,实现同样功能所需语句就越多,程序就越大。用较老的程序设计语言书写的程序,代码行多且逻辑复杂,也没有做到模块化和结构化,直接影响到程序的可读性。
·系统年龄:老的系统随着不断修改,结构越来越乱;另一方面,由于维护人员的更换,修改后的程序会变得风格多样而越来越难于理解。而且许多老系统在开发时并未按照软件工程的要求进行开发,因而没有文档,或文档太少,或在长期的维护
过程中文档在许多地方与程序实现变得不一致,这样在维护时就会遇到很大困难。
·软件开发技术:在软件开发时,若使用能使软件结构比较稳定的分析与设计技术,
及程序设计技术,如面向对象技术、复用技术等,町减少大量的维护工作量。
·其他:软件所对应的应用类型、任务的难度、开发人员的编程风格等,对维护工作量都有影响。
2。维护的目的软件维护的目的主要包含以下三个方面:
·确保软件交付后的品质。改正在特定的使用条件下暴露出来的潜在程序错误或设计缺陷。
·提高下一期软件开发的品质。维护阶段的结果的可以回馈到下期的开发过程,提高下期开发的品质。
·提高客户满意度。迅速正确地解决软件交付后暴露的问题,高效的故障排查能力是提高顾客满意度的有力保障。
3.维护的种类
根据软件交付后用户的不同需求,软件维护一般分为以下4类:
·纠错性维护。由于前期的测试不可能揭露软件系统中所有潜在的错误,用户在使用软件时仍将会遇到错误,诊断和改正这些错误的过程称为纠错性维护。
·适应性维护。由于新的硬件设备不断推出,操作系统和编译系统也不断地升级,为了使软件能适应新的环境而引起的程序修改和扩充活动称为适应性维护。好比秘奥服装行业管理软件,在Win7/win8系统运行中,涉及到一个兼容性的问题。
·完善性维护。在软件的正常使用过程中,用户还会不断提出新的需求。为了满足用户新的需求而增加软件功能的活动称为完善性维护。
·预防性维护。为了改进未来的可维护性或可靠性,对软件重新设计、重新编码和测试的工作称为预防性维护。预防性维护在全部维护活动范围内所占比例较小,但在条件具备时应该主动进行预防性维护工作。
在维护阶段的初期,改正性维护的工作量较大。随着错误的修正,软件趋于稳定,进入正常的使用期。然而,由于使用环境的变化和用户需求的变化,适应性维护和完善性维护的工作量逐步增加。实践表明,在几种维护活动中,完善性维护所占的比重最大,一般占全部维护工作量的55%左右。

10.2软件维护的难点和软件的可维护性
10.2.1软件维护的难点
软件维护是一项艰巨的工作,其困难主要表现在以下几个方面:
·技术资料不足。软件人员经常流动,当需要对某些程序进行维护时,可能已找不到原来的开发人员。如果仅有程序代码没有说明文档或者文档质量很差时,维护人员简直不知道如何下手。
·很多程序在设计时没有注意程序的可修改性,程序之间相互交织,触一而牵百。即使有很好的文档,也不敢轻举妄动,否则很有可能陷进错误堆里不能自拔。
·如果软件发行了多个版本,要追踪软件的演化过程非常困难。
·维护将会产生不良的副作用,不论是修改代码、数据或文档,都有可能产生新的错误。
·不能充分获得分析故障原因的信息,问题影响范围难以把握。
·维护工作不是一项很有吸引力的工作。维护工作困难而烦琐,而且经常遭受挫折,高水平的程序员不愿主动去做,带着低沉情绪的低水平的程序员只会把维护工作搞得一塌糊涂。
软件的错误推移到维护阶段才被修正,需要付出高昂的代价。因此,在开发的早期发现和解决软件问题是十分重要的。同时软件在开发阶段就应该注意提高程序的可维护性。

10-2.2软件的可维护性
软件可维护性是指维护人员理解软件、改正软件系统出现的错误,以及为满足新的要求进行改动的难易程度。决定软件可维护性的因素主要有以下几个方面:
1.可理解性
可理解性是指通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。以下特性可以提高程序的可理解性:模块化(模块结构良好、高内聚、低耦合),风格一致的代码风格,清晰完整的程序内部文档(注释),详细的设计文档,简单易于理解的结构设计,不使用难于看懂的代码,使用有意义的数据名和过程名等。
2.可测试性
可测试性是指论证程序正确性的容易程度。程序越简单,证明其正确性就越容易。一个可测试的程序应当简单且可理解,并便于设计相关的测试用例。
程序模块化、结构良好,并能以清楚的方式描述它的输出以及用于跟踪和显示逻辑控制流程的完备日志文件等,这些都有助于提高程序的可测试性,对于程序模块来说,可以使用程序复杂性来度量可测试性。程序的环路复杂性越大,程序的可执行路径就越多。因此,全面测试程序的难度就越大。
3.可修改性
可修改性是指程序容易修改的程度。程序模块化,高内聚低耦合,信息隐藏,在表达式、数组/表的上下界、输入输出设备命名符中使用预定义的文字常量,程序提供不受内部实现变化影响的模块接口等,都有助于提高程序的可修改性。
4.可移植性
可移植性是指把~个原先在某种软硬件环境下正常运行的软件移植到另一个软硬环境下,使该软件也能正常运行的难易程度。提高软件可移植性的关键在于提高软件的设备无关性和系统无关性。
使用高级的独立于机器的、广泛使用的标准化的程序设计语言来编写程序,不使用操作系统的功能,程序中数值计算的精度与机器的字长或存储器大小的限制无关等手段都有助于提高可移植性。
5.可重用性
可重用性是指软件模块或构件不做修改或者稍作修改就可以在不同的系统、环境中重复使用。由于重用模块已经经过严格测试,因此重用模块的可靠性比较高。软件中使用的可重用构件越多,软件的可靠性越高,维护的需求越少。
10.3软件维护的工作
无论维护的类型如何,维护工作一般都应该包括确认维护要求、修改软件需求说明、修改软件设计、设计评审、对源程序做必要的修改、单元测试、集成测试(回归测试)、确认测试、软件配置评审等。以下主要说明纠错性维护的工作内容。

10.3.1收取故障信息
收到故障报告后应该收集获得以下信息,以确认故障的问题点:
·发生时间。
·制品名、版本。
·操作系统版本。
·故障现象的内容:发生时的现象、事前的操作内容、发生后的操作等。
·确认故障发生时其他软件的运行情况。
·硬件、网络的状况。
·软件的日志文件。

10.3.2排查方法排查故障的工作内容一般包含如下几个方面:
·过去履历的确认,检索同样的现象、确认是否已经回答过了。
·再现测试,是否发生同样现象。
·从用户处采集到的数据以及软件日志文件的解析。
·用户的失误、其他程序的问题的排除。
·代码解析(找不到原因、无法再现时的手段)。
·回避措施的研究。

10.3.3修改程序
在分析理解原有程序并确认程序的错误点之后,就可以对程序进行修改了。修改时应注意以下几点:
·设计思想编码风格尽量与原系统保持一致性。
·尽量不使用共享系统中的已有变量,而使用局部变量。
·不要建立公用子程序,而建立各自独立的子程序。
·坚持修改后的复审。
·建立修改文档。
·注意修改相应的文档。

10.3.4维护管理
如同软件开发阶段的文档一样,维护工作也应该加以记录,这些记录同时可以用于对维护工作的定量度量。这些记录包括由用户或维护接收专门人员提供问题报告和维护人员提供的修改报告。用户或维护接收专门人员提供的问题报告内容一般应包含:①登记号;②软件名称;③编号;④版本号码;⑤报告人姓名;⑥单位;⑦报告时间;⑧问题描述等。
维护人员提供的修改后报告内容一般包含:①登记号;②修改日期;③修改人名;④修改内容;⑤测试情况;⑥修改工数等。

本章小结
软件维护是软件生命周期的最后一个阶段,软件的维护占到一个开发组织所花费的全部工作量的60%以上。
软件维护包含纠错性维护、适应性维护、完善性维护和预防性维护。软件维护的难点在于:理解需要维护的软件是困难的,需要维护的软件往往缺乏完整正确的文档,维护人员通常不是系统的原开发人员,并且通常得不到原开发人员的帮助。大多数软件在设计时没有考虑到将来的维护,维护工作是烦琐而困难的。
修改程序一般都会带来负面作用,有可能造成文档和数据的不一致。以服装行业管理软件为例,二次开发的用户,相对于使用成品软件的用户而言,出错的可能性机率要高一些。所以维护更加重要。
软件的可理解性、可测试性、可修改性是衡量软件可维护性的几个主要技术指标。

文章来源: 秘奥软件网,中小企业信息化领跑者!全国咨询热线:400-9908-527_www.misall.com

最新新闻: 上一篇: 下一篇: