
上QQ阅读APP看书,第一时间看更新
2.3.5 为影响力分析提供支持
有一种状况对大家来说应该不会太过陌生,那就是由于新需求失控而导致的范围蔓延(scope creep)。为了防止出现这种状况,项目经理需要对新需求进行理解和评估,以确定其对当前项目的工作日程所造成的影响。
如果项目经理是个经验比较丰富的人,那么就会在第一时间去询问项目的主架构师,并且请该架构师进行必要的影响力分析(impact analysis)。
前面我们说过,软件架构可以确定架构中的各个ABB,也可以确定这些ABB之间的相互关系、依赖情况以及互动情况。因此,架构师可以对将要实现的新用例进行某种分析,以判断出架构中有哪些组件必须为此做出修改。架构师还可以根据新用例所需的信息交换和数据交换等操作,判断出架构中各组件之间的依赖关系是否也要进行修改。需要进行修改的组件数量、修改的幅度以及实现新用例所需的额外数据或数据源,都与新用例对项目的工作日程所造成的影响有着直接的关系。我们还可以进行更加深入的分析,以判断出这些修改对项目所造成的影响,以及项目成本和相关风险的提升程度。在考虑成本问题时,组件的特征是相当关键的指标,因为组件的设计成本、实现成本以及后续的维护和增强工作所需的成本,在很大程度上都与组件的特征有关。
笔者刚才提出了5项理由,用以证明软件架构的重要性。读者或许还能提出更多的理由,以论证其重要性。尽管如此,但笔者还是决定就此打住,因为我觉得上述理由已经足以令自己确信其重要性了,而且这样做也与本书的主题相一致。在本书中,如果笔者感觉对某个话题已经讲解得恰到好处了,那么就会继续讲下一个重要的话题。笔者的目标,就是要通过这本书来分享自己的经验,告诉大家怎样才能把软件架构中的各项原则运用得刚刚好,读者可以把这个水准当成参考基线或参照系,并按照自己的需求来进行调整。