📅  最后修改于: 2023-12-03 15:03:22.542000             🧑  作者: Mango
OOAD,即面向对象分析与设计,在软件开发中扮演着重要的角色。面向对象分析的目的是发现系统进行哪些动作,需要哪些对象或元素参与,以及它们之间的关系;面向对象设计的目的是创建这些对象或元素的结构和行为的规范。
UML(Unified Modeling Language)是最常用的面向对象建模语言之一,经常用于展示和描述面向对象系统的结构和行为。在OOAD中,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图表还包括活动图、状态机图、通信图等等,可以用于描述分析模型或设计模型的不同方面。