Minggu, 24 April 2022. Kegiatan NgabuburIT bersama Berugak IT Lombok dalam kesempatan sharing Basic Principle Of Software Engineering. Dalam memulai karir maupun hobby di bidang Software Engineering (Pengembangan Perangkat Lunak), maka memahami prinsip-prinsip dasar dalam Pengembangan Perangkat Lunak merupakan prioritas yang mendasar. Diantaranya pentingnya memahami Pengembangan Perangkat Lunak melalui pemahaman dasar dan fundamental pemrograman maka akan mempermudah kita dalam menguasai konsep Pengembangan Perangkat Lunak secara terstruktur dan teratur.
Maka, diantara beberapa model Pengembangan Perangkat Lunak, terdapat sebuah arsitektur (rangka kerja) dalam memahami Pengembangan Perangkat Lunak dengan baik. Berikut merupakan salah satunya yang disebut Software Architecture Patterns.
Gambar diatas mempresentasikan layer (lapisan) yang terdapat pada software secara umum. Setiap layer memiliki peran dan tanggung-jawab berkaitan dengan software. Secara ringkas, pembagiannya seperti berikut:
Presentation Layer
Bertanggung-jawab dengan user-interface dan komunikasi terhadap browser.
Business Layer
Bertanggung-jawab pada business-logic yang berkaitan dengan spesifik request.
Persistence Layer
Bertanggung-jawab pada proses pengelolaan data (kalkulasi data maupun melakukan aggregate)
Database Layer
Menyediakan dan bertanggung-jawab terhadap data yang disediakan untuk aplikasi yang terhubung kepada DBMS (Database Management System)
Dengan menerapkan prinsip Software Architecture Patterns akan membantu pengembangan aplikasi kita menjadi aman dan maintainable (mudah dikelola). Gambar diatas menunjukkan proses perpindahan request antar layer sesuai dengan tugasnya masing-masing. Request yang diterima oleh Presentation Layer tidak bisa langsung di teruskan ke Database Layer dengan alasan penerapan Layer Of Isolation. Layer Of Isolation akan membatasi peran dan akses layer sehingga tidak mengganggu aktivitas yang ada pada layer yang lain sehingga perubahan yang terjadi pada satu layer tidak akan mempengaruhi layer yang lainnya karena setiap layer sudah indenpen.
Namun, ada kemungkinan layer tertentu untuk melewati satu layer lainnya seperti gambar diatas bisa saja terjadi dengan memberikan izin kepada layer diatasnya dengan status open pada layer. Konsep closed dan open tersebut akan membantu teman-teman dalam mendefinisikan relasi antar arsitektur layer dan aliran request yang ada.
Sumber: https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch01.html