软件工程 |软件进化
软件进化是一个术语,指的是最初开发软件,然后出于各种原因及时更新软件的过程,即添加新功能或删除过时的功能等。进化过程包括变更分析、发布计划、系统等基本活动。实施并向客户发布系统。
访问这些更改的成本和影响,以查看更改对系统的影响程度以及实施更改的成本。如果提议的更改被接受,则计划发布软件系统的新版本。在发布计划期间,会考虑所有建议的更改(故障修复、适应和新功能)。
然后进行设计,以在系统的下一个版本中实施哪些更改。变更实施过程是开发过程的迭代,其中对系统的修订进行设计、实施和测试。
软件进化的必要性:软件评估是必要的,原因如下:
a)需求随时间变化:随着时间的推移,组织的需求和工作方式可能会发生重大变化,因此在这个频繁变化的时间里,他们使用的工具(软件)需要改变以最大限度地提高性能。
b)环境变化:随着工作环境的变化,使我们能够在该环境中工作的事物(工具)也会随着工作环境的变化而相应地发生变化,因此组织需要重新引入具有更新功能的旧软件和适应新环境的功能。
c)错误和错误:随着组织内部署软件的年龄增加,它们的精确性或无可挑剔性降低,并且承受日益复杂的工作负载的效率也不断降低。因此,在这种情况下,有必要避免使用过时和过时的软件。所有这些过时的软件都需要经历演变过程才能根据当前环境的工作负载复杂性变得健壮。
d)安全风险:在组织内使用过时的软件可能会导致您处于各种基于软件的网络攻击的边缘,并且可能会暴露您与正在使用的软件非法关联的机密数据。因此,有必要通过定期评估软件中使用的安全补丁/模块来避免此类安全漏洞。如果软件不够强大,无法承受当前发生的网络攻击,则必须对其进行更改(更新)。
e)拥有新功能和特性:为了提高性能和快速数据处理和其他功能,组织需要在其整个生命周期内不断发展软件,以便产品的利益相关者和客户能够有效地工作。
用于软件进化的定律:
- 持续变化法则:
该定律指出,任何代表现实世界现实的软件系统都会经历不断的变化,或者在那个环境中变得越来越没用。 - 复杂度递增法则:
随着不断发展的计划发生变化,除非采取有效措施避免这种现象,否则其结构会变得更加复杂。 - 组织稳定性守恒定律:
在程序的整个生命周期中,该程序的开发速度几乎是恒定的,并且与用于系统开发的资源无关。 - 熟悉度守恒定律:
该定律指出,在程序的有效生命周期内,后续版本中所做的更改几乎是恒定的。