`
crazycow
  • 浏览: 27458 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

 
阅读更多

这两天为了画类图,非要装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)时序图和流程图的结合?

  • 大小: 83.6 KB
  • 大小: 81.2 KB
  • 大小: 24 KB
  • 大小: 289.4 KB
  • 大小: 93.4 KB
  • 大小: 81 KB
  • 大小: 82.1 KB
  • 大小: 44.6 KB
分享到:
评论

相关推荐

    UML和模式应用(架构师必备).part06.rar

    12.3 完成所有分析和建模工作是否需要几个星期 第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行...

    关于5000+站点的scrapy爬虫开发,涉及一些技术架构搭建以及各种反爬方案,详见readme文件.zip

    爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP...

    UML和模式应用(架构师必备).part01.rar

    12.3 完成所有分析和建模工作是否需要几个星期 第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行...

    UML和模式应用(架构师必备).part07.rar

    12.3 完成所有分析和建模工作是否需要几个星期 第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行...

    UML和模式应用(架构师必备).part02.rar

    12.3 完成所有分析和建模工作是否需要几个星期 第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行...

    UML和模式应用(架构师必备).part03.rar

    12.3 完成所有分析和建模工作是否需要几个星期 第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行...

    UML和模式应用(架构师必备).part04.rar

    12.3 完成所有分析和建模工作是否需要几个星期 第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行...

    UML和模式应用(架构师必备).part08.rar

    12.3 完成所有分析和建模工作是否需要几个星期 第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行...

    UML和模式应用(架构师必备).part05.rar

    12.3 完成所有分析和建模工作是否需要几个星期 第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 案例研究中应该关注的层 13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行...

    调查方案设计的内容.docx

    设计方案包括设计要求分析、系统功能分析、原理设计方案几个过程。该阶段主要是从分析需求出发,确定实现产品功能和性能所需要的总体对象(技术系统),决定技术系统,实现产品的功能与性能到技术系统的映像,并对...

    软件工程知识点

    它包含:软件定义、软件开发、软件运行维护三个时期,并可以细分为可行性研究、项目计划、需求分析、概要设计、详细设计、编码实现与单元测试、系统集成测试、系统确认验证、系统运行与维护等几个阶段。 软件定义...

    常规Java工具,算法,加密,数据库,面试题,源代码分析,解决方案.zip

    实战项目经验:分享了几个经典的Java项目,解析了项目的架构设计和核心技术点。 面试经验和技巧:整理了常见的Java面试问题,并给出了答题建议和技巧。 代码和项目实例:提供了多个Java项目的源代码,方便学习者参考...

    c#学习笔记.txt

    如前所述,我是一个狮子座男人,一度我认为学习Java会使我看起来与众不同,可是几个月以后我放弃了这个选择,我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#,请不要问我为何做出这样的选择,很多人认为...

    深入理解Android:卷I--详细书签版

    在本章的拓展思考部分,笔者提出了几个问题,旨在激发读者深入思考和学习Android的欲望。    本书特色  笔者认为,本书最大的特点在于,较全面、系统、深入地讲解了Android系统中的几大重要组成部分的工作原理...

    level1~2题库-考试通.xlsx

    这有几个缺点,客户需要在销售代表忙于处理数据时等待,有时需要询问以前询问过的信息。这样就降低了客户满意度并增加了通话时间。这是公司浪费资源同时又引起客户不满的罕见例子之一。 该解决方案要求识别频繁的...

    Reversing:逆向工程揭密

    第一次使用逆向工程工具也是在2001年,当时从网上下载了Numega SoftICE,具体哪个版本已经记不清了,在家里的旧电脑上折腾了好几天,直到系统崩溃才罢手。 之后呢,只是零零星星地看过一些相关的资料。因此,当初...

    asp.net知识库

    与正则表达式相关的几个小工具 你真的了解.NET中的String吗? .NET中的方法及其调用(一) 如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文编码问题的小工具 慎用const...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

Global site tag (gtag.js) - Google Analytics