1. Metode Pengembangan evolusioner
Metode pengembangan evolusioner berdasarkan pada ide untuk mengembangkan implementasi awal,kemudian memperlihatkan sisem awal itu kepada user untuk dikomentari, dan memperbaikinya versi demi versi sampai sistem yang memenuhi persyaratan diperoleh. Pada metode ini tidak ada kegiatan spesifikasi, pengembangan, dan validasi yang terpisah. Kegiatan-kegiatan ini dilakukan pada saat yang bersamaan dengan umpan balik yang cepat untuk masing-masing kegiatan.
Pengembangan system secara evolusioner sendiri memiliki 2 variasi :
Pengembangan Eksplotari, Tujuan proses ini adalah bekerja dengan pelanggan untuk menyelidiki persyaratan mereka dan mengirimkan sistem akhir. Harusnya diawali dengan kebutuhan yang sudah dimengerti. Pendekatan ini biasa digunakan untuk mengembangkan system berdasar pesanan dari klien (custom product).
Prototipe yang dapat dibuang (throw-away-prototype), metode ini berkonsentrasi pada eksperimen, dengan persyaratan pelanggan yang tidak dipahami dengan baik, cocok untuk pengembangan software jenis generic product.
Ada beberapa kelebihan metode evolusioner jika dibandingkan dengan SDLC. Metode evolusioner lebih efektif dari pendekatan SDLC dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan. Karena untuk menghasilkan sistem informasi tidak harus menempuh keseluruhan tahap SDLC. Keuntungan kedua, sementara user mendapat pemahaman yang lebih baik dari masalah mereka, sistem perangkat lunak dapat merefleksikannya .
Adapun kelemahan dari sistem ini antara lain :Kurangnya visibilitas proses,jika sistem dikembangkan dengan cepat, tidaklah efektif dari segi biaya jika dihasilkan dokumen yang merefleksikan setiap versi sistem. Kedua, sistem seringkali memiliki struktur yang buruk hal ini disebabkan perubahan yang terus-menerus pada program cenderung merusak struktur perangkat lunak. Hal ini berakibat pada penyesuaian perubahan menjadi kian sulit dan mahal. Ketiga metode ini membutuhkan kemampuan pengembangan software dengan SDM yang sudah berpengalaman.
2. Model Pengembangan Berorientasi Pemakaian Ulang (Re-Usable)
Metode ini berpegang pada ide awal sebagai berikut. Untuk beberapa proses bisnis, requirement dari satu klien dengan klien yang lain bisa jadi hampir sama. Sehingga jika sudah dimiliki satu sistem informasi jika akan dikembangkan sistem informasi untuk klien yang lain dengan proses bisnis yang hampir sama, kita bisa memanfaatkan software yang sudah ada untuk membuat software yang baru.
Ada 4 fase utama dalam pengembangan re-usable :
a. Analisis Komponen, Spesifikasi persyaratan telah diketahui, komponen-komponen untuk implementasi spesifikasi tersebut akan dicari. Biasanya, tidak ada kesesuaian yang tepat dan komponen yang dapat dipakai hanya memberikan sebagian dari fungsionaliyas yang dibutuhkan.
b. Modifikasi Persyaratan. Persyaratan dianalisis menggunakan informasi tentang komponen yang didapat, kemudian dimodifikasi untuk merefleksikan komponen yang ada. Jika modifikasi tidak mungkin dilakukan, maka kegiatan analisis komponen bisa diulang untuk mencari solusi alternatif.
c. Perancangan sistem dengan pemakaian ulang. Kerangka kerja sistem dirancang, atau kerangka kerja yang telah ada dipakai ulang.
d. Pengembangan dan Integrasi. Perangkat Lunak yang tidak dapat dibeli akan dikembangkan dan komponen kemudian diintegrasikan untuk membantu sistem.
3. Prototyping
Prototyping adalah proses iterative dalam pengembangan sistem dimana requirement diubah ke dalam sistem yang bekerja (working system) yang secara terus menerus diperbaiki melalui kerjasama antara user dan analis. Prototype juga bisa dibangun melalui beberapa tool pengembangan untuk menyederhanakan proses. Prototyping merupakan bentuk dari Rapid Application Development (RAD). Beberapa kerugian RAD:
· RAD mungkin mengesampingkan prinsip-prinsip rekayasa perangkat lunak
· Menghasilkan inkonsistensi pada modul-modul sistem
· Tidak cocok dengan standar
· Kekurangan prinsip reusability komponen
Prototype methodology
· Analis bekerja dengan tim untuk mengidentifikasi requirement awal untuk sistem
· Analis kemudian membangun prototype. Ketika sebuah prototype telah selesai. User bekerja dengan prototype itu dan menyampaikan pada analis apa yang mereka sukai dan yang tidak mereka sukai.
· Analis kemudian menggunakan feedback ini untuk memperbaiki prototype
· Versi baru diberikan kembali ke user
· Ulangi langkah-langkah tersebut sampai user merasa puas
Keuntungan prototype
• Prototype melibatkan user dalam analisis dan desain
• Punya kemampuan menangkap requirement secara konkret daripada secara abstrak
• Untuk digunakan secara standalone
• Digunakan untuk memperluas SDLC
4. Object Oriented Analysis and Design (OOAD)
Pendekatan yang terakhir adalah pendekatan berbasis Objek. Seiring dengan berkembangnya trend pemrograman berbasis objek maka analisis dan desain sistem juga bisa menggunakan konsep objek. Pendekatan baru untuk pengembangan sistem ini sering disebut sebagai pendekatan ketiga setelah pendekatan yang berorientasi data dan berorientasi proses. OOAD adalah metode pengembangan sistem yang lebih menekankan pada objek dibandingkan dengan data atau proses. Ada beberapa ciri khas dari pendekatan ini yaitu object, Inheritance dan object class
Object adalah struktur yang mengenkapsulasi atribut dan metode yang beroperasi berdasarkan atribut-atribut tadi. Objek adalah abstraksi dari benda nyata dimana data dan proses diletakkan bersama untuk memodelkan struktur dan perilaku dari objek dunia nyata. Object class adalah sekumpulan objek yang berbagi struktur yang sama dan perilaku yang sama. Inheritance. Properti yang muncul ketika tipe entitas atau object class disusun secara hirarki dan setiap tipe entitas atau object class menerima atau mewarisi atribut dan metode dari pendahulunya. Karena pembahasan tentang OOAD sangat luas dan dalam maka pembaca dipersilahkan merujuk pada buku-buku OOAD untuk mendapatkan informasi yang medalam dan komprehensif.
Teknologi pengembangan sistem
Pada perkembangannya desain sistem banyak disupport oleh pengggunaan software dan teknologi baru. Tujuan penggunaan software untuk analisis memiliki beberapa tujuan :
• Meningkatkan produktifitas
• Berkomunikasi lebih efektif dengan user
• Mengintegrasikan pekerjaan yang telah dilaksanakan dari awal pengembangan sampai akhir.
Tool semacam ini dikategorikan dalam jenis CASE (Computer Aided Software Engineering). CASE adalah software yang digunakan untuk mengotomasi atau mendukung penggambaran dan analisis dari model sistem dan menyediakan translasi dari model sistem ke sistem aplikasi. Ada beberapa tool yang sering digunakan misalnya Microsoft Project dan Rational Rose. Microsoft Project sangat berguna untuk penjadwalan proyek sedangkan Rational Rose sangat membantu untuk tahapan proses model maupun data mode