Selasa, 24 Maret 2015

Other Agile Process Model

  1. Adaptive Software Development (ASD)

     
    ASD merupakan suatu model yang tergolong dalam pendekatanagile yang diusulkan oleh Jim Highsmith. ASD menekankan pada pengorganisasian tim secara mandiri, kolaborasi antar-perseorangan, dan terus belajar, baik secara individu maupun secara tim. ASD menggunakan tools yang disebut “time-boxing” – yaitu berupa aktifitas yang menentukan jangka waktu tertentu yang dialokasikan untuk menyelesaikan berbagai macam tugas. Apabila waktu yang ditentukan tersebut selesai, maka pembangunan sistem akan pindah ke tugas berikutnya, dengan harapan bahwa sebagian besar dari critical work telah berhasil diselesaikan sebelum waktu keseluruhan tugas berakhir. Terdapat tiga tahapan pada model ASD, yaitu: SpeculationCollaboration, dan Learning.
     
    Pada tahap Speculation, proyek dimulai dan adaptive cycle planning diselenggarakan. Pada tahapan ini, didefinisikan visi dan misi pengguna terhadap sistem yang akan dibuat, selanjutnya mendefinisikan project constraints, misalnya: waktu deliver. dan selanjutnya mendefinisikan satu set dari requirements yang akan dikerjakan dalam suatu cycle. Pada tahap Collaboration, pada tahap ini diorganisasikan tim kerja untuk membangun sistem. Direkomendasikan menggunakan model Joint Application Development (JAD). Pada tahap Learning, terdapat tiga aktifitas yaitu: pelanggan atau end-user menyediakan feedback terhadap hasil incremental delivery, tim ASD melakukan review terhadap komponen perangkat lunak untuk memperbaiki dan meningkatkan kualitas perangkat lunak yang sedang dibuat.
     
     
    asd
  2. Dynamic System Development Method (DSDM)

    Bagan Fase DSDM
    Bagan Fase DSDM

    Merupakan Metodologi Pengembangan Software yang dikembangkan oleh Konsorsium Vendor dan Para Expert dalam bidang pengembangan Sistem Informasi(IS) di United Kingdom pada tahun 1990 dan pertamakali go public pada tahun 1995. Metodologi ini merupakan pengembangan tahap lanjut dari metode Rapid Application Development (RAD) yang sangat menerapkan  metode incremental dan iteratif. metode ini sangat ideal digunakan ketika suatu software dituntut untuk sangat fokus dan mementingkan tampilan yang mudah dan aspek kegunaan yang baik dari produk tersebut.

    Versi terbaru dari DSDM, diluncurkan pada tahun 2007, disebut DSDM Atern. Atern adalah burung kolaboratif yang dapat melakukan perjalanan jarak yang luas dan melambangkan banyak aspek metode yang cara alami kerja misalnya prioritas dan kolaborasi.

    Versi sebelumnya DSDM (dirilis pada bulan Mei 2003) yang masih banyak digunakan dan masih berlaku adalah DSDM 4.2 yang merupakan perbaikan DSDM versi 4. Versi perbaikanberisi panduan tentang cara menggunakan DSDM dengan Extreme Programming .

    Asal-Usul

    Pada awal 1990-an, Rapid Application Development (RAD) telah menyebar di industri TI. User interface untuk aplikasi perangkat lunak bergerak dari layar hijau tua untuk antarmuka pengguna ke era grafis yang digunakan saat ini. Alat pengembangan aplikasi baru datang di pasar, seperti PowerBuilder. Hal ini pengembang applikasi untuk menyampaikan solusi yang diusulkan mereka jauh lebih mudah kepada pelanggan mereka. 

    Namun, gerakan RAD sangat terstruktur: tidak ada definisi yang disepakati dari proses yang sesuai dan banyak organisasi datang dengan definisi mereka sendiri dan pendekatan. Banyak perusahaan besar yang sangat tertarik pada kemungkinan tapi mereka juga khawatir bahwa mereka tidak akan kehilangan tingkat kualitas.

    The DSDM Konsorsium didirikan pada tahun 1994 oleh asosiasi vendor dan ahli di bidang rekayasa perangkat lunak dan telah dibuat dengan tujuan "bersama-sama mengembangkan dan mempromosikan kerangka kerja RAD independen". Asal-usul itu merupakan acara yang diselenggarakan oleh Grup Butler di London. Orang-orang di pertemuan itu semua bekerja untuk organisasi blue-chip seperti British Airways, American Express, Oracle dan Logica. 

    Pada pertemuan awal diputuskan bahwa Jennifer Stapleton, Logica , akan membuat sebuah arsitektur untuk end-to-end, pengguna-sentris tapi kualitas dikendalikan metode iteratif dan pembangunan bertahap. Arsitektur yang dihasilkan dirancang untuk sepenuhnya kompatibel dengan ISO 9000 dan PRINCE2 , yang menjadi perhatian utama bagi kelompok. Setelah arsitektur berada di tempat (sebulan setelah pertemuan awal), Konsorsium membentuk berbagai kelompok tugas untuk mengisinya dengan semua aspek pengembangan perangkat lunak, termasuk alat-alat manajemen proyek dan teknik, kualitas dan pengujian, pengembangan alat dan teknik, personil dan perangkat lunak pengadaan. 

    Kriteria Pemilihan Metode

    Metode ini digunakan ketika kondisi sistem yang akan dikembangkan memiliki kriteria :
    •     •Hasil dari pengembangan sesegera mungkin dapat dilihat
    •     •Pengguna sistem dapat aktif memberikan kontribusi mereka dalam merangkul pengembang
    •     •Fungsi utama telah didefenisikan secara cepat, dan funsi lainnya dapat menyusul secara berkala
    •     •Pihak yang berkepentingan dapat berkomunikasi secara lancar tanpa ada birokrasi yang rumit atau halangan karena umpan balik dari pengguna sistem secara konstan baik dalam pengembangan sistem.
    •     •Proyek memiliki indikator awal apakah akan bekerja secara baik atau tidak, sehingga meminimalisir sesuatu yang tidak diinginkan ketika aplikasi dikembangkan.
    •     •Sistem harus selesai pada tepat waktu dan anggaran yang baik pas.
    •     •Pengguna sistem mengerti dalam arah proyek. 

    Prinsip

    DSDM memiliki 8 prinsip yang sangat penting dalam implementasinya. menyepelekan salah satunya akan merusak filosofi kerangka kerja dan meningkatkan resiko kegagalan.

    1) Fokus pada kebutuhan bisnis

    Kriteria utama untuk penerimaan dari "penyampaian" adalah memberikan suatu sistem yang membahas kebutuhan bisnis saat ini. Menyampaikan sistem yang sempurna yang membahas semua kebutuhan bisnis yang mungkin kurang penting daripada berfokus pada fungsi kritis.
        • Memahami prioritas bisnis sejati
        • Membentuk Kasus Bisnis suara
        • Mencari sponsor bisnis yang berkesinambungan dan komitmen
        • Jaminan Subset Usable Minimum fitur.

    2) Memberikan tepat waktu

        • Timebox pekerjaan
        • Fokus pada prioritas bisnis
        • Selalu memenuhi tenggat waktu

    3) Berkolaborasi

    Keterlibatan pengguna merupakan kunci utama dalam menjalankan proyek yang efisien dan efektif, dimana kedua pengguna dan pengembang berbagi tempat kerja (baik fisik atau melalui alat), sehingga pengambilan keputusan dapatdilakukan secara kolaboratif dan cepat.
        • Melibatkan pemangku kepentingan yang tepat, pada waktu yang tepat, seluruh proyek
        • Pastikan bahwa anggota tim diberi wewenang untuk mengambil keputusan atas nama rakyat yang mereka wakili.
        • Aktif melibatkan perwakilan bisnis
        • Membangun budaya satu tim

    4) Jangan kompromi soal kualitas

        • Mengatur tingkat kualitas di awal
        • Memastikan kualitas yang tidak menjadi variabel
        • Desain, dokumen dan uji tepat
        • Membangun kualitas dengan review konstan
        • Uji awal dan terus menerus

    5) Membangun secara bertahap

        • Upayakan untuk pengiriman awal manfaat bisnis di mana mungkin
        • Terus mengkonfirmasi solusi yang tepat sedang dibangun
        • Secara formal menilai kembali prioritas dan kelayakan proyek yang sedang berlangsung.

    6) Mengembangkan Iterasi

    Fokus pada penyajian produk sesering mungkin, dengan asumsi bahwa untuk memberikan sesuatu yang "cukup baik" sebelumnya selalu lebih baik daripada memberikan segalanya "sempurna" pada akhirnya. Dengan memberikan produk sering dari tahap awal dari proyek, produk dapat diuji dan ditinjau di mana catatan uji dan dokumen review dapat diperhitungkan pada iterasi berikutnya atau fase.
        • Jangan cukup desain depan untuk menciptakan fondasi yang kuat
        • Mengambil pendekatan iteratif untuk membangun semua produk
        • Membangun umpan balik pelanggan dalam setiap iterasi untuk fokus pada solusi bisnis yang efektif
        • Terimalah bahwa detail yang paling muncul kemudian daripada cepat
        • Merangkul berubah - solusi yang tepat tidak akan berkembang tanpa itu
        • Jadilah kreatif, bereksperimen, belajar, berevolusi

    7) Berkomunikasi terus menerus dan jelas

    Komunikasi dan kerja sama di antara semua stakeholder proyek diperlukan untuk menjadi efisien dan efektif.
        • Jalankan tim setiap hari
        • Gunakan lokakarya
        • Gunakan teknik komunikasi yang kaya seperti pemodelan dan prototyping
        • Iterasi kini berkembang solusi awal dan sering
        • Menjaga dokumentasi ramping dan tepat waktu
        • Mengelola harapan pemangku kepentingan seluruh proyek
        • Mendorong informal komunikasi tatap muka di semua tingkatan

    8) Menunjukkan kontrol.

        • Gunakan tingkat yang sesuai formalitas untuk pelacakan dan pelaporan
        • Buatlah rencana dan kemajuan terlihat oleh semua
        • Mengukur kemajuan melalui fokus pada pengiriman produk daripada kegiatan selesai
        • Mengelola secara proaktif
        • Evaluasi kelayakan proyek terus berdasarkan tujuan bisnis
     

    Teknik Utama

    Manajemen proyek yang tradisional menggunakan "Milestones" dalam menandai pencapaiannya. DSDM berbeda, DSDM menggunakan teknik "Timeboxing" dalam menandai pencapainnya yang biasannya berjangka waktu 2,4 atau enam pekan. beberapa teknik utamanya adalah sebagai berikut :

    Timebox

        • Dapat berisi beberapa tugas.
        • Pada akhirnya produk perlu disampaikan
        • Dapat berubah karena tugas didefenisikan sebagai subyek, bukan apa yang akan disampaikan
        • Tugas dapat diubah selama waktu "Iteratif" yang memungkinkan untuk respon cepat dalam kebutuhan bisni

    MoSCoW Rules

    Proyek DSDM sangat difokuskan pada waktu, budget dan keterlibatan pengguna dalam proses pengembangan. so sangat diwajibkan selalu memantau apa yang diinginkan pengguna.
    Kebutuhan pengguna dapat berubah selama proses dengan syarat : 
        • Menyadari kemungkinan teknis yang baru
        • Perubahan lingkungan kerja pengguna
    Penerapan teknik MosCow memiliki aturan sebagai berikut : 
    1. Must Have : Semua fitur yang diklasifikasikan dalam kelompok harus di implementasikan oleh pengguna dan jika mereka tidak disampaikan, sistem akan tidak bekerja.
    2. Should Have : Fitur ini menjadi prioritas bagi sistem, namun dapat diabaikan apabila kendala waktu sangat berisiko.
    3. Could Have : Fitur ini bisa bisa ada namun juga dapat diabaikan karena tidak mempengaruhi tuntutan bisnis
    4. Would Have : Persyaratan ini akan dipenuhi bila terdapat waktu sisa dalam pengembangan sistem atau pada pengembangan selanjutnya.

    Prototyping

    Prototyping memiliki dua prinsip utama yaitu :
        • Seringnya pengiriman aplikasi kepada pengguna
        • Pengembangan yang incremental

    Mengimplementasikan fungsi utama dari aplikasi, sehingga kita dapat menemukan kendala lebih cepat dalam proses pengembangan dan kita dapat lebih cepat mengirimkan aplikasi kepada user untuk mendapatkan feedback. feedback yang secara rutin sangat diperlukan.
    DSDM membedakan tipe prototipe sebagai berikut : 
        a. Bussines Prototype : Mempersilahkan penilaian pada sistem yang akan dikembangkan
        b. Usability Prototype : Periksa User Interface 
        c. Performance Prototype : Pastikan solusi dapat mengatasi kinerja dan volume 
        d. Capability Prototype : Mengevaluasi opsi yang memungkinkan

    Faktor Kunci Kesuksesan DSDM

    Konsorsium DSDM telah membuat sepuluh faktor penting bagi penganutnya : 
        1. Menyetujui terlebih dahulu filosofi DSDM sebelum memulai kerja.
        2. Pengambilan keputusan haruslah melibatkan pengguna dan pengembang.
        3. Komitmen dari manajemen senior haruslah penting
        4. Penyampaian yang rutin
        5. Kemudahan akses antara developer dan pengguna
        6. Kestabilan team
        7. Kemampuan bekerjasama pada tim pengembang
        8. Ukuran tim pengembang
        9. Dukungan komersil 
        10. Teknologi pada pengembangan

    Kelemahan dari DSDM:

         Biaya lisensi 
         Penghalang yang relatif tinggi untuk masuk 
         Pergeseran budaya dalam organisasi

    DSDM jelas mewakili dirinya sebagai pengembangan tangkas paling matang method.Even Microsoft meminjam ide dari DSDM, penerbitan kerangka solusi semi-tangkas mereka sendiri. Xansa digunakan DSDM untuk mengatur pengembangan lepas pantai di India.The versi terbaru dari DSDM adalah "DSDM Atern". Hal ini telah terbukti menjadi kerangka tangkas kuat untuk manajemen proyek yang efisien yang didukung dan Certified oleh DSDM Consortium.Not hanya itu tetapi juga telah dinominasikan untuk AGILE CONCEPT Awards 2011.

    Fase-Fase Pengembangan Proyek

    Bagan Fase DSDM
    Bagan Fase DSDM
  3. Scrum

    Scrum adalah model sebuah proses rekayasa Agile atau pengembangan perangkat lunak dengan pendekatan empiris, bertahap dan berulang. Hal tersebut didasarkan pada pandangan bahwa proyek pengembangan software modern terlalu kompleks untuk diprediksi secara konsisten. Scrum mencoba untuk mengurangi kompleksitas dengan tiga prinsip yaitu:
    • Transparansi: Kemajuan dan hambatan sebuah proyek setiap hari dan seterusnya terpantau oleh semuanya.
    • Verifikasi: Dengan interval teratur dilakukan penyerahan dan penilaian terhadap fungsi produk yang dikembangkan.
    • Adaptasi: Persyaratan untuk produk bukan merupakan harga mati, tetapi setelah diserahkan dievaluasi kembali dan disesuaikan jika perlu.
    Tujuan menggunakan Scrum adalah kecepatan penyelesaian produk yang berkualitas tinggi dengan biaya yang efektif, namun sesuai dengan visi awal yang telah dirumuskan. Pelaksanaan konversi dari visi ke dalam sebuah produk tidak disusun sangat detil dalam daftar persyaratan yang kemudian dieksekusi secara bertahap, melainkan dengan formulasi yang jelas dari perspektif pengguna berupa User Stories. Pelaksanaannya, kemudian dilakukan dalam interval dua sampai empat minggu secara berulang dan bertahap berupa sebuah Sprint. Pada akhir setiap sprint adalah penyerahan fungsi (software) yang “selesai” sebagai peningkatan produk yang berpotensi untuk diserahkan kepada pelanggan.
  4. Crystal
    Crystal diperkenalkan oleh Cockburn dan Highsmith, Development yang tidak pada jalur kritis, dapat menghabikan waktu lebih, mereka yang memperbaiki produk atau membantu oaring yang ada di jalur proyek kritis.
    Karakteristik Crystal :
      1. Secara aktual sebuah model proses keluarga yang memungkinkan manuver berdasar karakteristik permasalahan
      2. Menyarankan penggunaan workshop refleksi untuk review kebiasaan kerja tim
      3. Selalu murah dan cepat berkomunikasi secara langsung.
      4. Proyek berkembang sesuai ukuran team menjadi lebih atau luas dan metologi akan menjadi lebih tinggi.
  5. Feature Driven Development
    Feature Driven Development merupakan model proses praktis untuk keahlian proses software engineering, Feature merupakan sebuah fungsi  yang berharga dimana dapat dilaksanakan.
    Keuntungan dari metode feature :
    1. User dapat menggambarkan dengan mudah bentuk system.
    2. Dapat di organisasikan atau diatur ke dallamkelompok bisnis yang hirarki.
    3. Desain dank ode lebih mudah diperiksa secara efektif.
    4. Merancang proyek, penjadwalan dan jalur diarahkan oleh feature.

  6. Agile Modeling
    Dalam situasi pembangunan software harus membangun sistem bisnis yang besar dan penting. Jangkauan dan kompleksitas sistem harus dimodelkan sehingga dapat dimengerti, masalah dapat dibagi menjadi lebih kecil dan kualitas dapat dijaga pada tiap langkah pembangunan
    software. Agile Modeling adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan system software. Agile Modeling adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software development proyek secara efektif.
    Prinsip dalam Agile Modeling :
    –       Membuat model dengan tujuan: tentukan tujuan sebelum membuat model
    –       Mengunakan multiple models: tiap model mewakili aspek yang berbeda dari model lain.
    –       Travel light: simpan model-model yang bersifat jangka panjang saja
    –       Isi lebih penting dari pada penampilan: modeling menyajikan informasi kepada audiens yang tepat.
    –       Memahami model dan alat yang yang digunakan untuk membuat software
    –       Adaptasi secara local
http://sisfoku.blogspot.com/2014/03/bagaimana-dynamic-system-development.html
https://wisnuramadhaniway.wordpress.com/2013/09/27/proses-pengembangan-perangkat-lunak/
http://gudanglinux.com/glossary/scrum/
https://dwijaantara.wordpress.com/2010/10/25/agile-method/



Senin, 02 Maret 2015

REKAYASA PERANGKAT LUNAK


A.    Pengertian
Software adalah produk yang dirancang dan dibangun oleh software engineer, meliputi program  yang dijalankan dalam komputer dengan berbagai ukuran dan arsitektur, dokumen hasil cetakan dan formulir yang bersifat maya, data yang terdiri dari kombinasi angka dan huruf,  termasuk informasi yang disajikan melalui gambar, gambar hidup dan suara.
B.     Tujuan Rekayasa Perangkat Lunak
Secara lebih khusus kita dapat menyatakan tujuan dan Rekaya Perangkat Lunak ini adalah:
1.      Memperoleh biaya produksi perangkat lunak yang rendah.
2.      Menghasilkan pereangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
3.      Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform
4.      Menghasilkan perangkat lunak yang biaya perawatannya rendah

C.    Jenis-Jenis perangkat lunak menurut Roger S.Pressman :
1.      perangkat lunak sistem
2.      perangkat lunak real-time
3.      perangkat lunak bisnis
4.      perangkat lunak teknik dan ilmu pengetahuan
5.      embedded software
6.      perangkat lunak komputer personal
7.      perangkat lunak kecerdasan buatan

D.    Perkembangan Software
1.      Generasi Awal
Ø  Batch orientation
Ø  Custom software
2.      Generasi Kedua
Ø  Multi--user, Real
Ø  Database
Ø  Product software
3.      Generaasi Ketiga
Ø  Distributed systems
Ø  Low cost hardware
4.      Generasi Keempat
Ø  Desktop systems
Ø  Object Oriented Technologies
Ø  Expert Systems
Ø  AI, neural networks
Ø  Parallel computing
Ø  Network computers


E.     Metode Proses Pengembangan Software Engineering
Pengembangan sistem dapat berati menyusun suatu sistem yang baru untuk menggantikan sistem yang lama secara keseluruhan atau memperbaiki sistem telah ada.
Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC). Setiap model yang dikembangkan mempunyai karakteristik tersendiri. Namun secara umum ada persamaan dari model-model tersebut.
a.      Model Sekuensial Linier (Model Air Terjun)
Dalam model sekuensial linier atau yang biasa dikenal sebagai waterfall terdapat lima tahapan utama yang harus dilakukan. Pada model ini setiap tahapan harus diselesaikan secara berurutan, karena untuk dapat melanjutkan ke tahap berikutnya maka tahapan sebelumnya harus diselesaikan terlebih dahulu. Berikut adalah tahapan-tahapan dari model sekuensial linier.
1.      Tahap Rekayasa dan pemodelan sistem informasi (investigasi/requirement)
Investigasi dilakukan untuk menentukan apakah terjadi suatu masalah atau adakah peluang suatu sistem informasi dikembangkan.
2.      Tahap Analisis kebutuhan perangkat lunak
Tahap ini dilakukan untuk mengetahui kebutuhan sistem dan mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada. Merupakan tahap pemahaman kebutuhan user terhadap sistem oleh analis yang kemudian semuanya akan dibuat dalam bentuk yang dapat dimengerti oleh user
3.      Tahap Desain
Menentukan spesifikasi detil dari komponen-komponen sistem informasi (manusia, hardware, software, network dan data) dan produk-produk informasi yang sesuai dengan hasil tahap analisis. Proses desain menerjemahkan syarat atau kebutuhan ke dalam sebuah representasi perangkat lunak yang dapat diperkirakan demi kulitas sebelum dimulai pemunculan kode.
4.      Tahap Implementasi (pengkodean)
Desain harus diterjemahkan kedalam bentuk yang dapat dimengerti mesin. Oleh karena itulah dilakukan pengkodean untuk mendapatkan atau mengembangkan hardware dan software. Lalu dilakukan pengujian, pelatihan dan perpindahan ke sistem baru.
5.      Tahap Pengujian
Setiap kali kode dari sistem telah dibuat maka akan dilakukan pengujian untuk memastikan bahwa semua pernyataan sudah di uji. Selain itu pengujian dilakukan untuk menemukan kesalahan-kesalahan dan memastikan input memberikan hasil yang diharapkan.
6.      Tahap Pemeliharaan
Perangkat lunak akan mengalami perubahan setelah disampaikan ke pelanggan (perkecualian yang mungkin adalah perangkat lunak yang dilekatkan). Perubahan akan terjadi karena kesalahan-kesalahan ditentukan, karena perangat lunak harus disesuaikan untuk mengakomodasi perubahan-perubahan didalam lingkungan eksternalnya ( contohnya perubahan yang dibutuhkan sebagai akibat dari perangkat peripheral atau sistem informasi yang baru), atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan perangkat lunak mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi.
Beberapa kelebihan dari linear sequential model:
  • Mudah dimengerti, mudah digunakan
  • Struktur menyediakan staf berpengalaman
  • Milestones dipahami dengan baik
  • Persyaratan Sets stabilitas
  • Baik untuk kontrol manajemen (rencana, staf, lagu)
  • Bekerja dengan baik ketika kualitas lebih penting daripada biaya atau jadwal
Beberapa kelemahan linear sequential model:
  • Proyek yang sebenarnya jarang mengikuti alur sekuensial,  sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapat tim harus diubah kembali.
  • Linear sequential model mengharuskan semua kebutuhan pemakai sudah dinyatakan secara eksplisit di awal proses, tetapi kadang-kadang hal ini tidak dapat terlaksana karena kesulitan yang dialami pemakai saat akan mengungkapkan semua kebutuhannya tersebut.
  • Pemakai harus bersabar karena versi dari program tidak akan didapat sampai akhir rentang waktu proyek.
  • Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.
b.    Prototyping Model
Secara Ideal prototipe berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebtuhan perangat lunak.
Salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan (Howard, 1997).
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.
Tahap-tahap dalam prototyping boleh dikata merupakan tahap-tahap yang dipercepat. Strategi utama dalam prototyping adalah kerjakan yang mudah terlebih dahulu dan sampaikan hasil kepada pengguna sesegera mungkin. Harris (2003) membagi prototyping dalam enam tahapan. Tahapan-tahapan secara ringkas dapat dijelaskan sebagai berikut:
  • Identifikasi kandidat prototyping. Kandidat dalam kasus ini meliputi user interface (menu, dialog, input dan output), file-file transaksi utama, dan fungsi-fungsi pemrosesan sederhana.
  • Rancang bangun prototype dengan bantuan software seperti word processor, spreadsheet, database, pengolah grafik, dan software CASE (Computer-Aided System Engineering).
  • Uji prototype untuk memastikan prototype dapat dengan mudah dijalankan untuk tujuan demonstrasi.
  • Siapkan prototype USD (User’s System Diagram) untuk mengidentifikasi bagian-bagian dari perangkat lunak yang di-prototype-kan.
  • Evaluasi dengan pengguna untuk mengevaluasi prototype dan melakukan perubahan jika diperlukan.
  • Transformasikan prototype menjadi perangkat lunak yang beroperasi penuh dengan melakukan penghilangan kode-kode yang tidak dibutuhkan, penambahan program-program yang memang dibutuhkan dan perbaikan dan pengujian perangkat lunak secara berulang.
Beberapa kelebihan dari model prototype:
  • Pelanggan dapat user dapat langsung melihat wujud perangkat lunak yang akan dibangunmeskipun sederhana dan dari sana dapat digali kebutuhan yang lebih dalam sebagai bahan penyusunan perangkat lunak berikutnya.
  • Pengembang belajar dari pelanggan
  • Yang lebih akurat produk akhir
  • Persyaratan terduga ditampung
  • Fleksibel memungkinkan untuk desain dan pengembangan
  • Tenang, terlihat tanda-tanda kemajuan yang dihasilkan
  • Interaksi dengan merangsang prototipe kesadaran diperlukan tambahan fungsionalitas
Beberapa kekurangan dari model prototype:
  • Kecenderungan untuk mengabaikan pengembangan program terstruktur untuk “kode-dan-memperbaiki” pembangunan
  • Reputasi buruk untuk “cepat-dan-kotor” metode
  • Kemampu-rawatan keseluruhan dapat diabaikan
  • Pelanggan mungkin ingin prototipe disampaikan.
  • Proses ini mungkin berlangsung selamanya (scope creep)
c.  RAD (Rapid Application Development) Model
Model pengembangan RAD adalah sebuah metode pengembangan software yang diciptakan untuk menekan waktu yang dibutuhkan untuk mendesain serta mengimplementasikan sistem informasi sehingga dihasilkan siklus pengembangan yang sangat pendek.
Pendekatan RAD mencakup bebrapa tahap yaitu sebagai berikut :
1.      Pemodelan Bisnis
Pemodelan bisnis yang mencakup beberapa pertanyyan berikut
·      Informasi apa yang mengendalikan proses bisnis?
·      Informasi apa yang di munculkan?
·      Siapa yang memunculkanya?
·      Ke mana informasi itu pergi?
·      Siapa yang memprosesnya?
2.      Pemodelan Data
Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modelling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (disebut atribut) masing masing objek diidentifikasi dan hubungan antara objek – objek tersebut didefinisikan.
3.      Pemodelan Proses
Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.
4.      Pembuatan Aplikasi
RAD mengasumsikan pemakaian teknik generasi ke empat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memkai lagi komponen program yang ada (pada saat memungkinkan) atau menciptakan komponen yang bisa dipakai lagi (bila perlu). Pada semua kasus, alat – alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.
5.      Pengujian dan Pergantian
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus di uji dan semua interface harus dilatih secara penuh.
Beberapa kelebihan dari model RAD :
  • Waktu pengembangan yang relatif
  • Biaya yang relatif lebih murah

Beberapa kekurangan dari model RAD :
  • Tidak cocok untuk proyek skala besar
  • Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
  • Sistem yang tidak bisa dimodularisasi tidak cocok untuk model
  • Resiko teknis yang tinggi juga kurang cocok untuk model ini
d. Model Pertambahan ( Increment )
Model pertambahan adalah gabungan elemen-elemen model sekuensial linier (yang diaplikasikan secara berulang) dengan filosofi prototipe iteratif. Model pertambahan berfokus pada penyampaian produk operasional dalam setiap pertambahannya. Penambahan fungsi tambahan dilakukan untuk membuat sistem menjadi lebih baik. Pada intinya model penambahan memebuat sistem yang dapat terus ditambahkan fungsi-fungsi tambahan lain sesuai kebutuhan yang terus beralnjut dalam pemakaian sistem tersebut. Contohnya pada Microsoft Word, pada dasarnya (increment 1) Ms word berfungsi untuk memanajemen fie dasar seperti mengetik, mengedit, dan menghasilkan dokumen. Kemudian pada tahap pertambahan kedua (increment 2) ditambahkan fungsi editing dan kemampuan penghasilan dokumen yang lebih canggih seperti word art dan spelling, lalu dianjutkan penambahan-penambahan fungsi yang lainnya sehingga produk tersebut memiliki semua aspek yang dibutuhkan oleh penggunanya.
e.    Model Spiral
Model spiral adalah model proses perangkat lunak yang evousioner yang merangkai sifat iteraif dari prootipe dengan cara kontrol dan aspek sistematis dari model sekuensial. Model yang berbentuk spiral diusulkan awalnya diusulkan oleh Boehm. Model spiral tidak memiliki tahapan tetapi dibagi mejadi sejumah aktifitas kerangka kerja atau disebut juga wilayah tugas, diantara tiga dari enam wilayah tgas meggambarkan moel spiral yang berisi enam wilayah tugas, yaitu
1.   Komunikasi pelanggan
Tugas – tugas yang dibutuhkan untuk membangun komunikasi yang efektif di antara pengembangan dan pelanggan.
2.   Perencanaan
Tugas – tugas yang dibutuhkan untuk mendefinisikan sumber – sumber daya, ketepatan waktu, dan proyek informasi lain yang
3.   Analisis Resiko
Tugas – tugas yang dibutuhkan untuk menaksir risiko – risiko, baik manajemen maupun teknis.
4.   Perekayasaan
Tugas – tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari aplikasi tersebut.
5.   Konstruksi dan peluncuran
Tugas – trugas yang dibutuhkan untuk mengkonstruksi, menguji, memasang (instal) dan memberikan pelayanan kepada pemakai (contohnya pelatihan dan dokumentasi).
6.   Evaluasi pelanggan
Tugas – tugas yang dibutuhkan untuk memperoleh umpan balik dari pelanggan dengan didasarkan pada evaluasi representasi software, yang dibuat selama masa perekayasaan, dan diimplementasikan selama masa pemasangan.

Referensi