Əsas məzmuna keçin

Sequence Diaqramları

Sequence diaqramları UML-in davranış diaqramlarından biridir və obyektlər arasında mesaj mübadiləsinin vaxt ardıcıllığı ilə təsvirini göstərir. Bu diaqramlar sistemin dinamik davranışını, obyektlərin qarşılıqlı əlaqəsini və proseslərin necə baş verdiyini vizual şəkildə təqdim edir.

Sequence diaqramları xüsusilə sistem dizaynı, API dokumentasiyası, biznes proseslərinin təsviri və test ssenarilərinə yazılmasında çox faydalıdır. Onlar zaman faktoru nəzərə alaraq obyektlər arasında olan əlaqələri göstərir və mürəkkəb proseslərin anlaşılmasını asanlaşdırır.

Sequence Diaqramının Əsas Komponentləri

1. Aktor (Actor)

Aktor sistemə xaricdən təsir edən bir varlığı təmsil edir. Bu insan, başqa sistem və ya xarici servis ola bilər.

2. Obyekt (Object)

Sequence diaqramında iştirak edən sistem komponentlərini və ya siniflərin nümunələrini təmsil edir.

3. Lifeline (Həyat Xətti)

Hər aktor və obyekt üçün şaquli xətt çəkilir ki, bu da həmin varlığın diagram müddətində mövcudluğunu göstərir.

4. Aktivasiya Qutusu (Activation Box)

Lifeline üzərində yerləşən və obyektin aktiv olduğu zaman müddətini göstərən düzbucaqlı qutu.

5. Mesaj (Message)

Obyektlər arasında həyata keçirilən kommunikasiya və ya funksiya çağırışları.

6. Return Mesajı

Funksiya çağırışının cavabını və ya nəticəsini göstərən mesaj.

Mesaj Növləri

1. Synchronous Message (Sinxron Mesaj)

  • Göndərən obyekt cavab gözləyir
  • Dolu ox başı ilə gösterilir:

2. Asynchronous Message (Asinxron Mesaj)

  • Göndərən obyekt cavab gözləmir
  • Açıq ox başı ilə gösterilir:

3. Return Message (Qayıdış Mesajı)

  • Funksiya çağırışının nəticəsi
  • Qırıqlı xətt ilə gösterilir:

4. Self Message (Özünə Mesaj)

  • Obyekt öz metodunu çağırır
  • Lifeline üzərində dövrə şəkil alır

5. Create Message (Yaratma Mesajı)

  • Yeni obyektin yaradılması
  • <<create>> stereotipi ilə işarələnir

6. Destroy Message (Məhv Etmə Mesajı)

  • Obyektin məhv edilməsi
  • <<destroy>> stereotipi ilə işarələnir və lifeline X ilə bitir

Praktik Nümunə: Onlayn Sifariş Sistemi

Sadə Sifariş Prosesi

Detallı E-ticarət Sifariş Prosesi

Mürəkkəb Sequence Diaqramı

PlantUML ilə Sequence Diaqramı

Kitabxana Sistemi Nümunəsi

@startuml
participant Member
participant LibrarySystem as LS
participant Database as DB
participant BookService as BS
participant NotificationService as NS

Member -> LS : searchBook("Java Programming")
activate LS

LS -> DB : findBooks("Java Programming")
activate DB
DB --> LS : bookList
deactivate DB

LS --> Member : displaySearchResults(bookList)

Member -> LS : borrowBook(bookId, memberId)
LS -> BS : checkAvailability(bookId)
activate BS

BS -> DB : getBookStatus(bookId)
activate DB
DB --> BS : bookAvailable
deactivate DB

alt book available
BS -> DB : updateBookStatus(bookId, "borrowed")
activate DB
DB --> BS : statusUpdated
deactivate DB

BS -> DB : createBorrowRecord(bookId, memberId)
DB --> BS : recordCreated
deactivate DB

BS --> LS : borrowSuccessful

LS -> NS : sendConfirmationEmail(memberId, bookId)
activate NS
NS --> LS : emailSent
deactivate NS

LS --> Member : borrowConfirmation
else book not available
BS --> LS : bookNotAvailable
LS --> Member : errorMessage("Book not available")
end

deactivate BS
deactivate LS
@enduml

Sequence Diaqramında İstifadə Olunan Konstruksiyalar

1. Alt/Else (Alternativ)

2. Loop (Təkrarlama)

3. Par (Paralel Proseslər)

4. Opt (İxtiyari)

5. Break (Fasilə)

6. Critical (Kritik Bölgə)

Sequence Diaqramı Best Practice-ləri

1. Aydın Adlandırma

✅ Düzgün:
- getUserProfile()
- processPayment()
- sendNotification()

❌ Yanlış:
- doSomething()
- process()
- handle()

2. Məntiqli Qruplaşdırma

Əlaqədar mesajları bir yerdə saxlayın
Sequence-i sol-sağ istiqamətində təşkil edin
Çox uzun diaqramları alt-diaqramlara bölün

3. Səhv Hallarının Nəzərə Alınması

4. Return Mesajlarının İstifadəsi

Mikroservis Arxitekturasında Sequence Diaqramları

API Gateway Pattern

Event-Driven Architecture

Test Ssenariləri üçün Sequence Diaqramları

API Test Ssenarisi

Sequence Diaqramı Alətləri

1. Onlayn Vasitələr

  • Mermaid.js: Markdown-friendly
  • SequenceDiagram.org: Sadə və sürətli
  • WebSequenceDiagrams: Professional
  • Draw.io: Vizual editor

2. Desktop Tətbiqlər

  • StarUML: Professional UML suite
  • Visual Paradigm: Tam funksiyalı
  • Enterprise Architect: Korporativ həll
  • PlantUML: Text-based

3. IDE Plugin-ləri

  • IntelliJ IDEA: Sequence diagram plugin
  • VS Code: Mermaid extension
  • Eclipse: UML plugins
  • Sublime Text: PlantUML plugin

Ümumi Səhvlər və Onlardan Çəkinmə

1. Çox Mürəkkəb Diaqramlar

Səhv: Bütün detalları bir diaqramda göstərmək
Düzgün: Hər scenario üçün ayrı diaqram yaratmaq

2. Vaxt Ardıcıllığını Pozmaq

Səhv: Mesajları təsadüfi sırayla göstərmək
Düzgün: Real-time sequence-i izləmək

3. Return Mesajlarını Unutmaq

Səhv: Yalnız request mesajlarını göstərmək
Düzgün: Response mesajlarını da daxil etmək

4. Activation Box-ların Yanlış İstifadəsi

Səhv: Bütün lifeline-də aktivasiya göstərmək
Düzgün: Yalnız aktiv olduqda activation box istifadə etmək

Performance və Scalability Göstəricisi

Zaman Məhdudiyyətləri

Caching Strategiyası

Nəticə

Sequence diaqramları proqram təminatı inkişafının müxtəlif mərhələlərində vacib rol oynayır:

  • Dizayn mərhələsində: Obyektlər arası qarşılıqlı əlaqənin planlaşdırılması
  • İmplementasiya zamanı: API çağırışlarının ardıcıllığının təyin edilməsi
  • Test mərhələsində: Test ssenarilərinə yaradılması
  • Sənədləşdirmədə: Sistem davranışının vizual təsviri
  • Debug prosesində: Sistem axınının təhlil edilməsi

Düzgün hazırlanmış sequence diaqramları:

  • Mürəkkəb proseslərin anlaşılmasını asanlaşdırır
  • Komanda üzvləri arasında ünsiyyəti təkmilləşdirir
  • API dizaynının optimallaşdırılmasına kömək edir
  • Test coverage-in artırılmasında istiqamət verir
  • Sistem performansının təhlil edilməsini dəstəkləyir