系统架构所涉及到的几个常用工具图

这两天为了画类图,非要装RSA。然后又看了IBM developerWorks上有关RSA的教学视频,认真看完了一遍,收获还是蛮大的。在这里简单总结一下系统架构设计所涉及到的几个常用工具。

1,用例( Use Case


    (1)用例是最上层的设计图,当然逻辑上也最简单。

    (2)参与者在子系统之外,通过子系统之间的用例联系

    (3)用例和用例之间存在包含和扩展关系。

2,类图(Class Diagram)



    (1)这个最常用,我也不用多说了

    (2)类与类之间的一般化(generation)关系一般为:扩展(即继承),实现

    (3)类与类之间的关联(association)关系一般由轻到重为:依赖(参数引用),关联(成员变量),聚集(较强的关联,整体和个体之间的关系),合成(成员变量,负责构造和销毁)

3,时序图(TimeSequence)



   (1)这是我比较喜欢的图,虽然我在找工作面试的时候被这种图难倒过。但在实际的项目和工作中,这种图非常有用,我用时序图也解决了好多复杂问题。

   (2)它可以帮你理清在某一过程中,各个角色之间的关系和时序。

   (3)我比较喜欢花类的时序图,类下的bar就是一个方法,类与类之间的关系就是他们的调用

   (4)一般不画返回值,除非特别重要。

   (5)虽然没有实践过,但时序图应该也能来分析多线程之间的协同工作。

4,组件(Component)



     (1)在RSA中,Component图指的不是这个,但我觉得这个图叫Component图更合适

     (2)在Java中,一个Package可以称为一个Component,在RCP中,一个Plugin或者一个feature也可称为一个Component。

     (3)这个图主要显示的Component之间的上下层依赖关系,能画出这个图,就对系统的整体架构一目了然。也可用于分析当前的系统架构是否合理

     (4)这个图没有表现出Component和Component之间的具体关联,也就是Component和Component之间的接口。不过这一般是通过Component里面的某个类的某个方法,调用了另一个Component里面的某个类的某个方法(或者API)。根据迪米特法则,这种关联应该越少越好。

5,物理拓扑(PhysicalTopology)和部署(Deployment)



 

    (1)曾经在客户那里Onsite解决一个performance问题的时候,用过这种图,但是是自己手划。

    (2)对理解和分析整个应用,特别是Web应用有一定帮助

6,状态机(State Machine)



    (1)用的不多,但在网络编程和编译器里用的应该很多

    (2)曾在一个xml的parser中尝试用这个图。

7 ,活动图(Activity)



     (1)也没有用过,但是感觉和写程序的流程图(FlowChart)有点类似,只不过引入了多个类。

     (2)时序图和流程图的结合?

猜你喜欢

转载自crazycow.iteye.com/blog/1142978