Desain perangkat lunak – Wikipedia, ensiklopedia gratis

Desain perangkat lunak adalah proses di mana agen membuat spesifikasi artefak perangkat lunak, yang dimaksudkan untuk memenuhi tujuan, menggunakan seperangkat komponen primitif dan tunduk pada batasan. [1] Desain perangkat lunak dapat merujuk pada “semua aktivitas dalam mengkonseptualisasikan, membingkai, menerapkan, mengoperasikan, dan akhirnya memodifikasi sistem yang kompleks” atau “aktivitas yang mengikuti spesifikasi persyaratan dan mendahului pemrograman, seperti dalam proses rekayasa perangkat lunak bergaya. [2]​

Desain perangkat lunak biasanya melibatkan pemecahan masalah dan perencanaan solusi perangkat lunak. Ini termasuk komponen tingkat rendah dan desain algoritma dan desain arsitektur tingkat tinggi. Gambaran Umum[edit]

Desain perangkat lunak adalah proses melihat dan mendefinisikan solusi perangkat lunak untuk satu atau lebih set masalah. Salah satu komponen utama desain perangkat lunak adalah analisis persyaratan perangkat lunak (ARS). Ini adalah bagian dari proses pengembangan perangkat lunak yang mencantumkan spesifikasi yang digunakan dalam rekayasa perangkat lunak. Jika perangkat lunak “otomatis” atau berpusat pada pengguna, desain perangkat lunak juga dapat melibatkan desain pengalaman pengguna yang menggunakan storyboard atau storyboard untuk membantu menentukan spesifikasi tersebut. Jika perangkat lunak sepenuhnya otomatis (yaitu, tanpa pengguna atau antarmuka pengguna), desain perangkat lunak dapat sesederhana diagram alur atau teks yang menggambarkan urutan peristiwa yang direncanakan. Ada juga metode semi-standar seperti Unified Modeling Language (UML) dan konsep pemodelan dasar. Bagaimanapun, biasanya beberapa dokumentasi hasil rencana sebagai produk dari desain. Selain itu, desain perangkat lunak dapat platform-independen atau platform-spesifik, tergantung pada ketersediaan teknologi yang digunakan untuk desain.

Perbedaan utama antara analisis dan desain perangkat lunak adalah bahwa produksi analisis perangkat lunak terdiri dari masalah yang lebih kecil untuk diperbaiki. Selain itu, analisis tidak harus dirancang sangat berbeda oleh anggota tim yang berbeda. Sebaliknya, desain berfokus pada kemampuan dan karena itu beberapa desain ada dan akan ada untuk masalah yang sama. Tergantung pada lingkungan, desain juga bervariasi tergantung pada apakah itu sedang dibangun dari kerangka kerja yang dapat diandalkan atau diimplementasikan dengan pola desain yang sesuai. Contoh desain termasuk sistem operasi, halaman web, perangkat mobile atau bahkan paradigma baru komputasi awan.

Desain perangkat lunak adalah proses dan model. Proses desain adalah urutan langkah-langkah yang memungkinkan desainer untuk menggambarkan semua aspek perangkat lunak yang akan dibangun. Keterampilan kreatif, pengalaman, rasa apa yang membuat perangkat lunak “baik”, dan komitmen terhadap kualitas adalah contoh faktor penting untuk keberhasilan desain yang kompeten. Penting untuk dicatat bahwa proses desain tidak selalu merupakan prosedur sederhana; model desain dapat dibandingkan dengan rencana rumah untuk seorang arsitek. Ini dimulai dengan mewakili totalitas dari hal yang akan dibangun (misalnya, rendering tiga dimensi rumah); hal ini perlahan-lahan disempurnakan untuk digunakan sebagai panduan ketika membangun setiap detail (misalnya, bagian pipa). Demikian pula, model desain yang dibuat untuk perangkat lunak menyediakan berbagai visi yang berbeda dari perangkat lunak. Prinsip-prinsip desain dasar membantu insinyur perangkat lunak menavigasi proses desain. Davis menyarankan seperangkat prinsip desain perangkat lunak yang telah diadaptasi dan diperluas dalam daftar berikut:[3]

  • Proses desain tidak harus menderita “visi terowongan.” Seorang desainer yang baik harus mempertimbangkan pendekatan alternatif, menilai masing-masing berdasarkan persyaratan masalah, pada sumber daya yang tersedia untuk melakukan pekerjaan itu.
  • Desain harus dapat dilacak oleh model analisis. Karena satu elemen dari model desain sering dapat ditelusuri kembali ke beberapa persyaratan, perlu untuk memiliki sarana untuk mengamati bagaimana persyaratan telah dipenuhi oleh model desain.
  • Desain tidak perlu menemukan kembali roda. Sistem dibangun menggunakan seperangkat pola desain, banyak di antaranya mungkin telah digunakan sebelumnya. Pola-pola ini harus dipilih sebagai alternatif untuk reinvention. Ada sedikit waktu dan sumber daya yang terbatas; Waktu desain harus diinvestasikan dalam mewakili ide-ide yang benar-benar baru dengan mengintegrasikan pola yang sudah ada (kapan pun dan bila memungkinkan).
  • Desain harus “meminimalkan jarak intelektual” antara perangkat lunak dan masalah seperti yang ada di dunia nyata. Artinya, struktur desain perangkat lunak harus, bila memungkinkan, meniru struktur domain masalah.
  • Desain harus menunjukkan keseragaman dan integrasi. Desain seragam jika sepenuhnya koheren. Untuk mencapai hal ini, aturan gaya dan pemformatan harus ditentukan untuk tim desain sebelum pekerjaan desain dimulai. Desain terintegrasi jika Anda mengalami kesulitan mendefinisikan antarmuka antara komponen desain.
  • Desain harus disusun untuk beradaptasi dengan perubahan. Konsep desain yang dibahas di bagian berikutnya memungkinkan desain untuk mencapai prinsip ini.
  • Desain harus disusun untuk menurunkan dengan lancar, bahkan ketika data, peristiwa, atau kondisi operasi tidak teratur. Perangkat lunak yang dirancang dengan baik tidak boleh “meledak”; itu harus dirancang agar sesuai dengan keadaan yang tidak biasa, dan jika itu untuk menyelesaikan eksekusinya, itu harus melakukannya dengan cara yang paling anggun.
  • Desain bukan coding, coding bukan desain. Bahkan ketika desain proses terperinci dibuat untuk komponen program, tingkat abstraksi model desain lebih tinggi daripada kode sumber. Satu-satunya keputusan desain di tingkat pengkodean harus menyangkut detail implementasi kecil untuk memungkinkan pengkodean desain proses.
  • Kualitas desain harus dievaluasi ketika sedang dibuat, bukan setelahnya. Berbagai konsep dan langkah-langkah desain tersedia untuk membantu desainer dalam menilai kualitas selama proses pengembangan.
  • Desain harus direvisi untuk meminimalkan kesalahan konseptual (semantik). Terkadang ada kecenderungan untuk fokus pada hal-hal kecil saat meninjau desain. Tim desain harus memastikan bahwa elemen konseptual penting dari desain (kelalaian, ambiguitas, inkonsistensi) telah ditangani sebelum khawatir tentang sintaks model desain.

Konsep desain[edit]

Related posts

Leave a Reply

Your email address will not be published.