Rangkuman pertemuan 7

Konsep Desain Software

Setelah kebutuhan dikumpulkan, analisis terhadap kebutuhan dilakukan dengan menggunakan beberapa alat (tools) seperti DFD (Data Flow Diagram), ERD (Entity Relationship Diagram) dan STD (State Transition Diagram).

Hasil yang diperoleh dari analisis kebutuhan adalah model analisis yang kemudian menjadi bekal untuk melakukan desain. Setiap bagian dari analisis model pada gambar 4 sebelah kanan menjadi bekal pada proses desain pada piramida model desain pada sebelah kiri gambar 4.

Data design mengubah informasi menjadi struktur data untuk mengimplementasikan software. Data design dibuat berdasarkan data dictionary dan ERD.

Architectural design mendefinisikan relasi antara elemen-elemen structural utama, pola desain yang digunakan untuk mencapai kebutuhan yang ditentukan untuk sistem dan batasan-batasan yang mempengaruhi bagaimana desain arsitektural ini diterapkan. Desain ini berdasarkan spesifikasi sistem, model analisis (bagian DFD) dan interaksi antara subsistem.

Konsep desain

1. abstraction

Abstraction adalah gambaran dari fungsi suatu program. Gambaran ini bias bertingkat-tingkat. Tingkat yang paling atas adalah gambaran suatu fungsi program dengan menggunakan bahasa alami.

program. Pada saat beralih dari tingkat ke tingkat, kita menggunakan procedural dan data

abstraction. Procedural abstraction adalah urutan instrasi yang mempunyai tujuan khusus,dan data abstraction adalah koleksi data yang digunakan pada fungsi tersebut.

Contoh:

Program : Iklan Part-time Job

Fungsi: Pendaftaran calon part-timer

Abstraction 1 (highest level):

Calon part-timer dalam melakukan upload syarat-syarat yang diperlukan untuk melamar: surat lamaran, CV, foto, transkrip, data diri.

3. modularity—membagi software menjadi modul

Software dibagi-bagi menjadi beberapa component yang disebut modul-modul. Modul-modul ini nantinya disatukan/diintegrasikan untuk memenuhi kebutuhan sistem. Dalam pembentukan modul-modul berlaku pernyataan-pernyataan berikut:

Jika C(p1) > C(p2) dimana C adalah complexity dari suatu modul, maka E(p1) > E(p2) dimana E adalah waktu yang diperlukan. Artinya semakin rumit sebuah modul, maka waktu yang digunakan untuk menyelesaikan modul tersebut makin banyak.

C(p1+p2) > C(p1) + C(p2)

Dan

E(p1+p2) > E (p1) + E(p2)

Untuk itu, modul yang rumit dipecah lagi menjadi beberapa modul untuk memudahkan penyelesaian masalah. Namun semakin banyak modul, maka waktu/biaya untuk integrasikan modul-modul tersebut juga makin tinggi. Seperti pada grafik pada gambar 6.

4. software architecture—struktur software secara keseluruhan

struktur hirarki/berjenjang dari modul-modul program. Untuk menggambarkan struktur modul-modul tersebut beberapa model yang ada adalah :

– framework model

– dynamic model

– process model

– functional model

• Keuntungan

– Efisien untuk share jumlah data yang besar

– Sub-system tidak perlu repot dengan bagaimana data dibuat dan manajemen terpusat contoh: backup, keamanan, re-index.

• Kerugian

– Sub-system harus mengikuti model yang sudah ditetapkan.

– Evolusi data sulit dan mahal

– Sulit untuk distribusi layanan secara efisien, karena yang melayani hanya satu.

• Contoh : sistem informasi perpustakaan UKDW, sistem registrasi akademik UKDW

– Penggunaan sistem jaringan secara efektif –hardware jadi murah

– Mudah untuk tambahkan server baru atau updgrade server yang sudah ada

• Kekurangan

– Tidak ada data model, jadi organisasi data macam-macam, sehingga integrasi data sulit

– Redundant management

– Tidak ada pusat register nama dan service, sehingga kalau tidak tahu nama server dan service-nya sulit ditemukan

Diadaptasi dari:

1. Pressman, Roger.S. “Software Engineering : A Practioner’s Approach.” 5th . McGrawHill. 2001.

2. Sommerville, Ian. “Software Engineering” .6th . Addison Wesley. 2001

Tinggalkan komentar