Pengantar Model C4: Panduan Cepat
Pengantar
The Model C4, dikembangkan oleh Simon Brown, menawarkan pendekatan terstruktur untuk pembuatan diagram arsitektur perangkat lunak, terdiri dari empat tingkatan yang berbeda yang secara bertahap memperbesar fokus pada arsitektur sistem perangkat lunak. Setiap tingkatan memberikan perspektif unik dan memenuhi tujuan tertentu dalam mendokumentasikan dan berkomunikasi mengenai arsitektur perangkat lunak. Mari kita jelajahi empat tingkatan model C4:

1. Diagram Konteks Sistem
Lingkup:Sistem perangkat lunak tunggal.
Elemen Utama:Sistem perangkat lunak dalam lingkup.
Elemen Pendukung:Orang-orang (misalnya, pengguna, aktor, peran, persona) dan sistem perangkat lunak (ketergantungan eksternal) yang terhubung langsung ke sistem perangkat lunak dalam lingkup.
Penonton yang Ditujukan:Semua orang, baik individu teknis maupun non-teknis, di dalam maupun di luar tim pengembangan perangkat lunak.
Tujuan:Diagram Konteks Sistem menawarkan tampilan awal, tingkat tinggi mengenai arsitektur sistem perangkat lunak. Ini berfungsi sebagai titik awal untuk dokumentasi arsitektur, memberikan perspektif menyeluruh mengenai sistem dalam lingkungan yang lebih luas. Dalam diagram ini, sistem perangkat lunak digambarkan sebagai kotak pusat, dikelilingi oleh pengguna dan sistem eksternal lainnya yang berinteraksi dengannya. Fokusnya adalah pada orang-orang dan sistem perangkat lunak, bukan pada detail teknis seperti teknologi atau protokol.
Direkomendasikan untuk Sebagian Besar Tim: Ya.
Ciri Kunci:
- Menawarkan pandangan dari atas mengenai sistem.
- Menekankan interaksi antara sistem dan pengguna/sistem eksternalnya.
- Ideal untuk berkomunikasi dengan pemangku kepentingan non-teknis.
- Tingkat detail secara sengaja dibuat rendah.
2. Diagram Wadah
Lingkup:Sistem perangkat lunak tunggal.
Elemen Utama:Wadah dalam sistem perangkat lunak yang sedang dibahas (misalnya, aplikasi web sisi server, aplikasi halaman tunggal, basis data, dll.).
Elemen Pendukung:Orang-orang dan sistem perangkat lunak yang terhubung langsung ke wadah.
Audien Awal:Individu teknis di dalam dan di luar tim pengembangan perangkat lunak, termasuk arsitek perangkat lunak, pengembang, dan staf operasi/dukungan.
Tujuan:Diagram Container menggali lebih dalam ke dalam sistem perangkat lunak, dengan fokus pada struktur tingkat tinggi dan pembagian tanggung jawab di antara container. Container mewakili unit yang dapat dijalankan atau di-deploy secara terpisah, seperti aplikasi web atau basis data. Diagram ini juga menyoroti pilihan teknologi utama dan menggambarkan bagaimana container saling berkomunikasi. Ini merupakan alat yang berharga bagi pengembang maupun staf dukungan/operasi.
Direkomendasikan untuk Sebagian Besar Tim: Ya.
Ciri Kunci:
- Memfokuskan pada arsitektur sistem perangkat lunak.
- Menggambarkan container dan interaksi di antaranya.
- Menyoroti pilihan teknologi.
- Sesuai untuk pemangku kepentingan teknis.
- Tidak membahas detail khusus penggunaan seperti klasterisasi atau penyeimbangan beban.
3. Diagram Komponen
Lingkup:Satu container.
Elemen Utama:Komponen di dalam container yang sedang dibahas.
Elemen Pendukung:Container (dalam sistem perangkat lunak yang sedang dibahas) dan orang serta sistem perangkat lunak yang terhubung langsung ke komponen.
Audien Awal:Arsitek perangkat lunak dan pengembang.
Tujuan:Diagram Komponen memberikan pandangan rinci mengenai struktur internal sebuah container. Diagram ini memecah container menjadi blok bangunan struktural utama, yang dikenal sebagai komponen. Komponen-komponen ini bertanggung jawab atas tugas-tugas tertentu di dalam container dan terkait dengan detail teknologi dan implementasi. Diagram ini sangat berguna bagi arsitek perangkat lunak dan pengembang yang perlu memahami aspek-aspek halus dari arsitektur container.
Direkomendasikan untuk Sebagian Besar Tim:Tidak, buat diagram komponen hanya jika memberikan nilai tambah, dan pertimbangkan untuk mengotomatisasi pembuatannya untuk dokumentasi jangka panjang.
Ciri Kunci:
- Memfokuskan pada struktur internal sebuah container.
- Mengidentifikasi komponen, tanggung jawabnya, dan detail implementasi.
- Mengarah pada pemangku kepentingan teknis.
- Tidak selalu diperlukan dan sebaiknya digunakan secara bijaksana ketika memberikan nilai tambah bagi dokumentasi.
4. Diagram Kode
Lingkup:Satu komponen tunggal.
Elemen Utama:Kode rinci dan artefak teknis dalam suatu komponen tertentu.
Elemen Pendukung:Komponen (dalam kontainer dalam lingkup), kontainer (dalam sistem perangkat lunak dalam lingkup), serta orang dan sistem perangkat lunak yang terhubung langsung ke komponen.
Penonton yang Ditujukan:Individu yang sangat teknis, umumnya pengembang dan mereka yang terlibat mendalam dalam kode dasar.
Tujuan:Tingkat akhir dari model C4, diagram Kode, memperbesar lebih jauh untuk memberikan pandangan mendalam terhadap kode dasar komponen tertentu. Diagram ini menggali kode sumber yang sebenarnya, struktur kelas, dan detail implementasi teknis dalam komponen. Ini sangat berguna bagi pengembang yang perlu bekerja pada atau memahami bagian dalam dari komponen tertentu.
Direkomendasikan untuk Sebagian Besar Tim:Sangat jarang digunakan dalam praktik. Umumnya tidak lazim membuat diagram Kode, karena tingkat detail yang mereka berikan sering sudah tercakup dalam dokumentasi kode dan lingkungan pengembangan.
Ciri Kunci:
- Berfokus pada kode sumber yang sebenarnya dan artefak teknis.
- Memberikan pandangan yang sangat rinci terhadap implementasi suatu komponen.
- Terutama ditujukan untuk pengembang yang bekerja pada kode.
- Sangat jarang digunakan dalam praktik karena tingkat detailnya yang tinggi, karena informasi ini umumnya sudah tersedia dalam kode dasar itu sendiri.
Kesimpulan
Empat tingkatan model C4 menyediakan hierarki terstruktur untuk mendokumentasikan dan berkomunikasi desain arsitektur perangkat lunak, dimulai dari gambaran umum tingkat tinggi dalam diagram Konteks Sistem dan secara bertahap menurun ke kode sebenarnya dalam diagram Kode. Diagram ini menyesuaikan berbagai penonton, mulai dari pemangku kepentingan non-teknis yang mendapat manfaat dari gambaran besar hingga pengembang teknis yang membutuhkan wawasan mendalam pada tingkat kode. Dengan menerapkan model C4, arsitek perangkat lunak dan tim pengembangan dapat secara efektif menyampaikan desain arsitektur yang kompleks dan memupuk pemahaman serta kolaborasi yang lebih baik di dalam dan di luar organisasi mereka.












