Skip to main content

Perancangan Perangkat Lunak

Apa itu perancangan perangkat lunak?
     Perancangan perangkat lunak adalah sebuah proses yang menghasilkan sebuah model atau representasi yang menampilkan ketegasan, komoditas, dan kemudahan untuk dipahami yang memenuhi kebutuhan kebutuhan perangkat lunak. Perancangan perangkat lunak juga merupakan tahapan transformasi analisis kebutuhanmenjadi bentuk yang dapat diimplementasikan menggunakan bahasa pemrograman.

Prinsip Perangkat Lunak

1. Abstraction
Bagaimana berfokus dalam memandang objek dan mengambil hal penting dari objek tersebut,
misalnya: abstraksi prosedur, data, dan iterasi.

2. Coupling & Cohesion
Coupling merupakan ukuran saling ketergantungan antara modul dalam program komputer, sedangkan cohesion merupakan ukuran kekuatan asosiasi unsur-unsur dalam modul

3. Decompositon & Modularization
Penguraian PL yang besar menjadi modul – modul lebih kecil yang menggambarkan interaksi antar modul dan bertujuan untuk memberikan fungsi dan tanggung jawab yang berbeda dalam modul yang berbeda

4. Encapsulation
Detail dari sebuah abstraksi tidak diketahui atau tidak dapat diakses oleh entitas yang diluarnya

5. Separation of interface and implementation
Pendefinisian komponen dengan menentukan antarmuka publik (diketahui oleh klien) yang terpisah dari perincian tentang bagaimana komponen direalisasikan

6. Sufficiency, completeness & primitiveness
Sufficiency dan completeness berarti abstraksi yang dilakukan telah menangkap semua karakteristik yang diperlukan sedangkan primitiveness artinya desain dapat diimplementasikan

7. Separation of concern
Terdapat beberapa architectural view yang memudahkan stakeholder dalam mengelola kompleksitas perangkat lunak  

Kegiatan Perancangan Perangkat Lunak Terdiri Dari:

  • Mendefinisikan tujuan desain
  • Mendefinisikan subsistem.
  • Pemetaan subsistem ke dalam platform yang digunakan
  • Pengelolaan persistent data.
  • Mendefinisikan kendali akses.
  • Mendefinisikan kendali aliran (control flow).
  • Mendefinisikan boundary condition.     
Proses Perancangan Perangkat Lunak

     Proses perancangan perangkat lunak terdiri dari architectural design, detailed design, SDD (Software Design Description).

Perancangan Arsitektur (Architectural Design)

     Perancangan arsitektur merupakan perancangan tingkat tinggi yang menjelaskan bagaimana perangkat lunak disusun dalam komponen yang mendefinisikan hubungan antar komponen, arsitektur dan pola desain yang membantu mencapai persyaratan yang ditetapkan untuk sistem

Aktifitas dalam perancangan arsitektur meliputi:
• Dekomposisi kotor sistem menjadi komponen utama.
• Alokasi tanggung jawab fungsional untuk komponen.
• Antarmuka Komponen
• Komponen penskalaan dan properti kinerja, properti konsumsi sumber daya, properti
   keandalan, dan sebagainya.
• Komunikasi dan interaksi antar komponen.

Perancangan Terperinci (Detailed Design)

     Perancangan terperinci merupakan tahap yang dilakukan setelah perancangan arsitektur, yang menggambarkan rincian secara detail dari semua komponen utama pada perangkat lunak, sifat-sifat, hubungan, pemrosesan, struktur data dan sampai pada tahap dapat diimplementasikan kedalam program (konstruksi perangkat lunak)

Aktifitas perancangan terperinci dapat meliputi:
• Dekomposisi komponen sistem utama menjadi unit program.
• Alokasi tanggung jawab fungsional kepada unit.
• Antarmuka pengguna
• Status unit dan perubahan status
• Data dan kontrol interaksi antar unit
• Pengemasan dan implementasi data, termasuk masalah ruang lingkup dan visibilitas elemen
  program
• Algoritma dan struktur data

SDD (Software Design Description)

SDD merupakan hasil dari perancangan perangkat lunak yang bisa dijadikan kesepakatan
spesifikasi antara pengguna dan pengembang sebelum memasuki tahap konstruksi perangkat
lunak

Hal yang harus ada dalam SDD meliputi:
  • Judul
  • Nama Pengembang
  • Tanggal terakhir dokumen diperbaharui
  • Gambaran Umum
  • Sasaran dan Batasan
  • Desain Arsitektur
  • Desain Terperinci
  • Tonggak Sejarah
  • Deskripsi Fungsional
  • Kegunaan
  • Antarmuka Pengguna
  • Apa yang sedang dilakukan pengembang
  • Apa yang akan dilakukan pengembang selanjutnya

Comments

Popular posts from this blog

Contoh Flowmap Prosedur Pembayaran di Rumah Makan

Flowmap Pengertian Flowmap Flowmap adalah campuran peta dan flow chart,yang menunjukan pergerakan benda dari satu lokasi ke lokasi lain, seperti jumlah orang dalam migrasi, jumlah barang yang diperdagangkan, atau jumlah paket dalam jaringan. Flowmap menolong analisis dan programmer untuk memecahkan masalah ke dalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternaitf-alternatif lain dalam pengoprasian. Pedoman-pedoman dalam membuat FlowMap Bila seorang analis dan programmer akan membuat flowmap , ada beberapa petunjuk yang harus diperhatikan, sepeti : Flowmap digambarkan dari halaman atas ke bawah dan kiri ke kanan. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat di mengerti oleh pembacanya. Kapan aktivitas dimulai dan berakhir harus di tentukan secara jelas. Setiap langkah dari aktivitas harus berada pada urutan yang benar. Lingkup dan range dari aktifitas yang sedang di gambarkan harus di...
Software Design Notations Notasi desain digunakan untuk mendeskripsikan tujuan suatu perangkat lunak yang digunakan dalam perancangan perangkat lunak. Notasi desain dikategorikan ke dalam notasi Structural Descriptions (Statis) dan Behavioral Descriptions (Dinamis). Kriteria Notasi Desain Dalam membuat notasi desain terdapat kriteria-kriteria yang harus dicapai untuk menjadi notasi desain yang baik, yaitu : o Automatic processing : memungkinkan desainer untuk memverifikasi kebenaran dan    kualitas desain o Modularity : notasi mendukung pengembangan perangkat lunak modular o Structure enforcement : memberlakukan penggunaan konstruksi pemrograman terstruktur o Ease of editing : mudah untuk melakukan modifikasi desain o Data representation : kemampuan untuk menggambarkan data local dan global secara    langsung o Maintainability : pemeliharaan konfigurasi o Logic verification : mampu melakukan verifikasi logika untuk meningkatkan kecukupan pengujian...