软件架构非功能需求——易变性

是什么

易变性指软件能被轻松改良的能力。

具体来讲,易变性要求软件能被轻易修改、轻易扩展、轻易重组、轻易移植到其他平台。此外,在保证质量的前提下迅速完成改良也是易变性的要求之一。

为什么

我们总希望软件在发布之后一直不用修改,但事实并非如此。软件在使用周期内会不断被修改和扩展。原需求会不断发生变更,新需求也会不断添加进来。

要想长期快速应对用户的各种琐碎需求,我们就需要设计出便于修改代码的软件架构。

怎么做

  • 可维护性

可维护性指解决问题的难易度,即修改故障代码的难易度。

要提高可维护性,使用的软件架构就必须将修改控制在局部范围内,把对其他模块的副作用降至最低。

  • 可扩展性

可扩展性是指添加新功能、更新模块版本以及删除不需要的功能和模块等操作的难易度。

提高可扩展性需要降低模块之间的结合度。

可扩展性追求的是在不给客户端造成影响的情况下完成模块交换的结构,以及能将新模块整合到现有软件架构中的结构。

  • 重组

重组指重新组织模块间的关系,当对模块的位置进行调整时(比如将模块移至其它子系统),就需要进行重组。

为方便重组,我们设计的软件架构要能在不影响模块实现的前提下灵活对模块进行配置。

  • 可移植性

可移植性指将软件移植至各种硬件平台,用户接口,操作系统,编程语言和编译器等的难易度。

要提高可移植性,就要在设计软件时考虑软件对硬件的依赖性。

要想做出不依赖与硬件的软件,就要将系统库和用户接口库等对平台特有的功能进行操作的部分整合成一个独立的专用模块。

猜你喜欢

转载自blog.csdn.net/u012069234/article/details/113763905