Uml 设计拍卖系统的序列图

Uml 设计拍卖系统的序列图,uml,sequence-diagram,Uml,Sequence Diagram,我目前正在为一个拍卖系统制作一个序列图,该系统充当客户和公司之间的中间人 然而,我在系统的设计上遇到了困难,我希望得到一些指导,特别是当我试图收紧UML图时 该系统背后的整个理念是,客户通过一个移动应用程序创建预订,该应用程序上传到拍卖应用程序,公司可以在该应用程序中竞标。如果一家公司中标,拍卖应用程序会给他们提供一个价格范围,他们可以在该范围内给客户报价(即,如果a公司中标修剪客户X的草坪,则拍卖应用程序会为该作业设定15-20美元的价格范围,而a公司的报价必须介于该范围之间)。然后,客户可以

我目前正在为一个拍卖系统制作一个序列图,该系统充当客户和公司之间的中间人

然而,我在系统的设计上遇到了困难,我希望得到一些指导,特别是当我试图收紧UML图时

该系统背后的整个理念是,客户通过一个移动应用程序创建预订,该应用程序上传到拍卖应用程序,公司可以在该应用程序中竞标。如果一家公司中标,拍卖应用程序会给他们提供一个价格范围,他们可以在该范围内给客户报价(即,如果a公司中标修剪客户X的草坪,则拍卖应用程序会为该作业设定15-20美元的价格范围,而a公司的报价必须介于该范围之间)。然后,客户可以接受报价,继续工作或拒绝报价

步骤如下:

 1.   Customer creates a booking on booking app
 1.1  Booking app saves booking (recursive as customer can save more than one 
      booking)
 1.2  Job is uploaded to auction app where other companies can bid for it. In the 
      next step, a company will bid for job.

 In the event of an unsuccessful bid:

 2.   Company makes bid for job on auction application
 2.1  Message sent to company telling them that they failed to win the job

 In the event of a successful bid:

 3.   Company makes bid for job on auction application
 3.1  Message sent to company telling them that they won the job
 4.   Auction app sends price limit message for the job that the company has just 
      won (to prevent overcharging). In the next step, the company needs to set a 
      quote

 In the event that a customer rejects a set quote    

 5.   Company sets quote for the job that they won
 5.1  Auction app sends the quote message to the auction app
 6.   Quote displayed to customer on mobile application
 7.   Customer rejects the quote
 7.1  The rejection message is sent to the auction app
 8.   The rejection message is displayed to the company

 In the event that a customer accepts a set quote 

 9.   Company sets quote for the job that they won
 9.1  Auction app sends the quote message to the auction app
 10.  Quote displayed to customer on mobile application
 11.  Customer accepts the quote
 11.1 The acceptance message is sent to the auction app
 12.  The acceptance message is displayed to the company
 13.  End booking process
这是UML图:

 1.   Customer creates a booking on booking app
 1.1  Booking app saves booking (recursive as customer can save more than one 
      booking)
 1.2  Job is uploaded to auction app where other companies can bid for it. In the 
      next step, a company will bid for job.

 In the event of an unsuccessful bid:

 2.   Company makes bid for job on auction application
 2.1  Message sent to company telling them that they failed to win the job

 In the event of a successful bid:

 3.   Company makes bid for job on auction application
 3.1  Message sent to company telling them that they won the job
 4.   Auction app sends price limit message for the job that the company has just 
      won (to prevent overcharging). In the next step, the company needs to set a 
      quote

 In the event that a customer rejects a set quote    

 5.   Company sets quote for the job that they won
 5.1  Auction app sends the quote message to the auction app
 6.   Quote displayed to customer on mobile application
 7.   Customer rejects the quote
 7.1  The rejection message is sent to the auction app
 8.   The rejection message is displayed to the company

 In the event that a customer accepts a set quote 

 9.   Company sets quote for the job that they won
 9.1  Auction app sends the quote message to the auction app
 10.  Quote displayed to customer on mobile application
 11.  Customer accepts the quote
 11.1 The acceptance message is sent to the auction app
 12.  The acceptance message is displayed to the company
 13.  End booking process

我有3个问题:

 1.   Customer creates a booking on booking app
 1.1  Booking app saves booking (recursive as customer can save more than one 
      booking)
 1.2  Job is uploaded to auction app where other companies can bid for it. In the 
      next step, a company will bid for job.

 In the event of an unsuccessful bid:

 2.   Company makes bid for job on auction application
 2.1  Message sent to company telling them that they failed to win the job

 In the event of a successful bid:

 3.   Company makes bid for job on auction application
 3.1  Message sent to company telling them that they won the job
 4.   Auction app sends price limit message for the job that the company has just 
      won (to prevent overcharging). In the next step, the company needs to set a 
      quote

 In the event that a customer rejects a set quote    

 5.   Company sets quote for the job that they won
 5.1  Auction app sends the quote message to the auction app
 6.   Quote displayed to customer on mobile application
 7.   Customer rejects the quote
 7.1  The rejection message is sent to the auction app
 8.   The rejection message is displayed to the company

 In the event that a customer accepts a set quote 

 9.   Company sets quote for the job that they won
 9.1  Auction app sends the quote message to the auction app
 10.  Quote displayed to customer on mobile application
 11.  Customer accepts the quote
 11.1 The acceptance message is sent to the auction app
 12.  The acceptance message is displayed to the company
 13.  End booking process
  • BidSuccess=False
    (即公司对某项工作的投标失败)时,他们可以选择投标另一项工作并获胜(因此进入
    BidSuccess=True
    分支机构)。是否可以在序列图上表达这一点。如果是,那怎么办
  • 在步骤5-13中似乎有很多冗余,在这里可以更好地设计序列图吗?如何合并5,5.1,6和9,9.1,10,但根据
    CustomerAcceptQuote
    的不同,让它们返回不同的结果
  • 也许我最担心的是我是否已经将loop/alt防护装置安装到位。我想我已经正确地使用了它们,但如果它们不正确,请纠正我
  • 感谢您花时间阅读此文。

    ad3)对于图表中的
    循环
    /
    alt
    ,它们的语义不清楚,主要是因为它们没有正确嵌套(请参阅示例)

    ad 2)至于冗余,您可以在中使用As

    ad 1、ad 2)总体而言,要显示分支,同时避免冗余,而不是坚持UML序列图,您可以使用UML活动图中的功能,如示例所示

    …交互概述图提供了控制流的概述,其中流的节点是交互或交互使用。UML2.4.1规范在某些地方将这些图降级为交互图,而在其他地方交互概览图被称为活动图的专门化

    实际上根据

    ..UML规范不排除不同类型图的混合,例如,组合结构和行为元素以显示嵌套在用例中的状态机。因此,各种图表之间的边界没有严格执行。同时,一些UML工具限制了在处理特定类型的图表时可以使用的可用图形元素集


    免责声明:原始图片(不带绿色和紫色矩形)来自Kirill Fakhroutdinov的在线书籍