RPL 3: Kelebihan dan Kekurangan Masing2 Model

Jumat, 29 Maret 2013

Waterfall Model

Keunggulan:

1.    Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
2.    Document pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
3.    Mudah diaplikasikan
4.    Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan pemeliharaan
5.     Cocok digunakan untuk produk software yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya
6.    Merupakan model pengembangan paling handal dan paling lama digunakan.
7.    Cocok untuk system software berskala besar.
8.    Cocok untuk system software yang bersifat generic.
9.    Pengerjaan project system akan terjadwal dengan baik dan mudah dikontrol

Kekurangan :

1.    Membutuhkan keahlian yang baik atau yang telah berpengalaman dalam mengembangkan perangkat lunak, dalam arti metode ini kurang cocok bagi pemula.
2.    Diperlukan majaemen yang baik, karena proses pengembangan tidak dapat berulang sebelum menghasilkan suatu produk, yaitu aplikasi. Jadi apabila dalam suatu proses seperti perancangan tidak selesai tepat waktu, maka akan mempengaruhi keseluruhan proses pengembangan perangkat lunak.
3.    Iterasi sering terjadi menyebabkan masalah baru
4.    Client kesulitan untuk menyatakan semua keinginannya secara eksplisit diawal tahap pengembangan
5.    Hasil software yang dikembangkan baru akan diketahui lama setelah proyek pengembangan dimulai
6.    Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses
7.    Sulit untuk mengalami perubahan kebutuhan yang diinginkan customer
8.    Customer harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap,menyelesaikan tahap awal baru bisa ke tahap selanjutnya
9.    Perubahan ditengah-tengah pengerjaan produk akan membuat bingung team work yang sedang membuat produk
10.    Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya

Contoh: Pembangunan aplikasi GIS mobile di Kota Padang.

 

Incremental Process Model

Kelebihan: 

1.    Cocok digunakan bila pembuat software tidak banyak/kekurangan pembuat
2.    Mampu mengakomodasi perubahan kebutuhan customer
3.    Merupakan model dengan manajemen yang sederhana
4.    Pelanggan tidak perlu menunggu sampai seluruh system dikirim untuk mengambil keuntungan dari system tersebut. Inkremen yang pertama sudah memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak dapat segera digunakan.
5.    Pelanggan dapat memakai inkremen yang pertama sebagai bentuk prototype dan mendapatkan pengalaman yang dapat menginformasikan persyaratan untuk inkremen system berikutnya
6.    Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah dapat ditemukan pada beberapa inkremen, bias saja beberapa inkremen diserahkan dengan sukses kepada pelanggan.
7.    Karena layanan dengan prioritas tertinggi diserahkan pertama dan inkremen berikutnya diintegrasikan dengannya, sangatlah penting bahwa layanan system yang paling penting mengalami pengujian yang paling ketat. Ini berarti bahwa pelanggan akan memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat lunak pada inkremen system yang paling kecil.

Kekurangan:


1.    Hanya akan berhasil jika tidak ada staffing untuk penerapan secara menyeluruh
2.    Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanjut
3.    Hanya cocok untuk proyek dengan skala kecil
4.    Inkremen harus relative lebih kecil (tidak lebih dari 20.000 baris kode) dan setiap inkremen harus menyediakan sebagian dari fungsional system
5.    Adanya kesulitan untuk memetakan persyaratan pelanggan pada inkremen dengan ukuran yang benar

Contoh penggunaannya: Misalnya, perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma penambahan akan menyampaikan manajemen file dasar, editing serta fungsi penghasilan dokumen pada penambahan pertama; kemudian editing dan kemampuan penghasilan dokumen yang lebih canggih pada pertambahan kedua; pengecekan spelling dan tata bahasa pada pertambahan ketiga; serta kemampuan pengaturan halaman tingkat lanjut pada tahap pertambahan keempat. Harus dicatat bahwa aliran proses untuk berbagai pertambahan tersebut dapat menggabungkan paradigma prototype.

 

Prototyping Model

Keungggulan :

1.    Adanya kominuikasi yang baik antara pengembang dan pelanggan
2.    Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
3.    Pelangggan  berperan aktif dalam pengembangan sistem
4.    Lebih menghemat waktu dalam pengembangan sistem
5.    Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya
6.    Dapat memberikan bukti konsep yang diperlukan untuk menarik dana
7.    Meningkatkan kecepatan pengembangan sistem

Kelemahan :

1.    Ketidaksadaran user bahwa ini hanya suatu model awal bukan model akhir
2.    Pengembang kadang-kadang membuat implementasi yang sembarangan.
3.    Teknik dan tools yang tidak optimal pada prototipe yang akan tetap digunakan pada softare sesungguhnya
4.    Proses analisis dan perancangan terlalu singkat
5.    Biasanya kurang fleksible dalam mengahadapi perubahan
6.    Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang

Contoh penggunaan:
Sistem yang paling sesuai untuk prototipe adalah satu dari banyak hal yang bergantung pada sistem input/output dari user. Sistem dengan transaksi on-line dikendalikan melalui menu, layar, formulir, laporan, daftar dan perintah.

 

Spiral Model

Kelebihan:

1.    Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
2.    Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses

Kelemahan:

1.    Sulit untuk meyakinkan pemakai (saat situasi kontrak) bahwa penggunaan pendekatan ini akan dapat dikendalikan
2.    Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses
3.    Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru


RPL 2: Process Models



Apa itu process models?
Ketika kamu bekerja untuk membangun produk atau sistem, sangat penting untuk melewati serangkaian langkah – langkah yang dapat diprediksi, road map membantu membuat hasil dengan kualitas tinggi, road map ini dinamakan software process

Siapa yang melakukannya?
Software engineer dan manajer mengadaptasi process untuk kebutuhannya

Kenapa process model penting?
Karena menyediakan stabilitas, kontrol, dan organisasi untuk aktivitas.

Apa saja langkah – langkahnya?
Pada level detail, process yang diadaptasi tergantung pada software yang dibuat

Apa produk kerjanya?
Produk kerjanya adalah dokumen, program, data yang diproduksi sebagai konsekuensi aktivitas dan tugas yang didefinisikan oleh process

Software process didefinisikan sebagai framework untuk aktivitas, tindakan dan tugas yang dibutuhkan untuk membangun software yang berkualitas tinggi.

Salah satu aspek penting dari software process dinamakan process flow, process flow mendeskripsikan bagaimana framework activities dan action dan task yang terjadi dalam framework activities diorganisasi.
1.    Linier process flow: mengeksekusi framework activities secara berurutan, dimulai dari communication sampe deployment







2.    Iterative process flow: mengulangi satu atau lebih aktivitas sebelum melakukan aktivitas berikutnya



3.    Evolutionary process flow: mengeksekusi aktivitas dengan pola melingkar menuju ke versi sofware yang lebih lengkap



4.    Paralel process flow: mengeksekusi satu atau lebih aktivitas secara paralel dengan aktivitas yang lain






Untuk proyek software yang lebih kecil, task set meliputi:
1.    Membuat kontak dengan pengguna melalui telepon
2.    Mendiskusikan kebutuhan dan mencatatnya
3.    Mengorganisir catatan menjadi laporan singkat
4.    Mengirim e-mail ke pengguna untuk review

Jika proyeknya lebih kompleks dengan banyak pengguna, komunikasi mungkin dibagi menjadi 6 tindakan tersendiri, yaitu: inception, elicitation, elaboration, negotiation, specification, dan validation
Process patern mendeskripsikan process yang berhubungan dengan masalah yang dihadapi selama pengerjaan software engineering, mengidentifikasi lingkungan dimana masalah dihadapi dan menyajikan satu atau lebih solusi untuk masalah tersebut.

Berikut ini adalah template dari process patern:
1.    Pattern name: pattern diberikan nama untuk mendeskripsikannya dalam konteks software process
2.    Forces: lingkungan dimana pattern dihadapi
3.    Type: ada 3 tipe dari pattern, yaitu stage pattern (mendeskripsikan masalah yang berhubungan dengan framework activities untuk process), task pattern (mendeskripsikan masalah yang berhubungan dengan tugas kerja atau tindakan software engineering), phase pattern (mendefinisikan urutan framework activities yang terjadi dalam process)
4.    Initial context: mendeskripsikan kondisi dimana pattern digunakan
5.    Problem: masalah khusus yang dapat diselesaikan dengan pattern
6.    Solution: mendeskripsikan bagaimana mengimplementasikan pattern dengan berhasil
7.    Resulting context: mendeskripsikan kondisi yang akan menghasilkan pattern yang telah berhasil diimplementasikan
8.    Related patterns: menyediakan list dari semua process pattern yang berhubungan langsung
9.    Known uses and examples: mengindikasikan hal khusus dimana pattern digunakan

RPL 1: Software Engineering

Kamis, 28 Maret 2013
Software adalah sekumpulan obyek – obyek yang melibatkan konfigurasi program, dokumen, data dan lain – lain. Sebuah software dibangun dan dirancang oleh software engineer. Software engineer mempunyai kewajiban untuk membuat software yang dapat dihandalkan oleh masyarakat dan tidak merugikan bagi masyarakat. Software bisa diartikan dua hal yaitu produk dan kendaraan untuk menyampaikan informasi.

Berikut ini adalah domain software aplikasi:
1.    System Software
Merupakan kumpulan program yang ditulis untuk membuka program lain. Contoh: sistem operasi, compiler, editor, dan lain – lain.
2.    Software aplikasi
Merupakan program yang dapat berdiri sendiri yang digunakan untuk memecahkan kebutuhan yang spesifik
3.    Engineering/scientific software
Merupakan software yang digunakan untuk keperluan ilmiah
4.    Embedded Software
Merupakan software yang terletak dalam sebuah produk atau sistem dan digunakan untuk mengimplementasikan dan mengontrol fitur dan fungsi end user.
5.    Product – line software
Software ini didesain untuk menyediakan kemampuan khusus untuk digunakan beberapa pelanggan yang berbeda
6.    Web applications
Disebut juga WebApps, yaitu merupakan software yang berbasis web dan jaringan
7.    Artificial intelligence software
Software ini menggunakan algoritma non numerik untuk memecahkan masalah yang kompleks. Aplikasi dalam area ini termasuk robotika, experts system, permainan game dan lain – lain.

Tantangan software baru:
1.    Computing ada dimana – mana
Membuat software untuk menyediakan mesin semua ukuran untuk berkomunikasi dengan yang lain melewati jaringan yang cepat
2.    Netsourcing
Arsitekturnya sederhana dan aplikasinya canggih, diperuntukkan pasar end user di dunia
3.    Open source
Menyebarkan source code untuk komputasi aplikasi supaya costumer dapat membuat modifikasi software dengan cepat dan mudah
4.    Ekonomi baru
Pembangunan aplikasi yang memfasilitasi pendistribusian komunikasi masa dan produk masa dengan mengunakan konsep perubahan.

Legacy software:
1.    Software harus diadaptasi untuk menemui kebutuhan teknologi baru
2.    Software harus ditingkatkan
3.    Software harus dapat diperluas untuk membuatnya dapat bertukar informasi dengan dengan sytem modern atau database lain
4.    Software harus dapat di arsitektur ulang

Beberapa pertanyaan penting software engineer:
-    Mengapa membutuhkan waktu yang lama untuk menyelesaikan software?
-    Mengapa harga development begitu tinggi?
-    Mengapa kita tidak dapat menemukan semua error sebelum kita memberikan software ke costumer kita?
-    Mengapa kita menghabiskan banyak waktu untuk maintaining program yang sudah ada?

Mitos software masih dipercaya oleh banyak manajer dan praktisi, software dianggap berbahaya karena mereka mempunyai elemen kepercayaan. Seorang manajer dan praktisi seharusnya memahami realitas dari proses bisnis.

Menurut Pressman, software engineering adalah teknologi yang harus digunakan oleh setiap orang yang akan membangun sebuah software dengan melalui serangkaian proses, menggunakan sekumpulan metode dan alat bantu.
Software harus benar (correct) berdasarkan business rule dan sejalan dengan segala sesuatu dan semua pihak yang terkait.
Pembangunan software harus dikelola dengan baik untuk memelihara kebenarannya (correctness)

Framework proses dari software engineering terdiri dari 5 aktifitas, yaitu:
1.    Communication
Sebelum mengerjakan sebuah proyek, sebaiknya berkomunikasi dan bekerjasama dengan costumer dan pengguna.
2.    Planning
Mendeskripsikan resiko teknis, menulis sumber daya yang dibutuhkan, mendefinisikan jadwal kerja
3.    Modeling
Membuat model untuk membantu developer dan costumer mengerti kebutuhan dan desain software
4.    Construction
Pembuatan code dan testing code yang dibuat tersebut
5.    Deployment
Software yang telah jadi dikirim ke costumer

Umbrella activities software engineering:
1.    Software project tracking and control
2.    Manajemen resiko
3.    Asuransi kualitas software
4.    Review teksnis
5.    Pengukuran
6.    Manajemen konfigurasi software
7.    Produksi dan persiapan produk kerja
Copyright @ 2013 Erwin Rizki Blog. Distributed By Blogger Templates | Designed by Templateism | MyBloggerLab

Date Now

Time Now