Rabu, 24 Oktober 2012

Software Process

Haiiii!!!
blog saya kali ini akan membahas lebih lanjut mengenai model-model software process yang terdiri dari 5 jenis,yaitu:
  1. Waterfall Model
  2. Prototyping Model
  3.  Rapid Application Development
  4. Incremental Model
  5. Spiral Model

cekidooottt......

1. Waterfall Model

disebut waterfall karena modelnya seperti air terjun. yaitu model sotware yang bekerja secara step by step dan langkah kerjanya harus berurutan.

proses waterfall:
1.Requirement Analysis
    Proses pengumpulan informasi tentang kebutuhan proyek yang akan dibuat dan kemudian dianalisis dan dispesifikasikan sehingga informasi kebutuhan yang didapatkan tepat

2.Design
    proses desain bertujuan untuk menerjemahkan kebutuhan kedalam sebuah representasi perangkat lunak

3.Implementation
    Hasil desain kemudian diterjemahkan kedalam bahasa pemrograman yang sesuai

4.Verification
     hasil implementasi kemudian digabungkan dan diuji untuk mengetahui apakah pengkodean sudah tepat semua atau tidak,

5.Maintenance
     tahap pemeliharaan yaitu memperbaiki kesalahan yang mungkin terjadi karena perangkat lunak mengalami perubahan karena menyesuaikan diri dengan lingkungan baru.

Kelebihan:
  • merupakan model pengembangan yang paling handal dan paling lama digunakan
  • cocok untuk sistem software berskala besar
  • cocok utuk sistem software yang bersifat generic
  • pengerjaan project sistem akan terjadwal dengan baik dan mudah dikontrol


Kekurangan:
  • Persyaratan harus digambarkan dengan jelas
  • rincian proses harus benar-benar jelas dan tidak dapat berubah-ubah
  • sulit untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan pengembangan

Contoh Kasus: software pengolah gambar

referensi: http://waliadigunawan.blogspot.com/2009/12/waterfall-model.html


2.Prototyping Model







 Prototyping adalah proses yg bisa dilaksanakan secara berulang dengan tujuan untuk menghindarkan proses persetujuan formal secara periodik yg diperlukan dalam pendekatan pengembangan sistem secara tradisional.

Prototyping adalah proses yang digunakan untuk membantu pengembang perangkat lunak dalam membentuk model dari perangkat lunak yang harus dibuat.


Proses Prototyping:
1.Pengumpulan kebutuhan
    yaitu mengumpulkan kebuthan pelanggan secara garis besar

2.Membangun Prototyping
    membangun protoyping dengan perancangan sementara sebagain penyajian kepada pelanggan

3.Evaluasi Prototyping

4.Mengkodekan Sistem
     prototyping kemdian diterjemahkan kedalam bahasa pemrograman yang sesuai

5.Menguji Sistem
     setelah pengkodean selesai sistem kemudian di tes

6.Evaluasi Sistem

7.Menggunakan Sistem

Kelebihan:
  • Sudah Terstruktur
  • Adanya komunikasi yang baik antara pengembang dan pelanggan
  • Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
  • Lebih menghemat waktu
  • Pelanggan berperan aktif dalam pengembangan sistem
  • Penerapan menjadi lebih mudah karena pemakai mengetah apa uyang diharapkannya


Kekurangan:
  • Proses analisis dan perancangan terlalu singkat. 
  • Mengesampingkan alternatif pemecahan masalah. 
  • Bisanya kurang fleksible dalam mengahdapi perubahan. 
  • Protitype yang dihasilkan tidak selamanya mudah dirubah  
  • Protype terlalu cepat selesai
contoh kasus: Replika/gameonline

referensi:  http://ikavita.blogspot.com/2008/07/sistem-informasi-manajemen.html


3.Rapid Application Development

 

 Rapid Application Development (RAD) adalah sebuah model proses perkembangan model waterfall yang menekankan siklus perkembangan yang sangat pendek. Model ini merupakan sebuah adaptasi “kecepatan tinggi” dari model waterfall di mana perkembangan cepat dicapai dengan menggunakan pendekatan kontruksi berbasis komponen. Selain itu RAD merupakan Versi “High Speed” dari model Waterfall.

Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan :
  1. Component based construction ( pemrograman berbasis komponen bukan prosedural).
  2. Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada.
  3. Pembangkitan kode program otomatis/semi otomatis.
  4. Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tapi tidak sama. Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang dibangun.
Jika kebutuhan yang diinginkan pada tahap analisis telah lengkap dan jelas, maka waktu yang dibutuhkan untuk menyelesaikan secara lengkap perangkat lunak yang dibuat adalah berkisar 60 sampai 90 hari. Model RAD hampir sama dengan model waterfall, bedanya siklus pengembangan yang ditempuh model ini sangat pendek dengan penerapan teknik yang cepat.
Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim dalam waktu yang hampir bersamaan dalam waktu yang sudah ditentukan. Model ini melibatkan banyak tim, dan setiap tim mengerjakan tugas yang selevel, namun berbeda. Sesuai dengan pembagian modul sistem.

Kelemahan:

Beberapa hal (kelebhan dan kekurangan) yang perlu diperhatikan dalam implementasi pengembangan menggunakan model RAD :
  1. Model RAD memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala besar.
  2. Model ini cocok untuk proyek dengan skala besar.
  3. Model RAD memerlukan komitmen yang kuat antara pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
  4. kinerja dari perangkat lunak yang dihasilkan dapat menjadi masalah manakala kebutuhan-kebutuhan diawal proses tidak dapat dimodulkan, sehingga pendekatan dengan model ini kurang bagus.
  5. sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
  6. penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
  7. proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
  8. risiko teknis yang tinggi juga kurang cocok untuk model ini.
 referensi: http://id.wikipedia.org/wiki/Rapid_Application_Development


4.Incremental Model






incremental model adalah proses pengembangan perangkat lunak berskala besar yang terbagi menjadi bagian-bagian/ modul-modul.

Proses Increment:
1.Analysis
    proses pengumpulan informasi mengenai kebutuhan pelanggan. informasi kebutuhan kemudian dianalisis dan dispesifikasi sehingga benar-benar lengkap dan tepat

2.Design
    setelah dianalisis kemudian diterjemahkan kedalam sebuah representasi perangkat lunak

3.Code
     desain kemudian diterjemahkan kedalam bahasa pemrograman yang sesuai

4.test
     setelah proses pengkodean selesai maka akan dilakukan pengujian perangkat lunak

setiap bagian increment dikerjakan oleh tim-tim khusus. tim 1 mengerjakan increment 1, tim 2 mengerjakan increment 2. jika tim sebelumnya sudah menyelesaikan tahap analisis dan design maka tim selanjutnya dapat memulai tahap analisis untk increment yang mereka kerjakan.

kelebihan:
  • Mampu mengakomodasikan perubahan secara fleksibel
  • Pelanggan dapat memakai increment yang pertama sebagai bentuk prototype dan mendapatkan pengalaman yang dapat menginformasikan persyaratan untuk increment sistem berikutnya
  • Resiko untuk kegagalan proyek lebih rendah
  • Pelanggan tidak perlu menunggu hingga seluruh sistem dikirimkan untuk menggunakan sistem tersebut

Kekurangan:
  • kesulitan untuk memetakan persyaratan pelanggan pada increment dengan ukuran benar
  • sebagian besar  sistem membutuhkan serangkaian fasilitas dasar yang dipakai oleh increment lain pada sistem
  • incremental harus menyediakan sebagian dari fungsonalitas sistem.
contoh kasus: Microsoft word

referensi:  http://evi-mursalim.blogspot.com/2011/01/rekayasa-perangkat-lunak-incremental.html


5.Spiral Model







  Model spiral merupakan pengembangan dan pembangunan dari prototyping dan incremental model,dimana proses berjalan dengan mekanisme pengembangan prototype yang dilakukan secara berulang untuk melengkapi perangkat lunak hinga sesuai dengan kebutuhan.

Proses Spiral:

1.Customer Comunication
     merupakan aktivitas yang dilakukan untuk membangun komunikasi yang efektif antara pengembang dengan pengguna terutama mengenai kebutuhan dari pengguna.

2.Perencanaan
     aktivitas yang dibutuhkan untuk menentukan sumber daya perkiraan waktu pengerjaan, analisa resiko dan informasi lainnya yang dibutuhkan untuk pengembangan perangkat lunak.

3.Pemodelan
     aktivitas yang dijalankan untuk menganalisis design yang akan dibuat

4.Konstruksi
     aktivitas yang dibutuhkan untuk mengembangkan perangkat lunak,pengkodean, pengujian, penggunaan perangkat lunak, serta dokumentasi seperti buku manual penggunaan perangkat lunak

5.Penyebaran
      aktivitas yang dilakukan untuk mendapatkan respon dari pengguna berdasarkan evaluasi mereka selama representasi perangkat lunak pada tahap permodelan maupun pada implementasi selama intalasi perangkat lunak pada tahap konstruksi

Kelebihan:
  • Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer
  • 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
  • 4.Menggunakan prototype sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk
  • 5.Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya kedalam perangkat kerja iterative
  • Membutuhkan pertimbangan langsung terhadap resiko teknis sehingga mengurangi resiko sebelum menjadi permasalahan yang serius
Kekurangan:
  • Sulit untuk meyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol
  • Memerlukan menaksirkan resiko yang masuk akal dan akan menjadi permasalahan yang serius jika resiko mayor tidak ditemukan dan diatur
  • Butuh waktu lama untuk menerapkan paradikma ini menuju lapisan yang absolute
referensi: http://www.scribd.com/doc/51691655/MODEL-SPIRAL


Sekian blog saya mengenai model-model software proses..
selamat membaca :)

Sabtu, 13 Oktober 2012

Betapa Pentingnya Membaca

haii. kali ini saya tidak akan membahas mengenai materi kuliah Rekayasa Perangkat Lunak tetapi saya akan membahas mengenai Pentingnya Membaca. Karena pada pertemuan kuliah yang lalu kami semua lupa bahwa kami diberikan tugas untuk mencari dan membaca materi kuliah mengenai:
  • Waterfall Model
  • Prototype Model
  • Rapid Application Development
  • Incremental Model
  • Ireactive-Incremental
sehingga pada pertemuan kemarin (jumat,12 oktober 2012), dosen kami Pak Sofyan Thayf agak sedikit marah dan kecewa karena tak satupun dari kami yang membaca materi tersebut. akibatnya pelajaran kami menjadi sedikit terhambat, karena kami harus mencari dan membaca materi tersebut bersama teman-teman kami didalam kelas dengan waktu yang singkat.

pentingnya membaca:
-Menambah Ilmu
-Membuka Wawasan
-Menambah Informasi
-Dapat Mengasah Otak kita

untuk itu saya BERJANJI akan rajin membaca, terutama membaca materi kuliah mengenai Rekayasa Perangkat Lunak ^^

thank you :*

Sabtu, 06 Oktober 2012

SOFTWARE


haii bloggerz! kali ini saya akan membahas mengenai software yang telah diajarkan oleh dosen saya Pak Sofyan Thayf pada hari jumat 5 oktober yang lalu...
cekidoootttt~

SOFTWARE

Software adalah kumpulan item atau objek yang membentuk konfigurasi seperti:
-Program
-Data
-Dokumen


Sifat-sifat Software:
1.     Software is engineered yaitu software tidak diproduksi secara massal
2.     Software doesn't work out yaitu tidak lapuk dan dibuat untuk jangka waktu yang panjang
3.     Software is like an 'aging factory' yaitu seperti pabrik yang menua, mempunyai masa dimana nanti tidak akan cocok lagi seiring dengan perkembangan teknologi
4.     Software is complex yaitu bersifat kompleks
5.     Software is differentiator yaitu sebagai pembeda

Software Applications / macam-macam software:
1.     System Software yaitu sistem yang melayani software yang lain
2.     Real-time software yaitu software yang melakukan olah data berdasarkan waktu yang real
3.     Business software yaitu software yang dipakai untuk keperluan bisnis
4.     Engineering / scientific software yaitu software yang dipakai untuk mengukur
5.     Embedded Software yaitu software yang dimasukkan dalam perangkat keras. cth:ac,kulkas dsb
6.     PC software
7.     AI software yaitu software yang banyak ditemukan di game
8.     Web applications yaitu aplikasi yang berbasis web

WATERFALL PROCESS
disebut waterfall proccess karena proses kerjanya seperti air terjun.

kami juga diajak bermain games. setiap orang dibagikan sepotong kertas kecil yang berisi 2 nama material.
kami diberi waktu 10 menit untuk memikirkan ide akan membuat apa dengan kedua material tersebut. kami tidak diizinkan untuk memberitahu teman yang lain mengenai material dan ide mengenai apa yang akan kami buat.
kami disuruh menuliskan judul project dan tujuannya. setelah itu kami dibagi" menjadi berkelompok.
setiap kelompok beranggotakan 2 orang, tetapi ada 1 kelompok yang beranggotakan 3 orang karena jumlah kami yang ganjil. dalam kelompok ini kami saling memberitahu tujuan dari project kami, dan kami diberi waktu 20 menit untuk saling menebak material dan project satu sama lain, dan kami hanya bisa menjawab "ya / tidak". ada kelompok yang semua anggotanya berhasil menebak, ada juga yang tidak. pengaruhnya adalah tujuan project yang disampaikan, ada yang sangat terbuka dan jelas, ada juga yang kurang jelas sehingga untuk menebak material dan projectnya sangatlah susah.
tujuan dari games ini adalah agar kita bisa belajar cara berkomunikasi yang baik, cara menyampaikan tujuan yang jelas, sehingga kedua belah pihak saling mengerti apa yang diinginkan oleh rekannya.

Demikian laporan saya mengenai software,kalau ada salah kata mohon maaf :)
thankiuuuu