Sabtu, 16 Mei 2020

NOTASI DESAIN


Notasi-notasi khusus digunakan terutama dalam rancangan arsitektural perangkat lunak dan rancangan terinci yang dapat mendeskripsikan tujuan suatu perangkat lunak, dikategorikan ke dalam notasi Structural Descriptions (Statis) dan Behavioral Descriptions (Dinamis)

Kriteria notasi desain : 
  • Automatic processing : memungkinkan desainer untuk memverifikasi kebenaran dan kualitas desain
  • Modularity : notasi mendukung pengembangan perangkat lunak modular
  • Structure enforcement : memberlakukan penggunaan konstruksi pemrograman terstruktur
  • Ease of editing : mudah untuk melakukan modifikasi desain
  • Data representation : kemampuan untuk menggambarkan data local dan global secara langsung
  • Maintainability : pemeliharaan konfigurasi
  • Logic verification : mampu melakukan verifikasi logika untuk meningkatkan kecukupan pengujian
  • Overall simplicity : mudah untuk dipelajari, digunakan dan penulisannya Machine readability : notasi dapat menjadi masukan secara langsung ke dalam pembangunan sistem
  • Easily converted to program source code : memudahkan dan mempercepat dalam pembuatan kode program

Structural Descriptions (Statis).
Notasi-notasi berikut ini, sebagian besar grafis, menjelaskan dan merepresentasikan aspek struktural dari rancangan perangkat lunak
  • Entity Relatinship Diagram (ERD) : digunakan untuk merepresentasikan model konseptuan dari data yang tersimpan dalam sistem informasi.

  •  Diagram Objek dan Class : Digunakan untuk merepresentasikan sekumpulan class (dan objek) dan hubungan timbal-balik diantaranya.

  • Architecture Description Languages (ADLs) : Tekstual, terkadang formal, bahasa yang digunakan untuk menjelaskan arsitektur perangkat lunak dalam hal komponen dan konektor
  • Diagram Komponen : digunakan untuk merepresentasikan sekumpulan komponen dari sebuah sistem yang cocok dan menyediakan realisasi sekumpulan interface dan hubungannya.

  • Class Responsibility Collaborate Cards (CRCs) : digunakan untuk menunjukkan nama komponen (class), tanggung jawabnya, nama komponen yang berkolaborasi.

  • Deployment Diagrams : digunakan untuk merepresentasikan sekumpulan nodes (fisik) dan hubungannya, dan demikian juga pada aspek fisik sistem. Berikut contoh Deployment diagram sistem galeri VCD.

  • Interface Description Languages (IDLs) : bahasa programming-like digunakan untuk mendefinisikan interface dari komponen perangkat lunak.
  • Diagram Struktur Jackson : digunakan untuk menjelaskan struktur data dalam hal urutan, pemilihan, dan iterasi.

  • Diagram Struktur : digunakan untuk menjelaskan struktur pemanggilan program. Dipakai dalam analisis sistem terstruktur/desain terstruktur.

Kelakuan Dinamis.
Notasi dan bahasa, beberapa grafis dan tekstual berikut ini digunakan untuk menjelaskan kelakuan dinamis dari perangkat lunak dan komponen
  • Sequence Diagrams : digunakan untuk menunjukkan interaksi diantara sekelompok objek, dengan penekanan pada urutan waktu pesan. Sequence diagram adalah tabel yang menunjukan objek pesan di sepanjang sumbu X, dan time ordering-nya (waktu pemesanan) di sepanjang sumbu Y

  • Activity Diagrams : digunakan untuk menunjukkan kendali aliran dari aktifitas yang satu ke aktifitas yang lain. Sebenarnya merupakan flowchart, yang menunjukan aliran kontrol activity ke activity yang lain.

  •  Pseudocode dan Program Design Languages (PDLs) : bahasa structured-programming-like digunakan untuk menjelaskan, secara umum pada tahap rancangan terinci, kelakuan prosedur atau metode.

  •  Flowcharts dan Structured Flowcharts : digunakan untuk merepresentasikan aliran kendali dan tindakan yang berhubungan yang akan dilakukan. Berikut contoh diagram flowchart menentukan bilangan ganjil dan genap.

  • Collaboration Diagrams : digunakan untuk menunjukkan interaksi yang timbul diantara kelompok objek, dimana penekanannya pada objek dan link-nya. Urutan peristiwa ditandai oleh angka-angka urutan pesan terlebih dahulu.

  • Data Flow Diagrams (DFDs) : digunakan untuk menunjukkan aliran data diantara sekumpulan proses

  • Bahasa spesifikasi formal : bahasa tekstual yang menggunakan notasi dasar dari matematik (contoh : logic, set, sequence) untuk mendefinisikan kelakuan dan interface komponen perangkat lunak secara abstrak dan teliti. Dirancang untuk menetapkan apa yang akan dihitung dan bukan bagaimana perhitungan harus terpenuhi.

  • Diagram dan tabel keputusan : digunakan untuk merepresentasikan kombinasi komplek dari kondisi dan tindakan

  • State Transition dan statechart diagram : digunakan untuk menunjukkan aliran kendali dari state ke state dalam sebuah state machine



Minggu, 19 April 2020

PERANCANGAN ARSITEKTUR


Perangkat lunak memiliki sistem-sistem besar dan diuraikan menjadi subsistem-subsistem untuk memberikan sekumpulan layanan yang berhubungan. Perancangan arsitektur adalah proses perancangan awal untuk mengidentifikasi subsistem tersebut dan menetapkan kerangka kerja untuk kontrol dan komunikasinya. Output proses perancangan ini disebut arsitektur perangkat lunak.

Perancangan arsitektur meliputi tahap penyusunan pemrograman dan perancangan. Penyusunan program adalah penyelusuran masalah (problem seeking), perancangan adalah pemecahan masalah (problem solving).

Proses perancangan meliputi dua tahap analisis dan sintesis. Penyusunan program adalah analisis, perancangan adalah sintesis.

Perancangan arsitektur adalah penggabungan berbagai unsur ruang untuk menampung suatu proses kegiatan sehingga menghasilkan suatu keseluruhan yang lebih kaya dan bermakna.

Proses perancangan arsitektur dimulai dari mengetahui jenis bangunan yang akan dirancang, pemakainya dan bagaimana keinginan pemakainya, kegiatannya, ruang-ruang yang dibutuhkan, bagaimana tapak dimana bangunan tersebut akan dibangun, bagaimana jenis konstruksi dan bahan yang akan digunakan, dilanjutkan dengan melakukan analisa mengenai sifat dan syarat setiap kebutuhan lalu dikelompokkan, dihubungkan, digabungan sehingga menghasilkan suatu rancangan arsitektur.

Proses perancangan arsitektur:
  • Penstrukturan Sistem yaitu saat sistem didekomposisi ke dalam beberapa sub-sistem dan komunikasi diantara subsistem yang harus dapat diidentifikasi.
  • Pemodelan Kontrol yaitu model umum hubungan kontrol antara bagian-bagian sistem yang ditetapkan. 
  • Dekomposisi Modular yaitu setiap sub-sistem yang teridentifikasi diuraikan menjadi modulmodul
Model arsitektur:
  • Model struktur statis menunjukkan subsistem-subsistem atau komponen-komponen yang akan dikembangkan sebagai unit-unit yang terpisah.
  • Model dinamis menunjukkan struktur proses dari sistem.
  • Model interface mendefinisikan layanan yang disediakan oleh setiap subsistem melalui interface umum perangkat tersebut.
  • Model hubungan menunjukkan hubungan seperti aliran data di antara subsistem-subsistem.
Keuntungan dari perancangan arsitektur:
  • Dapat digunakan sebagai fokus pembahasan oleh berbagai stakeholder.
  • Dapat menggabungkan kebutuhan fungsi dan non fungsi.
  • Mendukung pemakaian ulang berskala besar.

Perancangan arsitektur dapat didasarkan pada model atau gaya arsitektur tertentu. Pengetahuan akan gaya arsitektur ini akan menyederhanakan masalah-masalah yang berkaitan dengan pendefinisian arsitektur sistem tersebut. Oleh karena itu sistem yang besar dan heterogen tentu tidak dapat diselesaikan dengan gaya arsitektur tunggal.
Atribut arsitektur:
  • Kinerja

Arsitektur harus dirancang untuk melokalisasi operas-operasi kritis dalam sejumlah kecil subsistem dengan komunikasi sesedikit mungkin antara subsistem-subsistem.
  • Keamanan

Gunakan struktur berlapis untuk arsitekturnya, dengan aset yang paling penting terlindung pada bagian dalam.
  • Keselamatan

Operasi-operasi yang berhubungan dengan keselamatan sebaiknya berada dalam sejumlah kecil subsistem.
  • Ketersediaan

Sediakan komponen redundan dalam perancangan arsitektur.
  • Kemampuan Dipelihara

Arsitektur sistem harus dirancang dengan menggunakan komponen kecil dan berdiri sendiri, yang dapat diganti segera