UML交互图

238 阅读2分钟

顺序图

顺序图是一种展示对象之间交互的 UML(Unified Modeling Language) 图表,它描述了对象之间的消息传递顺序。在数据库系统中,顺序图可以用于说明系统中不同模块或组件之间的交互过程。以下是一个简单的数据库交互的顺序图示例:

假设我们有一个简单的图书馆管理系统,其中包括图书管理员(Librarian)和学生(Student)两个对象。学生可以向图书管理员借书,下面是一个简化的交互顺序图:

+--------------+                +----------------+
|  Librarian   |                |    Student     |
+--------------+                +----------------+
       |                                |
       |      requestBook()             |
       | -----------------------------> |
       |                                |
       |                                |
       |          checkAvailability()   |
       | <----------------------------- |
       |                                |
       |                                |
       |           approveRequest()     |
       | -----------------------------> |
       |                                |
       |                                |
       |            issueBook()         |
       | <----------------------------- |
       |                                |
       |                                |

解释:

  1. Librarian 对象收到 Student 对象的 requestBook() 消息,表示学生想要借书。
  2. Librarian 对象调用 checkAvailability() 方法,检查图书是否可用。
  3. Librarian 对象发送 approveRequest() 消息,表示同意学生借书请求。
  4. Student 对象收到 approveRequest() 消息后,调用 issueBook() 方法,表示领取图书。

通信图/协作图

通信图(Communication Diagram)和协作图(Collaboration Diagram)是 UML(Unified Modeling Language) 中用于描述对象之间协作关系的两种图表。它们都突出了对象之间的消息传递和合作。这两种图表在一些文献中被认为是相似的,而在另一些文献中则认为有细微的差异。以下是一个简单的数据库系统协作图的示例:

+---------------------+          +------------------+
|      Librarian     |          |      Student     |
+---------------------+          +------------------+
| -employeeID: int   |          | -studentID: int  |
| -name: string       |          | -name: string    |
|                     |          | -booksCheckedOut:|
| +checkAvailability()|          |      int         |
| +approveRequest()   |          | +requestBook()   |
| +issueBook()        |          | +returnBook()    |
+---------------------+          +------------------+
      |        |  employs
      |        |
      |        V
      | +---------------------+
      | |        Book         |
      | +---------------------+
      | | -ISBN: string       |
      | | -title: string      |
      | | -author: string     |
      | | -isAvailable: bool  |
      | |                     |
      | | +checkAvailability()|
      | | +requestBook()      |
      | | +returnBook()       |
      | +---------------------+
      |
      | requests
      |
      V
+---------------------+
|      Database       |
+---------------------+
| -books: Collection  |
|                     |
| +addBook(book: Book)|
| +removeBook(book:   |
|   Book)             |
| +getBook(ISBN:      |
|   string): Book     |
+---------------------+

解释:

  • LibrarianStudentBookDatabase 是系统中的四个对象,分别表示图书管理员、学生、图书和数据库。
  • 消息传递用箭头表示,例如,Librarian 对象通过 "employs" 的关系向 Database 对象发起 "addBook" 的消息。
  • 协作图强调对象之间的交互和协作关系,通过消息传递展示了对象之间的协同工作。