Minggu, 21 Februari 2010

PROSES SOFTWARE

A. Software Process
Pondasi untuk rekayasa perangkat lunak merupakan bentangan proses. Proses-proses rekayasa perangkat lunak adalah perekat yang menjaga bentangan-bentangan teknologi secara bersama-sama dan memungkinkan perkembangan perangkat lunak komputer yang tepat waktu dan rasional.
Metode-metode rekayasa perangkat lunak memberikan teknik untuk membangun perangkat lunak. Metode-metode itu menyangkut serangkaian tugas yang luas yang menyangkut analisis kebutuhan, konstruksi program, desain, pengujian dan pemeliharaan.
Proses Software adalah Sekumpulan aktifitas yang saling terkait untuk spesifikasi, desain, implementasi dan testing system software.

1. Tahapan dalam proses software
• Spesifikasi
• Desain
• Validasi
• Evolusi

2. Karakteristik Proses Software

• Understandability, yaitu sejauh mana proses secara eksplisit ditentukan dan bagaimana kemudahan definisi proses itu dimengerti.
• Visibility, apakah aktivitas-aktivitas proses mencapai titik akhir dalam hasil yang jelas sehingga kemajuan dari proses tersebut dapat terlihat nyata/jelas
• Supportability, yaitu sejauh mana aktivitas proses dapat didukung oleh CASE
• Acceptability, apakah proses yang telah ditentukan oleh insinyur dapat diterima dan digunakan dan mampu bertanggung jawab selama pembuatan produk perangkat lunak
• Reliability, apakah proses didesain sedikian rupa sehingga kesalahan proses dapat dihindari sebelum terjadi kesalahan pada produk.
• Robustness, dapatkah proses terus berjalan walaupun terjadi masalah yang tak diduga
• Maintainability, dapatkah proses berkembang untuk mengikuti kebutuhan atau perbaikan
• Rapidity, bagaimana kecepatan proses pengiriman sistem dapat secara lengkap memenuhi spesifikasi.

B. MODEL PROSES SOFTWARE
Model proses software adalah representasi abstrak dari proses. Merupakan gambaran dari proses dari beberapa perspektif tertentu.
Model proses untuk rekayasa perangkat lunak dipilih berdasarkan sifat aplikasi dan proyeknya, metode dan alat-alat bantu yang akan dipakai, dan kontrol serta penyampaian yang dibutuhkan.

1. Model Waterfall
Dalam prakteknya, setiap langkah sering tumpang tindih dan saling memberi informasi satu sama lain. Proses perangkat lunak tidak linier dan sederhana tapi mengandung urutan iterasi dari aktivitas pengembangan. Selama di langkah terakhir, perangkat lunak telah digunakan. Kesalahan dan kelalaian dalam menentukan kebutuhan perangkat lunak original dapat diatasi. Model ini banyak mengandung iterasi sehingga membuat sulit bagi pihak manajemen untuk memeriksa seluruh rencana dan laporan. Maka dari itu, setelah sedikit iterasi, biasanya bagian yang telah dikembangkan akan dihentikan dan dilanjutkan dengan langkah pengembangan selanjutnya. Masalah-masalah selama resolusi selanjutnya, dibiarkan atau diprogram. Pemberhentian yang prematur dari persyaratan akan berarti bahwa sistem tidak akan sesuai dengan keinginan user. Mungkin juga sistem terstruktur secara jelek yang sebenarnya merupakan masalah desain akan dibiarkan karena terkalahkan oleh trik implementasi.
Masalah pendekatan waterfall adalah ketidakluwesan pembagian project ke dalam langkah yang nyata/jelas. Sistem yang disampaikan kadang-kadang tidak dapat digunakan sesuai keinginan pelanggan. Namun demikian model waterfall mencerminkan kepraktisan engineering. Konsekuensinya, model proses perangkat lunak yang berdasarkan pada pendekatan ini digunakan dalam pengembangan sistem perangkat lunak dan hardware yang luas. Untuk lebih mengetahui bagaimana model waterfall itu dapat dilihat pada gambar (a) dibawah ini:

Gambar (a) Model WaterFall

2. Tahapan Model WaterFall
• Analisa dan definisi kebutuhan
• Desain sistem dan software
• Implementasi dan unit testing
• Integrasi dan testing sistem
• Operasi dan pemeliharaan

Kekurangan dari model waterfall adalah kesulitan untuk mengakomodasi perubahan setelah proses berjalan


3. Permasalahan Model Waterfall
• Tidak fleksibel dalam pembagian proyek ke dalam tingkat yang berbeda
• Sulit untuk merespon perubahan kebutuhan konsumen
• Model ini hanya cocok jika kebutuhan sudah dimengerti dengan baik

C. Pendekatan Evolusioner

Model evolusioner adalah model iteratif. Model itu ditandai dengan tingkah laku yang memungkinkan perekayasa perangkat lunak mengembangkan versi perangkat lunak yang lebih lengkap sedikit demi sedikit.
Pendekatan evolusioner ini berdasarkan pada ide pengembangan dan implementasi awal yang akan menghasilkan komentar customer sehingga dapat dilakukan perbaikan melalui banyak versi sampai sistem yang mencukupi dapat dikembangkan.
Ada 2 Model Pendekatan Evolusioner
a. Pemrogramaman evolusioner
Tujuan proses adalah bekerja sama dengan customer untuk menghasilkan kebutuhan-kebutuhan dan menyampaikan sistem akhir customer.
b. Pemodelan
Tujuan pengembangan model ini adalah mengetahui kebutuhan –kebutuhan customer dan mengembangkan definisi kebutuhan yang lebih baik untuk sistem.

1. Permasalahan Model Evolusioner
Dari segi teknik dan manajemen, model pemodelan ini mempunyai masalah mendasar yaitu :
• Proses tidak visibel
Manager-manager membutuhkan "deliverables" yang teratur untuk mengukur kemajuan. Jika sistem dikembangkan dengan cepat akan terjadi pemborosan pada pembuatan dokumen yang menggambarkan setiap versi sistem.
• Sistem biasanya kurang terstruktur
Kecenderungan perubahan yang terus menerus akan mengurangi stuktrur dari perangkat lunak. Evolusi perangkat lunak terlihat sulit dan mahal.
• Ketrampilan khusus jarang dimiliki
Tidak jelas batasan ketrampilan yang normal dalam rekayasa perangkat lunak yang mungkin dapat digunakan secara efektif dalam model pengembangan ini. Kebanyakan sistem yang dikembangkan melalui cara ini telah diimplementasikan oleh kelompok kecil yang memiliki ketrampilan yang tinggi dan motivasi yang kuat.
Untuk lebih mengetahui bagaimana model evolusioner itu dapat dilihat pada gambar (b) dibawah ini:

Gambar (b) Model Evolusioner

2. Kegunaan Model Evolusioner
Masalah-masalah tersebut sistem tidak dikembangkan melalui cara ini. Sehingga pengembangan evolusioner lebih tepat untuk :
• Pengembangan sistem yang relatif kecil
• Pengembangan sistem yang memiliki masa hidup yang singkat
• Pengembangan dari sistem yang besar dimana tidak memungkinkan untuk menyatakan spesifikasi secara rinci.

Tidak ada komentar:

Posting Komentar