软件工程 |软件维护
软件维护是软件产品交付给客户后对其进行修改的过程。软件维护的主要目的是在交付后修改和更新软件应用程序以纠正故障并提高性能。
需要维护 -
必须执行软件维护以便:
- 纠正错误。
- 改进设计。
- 实施增强功能。
- 与其他系统的接口。
- 适应程序,以便可以使用不同的硬件、软件、系统功能和电信设施。
- 迁移旧版软件。
- 退役软件。
软件维护的挑战:
软件维护中的各种挑战如下:
- 考虑到任何软件程序的流行年龄长达 10 到 15 年。由于软件程序更新是开放式的,并且可能会维持数十年,因此非常昂贵。
- 较旧的软件程序原本打算在内存和存储能力低得多的低速机器上进行绘画,但与现代硬件上新出现的更有利的软件程序相比,它们无法保持坚韧。
- 更改经常没有记录在案,这也可能导致未来更大的冲突。
- 随着时代的发展,保存老式软件程序变得昂贵。
- 通常所做的调整可以毫无问题地损害软件程序的真实形状,从而难以进行任何后续调整。
软件维护的类别 –
保养可分为以下几种:
- 修复性维修:
软件产品的纠正性维护对于纠正在系统使用时观察到的一些错误或增强系统性能可能是必不可少的。 - 自适应维护:
这包括当客户需要产品在新平台、新操作系统上运行或当他们需要产品与新硬件和软件接口时进行修改和更新。 - 完美维护:
软件产品需要维护以支持用户想要的新功能或根据客户需求更改系统的不同类型的功能。 - 预防性的维护:
这种类型的维护包括修改和更新,以防止软件将来出现问题。它的目标是解决目前不重要但将来可能导致严重问题的问题。
逆向工程 -
逆向工程是从任何人造事物中提取知识或设计信息并根据提取的信息对其进行复制的过程。它也被称为回工程。
软件逆向工程——
软件逆向工程是从对其代码的分析中恢复产品的设计和需求规范的过程。逆向工程变得越来越重要,因为一些现有的软件产品缺乏适当的文档,高度非结构化,或者它们的结构已经通过一系列维护工作而退化。
为什么要逆向工程?
- 提供适当的系统文档。
- 恢复丢失的信息。
- 协助维修。
- 软件重用设施。
- 发现意想不到的缺陷或故障。
用于软件逆向工程 –
- 软件逆向工程用于软件设计,逆向工程使开发人员或程序员能够在知道或不知道源代码的情况下向现有软件添加新功能。
- 逆向工程在软件测试中也很有用,它可以帮助测试人员研究病毒和其他恶意软件代码。