系统架构师复习笔记
选择题知识点
分布数据库特性
- 分片透明性:指用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的;
- 复制透明性:指采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点上;
- 逻辑透明性:指局部数据模型透明,用户或应用程序无需知道局部场地使用的是那种数据模型;
- 计算机软件保护条例第十二条:受他人委托开发的软件,其著作权的归属由委托者与受委托者签订书面协议约定,如无书面协议或者在协议中未作明确约定,其著作权属于受委托者(考选择题)。
UML(Unified Modeling Language 统一建模语言)
UML共有九种常见图:用例图、类图、对象图、状态图、活动图、序列图(顺序图、时序图)、协作图、组件图(构件图)、部署图。
- 用例图(UseCase Diagrams)
用例图之间的关系主要有包含、扩展和泛化。
2.1 包含关系。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。
2.2 扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景。
2.3 泛化关系。当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。
-
类图(Class Diagrams)
用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
-
对象图(Object Diagrams)
是UML中用于显示一组对象和他们之间关系的图形化表示。它是类图的一个实例化表示,即在某一特定时间点或状态下,系统中实际存在的对象及其相互关系的快照。
-
状态图 (Statechart Diagrams)
是一种展示状态机的图,用于描述一个对象在其生命周期中的各种状态及状态的转换。状态机是一种行为,它定义了对象如何根据外部或内部事件来改变其状态。一般包含状态、转换、事件、动作和活动。
-
活动图(Activity Diagrams)
它通过一系列活动节点、动作节点、转换节点以及控制流(如顺序流、分支流、合并流等)来表示系统的执行流程。活动图有助于清晰地展示系统中各个活动是如何按照特定的顺序执行的,以及这些活动是如何相互关联的。
-
序列图
序列图通过二维图形表示法来展示对象之间的交互过程。在序列图中,纵向轴代表时间轴,时间沿竖线向下延伸;横向轴代表在协作中各独立对象的类元角色,这些对象通过生命线来表示。生命线是一条垂直的虚线,表示对象在交互过程中的存在时间。对象间的消息传递通过从发送者生命线到接收者生命线的箭头来表示,这些箭头指明了消息传递的方向和时间点。
-
协作图(Collaboration Diagram)
也称为合作图或通信图,是UML(Unified Modeling Language,统一建模语言)中的一种交互图。它主要关注对象在参与具体交互时,对象之间如何链接以及传递什么消息。协作图按时间和空间的顺序描述系统元素之间的交互和关系,侧重于描述消息的组成关系。
-
组件图
组件图是用来表示系统中组件与组件之间关系的模型图。它通过显示系统的构件以及接口等之间的接口关系,形成系统的更大的一个设计单元。组件图不仅关注组件的外部接口和行为,还通过组件的封装性、可替换性和可重用性来优化系统设计。
-
部署图
部署图是一种结构图,通过图形化的方式展示系统中组件、节点和连接之间的物理部署关系。它关注的是系统运行时,软件组件如何在硬件节点上进行部署和配置,以及这些组件之间的交互方式。
软件架构风格
- 数据流风格
1.1 批处理架构风格
1.2 管道/过滤风格
软件架构开发
- 基于软件架构的开发(Architecture Based Software Development,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用视角和视图 来描述软件架构,采用用例和质量属性场景来描述需求。