📜  OOAD-UML分析模型(1)

📅  最后修改于: 2023-12-03 15:03:22.542000             🧑  作者: Mango

OOAD-UML分析模型

简介

OOAD,即面向对象分析与设计,在软件开发中扮演着重要的角色。面向对象分析的目的是发现系统进行哪些动作,需要哪些对象或元素参与,以及它们之间的关系;面向对象设计的目的是创建这些对象或元素的结构和行为的规范。

UML(Unified Modeling Language)是最常用的面向对象建模语言之一,经常用于展示和描述面向对象系统的结构和行为。在OOAD中,UML通常用于阐述分析模型和设计模型,包括用例图、类图、序列图等等。

分析模型中的UML

在OOAD中,分析模型作为UML的一个应用领域,通常用于描述系统的需求与需求说明。在分析模型中,UML主要包括以下内容:

用例图

用例图是用于展示系统与其环境间交互的高层次视图。它描述了系统的所有用例场景,用例之间的关系,以及参与者(Actor)和他们的关系。

比如一款在线购物系统的用例图中,常常可以看到许多用例,比如用户注册、添加商品、删除商品等等。系统的参与者则有顾客、管理员等。

@startuml
actor customer
actor admin

usecase register
usecase add_item
usecase delete_item

customer --> (register)
customer --> (add_item)
customer --> (delete_item)

admin --> (add_item)
admin --> (delete_item)
@enduml

用例图示例

类图

类图用于展示系统内部的类以及它们之间的关系。通常,它可以用于描述系统的信息和业务模型。

例如,在网络社交系统的类图中,可以看到用户(User)、社交关系(Social Relation)以及消息(Message)等类之间的关系。

@startuml
class User {
  username: string
  password: string
  email: string
}

class SocialRelation {
  user1: User
  user2: User
  relation_type: string
}

class Message {
  sender: User
  receiver: User
  content: string
}

User "1" <--> "n" SocialRelation
Message "1" *-- "1" User
@enduml

类图示例

序列图

序列图用于展示对象间的交互。在序列图中,消息交互被安排在一个时间序列上,以此展示对象间的动态情况。

例如,在一个简单的电商平台下单后支付的序列图中,就可以看到用户(User)提交订单、系统(System)核对订单、调用支付网关(Payment Gateway)的过程。

@startuml
actor user
autonumber
participant system
participant payment_gateway
right of user
user -> system: Place order
activate system
system -> system: Verify order
system -> payment_gateway: Call payment gateway
activate payment_gateway
payment_gateway -> payment_gateway: Verify payment
payment_gateway --> system: Call success
system --> user: Order submitted
deactivate system
deactivate payment_gateway
@enduml

序列图示例

总结

OOAD中的UML分析模型为开发人员提供了一种清晰、规范的框架来描述系统需求和整体设计构想。更多的UML图表还包括活动图、状态机图、通信图等等,可以用于描述分析模型或设计模型的不同方面。