11.18

  1. 类图(Class Diagram)
    • 用途:类图是 UML 中最常用的图之一,用于描述系统中的类、类的属性、操作以及类之间的关系。它是对系统静态结构的一种直观展示,有助于理解系统的架构和设计模式。
    • 元素构成:
      • 类(Class):用矩形表示,分为三层,最上层是类名,中层是属性(格式为 [可见性] 属性名:类型,如 “- name:String” 表示私有属性 name,类型为字符串),下层是操作(格式为 [可见性] 操作名 (参数列表): 返回类型,如 “+ getAge ():int” 表示公有操作,无参数,返回整数)。
      • 接口(Interface):带有《interface》关键字的矩形,主要包含操作签名,没有属性(特殊情况除外)。类实现接口用带空心三角形箭头的虚线表示,箭头从类指向接口。
      • 关系:包括关联(用直线表示,双向无箭头,单向有箭头,可表示多重性如 “1..*”)、聚合(空心菱形加直线,部分可独立存在)、组合(实心菱形加直线,部分依赖整体生命周期)、依赖(虚线箭头,用于表示一个类在局部使用另一个类)。
    • 应用场景:在软件设计的各个阶段都有应用,如初始架构设计时确定类和关系,代码实现阶段作为参考,维护阶段用于理解系统结构。
  2. 对象图(Object Diagram)
    • 用途:对象图是类图的一个实例,它展示了在某一特定时刻系统中对象的状态以及对象之间的关系,用于对系统的静态结构进行实例层面的描述。
    • 元素构成:
      • 对象(Object):用矩形表示,对象名通常是 “对象名:类名” 的形式,如 “student1:Student”。对象的属性会有具体的值,而不是像类图中那样只有类型定义。
      • 关系:和类图类似,包括关联、聚合、组合等关系,只是这里是对象之间的实际连接,展示了具体的对象引用。
    • 应用场景:在测试和调试阶段帮助理解对象之间的实际交互,验证类图设计的正确性,以及在向非技术人员解释系统运行时的对象状态。
  3. 用例图(Use - Case Diagram)
    • 用途:用例图从用户角度描述系统功能,展示了系统中的参与者(Actor)与用例(Use - Case)之间的关系,用于捕捉系统的功能需求。
    • 元素构成:
      • 参与者(Actor):用小人形状表示,可以是人员、外部系统等与系统交互的实体。例如,在一个电商系统中,“顾客”“商家” 都是参与者。
      • 用例(Use - Case):用椭圆表示,是系统提供的功能单元,如 “购买商品”“管理库存” 等。
      • 关系:包括关联(参与者与用例之间的连接,表示参与者执行用例)、泛化(用例之间或参与者之间的继承关系,如 “VIP 顾客” 是 “顾客” 的泛化,“高级购买商品” 是 “购买商品” 的泛化)、包含(一个用例包含另一个用例,如 “购买商品” 包含 “添加到购物车”)、扩展(一个用例扩展另一个用例,如 “支付” 可以扩展 “使用优惠券支付”)。
    • 应用场景:在需求分析阶段,用于和用户沟通系统功能,确定系统边界和功能范围,以及作为后续用例详细描述和设计的基础。
  4. 顺序图(Sequence Diagram)
    • 用途:顺序图展示了对象之间的交互顺序,按照时间顺序描绘了对象之间消息的发送和接收过程,用于描述系统的动态行为。
    • 元素构成:
      • 对象(Object):用矩形表示,对象名在矩形顶部。对象排列在图的顶部,垂直方向表示时间轴。
      • 消息(Message):用带箭头的线条表示,从消息发送方指向接收方。消息可以是同步(发送方等待接收方返回结果)或异步(发送方不等待)的,同步消息用实心箭头,异步消息用空心箭头。例如,在一个订单处理顺序图中,“顾客” 发送 “提交订单” 消息给 “系统” 就是一个同步消息。
      • 生命线(Lifeline):用垂直虚线表示,代表一个对象在一段时间内的存在,从对象创建到销毁。
    • 应用场景:在详细设计阶段,用于描述对象之间的交互流程,特别是在多对象协作完成一个功能的场景中,帮助开发人员理解对象之间的通信顺序,对实现系统的交互逻辑很有帮助。
  5. 通信图(Communication Diagram)
    • 用途:通信图也用于描述对象之间的交互关系,但它更侧重于展示对象之间的连接以及消息的传递路径,强调对象之间的结构关系。
    • 元素构成:
      • 对象(Object):和顺序图类似,用矩形表示。
      • 链接(Link):用直线连接对象,表示对象之间的关联。
      • 消息(Message):用带编号的箭头表示在对象之间传递的消息,编号表示消息的顺序。例如,“1: [顾客]→[系统] 提交订单”,表示这是第一个消息,由顾客发送给系统。
    • 应用场景:在分析和设计阶段,用于在已经确定了对象关系的基础上,进一步描述对象之间如何通过消息进行交互,对于理解系统的协作结构很有帮助,并且可以作为实现对象间通信代码的基础。
  6. 状态图(State Diagram)
    • 用途:状态图用于描述一个对象在其生命周期内可能处于的状态,以及状态之间的转换条件和转换事件,用于对系统的动态行为进行状态层面的分析。
    • 元素构成:
      • 状态(State):用圆角矩形表示,代表对象的一种状态,如 “空闲”“忙碌” 等。
      • 转换(Transition):用带箭头的线条表示,从一个状态指向另一个状态,箭头上标注触发转换的事件和条件。例如,“[收到订单] / 库存足够→忙碌”,表示当收到订单且库存足够时,对象从 “空闲” 状态转换到 “忙碌” 状态。
      • 初始状态(Initial State)和最终状态(Final State):初始状态用实心圆表示,最终状态用带实心圆的圆圈表示,分别表示对象的起始状态和结束状态。
    • 应用场景:在对具有复杂状态变化的对象进行设计和分析时很有用,如在控制系统、工作流系统等中,用于描述对象(如设备、任务流程)的状态转换过程,确保系统能够正确地处理各种状态变化。
  7. 活动图(Activity Diagram)
    • 用途:活动图主要用于描述系统的动态行为,重点是从一个活动到另一个活动的流程控制,类似于流程图,可展示业务流程、操作步骤或算法的执行过程。
    • 元素构成:
      • 活动(Activity):用圆角矩形表示,代表一个具体的操作或任务,如 “登录系统”“查询数据”。
      • 控制流(Control Flow):用箭头表示,连接各个活动,确定活动的执行顺序。
      • 决策点(Decision):用菱形表示,用于表示流程中的分支情况,根据不同条件走向不同分支,分支上标注条件。
      • 起始点(Initial Node)和结束点(Final Node):起始点是实心圆,结束点是圆圈里加实心圆,分别代表流程的开始和结束。
      • 并发(Concurrency):用同步条(水平或垂直粗线)划分并发区域,表示多个活动同时进行。
      • 泳道(Swimlane):用于划分不同责任区域或对象,每个泳道代表一个参与者或子系统,便于理解多角色参与的流程。
    • 应用场景:在业务分析、系统设计和流程建模中广泛应用,用于理解业务流程、设计算法流程,以及在开发涉及多任务并行和多角色协作的系统时帮助确定流程控制。
  8. 部署图(Deployment Diagram)
    • 用途:部署图用于描述系统的物理架构,展示软件系统如何部署到硬件环境中,包括硬件设备、软件组件以及它们之间的连接关系。
    • 元素构成:
      • 节点(Node):用立方体表示,可以是服务器、客户端、设备等硬件实体。节点内部可以包含软件组件。
      • 连接(Connection):用线条表示,用于连接节点,展示硬件之间的通信路径,如网络连接等。
      • 软件组件(Software Component):在节点内部用矩形等形状表示,代表部署在硬件上的软件单元,如应用程序、数据库等。
    • 应用场景:在系统部署阶段,用于规划系统的硬件架构和软件安装位置,以及确定系统各部分之间的通信方式,帮助系统管理员和架构师进行系统的实际部署和维护。
  9. 组件图(Component Diagram)
    • 用途:组件图用于描述系统的软件组件以及它们之间的依赖关系,从软件架构的角度展示系统的结构,有助于理解系统的模块划分和集成方式。
    • 元素构成:
      • 组件(Component):用带有两个小矩形在左边的大矩形表示,组件可以是可执行程序、库、数据库等软件单元。
      • 接口(Interface):在组件上用小圆圈表示接口,用于展示组件之间的交互点。
      • 依赖关系(Dependency):用带箭头的虚线表示,从依赖组件指向被依赖组件,表明组件之间的依赖情况。
    • 应用场景:在软件架构设计和系统集成阶段,用于确定软件组件的划分、组件之间的接口和依赖关系,帮助开发团队进行软件的开发和集成工作。
  10. 包图(Package Diagram)
    • 用途:包图用于组织和管理 UML 模型中的元素,将相关的类、接口、组件等元素组合成包,展示包之间的关系,有助于大型系统的模块化管理。
    • 元素构成:
      • 包(Package):用文件夹形状表示,包内可以包含类、接口、其他包等元素。
      • 关系:包括依赖(包之间的依赖关系,用带箭头的虚线表示)、导入(一个包导入另一个包中的元素,类似于编程语言中的导入机制)。
    • 应用场景:在大型软件项目中,用于对系统进行分层和模块划分,方便团队协作开发和维护,同时也便于对系统的整体架构进行宏观管理。
  11. 定时图(Timing Diagram)
    • 用途:定时图主要用于描述对象状态随时间的变化情况,以及对象之间交互的时间特性,侧重于时间维度的展示。
    • 元素构成:
      • 对象(Object):用矩形表示,对象排列在图的顶部。
      • 状态线(State Line):用水平线条表示对象的状态变化,线条上标注状态名称和时间区间。
      • 消息(Message):用垂直箭头表示对象之间的消息传递,箭头的长度和位置表示消息传递的时间点和持续时间。
    • 应用场景:在对系统的实时性和时间敏感的特性进行分析和设计时很有用,如在实时控制系统、通信系统等领域,用于描述信号的发送和接收时间、设备状态的时间变化等。
posted @ 2024-12-31 15:15  酥饼馅红豆沙  阅读(28)  评论(0)    收藏  举报