4 + 1 View Model dari Software Arsitektur

Bagaimana para stakeholder memandang software arsitektur secara bersamaan

D. Husni Fahri Rizal
The Legend
8 min readFeb 18, 2023

--

Pada pembahasan sebelumnya mengengai C4 Model level of Architecture, kita telah membahas bagaimana diagram arsitektur di buat dengan lebih memberikan manfaat dan sesuai dengan target audiens. Tentuanya model memiliki level detail yang berbeda.

Pada kesempatan kali ini kita akan membahas satu lagi pendekatan dalam membuat software arsitektur yang dapat lebih memberikan maanfaat bagi semua level dari stackholder dengan pedekatan bagai mana sebuah arstitektur di liat dari pandangan beberapa pengguna secara bersamaan. Pemodelan ini dikenal dengan Model tampilan arsitektur 4+1.

Pesan Context Penting

Ada banyak pemangku kepentingan yang berbeda terkait dengan sistem perangkat lunak yang semuanya memiliki perspektif dan cara pandang yang berbeda. Project manager, software developer, devops, dan pengguna akhir semua melihat sistem dengan cara yang sangat berbeda. Mereka melihat sistem berdasarkan konteks mereka sendiri.

Untuk menggambarkan suatu sistem, akan berguna apabila gambaran tersebut dapat mendefinisikan semua sudut pandang yang berbeda dan bagaimana kasus penggunaan sistem secara keseluruhan.

Sejarah Model 4+1 Software Arsitektur

View model 4+1 ini di gagas atau di sampaikan oleh Philippe Kruchten seorang profesor dalam software engineering. Dalam makalahnya yang berjudul Architectural Blueprints — The “4+1” View Model of Software Architecture, ia menawarkan teknik untuk mengatur deskripsi dari arsitektur menggunakan seranngkaian view atau tampilan secara bersamaan. Tampilan-tampilan ini akan menangani setiap permasalahan dari masing-masing pemangku kepentingan. Inilah tujuan awal dari model 4+1 tersebut.

Seperti yang saya jelaskan di atas, pada model 4+1 sistem dideskripsikan menggunakan sudut pandang yang berbeda. Model ini membagi informasi menjadi lima bagian, yaitu: view model fisik, view model implementasi, view model pengguna, view model interaksi, dan view model proses. Masing-masing bagian ini memfokuskan pada aspek yang berbeda dari sistem atau aplikasi, seperti struktur fisik, bagaimana sistem diimplementasikan, bagaimana sistem digunakan oleh pengguna, bagaimana sistem berkomunikasi dengan pengguna, dan bagaimana sistem menjalankan proses-prosesnya.

Tujuan dari model ini adalah untuk memberikan gambaran yang lengkap dan terstruktur mengenai sistem atau aplikasi, sehingga mudah dipahami oleh orang yang menggunakannya.

Hasilnya, model memiliki tampilan 4+1. Oleh karena itu model ini disebut The 4+1 Architectural View. Sekarang mari kita lihat satu per satu.

Penjelasan Model

Logical View

Logical view atau Tampilam Logis. Tampilan logis berkaitan dengan fungsionalitas sistem karena berkaitan dengan pengguna akhir.

Logical view menangkap kebutuhan funsional dari software aplikasi kedalam elemen yang tersturktur dan biasanya bersifat abstraksi. Logical view ini di peruntukan bagi para developer dan para lead serta engineering manager.

Pada logical view, fokus utama adalah pada pengorganisasian konsep dan abstraksi yang membentuk arsitektur perangkat lunak. Logical view dapat digambarkan dalam bentuk diagram kelas, diagram objek, atau diagram aktivitas, yang masing-masing menggambarkan elemen-elemen penting dari struktur logis sistem.

Proses penguraian kedalam object akan mengcapture kebiasaan aplikasi dan menggunakan pendekatan berorientasi object. Class Diagram dan Status diagram adalah contoh diagram UML yang digunakan untuk menggambarkan tampilan logis.

Pemodelan data digunakan juga dalam tahap analisis pengumpulan informasi dan merubahnya kedalam beberaa entity class. ER diagram banyak digunakan dalam proses ini untuk nemampilkan entity bisnis dan relasinya.

Pengelompokan tampilan sistem dan subsistemnya digunakan juga untuk membagi aplikasi berdasarkan modul, pengelompokan fungsi dan tanggung jawab serta hubungan dari modul-modul ini. UML dari componen diagram dapat di gunakan di proses ini.

https://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-archite

Proses View

Process view adalah salah satu dari lima perspektif dalam model 4+1, yang digunakan untuk menggambarkan bagaimana komponen-komponen perangkat lunak bekerja dan berinteraksi dalam proses bisnis atau proses operasional. Process view menunjukkan bagaimana proses bisnis atau proses operasional diproses dan dijalankan di dalam perangkat lunak.

Pada process view, fokus utama adalah pada proses bisnis atau proses operasional yang terjadi di dalam sistem, serta bagaimana proses tersebut diwakili dalam perangkat lunak. Process view dapat digambarkan dalam bentuk diagram aktivitas, yang menunjukkan aliran kerja proses dan aktivitas-aktivitas yang dilakukan dalam proses tersebut.

Proses view fokus pada kebiasaan dari sistem ketika sisteam berjalan (run time) dan berkaitan pada semua element dinamis dari sistem. Bagian ini akan menjelaskan proses sistem dan bagaimana mereka berkomunikasi. Pada bagian ini distribusi, concurrency, integrasi, kinerja, dan skalability menjadi fokus dan harup di bahas secara detail.

Diagram aktivitas pada process view dapat digunakan untuk menunjukkan aliran kerja proses bisnis atau proses operasional, serta aktivitas-aktivitas yang dilakukan dalam proses tersebut. Diagram ini dapat membantu pengembang dalam memahami bagaimana komponen-komponen perangkat lunak berinteraksi dalam proses bisnis atau proses operasional.

Selain diagram aktivitas, process view juga dapat berisi deskripsi dan dokumentasi yang menjelaskan proses bisnis atau proses operasional secara rinci, serta bagaimana proses tersebut diimplementasikan dalam perangkat lunak. Hal ini memungkinkan para pengembang dan stakeholder untuk memahami bagaimana perangkat lunak berinteraksi dengan proses bisnis atau proses operasional.

Dengan menggunakan process view, para pengembang dapat membangun perangkat lunak yang dapat diintegrasikan dengan proses bisnis atau proses operasional yang ada, serta memastikan bahwa perangkat lunak yang dihasilkan dapat memenuhi kebutuhan proses bisnis atau proses operasional. Hal ini dapat membantu meningkatkan efisiensi dan efektivitas proses bisnis atau proses operasional, serta memungkinkan organisasi untuk lebih mudah mengelola proses-proses yang ada.

Development View

Development view menunjukkan struktur dari kode program yang diperlukan untuk membangun perangkat lunak, serta hubungan antara modul dan komponen. Development view dapat membantu tim pengembang dalam memahami hubungan antara kode program dan struktur arsitektur perangkat lunak. Development view terdiri dari diagram class, package, dan sequence diagram, serta deskripsi dari kelas-kelas dan modul-modul yang terlibat dalam implementasi perangkat lunak.

Diagram class adalah diagram yang menunjukkan struktur dari kelas-kelas yang digunakan dalam implementasi perangkat lunak. Diagram ini menunjukkan hubungan antara kelas-kelas, seperti hubungan inheritance, association, dan composition.

Diagram package adalah diagram yang menunjukkan struktur dari package dan hubungan antara package. Package adalah grup dari kelas-kelas yang berhubungan dan membentuk suatu unit fungsional.

Sequence diagram adalah diagram yang menunjukkan urutan pesan-pesan yang dikirimkan antara objek-objek dalam perangkat lunak. Diagram ini dapat membantu pengembang dalam memahami bagaimana modul-modul dalam perangkat lunak berinteraksi satu sama lain.

Deskripsi dari kelas-kelas dan modul-modul yang terlibat dalam implementasi perangkat lunak digunakan untuk memberikan pemahaman lebih rinci mengenai implementasi perangkat lunak. Deskripsi ini dapat berisi detail mengenai struktur data, algoritma, dan metode yang digunakan dalam implementasi perangkat lunak.

Dengan menggunakan development view, tim pengembang dapat memahami implementasi perangkat lunak dengan lebih baik, dan memastikan bahwa komponen-komponen perangkat lunak dirancang dengan baik dan terintegrasi dengan baik dalam arsitektur perangkat lunak secara keseluruhan.

Physical View

Pada physical view, fokus utama adalah pada lingkungan perangkat keras yang mendukung operasi perangkat lunak. Physical view dapat digambarkan dalam bentuk diagram komponen, yang menunjukkan bagaimana komponen-komponen perangkat lunak dipasang dan dihubungkan dengan perangkat keras.

Diagram komponen pada physical view dapat digunakan untuk menunjukkan komponen-komponen perangkat lunak dan perangkat keras yang digunakan dalam sistem, serta hubungan antara mereka. Diagram ini juga dapat menunjukkan bagaimana komponen-komponen diimplementasikan dalam perangkat keras, seperti server, router, atau perangkat lainnya.

Selain diagram komponen, physical view juga dapat berisi deskripsi dan dokumentasi yang menjelaskan bagaimana komponen-komponen perangkat lunak berinteraksi dengan perangkat keras yang ada, serta bagaimana perangkat lunak diimplementasikan dalam lingkungan perangkat keras yang ada. Hal ini memungkinkan para pengembang dan stakeholder untuk memahami bagaimana perangkat lunak berinteraksi dengan lingkungan perangkat keras dan memastikan bahwa perangkat lunak yang dihasilkan dapat dijalankan dan dioperasikan dengan benar.

Dengan menggunakan physical view, para pengembang dapat membangun perangkat lunak yang sesuai dengan lingkungan perangkat keras yang ada, serta memastikan bahwa perangkat lunak yang dihasilkan dapat beroperasi dengan baik dan stabil dalam lingkungan yang ada. Hal ini dapat membantu meningkatkan efisiensi dan efektivitas sistem, serta memungkinkan organisasi untuk lebih mudah mengelola dan memelihara sistem.

https://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf

Scenario — Event Veiw

View kelima dalam model 4+1 adalah view kejadian (event view). View ini berfokus pada cara sistem merespons kejadian atau peristiwa tertentu dalam lingkungan yang ada.

View kejadian (event view) menjelaskan bagaimana sistem merespons kejadian-kejadian dalam lingkungan. Kejadian tersebut dapat meliputi input pengguna, interaksi dengan sistem lain, perubahan kondisi lingkungan, dan lain sebagainya. Dalam view kejadian, sistem dipandang sebagai mesin yang merespons rangkaian kejadian atau peristiwa yang terjadi di sekitarnya.

View kejadian biasanya direpresentasikan dalam bentuk diagram urutan kejadian atau diagram urutan interaksi (sequence diagram), yang menunjukkan bagaimana sistem merespons kejadian yang terjadi. Diagram ini menggambarkan urutan kejadian atau peristiwa yang terjadi, serta bagaimana sistem meresponsnya.

Selain diagram urutan kejadian, view kejadian juga dapat berisi deskripsi dan dokumentasi yang menjelaskan cara sistem merespons kejadian atau peristiwa tertentu, serta bagaimana sistem dapat mengelola dan memproses informasi yang diterima dari lingkungan sekitarnya.

Dengan menggunakan view kejadian, para pengembang dapat memahami bagaimana sistem merespons kejadian atau peristiwa tertentu dalam lingkungan yang ada, serta dapat memastikan bahwa sistem yang dibangun dapat mengelola dan memproses informasi dengan efektif. Hal ini dapat membantu meningkatkan kinerja dan fungsionalitas sistem, serta memastikan bahwa sistem dapat beroperasi dengan baik dalam berbagai situasi yang mungkin terjadi.

https://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf

Kesimpulan

Dalam 4+1 Model View Architecture, arsitektur ini memiliki empat view utama dan satu view tambahan yang digunakan untuk menggambarkan skenario penggunaan dari sistem yang dibangun. Berikut ini adalah kesimpulan dari 4+1 Model View Architecture:

  1. Logical View: Logical view adalah view yang menunjukkan bagaimana sistem berfungsi dan berinteraksi dengan pengguna dan lingkungan sekitarnya. Logical view menunjukkan bagaimana data diakses, diproses, dan disimpan di dalam sistem.
  2. Development View: Development view adalah view yang menunjukkan bagaimana komponen-komponen sistem dirancang dan diimplementasikan. Development view digunakan oleh tim pengembang untuk memahami arsitektur sistem dan membangunnya.
  3. Process View: Process view adalah view yang menunjukkan bagaimana sistem beroperasi dan berkomunikasi dengan sistem lain dalam lingkungan yang lebih luas. Process view digunakan untuk mengidentifikasi dan memecahkan masalah performa dan keamanan pada sistem.
  4. Physical View: Physical view adalah view yang menunjukkan bagaimana sistem diimplementasikan pada infrastruktur fisik yang digunakan. Physical view digunakan untuk memahami bagaimana komponen-komponen sistem ditempatkan dan dihubungkan dengan infrastruktur yang digunakan.
  5. Use Case View: Use case view adalah view tambahan yang menunjukkan bagaimana pengguna akan menggunakan sistem. Use case view digunakan untuk memahami kebutuhan pengguna dan menentukan fitur yang harus ada di dalam sistem.

Secara keseluruhan, 4+1 Model View Architecture memberikan pandangan yang komprehensif tentang sistem yang dibangun, dan membantu tim pengembang dalam memahami, merancang, dan mengimplementasikan sistem dengan lebih efisien dan efektif.

References

  1. https://medium.com/javarevisited/4-1-architectural-view-model-in-software-ec407bf27258
  2. https://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf
  3. https://en.wikipedia.org/wiki/4%2B1_architectural_view_model
  4. https://github.com/joelparkerhenderson/architecture-decision-record

--

--

D. Husni Fahri Rizal
The Legend

Engineering Leader | Start-Up Advisor | Agile Coach | Microservices Expert | Professional Trainer | Investor Pemula