Desain Konsep

Desain adalah langkah pertama dalam fase pengembangan bagi setiap produk atau sistem yang direkayasa. Desain dapat didefinisikan berbagai “proses aplikasi berbagai teknik dan prinsip bagi tujuan pendefinisian suatu perangkat, suatu proses atau sistem dalam detail yang memadai untuk memungkinkan realisasi fisiknya”[TAY59]. Tujuan desainer adalah untuk menghasilkan suatu model atau representasi dari entitas yang kemudian akan dibangun.

      Desain perangkat lunak berada pada inti teknik dari proses rekayasa perangkat lunak dan diaplikasikan tanpa memperhatikan model proses perangkat lunak yang digunakan. Begitu persyaratan perangkat lunak telah mulai dianalisis dan ditentukan, maka desain perangkat lunak menjadi yang pertama dari tiga aktivitas teknik – desain, pembuatan kode dan pengujian – yang diperlukan untuk membangun dan menguji perangkat lunak. Persyaratan perangkat lunak, yang dimanifestasi oleh data, fungsional, dan model-model perilaku, mengisi langkah desain. Dengan menggunakan satu dari sejumlah metode desain, langkah desain menghasilkan :
a. desain data
b. desain arsitektur
c. desain interface
d. desain prosedural
     Selama desain, kita dapat membuat keputusan yang akan mempengaruhi kesuksesan konstruksi perangkat lunak dan kemudahan maintenance-nya. Desain sangat penting karena dapat menentukan kualitas dari suatu perangkat lunak.

B. Proses Desain

      Desain perangkat lunak adalah suatu proses interaktif yang melaluinya persyaratan diterjemahkan ke dalam suatu “cetak biru” untuk membangun perangkat lunak. Cetak biru menggambarkan suatu pandangan menyeluruh perangkat lunak, yaitu bahwa desain dihadirkan pada tingkat abstraksi yang tinggi (dapat secara lanngsung ditelusuri sampai data spesifik, fungsional, dan persyaratan behavioral) 
1. Desain dan kualitas perangkat lunak
McGlaughlin mengusulkan 3 karakteristik yang berfungsi sebagai pedoman bagi evaluasi suatu desain yang baik :
  • desain harus mengimplementasikan keseluruhan persyaratan eksplisit yang dibebankan dalam model analisis, dan harus mengakomodasikan semua persyaratan implisit yang diinginkan pelanggan.
  • Desain harus menjadi panduan yang dapat dibaca, dapat dipahami bagi mereka yang menghasilkan kode dan yang menguji serta memelihara perangkat lunak.
  • Desain harus memberikan suatu gambaran lengkap mengenai perangkat lunak, yang menekankan data, dan domain perilaku dari perspektif implementasi.
    Kriteria teknis untuk desain yang baik :
  • Desain harus memperlihatkan suatu organisasi yang dengan baik menggunakan kontrol di antara elemen-elemen perangkat lunak.
  • Desain harus modular : yaitu bahwa perangkat lunak harus dipartisi secara logika ke dalam elemen-elemen yang melakukan fungsi dan subfungsi khusus.
  • Desain harus berisi data dan abstraksi prosedural.
  • Desain harus membawa ke arah modul (misal subrutin atau prosedur) yang memperlihatkan karakteristik fungsional independent.
  • Desain harus mengarah kepada interface yang mengurangi kompleksitas hubungan antara modul-modul dan dengan lingkunga eksternal.
  • Desain harus didapat dengan menggunakan metode berulang yang dikendalikan oleh informasi yang diperoleh selama analisis persyaratan perangkat lunak.
2. Evolusi desain perangkat lunak
      Merupakan suatu proses kontinu yang terus berlangsung selama tiga dekade. Kerja desain awal dikonsentrasikan pada kriteria untuk pengembangan program moduler dan metode-metode untuk menyaring arsitektur perangkat lunak dengan cara top-down. Aspek-aspek prosedural dari definisi desain yang tercakup dalam suatu filosofi disebut pemrograman terstruktur. Usaha selanjutnya mengusulkan metode-metode translasi aliran data atau struktur data ke dalam definisi desain. Pendekatan desain yang lebih baru mengusulkan suatu pendekatan orientasi obyek ke derivasi desain.
Banyak metode desain yang tumbuh dari kerja tersebut, sedang diaplikasi pada industri. Setiap metode tersebut mempunyai sejumlah karakteristik umum : 
  • mekanisme penerjemahan suatu model analisis ke dalam representasi desain.
  • Notasi untuk merepresentasikan komponen-komponen fungsional dan interface-nya.
  • Heuristik bagi penyaringan dan partisi
  • Pedoman bagi penilaian kualitas 
     Desain perangkat lunak berupa model dan proses. Proses desain adalah serangkaian langkah iteratif yang memungkinkan desainer menggambarkan semua aspek perangkat lunak yang dibangun. Model desain adalah ekivalen rencana arsitek untuk sebuah “rumah”, yang dimulai dengan menyajikan totalitas dari hal yang akan dibangun. Prinsip desain dasar memungkinkan perekayasa perangkat lunak untuk mengendalikan proses desain.
  • Proses desain tidak boleh menderita karena “tunnel vision”
  • Desain harus dapat ditelusuri sampai model analisis.
  • Desain tidak boleh berulang.
  • Desain harus “meminimalkan kesenjangan intelektual” di antara perangkat lunak dan masalah yang ada di dunia nyata.
  • Desain harus mengungkap keseragaman dan integrasi.
  • Desain harus terstruktur untuk mengakomodasi perubahan.
  • Desain harus terstruktur untuk berdegradasi dengan baik, bahkan pada saat data dan event-event menyimpang, atau menghadapi kondisi operasi.
  • Desain bukanlah pengkodean, dan pengkodean bukanlah desain.
  • Desain harus dinilai kualitasnya pada saat desain dibuat, bukan setelah jadi.



Comments