这两天为了画类图,非要装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
分享到:
相关推荐
系统架构可以分为几个主要的视图:逻辑架构、开发架构、运行架构和数据架构。 逻辑架构关注的是系统的功能布局,即软件如何满足用户的需求。它将系统拆分为多个模块,每个模块负责一个特定的子功能,并通过清晰的...
大纲涵盖了以下几个主要部分: 1. **基础知识**:这部分包括计算机体系结构、操作系统、数据管理、网络技术等基础理论。考生需要理解计算机硬件的工作原理、各种操作系统的特点和选择、数据库管理系统的基本概念...
根据“系统架构师历年试题分析与解答”的标题和描述,我们可以归纳出几个重要的知识点: 1. **系统架构基础知识**:包括系统架构的概念、设计原则、常见架构模式等。 2. **软件工程原理**:涵盖了需求分析、设计、...
### 历年系统架构设计师考试试题分类精解——案例分析与论文篇 #### 第1章:案例分析 **试题1解析** ##### 背景介绍 本试题以某市级公安机关开发的一套特种车辆管理与监控系统为例,旨在提高特种车辆管理的效率和...
系统架构设计是软件工程中的关键环节,它涉及到将业务需求转化为技术解决方案的过程。在第4版中,作者可能会深入讨论以下几个重要知识点: 1. **架构定义与角色**:解释系统架构的概念,包括架构模型、架构视图和...
在分布式系统架构设计中,有几个核心概念是必须了解的。首先是服务化,即通过将业务功能拆分成独立的服务,每个服务都可以独立部署和扩展,降低了系统的耦合度。其次是数据一致性,例如使用Paxos、Raft等一致性算法...
- **架构风格**:这部分内容列举了几种常见的架构风格,如管道/过滤器风格、数据抽象和面向对象、分层系统、仓库和知识库、C2风格、C/S和B/S风格等。 - **特定领域软件体系结构(DSSA)**:专注于特定领域的软件架构...
在微服务架构下构建自动化测试和持续集成的工具链需要考虑以下几个方面: 1. **服务测试**: - **单元测试**:针对单个服务或组件的功能进行测试,常用的工具包括JUnit和TestNG。 - **集成测试**:验证不同服务...
在MES系统的架构设计中,类图通常会展示以下几个关键组成部分: 1. **生产调度层**:这是MES系统的顶层,负责制定和调整生产计划,根据订单需求、库存情况以及设备状态等信息,合理安排生产线的工作。 2. **过程...
- **inotify+rsync触发式同步数据**: inotify是一个Linux内核功能,可以监控文件系统的改变,并通过rsync工具实时同步数据变化到其他服务器,确保集群中的数据一致性。 - **Sersync部署**: Sersync是一种用于服务器...
UML(统一建模语言)是架构设计中常用的工具,它可以帮助架构师表达系统的结构和行为。UML的使用应根据项目需求来选择恰当的模型,比如核心用例模型用于描述系统的功能需求,分析模型用于描述系统的数据结构,设计...
应用架构定义了企业各业务流程所依赖的应用系统及其相互关系,数据架构则关注如何管理和组织企业的数据资产,而基础设施架构涉及硬件、网络、操作系统等IT资源的布局和配置。 在企业信息化过程中,IT架构规划扮演着...
在IT行业中,架构图是一种至关重要的工具,它用于可视化地表达系统的组成部分、它们之间的关系以及数据和控制流的方向。在给定的压缩包文件中,包含了一些知名的互联网公司的架构图,如“百度百科”、“淘宝量子”等...
10. **Scrapy框架**:Scrapy是一个常用的Python爬虫框架,提供了完整的爬虫开发环境,包括URL调度、下载器中间件、爬虫中间件、Item管道等模块,简化了爬虫系统的开发。 以上是对"4.爬虫系统架构设计方案1"可能涉及...
在源码中,你可以期待看到以下几个方面的知识点: 1. **面向对象编程**:观察类的设计,如何定义接口、继承、多态等面向对象概念的运用。 2. **异常处理**:查看源码中如何使用try-catch语句处理可能出现的错误,...
软件架构设计是软件开发过程中的一个重要环节,它涉及到软件系统的整体架构设计、技术选型、性能优化、安全性设计等方面。软件架构设计的思想与模式包括: * 技术负责,解决方案的提供者 * 与项目经理合作,制定...
整体框架图通常会涵盖运维服务的各个方面,包括但不限于以下几个关键领域: 1. **监控管理**:这是IT运维的基础,通过监控系统性能、网络状态、硬件健康和应用运行情况,及时发现并预警可能的问题,确保系统的稳定...
标题“常用系统相关文档”指的是一个集合,其中包含与计算机系统相关的各种文档,可能是操作指南、API参考、设计规范或用户手册等。这些文档对于理解并有效地操作或开发系统至关重要。描述中的“NULL”意味着没有...
虽然文档中包含了一些难以辨认的符号和字符,但根据上下文和常见微服务架构的概念,我们可以提炼出以下几个核心知识点: 1. **微服务架构的基本概念及组成部分** 2. **微服务架构的关键技术** 3. **微服务架构的...