Simbol Penting Dalam Diagram C4

Anita Nur Sari
4 min readJan 18, 2024

--

Contoh simbol yang saya lampirkan merupakan simbol yang sudah pernah saya gunakan dan saya ketahui.

Gambar Bagan Diagram C4

Diagram C4 merupakan pemodelan arsitektur yang dibuat secara hierarkis dan berskala. Diagram C4 terdiri dari empat tingkatan abstraksi, yaitu Context Diagram, Container Diagram, Component Diagram, dan Code Diagram. Setiap tingkat abstraksi pada diagram C4 memberikan pandangan yang semakin mendalam ke dalam arsitektur aplikasi. Diagram C4 menggunakan notasi yang relatif sederhana untuk menggambarkan elemen-elemen arsitektur dan relasinya.

Berikut adalah beberapa keuntungan jika kita menggunakan model c4 diagram arsitektur.

  1. Menyediakan cara mudah untuk berkomunikasi dengan pemangku kepentingan.
  2. Mengaktifkan tim untuk melihat berbagai tingkat perincian dari diagram arsitektur yang lebih detil.
  3. Hirarki diagram C4 memberikan tingkat abstraksi yang berbeda, yang masing-masing relevan untuk audiens yang berbeda.
  4. Menghindari ambiguitas dalam diagram Anda dengan menyertakan teks dalam jumlah yang cukup serta kunci/legenda untuk notasi yang Anda gunakan.
  5. Pembuatan software arsitektur diagram dibuat lebih ringkas dan diperkecil sebagai akibat dari agile proses development.

Berikut adalah notasi umum yang digunakan dalam Diagram C4:

Level 1 Context Diagram

Context merupakan pintu masuk untuk melihat seluruh sistem yang dimiliki. Jika terdapat banyak entitas perusahaan, maka setiap entitas dapat disebut sebagai sebuah sistem. Sebagai contoh, Eccomerce, Payment, dll.

Pada level ini, cukup dengan memahami secara high-level view. Fokus yang harus dibicarakan adalah tentang bisnis atau stakeholder lainnya yang masih berada pada level high-level view.

Scope yang harus dipahami adalah Users, 3rd Parties (Partner), Blackbox System, Alur Bisnis, User Journey, dll.

Audience yang hadir ketika membahas level ini adalah semua stakeholders bisnis (Sales/Partner/Account Manager), Product (PM, UI/UX, QA), Architect, dan Developer. Jika salah satu audience tersebut hadir, maka kita cukup membahas dilevel Context saja, tidak perlu lebih mendetail.

Contoh:

  • Software System Internal

Mewakili sistem perangkat lunak Internal

Gambar 1 : Software System Internal
  • Software System External

Mewakili sistem perangkat lunak Eksternal

Gambar 2 : Software System External

Level 2 Container Diagram

Mewakili kontainer, Container diagram aman menggambarkan container yang merupakan tempat software kita di deploy di production. Apabila kita mengikuti aturan satu kontainer per service pada microservice arsitektur maka diagram ini dapat digunakan untuk melihat semua service dan komunikasi yang terjadi pada antar service tersebut.

Keputusan penggunaan stack teknologi sangat penting pada level ini, karena pada level diagram ini kita dapat mengetahui bagaimana software kita nanti akan menghandle kualitas atribut, performance , dan tentunya keamanan dari software yang dibuat. Container diagram ini sama seperti component tingkat tinggi dari pengertian dasar software arsitektur.

Gambar 3 : Container
  • Database

Mewakili database

Gambar 4: Database

Level 3 Component Diagram

Mewakili komponen, pada dasarnya component diagram tidak terlalu penting dibandingkan dua diagram sebelumnya. Walau begitu diagram ini tetap berguna apalagi ketika kita ingin mengetahui lebih dalam interaksi yang terjadi dalam level container atau service. Jadi, component diagram akan menjelaskan dan menggambarkan interaksi yang terjadi selama internal service.

Untuk software yang menggunakan library atau framework baik internal atau eksternal sangat berguna karena dapat menjelaskan ketergantungan tingkat tinggi dari real implementasi service kita.

Setiap teknologi atau pattern yang digunakan akan berbeda. Berikut di gambarkan componet diagram dari sofrwa yang di bangun demgan teknologi spring dan component diagram yang menggunakan golang dengan clean code arsitektur.

Gambar 5: Component
  • Execution Environment

Lingkungan di mana kode atau sistem dijalankan

Gambar 6 : Execution Environment
  • Relationship

Arah aliran data

Gambar 7 : Relationship

Level 4 Code Diagram

Yang terakhir adalah codingan, untuk level ini, kita hanya tinggal membuat link referensi ke Github repository. Jika menggunakan platform IcePanel, maka akan terlihat seperti ini.

Ini adalah tingkat detail opsional dan sering tersedia sesuai permintaan dari perkakas seperti IDE. Idealnya diagram ini akan dibuat secara otomatis menggunakan alat (misalnya alat pemodelan IDE atau UML), dan Anda harus mempertimbangkan untuk hanya menampilkan atribut dan metode yang memungkinkan Anda menceritakan kisah yang ingin Anda ceritakan. Tingkat detail ini tidak disarankan untuk apa pun kecuali komponen yang paling penting atau kompleks.

“Seseorang yang berhenti belajar adalah orang lanjut usia, meskipun umurnya masih remaja. Seseorang yang tidak pernah berhenti belajar akan selamanya menjadi pemuda”

(Henry Ford)

Sekian semoga membantu :)

By: NitNot

Sumber belajar:

--

--

No responses yet