当演化过程未知时,我们无法像演化过程已知时那样追踪架构在演化过程中的每一步变化,只能根据架构演化前后的度量结果逆向推测出架构发生了哪些改变,并分析这些改变与架构相关质量属性的关联关系。
图10-9显示了演化过程未知时的架构演化评估过程。对于演化前后的相邻版本的架构,可以利用基于度量的架构评估方法分别对它们进行度量,得到架构演化前后的不同版本的度量结果,并根据度量结果的差异计算它们之间的质量属性距离。通过分析架构演化前后质量属性的变化以及质量属性间的距离,可以逆向推测出架构可能发生了哪些演化操作,以及这些演化操作发生的位置和作用的对象。更进一步地,对于每一个演化操作,分别找出其对架构相关质量属性的影响,并分析发生该演化操作的高层驱动原因(修复代码错误、提高性能、平台移植等)。
最终,我们找到针对某演化驱动原因的演化操作集合,并分析这些演化操作所产生的架构质量属性变化是否符合预期。若这些演化操作对架构相关质量属性的影响符合预期,例如,我们希望对代码进行重构以使得架构更加清晰、易于维护和扩展,而最终分析得出此次版本演化确实使得架构的可维护性获得提高(圈复杂度减少、模块间耦合度降低等),则说明这次演化确实根据演化需求完成了任务;否则说明这次演化并没有解决架构原先存在的问题,或者在演化过程中引入了新的错误或相关质量问题,即该次演化并不十分恰当,需要进一步演化来完善。
领取专属 10元无门槛券
私享最新 技术干货