Selasa, 13 November 2012

Metode Pengembangan Sistem / Softwere

v  SDLC


Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
SDLC (Systems Development Life Cycle, Siklus Hidup Pengembangan Sistem) atau Systems Life Cycle (Siklus Hidup Sistem), dalam rekayasa sistem dan rekayasa perangkat lunak, adalah proses pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem-sistem tersebut. Konsep ini umumnya merujuk pada sistem komputer atau informasi. SDLC juga merupakan pola yang diambil untuk mengembangkan sistem perangkat lunak, yang terdiri dari tahap-tahap: rencana(planning),analisis (analysis), desain (design), implementasi (implementation), uji coba (testing) dan pengelolaan (maintenance). Dalam rekayasa perangkat lunak, konsep SDLC mendasari berbagai jenis metodologi pengembangan perangkat lunak. Metodologi-metodologi ini membentuk suatu kerangka kerja untuk perencanaan dan pengendalian pembuatan sistem informasi, yaitu proses pengembangan perangkat lunak.
Sumber ::
§  Blanchard, B. S., & Fabrycky, W. J.(2006) Systems engineering and analysis (4th ed.) New Jersey: Prentice Hall.
§  Cummings, Haag (2006). Mannformation Systems for the Information Age. Toronto, McGraw-Hill Ryerson

 

Referensi

1.    ^ a b Britton, Carol (2001). Object-Oriented Systems Development. McGraw-Hill. hlm. 27-34, 268. ISBN 0-07-709544-8.


METODE PROTOTYPE

Prototyping merupakan salah satu metode pengembanganperangat lunak yang banyak digunakan. Dengan metode prototypingini pengembang dan pelanggan dapat saling berinteraksi selamaproses pembuatan sistem.Sering terjadi seorang pelanggan hanya mendefinisikan secaraumum apa yang dikehendakinya tanpa menyebutkan secara detaloutput apa saja yang dibutuhkan, pemrosesan dan data-data apa sajayang dibutuhkan. Sebaliknya disisi pengembang kurangmemperhatikan efesiensi algoritma, kemampuan sistem operasi daninterface yang menghubungkan manusia dan komputer.Untuk mengatasi ketidakserasian antara pelanggan danpengembang , maka harus dibutuhkan kerjasama yanga baik diantarakeduanya sehingga pengembang akan mengetahui dengan benar apayang diinginkan pelanggan dengan tidak mengesampingkan segi-segiteknis dan pelanggan akan mengetahui proses-proses dalammenyelasaikan sistem yang diinginkan. Dengan demikian akanmenghasilkan sistem sesuai dengan jadwal waktu penyelesaian yangtelah ditentukan.Kunci agar model prototype ini berhasil dengan baik adalahdengan mendefinisikan aturan-aturan main pada saat awal, yaitupelanggan dan pengembang harus setuju bahwa prototype dibangununtuk mendefinisikan kebutuhan. Prototype akan dihilangkan sebagianatau seluruhnya dan perangkat lunak aktual aktual direkayasa dengankualitas dan implementasi yang sudah ditentukan

Tahapan-Tahapan Prototyping
 Tahapan-tahapan dalam Prototyping adalah sebagai berikut:1.Pengumpulan kebutuhan Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak,mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
2.Membangun prototyping Membangun prototyping denganmembuat perancangan sementara yang berfokus pada penyajiankepada pelanggan (misalnya dengan membuat input dan formatoutput)3.Evaluasi protoptyping Evaluasi ini dilakukan oleh pelangganapakah prototyping yang sudah dibangun sudah sesuai dengankeinginann pelanggan. Jika sudah sesuai maka langkah 4 akandiambil. Jika tidak prototyping direvisi dengan mengulangu langkah1, 2 , dan 3.4.Mengkodekan sistem Dalam tahap ini prototyping yang sudah disepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai5.Menguji sistem Setelah sistem sudah menjadi suatu perangkatlunak yang siap pakai, harus dites dahulu sebelum digunakan.Pengujian ini dilakukan dengan White Box, Black Box, Basis Path,pengujian arsitektur dan lain-lain6.Evaluasi Sistem Pelanggan mengevaluasi apakah sistem yangsudah jadi sudah sesuai dengan yang diharapkan . Juka ya, langkah7 dilakukan; jika tidak, ulangi langkah 4 dan 5.7.Menggunakan sistem Perangkat lunak yang telah diuji danditerima pelanggan siap untuk digunakan .

Keunggulan dan Kelemahan Prototyping
Keunggulan prototyping adalah:
1.Adanya komunikasi yang baik antara pengembang danpelanggan
2.Pengembang dapat bekerja lebih baik dalam menentukankebutuhan pelanggan
3.Pelanggan berperan aktif dalam pengembangan sistem
4.Lebih menghemat waktu dalam pengembangan sistem
5.Penerapan menjadi lebih mudah karena pemakai mengetahuiapa yang diharapkannya.

Kelemahan prototyping adalah :
1.Pelanggan kadang tidak melihat atau menyadari bahwaperangkat lunak yang ada belum mencantumkan kualitasperangkat lunak secara keseluruhan dan juga belum memikirkankemampuan pemeliharaan untuk jangja waktu lama.
2.penegmbang biasanya ingin cepat menyelesaikan proyek.Sehingga menggunakan algoritma dan bahasa pemrograman yangsederhana untuk membuat prototyping lebih cepat selesai tanpamemikirkan lebih lanjut bahwa program tersebut hanya merupakancetak biru sistem .
3.Hubungan pelanggan dengan komputer yang disediakanmungkin tidak mencerminkan teknik perancangan yang baik


Prototyping bekerja dengan baik pada penerapan-penerapanyang berciri sebagai berikut:
1.Resiko tinggi yaitu untuk masalah-masalah yang tidak terstrukturdengan baik, ada perubahan yang besar dari waktu ke waktu, danadanya persyaratan data yang tidak menentu.
2.Interaksi pemakai penting . Sistem harus menyediakan dialog on-line antara pelanggan dan komputer.
3.Perlunya penyelesaian yang cepat
4.Perilaku pemakai yang sulit ditebak
5.Sitem yang inovatif. Sistem tersebut membutuhkan carapenyelesaian masalah dan penggunaan perangkat keras yangmutakhir
6.Perkiraan tahap penggunaan sistem yang pendek.


Prototipe bisa juga menjadi masalah karena alasan sebagai berikut:
1.Pelanggan melihat apa yang tampak sebagai versi software yangbekerja tanpa melihat bahwa prototipe itu dijalin bersama – sama“dengan permen karet dan baling wire”, tanpa melihat bahwa didalam untuk membuatnya bekerja, kita belum menyantumkankualitas software secara keseluruhan atau kemampuanpemeliharaan untuk jangka waktu yang panjang. Ketika diberiinformasi bahwa produk harus dibangun lagi agar tingkat kualitasyang tinggi bisa dijaga, pelanggan akan meneriakan kecurangandan permintaan agar dipakai “beberapa campuran” untuk membuatprototipe menjadi sebuah produk yang bekerja yang lebih seringterjadi, sehingga manajemen pengembangan software menjadipenuh dengan belas kasihan.
2.Pengembang sering membuat kompromi – kompromiimplementasi untuk membuat prototipe bekerja dengan cepat.Sistem operasi atau bahasa pemrograman yang tidak sesuai bisadipakai secara sederhana karena mungkin diperoleh dan dikenal;algoritma yang tidak efisien secara sederhana bisadiimplementasikan untuk mendemonstrasikan kemampuan. Setelahselang waktu tertentu, pengembang mungkin mengenali pilihan –pilihan tersebut dan melupakan semua alasan mengapa mereka tidak cocok. Pilihan yang kurang ideal telah menjadi bagian integraldari sebuah sistem.Meskipun berbagai masalah bisa terjadi, prototipe bisa menjadiparadigm yang efektif bagi Software Engineering.
Kuncinya adalahmendefinisikan aturan main pada saat awal; yaitu pelanggan danpengembang keduanya harus setuju bahwa prototipe dibangun untukberfungsi sebagai mekanisme pendefinisian kebutuhan. Prototipekemudian disingkirkan (paling tidak sebagian), dan software aktualdirekayasa dengan tertuju kepada kualitas dan kemampuanpemeliharaan.

METODE RAD ( RAPID APPLICATION DEVELOPMENT )
Rapid Aplication Development
(RAD) adalah sebuah model prosesperkembangan software sekuensial linier yang menekankan siklusperkembangan yang sangat pendek. Model RAD ini merupakan sebuahadaptasi “kecepatan tinggi” dari model sekuensial linier di manaperkembangan cepat dicapai dengan menggunakan pendekatankontruksi berbasis komponen. Jika kebutuhan dipahami dengan baik,proses RAD memungkinkan tim pengembangan menciptakan “sistemfungsional yang utuh” dalam periode waktu yang sangat pendek (kira-kira 60 sampai 90 hari). Karena dipakai terutama pada aplikasi sistemkonstruksi, pendekatan RAD melingkupi fase – fase sebagai berikut :
1.Bussiness modeling
Aliran informasi di antara fungsi – fungsi bisnis dimodelkan dengansuatu cara untuk menjawab pertanyaan – pertanyaan berikut :informasi apa yang mengendalikan proses bisnis? Informasi apayang di munculkan? Siapa yang memunculkanya? Ke manainformasi itu pergi? Siapa yang memprosesnya?
2.Data modeling
Aliran informasi yang didefinisikan sebagai bagiandari fase bussiness modelling disaring ke dalam serangkaian objek  data yang dibutuhkan untuk menopang bisnis tersebut.Karakteristik (disebut atribut) masing – masing objek diidentifikasidan hubungan antara objek – objek tersebut didefinisikan.
3.Prosess modelling
Aliran informasi yang didefinisikan di dalamfase data modeling ditransformasikan untuk mencapai aliraninformasi yang perlu bagi implementasi sebuah fungsi bisnis.Gambaran pemrosesan diciptakan untuk menambah, memodifikasi,menghapus, atau mendapatkan kembali sebuah objek data.
4.Aplication generation
RAD mengasumsikan pemakaian teknikgenerasi ke empat. Selain menciptakan perangkat lunak denganmenggunakan bahasa pemrograman generasi ketiga yangkonvensional, RAD lebih banyak memproses kerja untuk memkai lagi.

komponen program yang ada ( pada saat memungkinkan) ataumenciptakan komponen yang bisa dipakai lagi (bila perlu). Padasemua kasus, alat – alat bantu otomatis dipakai untuk memfasilitasikonstruksi perangkat lunak.
5.Testing and turnover
Karena proses RAD menekankan padapemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baruharus di uji dan semua interface harus dilatih secara penuh. Keunggulan dan Kelemahan Model RAD1.Keunggulan Model RAD
•Setiap fungsi mayor dapat dimodulkan dalam waktu tertentukurang dari 3 bulan dan dapat dibicarakan oleh tim RAD yangterpisah dan kemudian diintegrasikan sehinnga waktunyalebih efesien.
•RAD mengikuti tahapan pengembangan sistem sepetiumumnya, tetapi mempunyai kemampuan untukmenggunakan kembali komponen yang ada(reusable object) sehingga pengembang pengembang tidak perlu membuatdari awal lagi dan waktu lebih singkat .
2.Kelemahan Model RAD :
•Proyek yang besar dan berskala, RAD memerlukan sumerdaya manusia yang memadai untuk menciptakan jumlah timyang baik.
•RAD menuntut pengembang dan pelanggan memilikikomitmen dalam aktivitas rapid fire yang diperlukan untukmelengkapi sebuah sistem dlam waktu yang singkat. Jiakkomitmen tersebut tidak ada maka proyek RAD akan gagal.


METODE SDLC / WATERFALL
Model ini mengusulkan sebuah pendekatan kepadaperkembangan software yang sistematik dan sekuensial yang mulaipada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode,pengujian, dan pemeliharaan. Dimodelkan setelah siklus rekysakonvensional, model sekuensial linier melingkupi aktivitas – aktivitassebagai berikut :
1.Rekayasa dan pemodelan sistem/informasi
Karena sistem merupakan bagian dari sebuah sistem yang lebihbesar, kerja dimulai dengan membangun syarat dari semua elemennsistem dan mengalokasikan beberapa subset dari kebutuhan kesoftware tersebut. Pandangan sistem ini penting ketika softwareharus berhubungan dengan elemen-elemen yang lain sepertisoftware, manusia, dan database. Rekayasa dan anasisis sistemmenyangkut pengumpulan kebutuhan pada tingkat sistem dengansejumlah kecil analisis serta disain tingkat puncak. Rekayasainformasi mancakup juga pengumpulan kebutuhan pada tingkatbisnis strategis dan tingkat area bisnis.
2.Analisis kebutuhan Software
Proses pengumpulan kebutuhan diintensifkan dan difokuskan,khusunya pada software. Untuk memahami sifat program yangdibangun, analis harus memahami domain informasi, tingkah laku,unjuk kerja, dan interface yang diperlukan. Kebutuhan baik untuksistem maupun software didokumentasikan dan dilihat lagi denganpelanggan.
3.Desain
Desain software sebenarnya adalah proses multi langkah yangberfokus pada empat atribut sebuah program yang berbeda;struktur data, arsitektur software, representasi interface, dan detail(algoritma) prosedural. Proses desain menterjemahkansyarat/kebutuhan ke dalam sebuah representasi software yangdapat diperkirakan demi kualitas sebelum dimulai pemunculankode. Sebagaimana persyaratan, desain didokumentasikan danmenjadi bagian dari konfigurasi software.
4.Generasi Kode.
Desain harus diterjemahkan kedalam bentuk mesin yang bisadibaca. Langkah pembuatan kode melakukan tugas ini. Jika desaindilakukan dengan cara yang lengkap, pembuatan kode dapatdiselesaikan secara mekanis.
5.Pengujian
Sekali program dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal software, memastikanbahwa semua pernyataan sudah diuji, dan pada eksternalfungsional, yaitu mengarahkan pengujian untuk menemukankesalahan – kesalahan dan memastikan bahwa input yang dibatasiakan memberikan hasil aktual yang sesuai dengan hasil yangdibutuhkan.
6.Pemeliharaan Software akan mengalami perubahan setelahdisampaikan kepada pelanggan (perkecualian yang mungkin adalahsoftware yang dilekatkan). Perubahan akan terjadi karenakesalahan – kesalahan ditentukan, karena software harusdisesuaikan untuk mengakomodasi perubahan – perubahan didalam lingkungan eksternalnya (contohnya perubahan yangdibutuhkan sebagai akibat dari perangkat peripheral atau sistemoperasi yang baru), atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan softwaremengaplikasikan lagi setiap fase program sebelumnya dan tidakmembuat yang baru lagi.

 Masalah yang kadang terjadi ketika model SDLC diaplikasikan adalah :
1. Jarang sekali proyek nyata mengikuti aliran sekuensial yangdianjurkan oleh model. Meskipun model linier bisa mengakomodasiiterasi, model ini melakukannya dengan cara tidak langsung.Sebagai hasilnya, perubahan – perubahan dapat menyebabkankeraguan pada saat tim proyek berjalan.
2.Kadang – kadang sulit bagi pelanggan untuk menyatakan semuakebutuhannya secara eksplisit. Model linier sekuensial memerlukanhal ini dan mengalami kesulitan untuk mengakomodasiketidakpastian natural yang ada pada bagian awal beberapaproyek.
3.Pelanggan harus bersifat sabar. Sebuah versi kerja dari program –program kerja itu tidak akan diperoleh sampai akhir waktu proyekdilalui. Sebuah kesalahan besar, jika tidak terdeteksi sampaiprogram yang bekerja tersebut dikaji ulang, bisa menjadi petaka.
4.Pengembang sering melakukan penundan yang tidak perlu. Sifatalami dari siklus kehidupan klasik membawa kepada blocking state di mana banyak anggota tim proyek harus menunggu tim yang lainuntuk melengkapi tugas yang saling memiliki ketergantungan.Blocking state cenderung menjadi lebih lazim pada awal dan akhirsebuah proses sekuensial linier.

Keunggulan dan Kelemahan Model SDLC
•Keunggulan
1.Mudah aplikasikan
2.Memberikan template tentang metode analisis, desain,pengkodean, pengujian, dan pemeliharaan

•Kelemahan
1.
Jarang sekali proyek riil mengikuti aliran sekuensial yangdianjurkan model karena model ini bisa melakukan itersi tidaklangsung . Hal ini berakibat ada perubahan yang diragukan padasaat proyek berjalan.
2.Pelanggan sulit untuk menyatakan kebutuhan secara eksplisitsehingga sulit untuk megakomodasi ketidakpastian pada saatawal proyek.
3.Sebuah kesalahan jika tidak diketahui dari awal akan menjadimasalah besar karena harus mengulang dari awal.

METODE INCREMENTAL
Model incremental (Incremental waterfall model ) merupakanperbaikan dari model waterfall dan sebagai standar pendekatan top-down. Ide dasar dari model ini adalah membangun software secarameningkat (increment) berdasarkan kemampuan fungsional. Modelincremental ini diaplikasikan pada sistem pakar dengan penambahanrules yang mengakibatkan bertambahnya kemampuan fungsionalsistem. Keuntungan dari model ini adalah bahwa penambahankemampuan fungsional akan lebih mudah diuji, diverifikasi, dandivalidasi dan dapat menurunkan biaya yang dikeluarkan untukmemperbaiki sistem. Model incremental merupakan model continousrapid prototype dengan durasi yang diperpanjang hingga akhir prosespengembangan. Pada model prototipe biasa, prototipe hanya dibuatpada tahap awal untuk mendapatkan kebutuhan user. 

METODE SPIRAL
Model spiral (spiral model) adalah model proses software yangevolusioner yang merangkai sifat iteratif dari prototipe dengan carakontrol dan aspek sistematis dari model sekuensial linier. Model iniberpotensi untuk pengembangan versi pertambahan software secaracepat. Di dalam model spiral, software dikembangkan di dalam suatuderetan pertambahan. Selama awal iterasi, rilis inkremental bisamerupakan sebuah model atau prototipe kertas. Selama iterasi berikutnya, sedikit demi sedikit dihasilkan versi sistem rekayasa yanglebih lengkap.Model spiral dibagi menjadi sejumlah aktifitas kerangka kerja,disebut juga wilayah tugas, di antara tiga sampai enam wilayah tugas,yaitu : komunikasi pelanggan yang dibutuhkan untuk membangunkomunikasi yang efektif di antara pengembangan dan pelanggan,perencanaan yang dibutuhkan untuk mendefinisikan sumber – sumberdaya, ketepatan waktu, dan proyek informasi lain yang berhubungan,analisis risiko yang dibutuhkan untuk menperhitungkan resiko(manajemen maupun teknis), perekayasaan yang dibutuhkan untukmembangun satu atau lebih representasi dari aplikasi tersebut,konstruksi dan peluncuran yang dibutuhkan untuk mengkonstruksi danmenguji serta memasang (instal) dan memberikan pelayanan kepadauser (contohnya pelatihan dan dokumentasi) dan bagian evaluasi useryang dibutuhkan untuk memperoleh umpan balik dari user dengandidasarkan pada evaluasi representasi software, yang dibuat selamamasa perekayasaan, dan diimplementasikan selama masapemasangan.Dalam pengembangan sistem informasi berbasis web, model inidigunakan untuk menyelesaikan sistem secara global terlebih dahulu,kemudian untuk feature dari sistem akan dikembangkan kemudian.Dengan ini mempercepat dalam pengimplementasian project. dan halini cocok digunakan dalam sistem informasi Web.Kekurangan model spiral adalah sulitnya untuk meyakinkankonsumen (khusunya dalam situasi kontrak) bahwa pendekatanevolusioner bisa dikontrol. Model spiral memerlukan keahlianpenaksiran risiko yang msuk akal , dan sangat bertumpu padakeakhlian ini untuk mencapai keberhasilan. Jika resiko mayor tidakditemukan dan diatur, pasti akan terjadi masalah. Akhirnya model itu
sendiri masih baru dan belum dipergunakan secara luas sepertiparadigma sekuensial dan prototype
Sumber :blog binadarma.ac.id/usman/?p=940.

2 komentar: