Rabu, 17 April 2013

Kelebihan dan kekurangan software model

1. Model Linear Sequential/Waterfall
   Model Linear Sequential/Waterfall merupakan paradigma rekayasa perangkat lunak yang paling tua dan paling banyak dipakai.
   Kelebihan model Linear Sequential/Waterfall :
   • Mudah diaplikasikan
   • Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan pemeliharaan
   • Cocok digunakan untuk produk software yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya
  
   Kekurangan model Linear Sequential/Waterfall :
   • Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus   
     dilakukan pada tahap awal proses
   • Sulit untuk mengalami perubahan kebutuhan yang diinginkan customer
   • Customer harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap,menyelesaikan tahap awal baru bisa ke tahap selanjutnya
   • Perubahan ditengah-tengah pengerjaan produk akan membuat bingung team work yang sedang membuat produk
   • Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya

2. Model Prototyping
   Pendekatan prototyping model digunakan jika pemakai hanya mendefinisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk interaksi manusia-mesin yang harus diambil.
   Kelebihan model Prototyping :
   • Menghemat waktu pengembangan
   • Adanya komunikasi yang baik antara pengembang dan pelanggan
   • Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
   • Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya
   • User dapat berpartisipasi aktif dalam pengembangan sistem

   Kekurangan model Prototyping :
   • Proses analisis dan perancangan terlalu singkat
   • Biasanya kurang fleksible dalam mengahadapi perubahan
   • 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
   • Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien

3. Model RAD (Rapid Application Development)
   Model RAD merupakan model proses pengembangan perangkat lunak secara linear sequential yang menekankan pada siklus pengembangan yang sangat singkat.
   Kelebihan model RAD :
   • Lebih efektif dari pendekatan waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan
   • Cocok untuk proyek yang memerlukan waktu yang singkat
  
   Kekurangan model RAD :
   • RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi
   • Membutuhkan orang yang banyak untuk menyelesaikan sebuah proyek berskala besar
   • Pengembang dan customer harus punya komitmen yang kuat untuk menyelesaikan sebuah software
   • Jika sistem tidak di bangun dengan benar maka RAD akan bermasalah
   • Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan customer

4. Model Increment
   Model Increment merupakan kombinasi linear sequential model dan filosofi pengulangan dari prototyping model.
   Kelebihan model Increment :
   • Cocok digunakan bila pembuat software tidak banyak/kekurangan pembuat
   • Mampu mengakomodasi perubahan kebutuhan customer

   Kekurangan model Increment :
   • Hanya akan berhasil jika tidak ada staffing untuk penerapan secara menyeluruh
   • Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanjut
   • Hanya cocok untuk proyek dengan skala kecil

5. Model Spiral
   Model spiral merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dan sistematika dari linear sequential model.
   Kelebihan model Spiral :
   • Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
   • Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses

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

Selasa, 09 April 2013

Software proses

    Software proses merupakan Sekumpulan aktifitas yang memiliki
tujuan untuk pengembangan ataupun evolusi perangkat lunak.
Aktifitas umum dalam semua proses perangkat lunak terdiri dari:
1. Software Specification – apa yang harus dilakukan oleh perangkat
    lunak dan batasan/kendala pengembangannya
2. Software Development – proses memproduksi sistem perangkat lunak
3. Software Validation – pengujian perangkat lunak terhadap keinginan
    penggunak
4. Software Evolution – perubahan perangkat lunak berdasarkan
    perubahan keinginan.

    Suatu proses model adalah suatu representasi abstrak suatu model.
Proses model menampilkan suatu deskripsi suatu proses dari beberapa
perspektif tertentu, software proses dapat dikatakan sebagai aktifitas yang saling
terkait  untuk menspesifikasikan, merancang, implementasi dan
pengujian sistem perangkat lunak.
    Lalu mengapa kita perlu software proses dalam pengembangan rekayasa perangkat lunak?? setiap software pasti memiliki daur hidup karena setiap software akan mengalami perkembangan ke arah yang lebih sempurna, untuk itu dalam pengembangannya kita membutuhkan software proses sebagai tahapan pengembangan atau dalam kata lain sebagai acuan dalam pengembangan perangkat lunak.

View Generik Rekayasa Perangkat Lunak

view generik softwere enginering adalah  merupakan sebuah lingkaran dari softwere developement atau pengembangn perangkat lunak, dimana dalam softwere developement ini terdapat beberapa tahapan, diantaranya :

-Tahap Pertama : kebutuhan ‘ requirement’
dalam tahappan ini, untuk membangun atu membuat softwere kita harus terlebih dahulu mencaritahu apa yang costumer  btuhkan, membahas bagaimna sistm yang akan berjalan sebelum meanjutkan ketahap analisis spesifiksi,

- Tahap Kedua : spesifikasi ‘specification’
untuk tahap ini, kita akan merancang, membuat/mencari spesifikasi softwere yang akn kita rancang/ buat, seprti jenis softwere yang kan kita buat, hardwere seperti apa yang akan suppot ke softwere yang kita buatt lalu fungsinya .

-Tahap Ketiga : desain
untuk tahapini, si analis atu si pengembang softwere melakukan atau membuat desain dari softwere yang akan ia buat, dalam desain ini akan menggambarkan tahapan tahapan atau langkah langkah kerja dari si softwere, untuk desain ini juga akan mempermudah si proogramer dan cosstumer membaca program

-Tahap Keempat : pengkodingn ‘ code’
untuk tahapini merupakan tahap pengkodingan, dimana disini si proogrmer akn membuat program source berdasarkan desain yang sudah di buat/ rancang

-Tahap Kelima : test
dalam tahap ini, setelah kita selesai membuat / menkoding program kita mencoba atau mengetes si program apakah terdapat kesalahan atau error dalam penggunaanya,

-Tahap Keenam : debug
setelah sebelumnya kita mencoba program dan menemukan kesalahan, langkah selanjutnya ialh memperbaiki poin poin kesalahan dalam program dan menuntaskan semua sampai serupa dengan sistem yang telah dibuat,

-Tahap Ketujuh : maintin atauu istilahnya maintenance
maintin attau maintenance ini dirujukan untuk /setelah program jadi / si pembuat atau pengembang memaintenaint / mamperbaiki programnya jika si program sudah tidak berjalan dengan semestinya, maka itulah perlunya iadkn maintenen untuk memperbaiki/ mengupgrade agr program dapat kembali berjalan dengan semestinya.

Tugas RPL 1

Mengapa dalam menyelesaikan suatu software membutuhkan waktu yang sangat lama dan mengapa dalam pengembangannya membutuhkan biaya yang sangat mahal????

yuk mari kita jawab :

Di dalam menyelesaikan software, pasti membutuhkan waktu yang sangat lama,karena terdapat banyak sekali tahapan-tahapan dalam membuat dan menyelesaikan suatu software, diantaranya menganalisa software,mendesain software tersebut yang sesuai dengan keinginan customer,membuat source code, melakukan ujicoba atau tes terhadap software yang telah dibuat dan masa perbaikan jika software yang telah dibuat tersebut mengalami masalah atau maintenance. Semakin banyak testing dan semakin banyak terdapat masalah maka kita dapat mengetahui dimana kelemahan dan erornya software yang kita buat dan hasil software pun akan semakin sempurna dan eror atau masalah yang mungkin terjadi akan terminimalisir.

Pada software, pasti suatu saat akan mengalami pengembangan-pengembangan di dalam software tersebut. Misalnya saja software A mengalami kemajuan menjadi software B, maka pada software A terjadi perubahan pada tahapan pengembangannya, mungkin bisa pada perubahan desain atau source codenya. Maka dari itu, pengembangan software tersebut memerlukan biaya yang sangat mahal untuk setiap software yang diperbaharui.