目录
|
软件柔性的定义:以合理的成本和反应速度对内部或外部环境、已知和未知的变化作出有效响应的能力,它是开发者赋于软件的性质。评价其柔性大小的量被称为软件的柔度,通过对软件的“形”与“态”的变化量和运行所需的“外部作用”的测量可以间接得到软件的柔度。
根据以上分析,软件的柔性表现出如下特性:
(1)易变性用较小的代价实现软件的“形”和“态”的变化。
(2)适应性利用软件的柔性可以适合和满足对软件新的要求,是软件应对外部变化的一种方式。
(3)平稳性软件在柔性变形时,基本特征不变,基本功能不变。变化是协调的、有限的。一处的变化不会导致软件其他部分失效。变化能力是持久的,不是忽有忽无的。
(4)可控性可以按需要控制变化时机、变化程度和保持变形。
(5)再现性可以借助操控力变形,也可以借助操控力恢复变形,可以在相同的要求和条件下重复进行柔性变形。
可见,在软件柔性变形中主要体现出两种变化的特性:①以不变应变,软件的构成元素,即软件的“形”不发生变化,仅仅通过软件“态”的变化来满足用户变化的需求。②以变应变,软件的构成元素,即软件的“形”发生变化,通过软件“形”和“态”的共同变化满足用户变化的需求。
软件的柔性与适应性关系如下:①柔性是软件本身的特性,适应是软件为某种目的而变换形态的过程。利用柔性可以适合和满足对软件新的要求,不用柔性也可以通过其他方式来实现适应的目的。适应性一定是有目的、有对象的。柔性可以没有目的、没有对象而存在。②适应性只是柔性的重要特性之一;柔性是一个综合性指标,包括变化的范围、代价、效果、时间性、可控性和平稳性。
软件柔性和通用性的关系如下:①软件的通用性指软件功能覆盖面的宽广程度。通用性更强调“包容性”,柔性更强调对变化需求的适应性。②一方面,软件可以通过遵守标准化的要求达到通用性;另一方面,软件因实现了大多数用户需要的功能而具有了通用性。③具有柔性的软件不一定具有通用性,具有通用性的软件也不一定具有柔性,但可以利用柔性达到一定的通用性。