ЁЯУШ рд╡рд┐рд╕реНрддреГрдд рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛: рд╡рд┐рдХрд╛рд╕ рдЪрд░рдгреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреНрд▓рд╛рд╕ рдЖрд░реЗрдЦ

ЁЯУШ рдкрд░рд┐рдЪрдп: рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШрдЯрдХреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рддрдХ тАФ рдХреНрд▓рд╛рд╕ рдЖрд░реЗрдЦреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдХреНрд▓рд╛рд╕ рдЖрд░реЗрдЦ рд╕рд┐рд░реНрдл рд╕реНрдерд┐рд░ рдЪрд┐рддреНрд░рдг рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ тАФ рд╡реЗ рдЙрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рдЬреАрд╡рдВрдд рдирдХреНрд╢реЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╣рд░ рдЪрд░рдг рдореЗрдВ, рд╢реБрд░реБрдЖрддреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рд╕реЗ рд▓реЗрдХрд░ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рд░рдЦрд░рдЦрд╛рд╡ рддрдХ, рдХреНрд▓рд╛рд╕ рдЖрд░реЗрдЦ рдХреЗ рдкреАрдЫреЗ рд╡рд┐рд╕реНрддрд╛рд░, рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЙрджреНрджреЗрд╢реНрдп рдореЗрдВ рднрд╛рд░реА рдмрджрд▓рд╛рд╡ рдЖрддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддреА рдмрдиреА рд░рд╣рддреА рд╣реИ: рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШрдЯрдХ.

рд╕рд╛рдорд╛рдиреНрдп рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреНрд▓рд╛рд╕ рдХреЛ рджреЗрдЦреЗрдВ тАФ рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рдкреНрд░реЛрд╕реЗрд╕рд░, рдкреЗ рдкреИрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░, рдФрд░ рд╕реНрдЯреНрд░рд╛рдЗрдк рдкреНрд░реЛрд╕реЗрд╕рд░ тАФ рдЕрдХреНрд╕рд░ рдХреНрд▓рд╛рд╕ рдЖрд░реЗрдЦ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдореЙрдбрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рддрдХ рд╢реБрд░реБрдЖрддреА рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЧрд╣рд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ: рдПрдХреАрдХрд░рдг рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреА рдХрдореАред рдЗрди рдХреНрд▓рд╛рд╕реЗрд╕ рдХрд╛ рдЕрд▓рдЧрд╛рд╡ рдореЗрдВ рдЕрд╕реНрддрд┐рддреНрд╡ рд╣реИ, рдЪрдпрди, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╛ рд░рдирдЯрд╛рдЗрдо рд▓рдЪреАрд▓рд╛рдкрди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдбрд┐рдЬрд╛рдЗрди рдХрдареЛрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рд▓реЗрдЦ рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕ рдЖрд░реЗрдЦреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╡рд┐рдХрд╛рд╕ рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП тАФ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПрд╡рд┐рдХрд╛рд╕ рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде тАФ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рдореЙрдбрд▓ рд╕реЗ рд▓реЗрдХрд░ рд╡рд┐рд╕реНрддреГрдд, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддреИрдпрд╛рд░ рдбрд┐рдЬрд╛рдЗрди рддрдХ тАФ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рд░рдгрдиреАрддрд┐рдХ рд╕рдВрдмрдВрдзрдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдПрдХ рдЯреВрдЯреА рд╣реБрдИ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдПрдХ рдПрдХреАрдХреГрдд, рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ: рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЙрдкрдкреНрд░рдгрд╛рд▓реА тАФ рдФрд░ рджрд┐рдЦрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рд░рдгрдиреАрддрд┐ рдкреИрдЯрд░реНрди, рдлреИрдХреНрдЯреНрд░реА рдкреИрдЯрд░реНрди, рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд╡реЗрд╢рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд▓рд╛рд╕реЗрд╕ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓, рд░рдЦрд░рдЦрд╛рд╡ рдпреЛрдЧреНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдкрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд▓рд╛рдВрдЯрдпреВрдПрдордПрд▓ рдЖрд░реЗрдЦрдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдбрд┐рдЬрд╛рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ:

  • рд╕реНрдерд┐рд░ рдХреНрд▓рд╛рд╕ рд╕рдВрдмрдВрдзреЛрдВ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗрдВред
  • рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рд░рдирдЯрд╛рдЗрдо рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХреЛ рдореЙрдбрд▓ рдХрд░реЗрдВред
  • рд▓рдЪреАрд▓реЗ, рд╡рд┐рд╕реНрддрд╛рд░реНрдп рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВред

рдЕрдВрдд рддрдХ, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдХреНрд▓рд╛рд╕ рдбрд╛рдпрдЧреНрд░рд╛рдо рдХреЗрд╡рд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИ тАФ рдпрд╣ рдПрдХ рд╣реИрдЖрдкрдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреА рджреГрд╖реНрдЯрд┐.

рдХреНрд▓рд╛рд╕ рдбрд╛рдпрдЧреНрд░рд╛рдо рд╡рд╕реНрддреБ-рдЕрднрд┐рдореБрдЦреА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдореЙрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА UML рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЙрдирдХрд╛┬ард╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рд╕реНрддрд░┬ардХрд╛рдлреА рддрд░реАрдХреЗ рд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ┬ард╡рд┐рдХрд╛рд╕ рдЪрд░рдгред рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ рдЖрдкрдХреЛ рдЪрд╛рд░ рдореБрдЦреНрдп рдЪрд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛рдЪрд╛рд░ рдореБрдЦреНрдп рдЪрд░рдгреЛрдВ┬ард╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдФрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕ рдбрд╛рдпрдЧреНрд░рд╛рдо рдХреИрд╕реЗ рдЗрд╕рдХреЗ рдЕрдиреБрд░реВрдк рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред


ЁЯзй 1.┬ардЪрд░рдг 1: рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдФрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рдбрд┐рдЬрд╝рд╛рдЗрди (рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг)

ЁЯОп рдЙрджреНрджреЗрд╢реНрдп:

  • рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рдХреНрд╖реЗрддреНрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВред

  • рдореБрдЦреНрдп рдПрдВрдЯрд┐рдЯреАрдЬрд╝ рдФрд░ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдиреЗрдВред

  • рд╕реНрдЯреЗрдХрд╣реЛрд▓реНрдбрд░реНрд╕ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╕реБрдЧрдо рдмрдирд╛рдПрдВред

ЁЯФН рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:

  • рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВ┬ардХреНрд╖реЗрддреНрд░ рдПрдВрдЯрд┐рдЯреАрдЬрд╝┬ардФрд░┬ард╕рдВрдмрдВрдз.

  • рдХреЛрдИ рд╡рд┐рдзрд┐рдпрд╛рдБ рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдирд╣реАрдВ (рдпрд╛ рдиреНрдпреВрдирддрдо)ред

  • рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ┬ард╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг,┬ард╕рдВрдмрдВрдз,┬ардПрдЧреНрд░реАрдЧреЗрд╢рди, рдФрд░┬ард╕рдВрдпреЛрдЬрди.

  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг (рдЬреИрд╕реЗ, рдкрд╣реБрдБрдЪ рд╕рдВрд╢реЛрдзрдХ, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░) рд╕реЗ рдмрдЪреЗрдВред

ЁЯУМ рдЙрджрд╛рд╣рд░рдг: рдИ-рдХреЙрдорд░реНрд╕ рд╕рд┐рд╕реНрдЯрдо (рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд╕реНрддрд░)

@startuml
' рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рдХреНрд▓рд╛рд╕ рдЖрд░реЗрдЦ - рдЪрд░рдг 1: рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ

class рдЧреНрд░рд╛рд╣рдХ {
  +рдирд╛рдо: String
  +рдИрдореЗрд▓: String
}

class рдЙрддреНрдкрд╛рдж {
  +рдирд╛рдо: String
  +рдореВрд▓реНрдп: Decimal
}

class рдЖрджреЗрд╢ {
  +рдЖрджреЗрд╢ рддрд┐рдерд┐: Date
  +рд╕реНрдерд┐рддрд┐: String
}

рдЧреНрд░рд╛рд╣рдХ "1" -- "0..*" рдЖрджреЗрд╢ : рд░рдЦрддрд╛ рд╣реИ
рдЖрджреЗрд╢ "1" -- "1..*" рдЙрддреНрдкрд╛рдж : рд╕рдорд╛рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ
рдЙрддреНрдкрд╛рдж "1" -- "0..*" рдЖрджреЗрд╢ : рдмреЗрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ

note right of рдЧреНрд░рд╛рд╣рдХ
  рдЙрддреНрдкрд╛рдж рдЦрд░реАрджрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ
end note

note right of рдЙрддреНрдкрд╛рдж
  рднреМрддрд┐рдХ рдпрд╛ рдбрд┐рдЬрд┐рдЯрд▓ рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рд╡рд╕реНрддреБ
end note

note right of рдЖрджреЗрд╢
  рдПрдХ рд▓реЗрдирджреЗрди рд░рд┐рдХреЙрд░реНрдб
end note

@enduml

тЬЕ┬ардЙрдкрдпреЛрдЧ рдХреЗрд╕: рд╕реНрдЯреЗрдХрд╣реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ, рдбреЛрдореЗрди рдореЙрдбрд▓ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдПрдВ, рд╡реНрдпрд╛рдкрд╛рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░реЗрдВред


ЁЯз▒ 2.┬ардЪрд░рдг 2: рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдбрд┐рдЬрд╛рдЗрди (рдордзреНрдп рдЪрд░рдг)

ЁЯОп рдЙрджреНрджреЗрд╢реНрдп:

  • рдбреЛрдореЗрди рдореЙрдбрд▓ рдХреЛ рдЕрдзрд┐рдХ рд╕рдВрд░рдЪрд┐рдд рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдмрджрд▓реЗрдВред

  • рдкрд░рд┐рдЪрдп рджреЗрдВ┬ард▓рдХреНрд╖рдг,┬ардореВрд▓ рд╕рдВрдЪрд╛рд▓рди, рдФрд░┬ард╕рдВрдмрдВрдз.

  • рдкрд╣рдЪрд╛рдирдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ┬ардЗрдВрдЯрд░рдлреЗрд╕,┬ардЕрдореВрд░реНрдд рдХреНрд▓рд╛рд╕реЗрд╕, рдФрд░┬ардбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди.

ЁЯФН рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ:

  • рдЬреЛрдбрд╝реЗрдВ┬ард▓рдХреНрд╖рдг┬ардФрд░┬ардСрдкрд░реЗрд╢рди┬а(рдиреНрдпреВрдирддрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде)ред

  • рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ┬ардПрдмрд╕реНрдЯреНрд░реИрдХреНрдЯ рдХреНрд▓рд╛рд╕реЗрд╕┬ардФрд░┬ардЗрдВрдЯрд░рдлреЗрд╕.

  • рдкрд░рд┐рдЪрдп рджреЗрдВ┬ардмрд╣реБрд▓рддрд╛┬ардФрд░┬ардиреЗрд╡рд┐рдЧреЗрдмрд┐рд▓рд┐рдЯреА.

  • рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ┬ардЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпрд╛рдБ┬ардФрд░┬ард╕рдВрдЧрдарди.

ЁЯУМ рдЙрджрд╛рд╣рд░рдг: рдИ-рдХреЙрдорд░реНрд╕ рд╕рд┐рд╕реНрдЯрдо (рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реНрддрд░)

@startuml
' рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдХреНрд▓рд╛рд╕ рдбрд╛рдпрдЧреНрд░рд╛рдо - рдЪрд░рдг 2: рд╡рд┐рд╢реНрд▓реЗрд╖рдг

@startuml
' рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдХреНрд▓рд╛рд╕ рдбрд╛рдпрдЧреНрд░рд╛рдо - рдЪрд░рдг 2: рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдПрдмрд╕реНрдЯреНрд░реИрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдСрд░реНрдбрд░ {
  - orderID: String
  - orderDate: Date
  - status: String
  +calculateTotal(): Decimal
  +validate(): Boolean
  +save(): void
}

class рдЧреНрд░рд╛рд╣рдХ {
  - customerID: String
  - name: String
  - email: String
  +addOrder(order: Order): void
  +getOrders(): List<Order>
}

class рдЙрддреНрдкрд╛рдж {
  - productID: String
  - name: String
  - price: Decimal
  - stockQuantity: Integer
  +isInStock(): Boolean
  +updateStock(amount: Integer): void
}

class рдСрд░реНрдбрд░рдЖрдЗрдЯрдо {
  - quantity: Integer
  - unitPrice: Decimal
  +getSubtotal(): Decimal
}

рдЧреНрд░рд╛рд╣рдХ "1" -- "0..*" рдСрд░реНрдбрд░ : рд░рдЦрддрд╛ рд╣реИ
рдСрд░реНрдбрд░ "1" -- "1..*" рдСрд░реНрдбрд░рдЖрдЗрдЯрдо : рд╕рдорд╛рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ
рдСрд░реНрдбрд░рдЖрдЗрдЯрдо "1" -- "1" рдЙрддреНрдкрд╛рдж : рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдЙрддреНрдкрд╛рдж "1" -- "0..*" рдСрд░реНрдбрд░рдЖрдЗрдЯрдо : рдЙрдкрд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИ

рдЗрдВрдЯрд░рдлреЗрд╕ рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ {
  +processPayment(amount: Decimal): Boolean
}

рдСрд░реНрдбрд░ "1" -- "1" рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ : рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

@enduml

тЬЕ┬ардЙрдкрдпреЛрдЧ рдХреЗрд╕: рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рдореАрдХреНрд╖рд╛, рдЯреАрдо рд╕рдордиреНрд╡рдп, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдирд┐рд░реНрдгрдпред


ЁЯФз 3.┬ардЪрд░рдг 3: рд╡рд┐рд╕реНрддреГрдд рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдЕрдВрддрд┐рдо рдЪрд░рдг)

ЁЯОп рдЙрджреНрджреЗрд╢реНрдп:

  • рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░реА рдХрд░реЗрдВред

  • рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ┬ард╕рдЯреАрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ,┬ард╡рд┐рдзрд┐рдпрд╛рдБ,┬ардбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░,┬ардкрд╣реБрдБрдЪ рд╕рдВрд╢реЛрдзрдХ.

  • рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ┬ард╕реАрдорд╛рдПрдБ,┬ардирд┐рд░реНрднрд░рддрд╛рдПрдБ,┬ард╕рдВрдмрдВрдз, рдФрд░┬ард╕рдВрдпреЛрдЬрди.

  • рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ┬ардбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди┬а(рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреИрдХреНрдЯреНрд░реА, рд░рдгрдиреАрддрд┐, рд╕рд┐рдВрдЧрд▓рдЯрди)ред

ЁЯФН рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ:

  • рдкреВрд░реНрдг рд╡рд┐рдзрд┐ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдФрд░ рд▓реМрдЯрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд░ред

  • рдХрд╛ рдЙрдкрдпреЛрдЧ┬ардкрд╣реБрдБрдЪ рд╕рдВрд╢реЛрдзрдХ┬а(+,┬а-,┬а#).

  • рдирд┐рд░реНрднрд░рддрд╛рдПрдБ,┬ард╡рд┐рд░рд╛рд╕рдд,┬ардЗрдВрдЯрд░рдлреЗрд╕рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВред

  • рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ┬ард╕реАрдорд╛рдПрдБ┬а(рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,┬а<<рд╕реАрдорд╛>>).

ЁЯУМ рдЙрджрд╛рд╣рд░рдг: рдИ-рдХреЙрдорд░реНрд╕ рд╕рд┐рд╕реНрдЯрдо (рд╡рд┐рд╕реНрддреГрдд рдбрд┐рдЬрд╝рд╛рдЗрди)

@startuml
' рд╡рд┐рд╕реНрддреГрдд рдХреНрд▓рд╛рд╕ рдбрд╛рдпрдЧреНрд░рд╛рдо - рдЪрд░рдг 3: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

@startuml
' рд╡рд┐рд╕реНрддреГрдд рдХреНрд▓рд╛рд╕ рдбрд╛рдпрдЧреНрд░рд╛рдо - рдЪрд░рдг 3: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

class Customer {
  - customerID: String
  - name: String
  - email: String
  - address: String
  +addOrder(order: Order): void
  +getOrders(): List<Order>
  +validateEmail(): Boolean
}

class Order {
  - orderID: String
  - orderDate: Date
  - status: OrderStatus
  - total: Decimal
  +calculateTotal(): Decimal
  +validate(): Boolean
  +save(): void
  +cancel(): void
}

class OrderItem {
  - quantity: Integer
  - unitPrice: Decimal
  +getSubtotal(): Decimal
}

class Product {
  - productID: String
  - name: String
  - price: Decimal
  - stockQuantity: Integer
  +isInStock(): Boolean
  +updateStock(amount: Integer): void
  +getPrice(): Decimal
}

class PaymentProcessor {
  +processPayment(amount: Decimal): Boolean
}

class CreditCardProcessor {
  +processPayment(amount: Decimal): Boolean
}

class Payment {
  - paymentID: String
  - amount: Decimal
  - method: String
  - timestamp: Date
  +confirm(): Boolean
}

' рд╡рд┐рд░рд╛рд╕рдд
Customer <|-- PremiumCustomer

' рдЗрдВрдЯрд░рдлреЗрд╕
PaymentProcessor <|-- CreditCardProcessor
PaymentProcessor <|-- PayPalProcessor

' рд╕рдВрдмрдВрдз
Customer "1" -- "0..*" Order : рд░рдЦрддрд╛ рд╣реИ
Order "1" -- "1..*" OrderItem : рд╕рдорд╛рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ
OrderItem "1" -- "1" Product : рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ
Order "1" -- "1" Payment : рд░рдЦрддрд╛ рд╣реИ
PaymentProcessor "1" -- "1" Payment : рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ

' рд╕реАрдорд╛рдПрдБ
note right of Order
  рд╕реНрдерд┐рддрд┐: [рдкреНрд░рддреАрдХреНрд╖рд╛, рдкреБрд╖реНрдЯрд┐, рднреЗрдЬрд╛ рдЧрдпрд╛, рд░рджреНрдж рдХрд┐рдпрд╛ рдЧрдпрд╛]
end note

note right of Product
  рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЙрдХ > 0 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
end note

@enduml

тЬЕ┬ардЙрдкрдпреЛрдЧ рдХреЗрд╕: рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВрдбрдСрдл, рдХреЛрдб рдЬрдирд░реЗрд╢рди, рдбрд┐рдЬрд╝рд╛рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдгред


ЁЯЫая╕П 4.┬ардЪрд░рдг 4: рд░рдЦрд░рдЦрд╛рд╡ рдФрд░ рд╡рд┐рдХрд╛рд╕ (рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рдж)

ЁЯОп рдЙрджреНрджреЗрд╢реНрдп:

  • рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░реЗрдВ┬ард╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди┬ард╕рд┐рд╕реНрдЯрдо рдореЗрдВред

  • рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд░реЗрдВ┬ард░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ,┬ардЕрдкреНрд░рдЪрд▓рди,┬ардирдП рдлреАрдЪрд░.

  • рд╕рдорд░реНрдерди рдХрд░реЗрдВ┬арддрдХрдиреАрдХреА рдЛрдг рдЯреНрд░реИрдХрд┐рдВрдЧ┬ардФрд░┬ардкреНрд░рдгрд╛рд▓реА рд╕рдордЭ.

ЁЯФН рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ:

  • рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ┬ардЕрдкреНрд░рдЪрд▓рд┐рдд┬ард╡рд░реНрдЧ/рд╡рд┐рдзрд┐рдпрд╛рдБред

  • рджрд┐рдЦрд╛рдПрдБ┬ардирдП рд╡рд░реНрдЧ,┬ардкреБрдирд░реНрдирд╛рдорд┐рдд рддрддреНрд╡,┬ард╣рдЯрд╛рдП рдЧрдП рдШрдЯрдХ.

  • рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ┬ард╕реНрдЯреЗрд░рд┐рдпреЛрдЯрд╛рдЗрдкреНрд╕┬а(<<рдЕрдкреНрд░рдЪрд▓рд┐рдд>>,┬а<<рдПрдХрд▓рддрд╛>>,┬а<<рдХрд╛рд░рдЦрд╛рдирд╛>>).

  • рдЕрдХреНрд╕рд░┬ард╕рд░рд▓реАрдХреГрдд┬ардкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдПред

ЁЯУМ рдЙрджрд╛рд╣рд░рдг: рдИ-рдХреЙрдорд░реНрд╕ рдкреНрд░рдгрд╛рд▓реА (рд░рдЦрд░рдЦрд╛рд╡ рдЪрд░рдг)

@startuml
тАШ рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рднреБрдЧрддрд╛рди рдкреНрд░рдгрд╛рд▓реА: рд░рдгрдиреАрддрд┐ + рдХрд╛рд░рдЦрд╛рдирд╛ рдкреИрдЯрд░реНрди

@startuml
тАШ рдирд╡реАрдиреАрдХреГрдд рднреБрдЧрддрд╛рди рдкреНрд░рдгрд╛рд▓реА: рд░рдгрдиреАрддрд┐ + рдлреИрдХреНрдЯрд░реА рдкреИрдЯрд░реНрди

тАШ рдЗрдВрдЯрд░рдлреЗрд╕
class рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕рд░ {
+рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕ (рд░рд╛рд╢рд┐: рджрд╢рдорд▓рд╡): рдмреВрд▓рд┐рдпрди
}

тАШ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рдгрдиреАрддрд┐рдпрд╛рдБ
class рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рдкреНрд░реЛрд╕реЗрд╕рд░ {
+рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕ (рд░рд╛рд╢рд┐: рджрд╢рдорд▓рд╡): рдмреВрд▓рд┐рдпрди
}

class рдкреЗрд░реЙрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ {
+рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕ (рд░рд╛рд╢рд┐: рджрд╢рдорд▓рд╡): рдмреВрд▓рд┐рдпрди
}

class рд╕реНрдЯреНрд░рд╛рдЗрдк рдкреНрд░реЛрд╕реЗрд╕рд░ {
+рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕ (рд░рд╛рд╢рд┐: рджрд╢рдорд▓рд╡): рдмреВрд▓рд┐рдпрди
}

тАШ рдлреИрдХреНрдЯрд░реА рдкреИрдЯрд░реНрди
class рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕рд░ рдлреИрдХреНрдЯрд░реА {
+рдкреНрд░реЛрд╕реЗрд╕рд░ рдмрдирд╛рдПрдБ (рдкреНрд░рдХрд╛рд░: рд╕реНрдЯреНрд░рд┐рдВрдЧ): рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕рд░
+рдЙрдкрд▓рдмреНрдз рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ(): рд╕реВрдЪреА<рд╕реНрдЯреНрд░рд┐рдВрдЧ>
}

тАШ рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛
class рдСрд░реНрдбрд░ рд╕реЗрд╡рд╛ {
тАУ рдкреНрд░реЛрд╕реЗрд╕рд░: рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕рд░
+рдСрд░реНрдбрд░ рдмрдирд╛рдПрдБ (рдЧреНрд░рд╛рд╣рдХ: рдЧреНрд░рд╛рд╣рдХ, рдЖрдЗрдЯрдо: рд╕реВрдЪреА<рдСрд░реНрдбрд░ рдЖрдЗрдЯрдо>): рдСрд░реНрдбрд░
+рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗрдЯ рдХрд░реЗрдВ (рдкреНрд░реЛрд╕реЗрд╕рд░: рднреБрдЧрддрд╛рди рдкреНрд░реЛрд╕реЗрд╕рд░): рдирд╣реАрдВ
}

тАШ рднреБрдЧрддрд╛рди рдПрдВрдЯрд┐рдЯреА
class рднреБрдЧрддрд╛рди {
тАУ рднреБрдЧрддрд╛рдирдЖрдИрдбреА: рд╕реНрдЯреНрд░рд┐рдВрдЧ
тАУ рд░рд╛рд╢рд┐: рджрд╢рдорд▓рд╡
тАУ method: String
тАУ timestamp: Date
+confirm(): Boolean
}

тАШ рдЧреНрд░рд╛рд╣рдХ рдФрд░ рдЖрджреЗрд╢ (рд╕рд░рд▓реАрдХреГрдд)
class Customer {
тАУ customerID: String
тАУ name: String
тАУ email: String
+addOrder(order: Order): void
+getOrders(): List<Order>
}

class Order {
тАУ orderID: String
тАУ orderDate: Date
тАУ status: OrderStatus
тАУ total: Decimal
+calculateTotal(): Decimal
+validate(): Boolean
+save(): void
+cancel(): void
}

тАШ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрд░рд┐рдпреЛрдЯрд╛рдЗрдк
PaymentProcessor <<interface>>
CreditCardProcessor <<strategy>>
PayPalProcessor <<strategy>>
StripeProcessor <<strategy>>
PaymentProcessorFactory <<factory>>
OrderService <<service>>

тАШ рд╡рд┐рд░рд╛рд╕рдд: рд░рдгрдиреАрддрд┐ рдкреИрдЯрд░реНрди
рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рдкреНрд░реЛрд╕реЗрд╕рд░ <|тАУ рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░
PayPal рдкреНрд░реЛрд╕реЗрд╕рд░ <|тАУ рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░
рд╕реНрдЯреНрд░рд╛рдЗрдк рдкреНрд░реЛрд╕реЗрд╕рд░ <|тАУ рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░

тАШ рдлреИрдХреНрдЯреНрд░реА рдкреНрд░реЛрд╕реЗрд╕рд░ рдмрдирд╛рддреА рд╣реИ
рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдлреИрдХреНрдЯреНрд░реА тАЬ1тАЭ тАФ тАЬ1тАЭ рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ : рдмрдирд╛рддрд╛ рд╣реИ

тАШ рдСрд░реНрдбрд░ рд╕реЗрд╡рд╛ рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ (рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди)
рдСрд░реНрдбрд░ рд╕реЗрд╡рд╛ тАЬ1тАЭ тАФ тАЬ1тАЭ рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ : рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ

тАШ рдСрд░реНрдбрд░ рд╕реЗрд╡рд╛ рдлреИрдХреНрдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗрдЯ рдХрд░рддреА рд╣реИ
рдСрд░реНрдбрд░ рд╕реЗрд╡рд╛ тАЬ1тАЭ тАФ тАЬ1тАЭ рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдлреИрдХреНрдЯреНрд░реА : рджреНрд╡рд╛рд░рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреА рд╣реИ

тАШ рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ
рдкреЗрдореЗрдВрдЯ тАЬ1тАЭ тАФ тАЬ1тАЭ рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ : рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

тАШ рд╕рдВрдмрдВрдз
рдЧреНрд░рд╛рд╣рдХ тАЬ1тАЭ тАФ тАЬ0..*тАЭ рдСрд░реНрдбрд░ : рд░рдЦрддрд╛ рд╣реИ
рдСрд░реНрдбрд░ тАЬ1тАЭ тАФ тАЬ1..*тАЭ рдСрд░реНрдбрд░ рдЖрдЗрдЯрдо : рд╕рдорд╛рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ
рдСрд░реНрдбрд░ рдЖрдЗрдЯрдо тАЬ1тАЭ тАФ тАЬ1тАЭ рдЙрддреНрдкрд╛рдж : рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдСрд░реНрдбрд░ тАЬ1тАЭ тАФ тАЬ1тАЭ рдкреЗрдореЗрдВрдЯ : рд╣реИ

тАШ рд╕реАрдорд╛рдПрдБ
рдиреЛрдЯ рдСрд░реНрдбрд░ рдХреЗ рджрд╛рдПрдВ рдУрд░
рд╕реНрдерд┐рддрд┐: [рдЗрдВрддрдЬрд╛рд░, рдкреБрд╖реНрдЯрд┐, рднреЗрдЬрд╛ рдЧрдпрд╛, рд░рджреНрдж]
рдиреЛрдЯ рд╕рдорд╛рдкреНрдд

рдиреЛрдЯ рдкреЗрдореЗрдВрдЯ рдХреЗ рджрд╛рдПрдВ рдУрд░
рд╡рд┐рдзрд┐: тАЬрдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдбтАЭ, тАЬPayPalтАЭ, тАЬрд╕реНрдЯреНрд░рд╛рдЗрдктАЭ
рдиреЛрдЯ рд╕рдорд╛рдкреНрдд

рдиреЛрдЯ рдкреЗрдореЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдлреИрдХреНрдЯреНрд░реА рдХреЗ рджрд╛рдПрдВ рдУрд░
рд╕рдорд░реНрдерд┐рдд рдкреНрд░рдХрд╛рд░: тАЬрдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдбтАЭ, тАЬPayPalтАЭ, тАЬрд╕реНрдЯреНрд░рд╛рдЗрдктАЭ
рдСрд░реНрдбрд░ рд╕реЗрд╡рд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдиреЛрдЯ рд╕рдорд╛рдкреНрдд

@enduml


тЬЕ┬ардЙрдкрдпреЛрдЧ рдХреЗрд╕: рдирдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдСрдирдмреЛрд░реНрдбрд┐рдВрдЧ, рд╕рд┐рд╕реНрдЯрдо рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ, рдСрдбрд┐рдЯ рдЯреНрд░реЗрд▓реНрд╕ред


ЁЯФД рд╕рд╛рд░рд╛рдВрд╢: рдХреНрд▓рд╛рд╕ рдбрд╛рдпрдЧреНрд░рд╛рдо рдХрд╛ рд╡рд┐рдХрд╛рд╕

рдЪрд░рдг рдлреЛрдХрд╕ рд╡рд┐рд╡рд░рдг рд╕реНрддрд░ рдореБрдЦреНрдп рддрддреНрд╡
1. рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдбреЛрдореЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдПрдВрдЯрд┐рдЯреАрдЬ, рд╕рдВрдмрдВрдз
2. рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд░рдЪрдирд╛ рдордзреНрдпрдо рдЧреБрдг, рд╕рдВрдЪрд╛рд▓рди, рдЗрдВрдЯрд░рдлреЗрд╕
3. рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рддреИрдпрд╛рд░ рдЙрдЪреНрдЪ рдкреНрд░рдХрд╛рд░, рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╛рдпрд░, рдкреИрдЯрд░реНрди
4. рд░рдЦрд░рдЦрд╛рд╡ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдХрд╛рд╕ рдЕрдиреБрдХреВрд▓рд┐рдд рд╕реНрдЯреЗрд░рд┐рдпреЛрдЯрд╛рдЗрдкреНрд╕, рдЕрдкреНрд░рдЪрд▓рд┐рддрддрд╛, рд╕рд░рд▓реАрдХрд░рдг

ЁЯЫая╕П PlantUML рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЯрд┐рдкреНрд╕

  • рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ┬а@startuml┬ардФрд░┬а@enduml┬ардбрд╛рдпрдЧреНрд░рд╛рдо рдХреЛ рдШреЗрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

  • рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ┬а<<рд╕реНрдЯреЗрд░рд┐рдпреЛрдЯрд╛рдЗрдк>>┬ардбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдпрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдПред

  • рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ┬аright of рдХреЗ рдиреЛрдЯ┬арджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдПред

  • рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ┬а+,┬а-,┬а#┬арджреГрд╢реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ,┬ардирд┐рдЬреА,┬ард╕реБрд░рдХреНрд╖рд┐рдд).

  • рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ┬а<<рдЗрдВрдЯрд░рдлрд╝реЗрд╕>>,┬а<<рдЕрдореВрд░реНрдд>>,┬а<<рд╕рд┐рдВрдЧрд▓рдЯрди>>┬ард╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдПред

  • рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ┬ардкреНрд▓рд╛рдВрдЯрдпреВрдПрдордПрд▓ рдСрдирд▓рд╛рдЗрди┬ардпрд╛ рдЖрдИрдбреАрдИ рдкреНрд▓рдЧрдЗрди (рд╡реАрдПрд╕ рдХреЛрдб, рдЗрдВрдЯреЗрд▓рдЬреА)ред


ЁЯУЪ рдЕрдВрддрд┐рдо рд╡рд┐рдЪрд╛рд░

рдХреНрд▓рд╛рд╕ рдЖрд░реЗрдЦ рд╣реИрдВ┬ард╕реНрдерд┐рд░ рдирд╣реАрдВ┬атАФ рд╡реЗ┬ардкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ. рдЙрдиреНрд╣реЗрдВ рд░рдгрдиреАрддрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

  • рдкреНрд░рд╛рд░рдВрднрд┐рдХ: рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЕрдкрд░рд┐рдЪрд┐рдд рд╕реНрдЯреЗрдХрд╣реЛрд▓реНрдбрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░реЗрдВред

  • рдордзреНрдп: рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рдПрдВред

  • рдЕрдВрддрд┐рдо: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░реЗрдВред

  • рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж: рд╕рд┐рд╕реНрдЯрдо рдЬреНрдЮрд╛рди рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдВред

тЬЕ┬ардкреНрд░реЛ рдЯрд┐рдк: рдЕрдкрдиреЗ PlantUML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рд╛рде рд╡рд░реНрдЬрди рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд░рдЦреЗрдВ тАФ рд╡реЗ рдЬреАрд╡рдВрдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИрдВ!


тЬЕ рдирд┐рд╖реНрдХрд░реНрд╖: рдХреЗрд╡рд▓ рдХреНрд▓рд╛рд╕реЗрд╕ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛

рдХреНрд▓рд╛рд╕ рдбрд╛рдпрдЧреНрд░рд╛рдо рдмрд╕ рдбрд╛рдпрдЧреНрд░рд╛рдо рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ тАФ рд╡реЗ рд╣реИрдВрдЗрд░рд╛рджреЛрдВ рдХреЗ рдирдХреНрд╢реЗ, рд╕рд╣рдпреЛрдЧ рдХреЗ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ, рдФрд░рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЬреАрд╡рдВрдд рд░рд┐рдХреЙрд░реНрдбред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рджреЗрдЦрд╛, рдЙрдирдХрд╛ рдореВрд▓реНрдп рдЙрдирдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрдирдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗрдЕрдиреБрдХреВрд▓рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рд╡рд┐рдХрд╛рд╕ рдЪрдХреНрд░ рдХреЗ рджреМрд░рд╛рди тАФ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдЕрдореВрд░реНрддрддрд╛ рд╕реЗ рд▓реЗрдХрд░ рдЕрдВрддрд┐рдо рдЪрд░рдг рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд╕рдЯреАрдХ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдореЙрдбрд▓ рддрдХред

рдЖрдЗрд╕реЛрд▓реЗрдЯреЗрдб рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреНрд▓рд╛рд╕реЗрд╕ рд╕реЗ рдПрдХ рдЬреБрдбрд╝реЗ, рд░рдгрдиреАрддрд┐-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рддрдХ рдХрд╛ рд╕рдлрд░ рдПрдХ рдореВрд▓рднреВрдд рд╕рддреНрдп рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:рдЕрдЪреНрдЫрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗрд╡рд▓ рдШрдЯрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ тАФ рдпрд╣ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВрдЬрдмрдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рдкреНрд░реЛрд╕реЗрд╕рд░, рдкреЗ рдкреИрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░, рдФрд░ рд╕реНрдЯреНрд░рд╛рдЗрдкрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдЖрдкрд╕ рдореЗрдВ рдмрджрд▓реЗ рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ тАФ рдПрдХ рдлреИрдХреНрдЯреНрд░реА рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ тАФ рдЖрд░реЗрдЦ рдПрдХ рд╕реНрдерд┐рд░ рд╕реНрдиреИрдкрд╢реЙрдЯ рдирд╣реАрдВ рд░рд╣рддрд╛ред рдпрд╣ рдПрдХ рдмрди рдЬрд╛рддрд╛ рд╣реИ рд▓рдЪреАрд▓рд╛рдкрди рдХрд╛ рдЧрддрд┐рд╢реАрд▓ рдореЙрдбрд▓, рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА, рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдХреНрд╖рдорддрд╛ред

рдЬреИрд╕реЗ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рдгрдиреАрддрд┐, рдлреИрдХреНрдЯреНрд░реА, рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд╡реЗрд╢рди, рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЛ рдПрдХ рд╕реБрд╕рдВрдЧрдд, рд╡рд┐рд╕реНрддрд╛рд░реНрдп рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдмреЗрд╣рддрд░ рдЖрд░реЗрдЦреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ тАФ рдпрд╣ рдмреЗрд╣рддрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдпрд╣ рдЯреАрдореЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

  • рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рдЫреВрдП рдмрд┐рдирд╛ рдирдП рднреБрдЧрддрд╛рди рддрд░реАрдХреЗ рдЬреЛрдбрд╝реЗрдВред
  • рдЖрдЗрд╕реЛрд▓реЗрд╢рди рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред
  • рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж рднреА рд╡рд░реНрд╖реЛрдВ рддрдХ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░реЗрдВред

рдЕрдВрддрддрдГ, рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХреНрд▓рд╛рд╕ рдЖрд░реЗрдЦ рд╡реЗ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рд╣рд░ рдлреАрд▓реНрдб рдФрд░ рд╡рд┐рдзрд┐ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ тАФ рдмрд▓реНрдХрд┐ рд╡реЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдХрд╣рд╛рдиреА рд╕реБрдирд╛рддреЗ рд╣реИрдВ: рд╕рд╣рдпреЛрдЧ, рдЕрдиреБрдХреВрд▓рди рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреА рдУрд░ рдмрдврд╝рддреА рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдПрдХ рдХрд╣рд╛рдиреАред

рддреЛ рдЬрдм рдЖрдк рдЕрдЧрд▓рд╛ рдХреНрд▓рд╛рд╕ рдЖрд░реЗрдЦ рдмрдирд╛рдПрдВ, рддреЛ рдЦреБрдж рд╕реЗ рдкреВрдЫреЗрдВ:

рдХреНрдпрд╛ рдореЗрд░реА рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЗрд╡рд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ тАФ рдпрд╛ рд╡реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВ?
рдХреНрдпрд╛ рд╡реЗ рдЕрд▓рдЧ рд╣реИрдВ тАФ рдпрд╛ рд╡реЗ рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ рдЬреЛ рдмрдврд╝ рд╕рдХрддреА рд╣реИ?

рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрддрддрдГ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдХреНрд▓рд╛рд╕ рдЖрд░реЗрдЦ рдХреЗрд╡рд▓ рдпрд╣ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддреЗ рдХрд┐ рдкреНрд░рдгрд╛рд▓реА рдХреНрдпрд╛ рд╣реИ тАФ рд╡реЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рдгрд╛ рджреЗрддреЗ рд╣реИрдВ.