Desain Sistem dalam Pengembangan Perangkat Lunak

Dipublikasikan oleh Syayyidatur Rosyida

07 Mei 2024, 09.00

sumber: pinterest.com

Desain sistem adalah proses mendesain elemen-elemen sistem seperti arsitektur, modul dan komponen, antarmuka yang berbeda dari komponen-komponen tersebut, dan data yang melewati sistem tersebut.

Analisis Sistem adalah proses yang menguraikan sebuah sistem ke dalam bagian-bagian komponennya dengan tujuan untuk mendefinisikan seberapa baik komponen-komponen tersebut berinteraksi untuk mencapai persyaratan yang ditetapkan.

Tujuan dari proses Desain Sistem adalah untuk menyediakan data dan informasi terperinci yang cukup tentang sistem dan elemen-elemen sistemnya untuk memungkinkan implementasi yang konsisten dengan entitas arsitektur seperti yang didefinisikan dalam model dan pandangan arsitektur sistem.

Elemen-elemen sistem

  1. Arsitektur - Ini adalah model konseptual yang mendefinisikan struktur, perilaku, dan lebih banyak pandangan dari sebuah sistem. Kita dapat menggunakan diagram alir untuk merepresentasikan dan mengilustrasikan arsitektur.
  2. Modul - Ini adalah komponen yang menangani satu tugas tertentu dalam sebuah sistem. Kombinasi dari modul-modul tersebut membentuk sistem.
  3. Komponen - Ini menyediakan fungsi tertentu atau kelompok fungsi terkait. Komponen ini terdiri dari modul-modul.
  4. Antarmuka - Ini adalah batas bersama di mana komponen-komponen sistem bertukar informasi dan berhubungan.
  5. Data - Ini adalah pengelolaan informasi dan aliran data.

Tugas utama yang dilakukan selama proses desain sistem

  • Inisialisasi definisi desain
  • Merencanakan dan Mengidentifikasi teknologi yang akan menyusun dan mengimplementasikan elemen-elemen sistem dan antarmuka fisiknya.
  • Tentukan teknologi dan elemen sistem mana yang memiliki risiko untuk menjadi usang, atau berevolusi selama tahap operasi sistem. Rencanakan potensi penggantinya.
  • Mendokumentasikan strategi definisi desain, termasuk kebutuhan dan persyaratan sistem, produk, atau layanan yang memungkinkan untuk menjalankan desain.

Menetapkan karakteristik desain

  • Tetapkan karakteristik desain yang berkaitan dengan karakteristik arsitektur dan periksa apakah karakteristik tersebut dapat diimplementasikan.
  • Tentukan antarmuka yang tidak ditentukan oleh proses Arsitektur Sistem atau yang perlu disempurnakan seiring dengan berkembangnya detail desain.
  • Mendefinisikan dan mendokumentasikan karakteristik desain dari setiap elemen sistem2.

Menilai alternatif-alternatif untuk mendapatkan elemen-elemen sistem

  • Menilai opsi desain
  • Pilih alternatif yang paling tepat.
  • Jika keputusan dibuat untuk mengembangkan elemen sistem, sisa proses definisi desain dan proses implementasi digunakan. Jika keputusannya adalah untuk membeli atau menggunakan kembali elemen sistem, proses akuisisi dapat digunakan untuk mendapatkan elemen sistem.

Mengelola desain

  • Menangkap dan mempertahankan alasan untuk semua pilihan di antara alternatif dan keputusan untuk desain, karakteristik arsitektur.
  • Menilai dan mengendalikan evolusi karakteristik desain.

Faktor-faktor yang mempengaruhi pertukaran teknologi selama desain sistem

Skala Produk

  • Sebagai contoh, perusahaan perangkat lunak perusahaan yang membangun perangkat lunak tingkat sistem memprioritaskan keandalan karena pelanggan perlu menggunakannya. Setiap perubahan harus diuji secara ketat, dan sering kali disetujui sebelum dirilis.
  • Sementara itu, perusahaan internet konsumen menghabiskan waktu dan uang untuk membuat UX mereka menyenangkan sehingga orang ingin menggunakannya. Keandalan adalah sesuatu yang rela mereka korbankan. Karena banyak aplikasi berbasis web, mereka dapat mengulang dengan cepat dan sering merilis perubahan.

Waktu

  • Mempelajari teknologi baru terkadang membutuhkan waktu. Pengorbanan dalam hal ini akan dilakukan sesuai dengan stack/teknologi mana yang akan tepat waktu dengan tanggal pengiriman yang ditetapkan. Jika beralih ke stack/teknologi baru akan mengakibatkan perubahan besar pada tanggal pengiriman dan ketidaknyamanan besar bagi para pemangku kepentingan, maka peralihan dapat ditunda hingga waktu yang tepat.

Biaya

  • Dalam skala yang lebih besar, keputusan teknologi dibuat berdasarkan mana yang lebih hemat biaya, di mana perbandingan dapat dilakukan untuk menentukan mana yang lebih efektif antara membeli sistem yang sudah jadi dan menyesuaikannya atau membangun sistem baru.

Efisiensi

  • Trade off teknologi juga dilakukan berdasarkan teknologi mana yang lebih efisien misalnya memilih antara ReactJs atau AngularJs untuk aplikasi front end.

Pengalaman dan Dukungan Pengguna

  • Jumlah dukungan dan dokumentasi yang tersedia pada teknologi tertentu juga dapat menjadi faktor penentu keputusan. Bekerja dengan Teknologi yang memiliki basis dukungan yang besar, dokumentasi yang komprehensif, dan pengalaman pengguna yang baik akan jauh lebih mudah dan membutuhkan waktu yang sangat singkat untuk meningkatkannya karena banyaknya sumber daya yang tersedia untuk mendukungnya.

Pemeliharaan

  • Pemeliharaan dalam hal ini adalah kemudahan sebuah produk untuk dipelihara untuk memperbaiki kesalahan, memperbaiki bug, dan menambahkan fitur tambahan. Keputusan trade-off akan dibuat berdasarkan kemampuan pemeliharaan Teknologi

Keandalan

  • Dalam hal ini trade off dibuat berdasarkan Teknologi yang berkinerja baik secara konsisten dan secara konsisten meningkatkan ke versi yang lebih efisien.

Skalabilitas

  • Trade off teknologi juga dibuat berdasarkan teknologi yang lebih skalabel dan mampu menangani peningkatan beban secara efisien tanpa mengganggu efisiensi sistem.

Pola desain MVC

Pola desain Model View Controller (MVC) menetapkan bahwa sebuah aplikasi terdiri dari model data, informasi presentasi, dan informasi kontrol.

MVC sebagian besar berhubungan dengan lapisan antarmuka/interaksi pengguna dari sebuah aplikasi.

Dalam pola MVC, pengguna melihat View yang diperbarui oleh model yang kemudian dimanipulasi oleh Controller.

Sumber: medium 

Pola MVC

  • Model hanya berisi data aplikasi murni, tidak mengandung logika yang menjelaskan bagaimana menyajikan data kepada pengguna. Controller adalah bagian dari aplikasi yang mengimplementasikan logika untuk domain data aplikasi. Mereka mengambil dan menyimpan status model dalam database.
  • View menyajikan data model kepada pengguna. View hanya dapat digunakan untuk mengakses data model. Mereka adalah komponen yang menampilkan antarmuka pengguna (UI) aplikasi.
  • Controller berada di antara view dan model. Controller mendengarkan kejadian yang dipicu oleh view dan menjalankan perintah yang sesuai. Controller adalah komponen yang menangani interaksi pengguna, bekerja dengan model, dan pada akhirnya memilih view untuk dirender yang menampilkan UI.

Keuntungan dari pola desain MVC

Beberapa pengembang dapat bekerja secara bersamaan pada model, controller, dan view.

  • MVC memungkinkan pengelompokan logis dari tindakan yang terkait pada controller secara bersamaan. Tampilan untuk model tertentu juga dikelompokkan bersama.
  • Kopling rendah - Sifat dasar kerangka kerja MVC adalah sedemikian rupa sehingga ada kopling yang rendah di antara model, view atau controller.
  • Model dapat memiliki banyak view.
  • Kemudahan modifikasi - Karena adanya pemisahan tanggung jawab, pengembangan atau modifikasi di masa depan menjadi lebih mudah

Kekurangan

Pengetahuan tentang berbagai teknologi menjadi norma. Pengembang yang menggunakan MVC harus terampil dalam berbagai teknologi.

Di bawah ini adalah contoh desain sistem

Sumber: medium

Disadur dari: medium.com