码迷,mamicode.com
首页 > 其他好文 > 详细

连载06:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)

时间:2018-06-26 12:19:20      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:架构风格   软件   软件架构   lin   ros   没有   模型   就是   还需   

可置换性

可置换继续向上融入了分层、虚拟化、微内核等架构设计中,所以正确性、稳定性和可测试性等等特性以外还需要新增一个新的非功能属性,这就是可置换性,可置换性是一个比较隐式的特性,其外在表现不太为人所知,虽然在设计过程中,我们已经使用了可置换性的非功能属性来描述和审查设计,例如:我们的设计模型是否能够有效替换现实中的系统呢?在设计中我们经常这样地询问,但是可置换性却一直没有作为一项独立的非功能属性,那么可置换性的定义是什么呢?其应用领域是什么呢?其使用限制又是什么呢?其为什么是一个隐藏的属性而并不为人熟知呢?其于其他特新之间又有什么联系以及矛盾呢?

解答这样的问题非常有趣,其实可置换性和其他的众多非功能属性是相互隐含的,例如前面谈到的可扩展性,如果一个系统的可置换性能力越强,其可扩展性也就越强,但是反过来则不成立,可置换性是可扩展性的一个基本要素,又例如可修改性,让系统具有可调整的能力,在软件系统中,具有可置换性特征的对象其可修改能力是最强的,其最为特殊的可置换性具有众多特殊特征(例如对称、双向等特征)于一体的,这样其修改的灵活性也就是最强的。

在《架构风格与基于网络的软件架构设计》中,Roy Thomas Fielding博士将各种非功能属性进行详细的分解,将这些特性划分成性能、可靠性、可移植性、可重用性、可配置性、可扩展性、可见性、可定制性、可进化性、可修改性、简单性、可伸缩性等多个具有对架构风格约束的非功能属性,但是对于可置换性来说,其不是一个约束性的非功能属性,而是一个衡量软件系统设计的标准属性,所以在很长的一段时间内,其一直作为隐藏的非功能属性而不被察觉,所以,我们可以看出可置换性在其基础的位置是非常重要的。

但是,可置换性与上面提到的一些非功能属性是相互制约、相互影响的,例如采用了可置换性可能会引入更多的间接处理方式,其性能就会受到影响,可靠性也可能系统的复杂化而下降,但是与其他的一些非功能属性却是其相互依存、相互促进的,比如可移植性、可重用性、可扩展性、可修改性、可伸缩性等都相一致。


连载06:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)

标签:架构风格   软件   软件架构   lin   ros   没有   模型   就是   还需   

原文地址:http://blog.51cto.com/13832308/2132740

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!