perancangan perangkat lunak -...

Post on 30-Oct-2019

12 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Perancangan Perangkat LunakI. Pendahuluan

II. Siklus Pengembangan Perangkat Lunak

Dr. Ahmad SabriUniversitas Gunadarma

• Software tidak hanya mengacu kepada program komputer• Software mencakup 3 hal

– Dokumentasi: mencakup spesifikasi kebutuhan fungsional, spesifikasi kebutuhan sistem, dokumen disain, dan dokumen pengujian

– Manual prosedur operasi standar mencakup manual instalasi software, manual operasi software, dan manual administrator sistem

– File-file konfigurasi software agar software dapat beroperasi dengan benar.

Berdasarkan peruntukannya, terdapat 3 jenis software:1. Software generik: adalah produk standalone yang dikembangkan

oleh perusahaan software seperti Microsoft, Oracle, IBM, dll, untuk dijual di pasaran. Software ini umumnya dapat beroperasi pada berbagai sistem operasi. Contoh: MS Office.

2. Software kustomisasi: diproduksi oleh perusahaan pengembang software berdasarkan kebutuhan spesifik klien mereka. Contoh: software ticketing untuk PT KAI, aplikasi m-banking untuk Bank XYZ, software kependudukan untuk Pemprov, dll.

3. Software tertanam (embedded): software yang sudah built-in pada perangkat elektronik sehingga dapat berjalan secara otomatis, seperti mesin cuci, oven microwave, dll.

Software besar

• Membutuhan lebih banyak waktu, usaha, dan dana untuk mendisain dan mengembangkannya

• Membutuhkan sumber daya manusia yang banyak• Membutuhkan kode-kode program yang banyak

Artinya: pengembangan software membutuhkan SDM, proses, dan teknologi, serta membutuhkan serangkaian tahapan aktivitas.Sehingga: Software Development adalah sebuah proyek.

• Berdasarkan perkembangan saat ini, software tidak hanya terdiri dari OS dan aplikasi

• Kategori yang sedang berkembang saat ini:– open world computing– open source software– NoSQL software– Multitenant software

• Semakin besar ukuran software (>100.000 baris coding), maka pengembangannya melibatkan banyak orang. Oleh karena itu harus mengikuti tahapan-tahapan rekayasa yang sistematis.

• Selama program ditangani secara manual dan tanpa tahapan yang benar, maka persentasi error sangat tinggi.

• Programmer jenius saja tidak cukup. Mereka harus mengikuti metodologi software engineering untuk menghasilkan software berkualitas.

Krisis SoftwareStudi di AS pada 1979 mengungkap:• Tidak ada standar dalam pemrograman menyebabkan sulitnya melakukan

debugging atas error yang terjadi.• Tidak adanya standar dalam pemrograman komputer menyebabkan

kenaikan biaya software sebesar 45%, karena software tidak sepenuhnya memenuhi kebutuhan user.

Studi oleh IBM tahun 1994 mengungkap:• 55% dari proyek software melebihi biaya yang ditetapkan• 68% melampaui jadwal yang telah ditetapkan• 88% memerlukan modifikasi setelah penyerahan kepada user. Hal ini akibat

kebutuhan user tidak dipahami secara utuh oleh developer

Setelah berkembangnya aplikasi berbasis Web, masalah ini semakin berlipat ganda. • Sekitar 63% aplikasi web melampaui budget• Sekitar 73% melampaui jadwal• Sekitar 53% tidak memberikan fungsi yang diinginkan• Sekitar 84% tidak memberikan keuntungan

(Cutter Consortium, 2000)

• Para profesional dan peneliti menyadari bahwa problem ini dapat teratasi dengan menggunaan metodologi ilmiah dalam pengembangan software.

• Metodologi ini menerapkan metode, tools, dan prosedur yang terdefinisi dengan baik dan diterapkan secara terorganisir dan disiplin

• Penerapan metodologi ini dalam pengembangan software disebut software engineering

Software Engineering (SE) terdiri dari:• Metode: mecakup aturan, langkah-langkah, dan teknik dalam

menyelesaikan siklus pengembangan software (software development life cycle)

• Tools: digunakan untuk mengotomasi metode. Tools ini berguna untuk membuat model dari disain software

• Prosedur: merupakan variasi urutan dari metode (waterfall, spiral, iteratif, dll)

• Singkatnya: Software Engineering menerapkan prinsip-prinsip rekayasa, manajemen, metode, tools, dan prosedur untuk menghasilkan software berkualitas tinggi dalam periode dan batasan-batasan yang telah ditentukan.

• Sasaran dari software engineer adalah menghasilkan software berkualitas tinggi

• Beberapa contoh produk software:– Accounts receivable processing– Order processing– Inventory monitoring and maintenance– Decision support for overnight funds– investment– Collateralized mortgage obligatien cost determination– Insurance reimbursement processing– Funds transfer processing– Early warning system for problems with critical success factors

Produk SE yang berkualitas adalah yang...• tepat waktu• terjangkau budget• fungsional (sesuai dengan apa yang diinginkan)• ramah pengguna• bebas kesalahan• fleksibel• mudah diadaptasikan

Siklus Pengembangan Perangkat Lunak/SPPL(Software Development Life Cycle /SDLC)

SPPL adalah serangkaian tahapan yang dilalui dalam mengembangkan perangkat lunak

Tahapan SPPL1. Analisa kelayakan

– Feasibility: apakah proyek ini dapat dilakukan?– Analisa pasar: apakah ada potensi pasar untuk proyek ini?

2. Kebutuhan– fungsional dan non-fungsional– menghimpun kebutuhan yang diinginkan pelanggan

3. Perencanaan– analisa biaya: berapa perkiraan biayanya?– work-breakdown: membagi kegiatan menjadi sub-subkegiatan yang lebih

kecil– penjadwalan: membuat jadwal untuk tahapan pengembangan– Pendefinisian software quality assurance: memastikan bahwa setiap tahap

dilalui dengan standar yang ditetapkan.

4. Disain– disain arsitektural: struktur dari sistem– disain interface antar sistem– disain algoritma untuk setiap bagian

5. Implementasi: proses coding6. Pengujian/testing

– uji unit: pengujian setiap unit software oleh masing-masing developer– uji integrasi: pengujian terhadap penggabungan unit-unit software– uji sistem: pengujian software pada lingkungan yang sesuai dengan

lingkungan operasinya– uji alpha: pengujian oleh pelanggan di tempat developer– uji beta: pengujian oleh pelanggan di tempat pelanggan– uji akseptasi: pengujian apakah s/w ini dapat diterima oleh pelanggan– uji regresi

7. Delivery– instalasi di lokasi pengguna– pelatihan bagi pengguna– layanan help desk

8. Maintenance– memperbaharui dan meningkatkan kemampuan software untuk

memastikan pemanfaatan yang berkelanjutan.

Beberapa model SPPL

1. Code and FixBiasanya digunakan untuk software kecil, atau dengan deadline yang sangat singkat. Developer menulis kode dan memperbaiki error yang muncul. Tidak ada analisa kebutuhan dan disain

2. Waterfall

3. V-model

4. Iteratif

Aplikasi

• Aplikasi adalah kumpulan dari program yang mengotomasi suatu tugas

Aspek-aspek dalam Aplikasi

• Karakteristik• Ketanggapan (responsiveness)• Jenis

Aspek Karakteristik

Karakteristik adalah aspek umum yang ada pada semua aplikasi, yaitu:1. Data2. Proses3. Batasan4. Antarmuka (interface)

1. Data

Semua aplikasi:• Bekerja atas data dan membutuhkan input, output,

penyimpanan dan penarikan data.• memuat perintah-perintah (proses) yang mentransformasikan

data menjadi informasi berdasarkan batasan-batasan yang ditetapkan

• memiliki beberapa antarmuka manusia dan antarmuka komputer

• Entitas adalah objek yang dinyatakan dalam sebuah deskripsi• Data adalah deskripsi spesifik atas entitas • Kumpulan deskripsi sejenis membentuk atribut• Contoh entitas: pelanggan, mahasiswa• Contoh atribut: alamat, tanggal lahir

Data

Input

Output

Penyimpanan dan penarikan

logikal

fisik

relasional

hirarkis

berorientasi objek

jaringan

Contoh hubungan Entitas - Atribut

Contoh relasi antar-entitas

Contoh detail relasi antar-entitas

Pemodelan data secara hirarki antar entitas

Pemodelan data secara networked

Pemodelan data secara object oriented

2. Proses

Proses adalah barisan instruksi ataupun sekumpulan kejadian yang dioperasikan pada data

3. Batasan

Batasan didefinisikan dalam 5 kategori:1. Prerequisites: kondisi yang harus terpenuhi agar proses

dijalankan2. Postrequisites: kondisi yang harus dipenuhi agar proses

dinyatakan lengkap3. Waktu4. Struktur5. Kontrol6. Inferensi

Contoh batasan prerequisites

Contoh batasan berdasar waktu

Contoh batasan berdasar struktur

4. Antarmuka

Jenis:1. Manusia2. Komputer/terotomasi

• Antarmuka manusia adalah cara aplikasi berkomunikasi dengan manusia sebagai pengguna.

• Paling sulit dirancang dan sangat rentan terhadap perubahan teknologi

rancangan yang buruk rancangan yang baik

• Antarmuka komputer/terotomasi adalah cara komputer berinteraksi dengan komputer/perangkat lain

• Antarmuka komputer cenderung berbeda-beda untuk pabrikan yang berbeda. Untuk mengatasinya, diperlukan standarisasi

• Contoh: – standar untuk antarmuka LAN didefinisikan oleh IEEE– standar untuk open system interface (OSI) didefinisikan oleh ISO

• Tidak terstandarkan: GUI

Aspek ketanggapan

Ketanggapan aplikasi (application responsiveness) berkaitan dengan berapa lama waktu yang dibutuhkan sistem untuk bereaksi dan memberi respon atas tindakan dari pengguna.

3 jenis desain ketanggapan aplikasi:1. berorientasi batch2. on-line3. real-time

Aplikasi batch

• Aplikasi berdasar batch memproses transaksi secara berkelompok (batch).

• Transaksi yang masuk ditampung dalam periode waktu tertentu, setelah itu diproses pada jadwal yang telah ditentukan.

Alur pemrosesan aplikasi berdasar batch

Aplikasi on-line

• Pengertian on-line dalam konteks ini berbeda dengan pengertian on-line dalam konteks jaringan

• Pemrosesan secara on-line berarti: program tetap berada dalam memori, sehingga dapat langsung merespon transaksi tanpa loading kembali

Alur pemrosesan aplikasi dengan pendekatan on-line

Batch vs on-line

• Aplikasi berdasar batch: – passing data antar modul dilakukan dengan menggunakan file– tidak ada syntax controlling pada entri transaksi

• Aplikasi on-line: – passing data antar modul dilakukan secara langsung– ada syntax controlling pada entri transaksi

Aplikasi real-time

• Aplikasi real-time adalah aplikasi on-line di mana perubahan data direspon langsung oleh sistem, sehingga aplikasi memberikan informasi berdasarkan kondisi terkini dari data.

• Contoh: mesin ATM, mesin barcode, reservasi tiket pesawat, dll.

top related