现在的位置: 首页 > 综合 > 正文

视图法和维度法,思考软件架构

2011年06月23日 ⁄ 综合 ⁄ 共 637字 ⁄ 字号 评论关闭

通过一组视图来描述架构,这种方式是否合理呢?这种视图相当于事物的横切面,通过在不同方位进行横切所得到横切面来列举架构,似乎是不够合理的,因为横切面随着系统复杂度的增加,其横切面就越多。同行的类图+活动图+序列图+状态图+组件图+部署图,或者其他此类的视图分类方法,例如SUP4+1视图,局限于已有的几种横切面,是否足够呢?

 

横切面的做法是好的,但是只要能够列举所有的横切面,那么该设计就足够全面了,否则在开发阶段还是会不断的做很多挑战、改动,所有编码阶段的挑战和改动,如果不是因为需求变动而引起的话,那么就是由于设计时考虑不周引起的,如果你按照这些常见的横切面做了,依旧不可避免在编码阶段做一些调整,那么就说明你的设计不够完整,横切面列举的不够。

 

软件如物体,有不同的维度。物体有三维,软件的维度更多,最基本的几个维度有可用性,可靠性,健壮性,可重用性,可伸缩性。基于这几个维度来考虑软件架构,如从外部来看一个物体,“横看成岭侧成峰,远近高低各不同”,这种考虑架构的视角和横切面(视图)的方法相比,有明显的不同,视图法是关注于架构的内部构造及实现方式,而维度法则是从整体上来审视软件。如果前者是战术的角度的话,那么维度法的角度则是战略的角度。

 

通过两种角度的结合,将能够很好的捕捉软件架构的方方面面。架构不仅是术,更是思考的过程,虽有模式可套用,但调整的过程依旧需要基于实际需要的思考过程。维度和横切面,两种思考方式相结合,有助于我们理解软件架构,理解软件架构的方法和本质。

抱歉!评论已关闭.