Model Pengembangan Rekayasa Perangkat Lunak


MODEL PENGEMBANGAN REKAYASA PERANGKAT LUNAK

Rekayasa Perangkat Lunak Menurut Para Ahli

1. Dari Rosa A.s dan M. Sahalahuddin (2011) RPL merupakan pembangunan dengan mnggunakan prinsip atau konsep rekayasa dengan tujuan menghasilkan perangkat lunak yang bernilai ekononi yang di percaya dan bekerja secara efisien menggunakan mesin.
2. Dari Simarmata (2010) RPL adalah sebuah profesi yang di lakukan oleh seorang perekayasa perangkat lunak yang berkaitan dengan pembuatan dan pemeliharaan aplikasi perangkat lunak dengan menerapkan teknologi dan praktik daru ilmu komputer, manejemen proyek, dan bidang-bidang lainnya.
3. Dari Pressman (2002) RPL adalah sebuah disiplin yang mengintegrasikan proses, metode, dan alat-alat bantu bagi perkembangan proses perangkat lunak komputer.

Model – model perangkat lunak

1.    MODEL PENGEMBANGAN REKAYASA PERANGKAT LUNAK

Rekayasa Perangkat Lunak Menurut Para Ahli
1. Dari Rosa A.s dan M. Sahalahuddin (2011) RPL merupakan pembangunan dengan mnggunakan prinsip atau konsep rekayasa dengan tujuan menghasilkan perangkat lunak yang bernilai ekononi yang di percaya dan bekerja secara efisien menggunakan mesin.
2. Dari Simarmata (2010) RPL adalah sebuah profesi yang di lakukan oleh seorang perekayasa perangkat lunak yang berkaitan dengan pembuatan dan pemeliharaan aplikasi perangkat lunak dengan menerapkan teknologi dan praktik daru ilmu komputer, manejemen proyek, dan bidang-bidang lainnya.
3. Dari Pressman (2002) RPL adalah sebuah disiplin yang mengintegrasikan proses, metode, dan alat-alat bantu bagi perkembangan proses perangkat lunak komputer.
Model – model perangkat lunak
   1   Model waterfall
Metode air terjun atau yang sering disebut metode waterfall sering dinamakan siklus hidup klasik (classic life cycle), dimana hal ini menggambarkan pendekatan yang sistematis dan juga berurutan pada pengembangan perangkat lunak, dimulai dengan spesifikasi kebutuhan pengguna lalu berlanjut melalui tahapan-tahapan perencanaan (planning), permodelan (modeling), konstruksi (construction), serta penyerahan sistem ke para pelanggan/pengguna (deployment), yang diakhiri dengan dukungan pada perangkat lunak lengkap yang dihasilkan (Pressman, 2012).


Tahapan Metode Waterfall
Dalam pengembangannya metode waterfall memiliki beberapa tahapan yang berurut yaitu: requirement (analisis kebutuhan), design system (desain sistem), Coding (pengkodean) & Testing (pengujian), Penerapan Program, pemeliharaan. Tahapan tahapan dari metode waterfall adalah sebagai berikut :
Requirement Analisis
Tahap ini pengembang sistem diperlukan komunikasi yang bertujuan untuk memahami perangkat lunak yang diharapkan oleh pengguna dan batasan perangkat lunak tersebut. Informasi ini biasanya dapat diperoleh melalui wawancara, diskusi atau survei langsung. Informasi dianalisis untuk mendapatkan data yang dibutuhkan oleh pengguna.
System Design
Spesifikasi kebutuhan dari tahap sebelumnya akan dipelajari dalam fase ini dan desain sistem disiapkan. Desain Sistem membantu dalam menentukan perangkat keras(hardware) dan sistem persyaratan dan juga membantu dalam mendefinisikan arsitektur sistem secara keseluruhan.
Implementation
Pada tahap ini, sistem pertama kali dikembangkan di program kecil yang disebut unit, yang terintegrasi dalam tahap selanjutnya. Setiap unitdikembangkan dan diuji untuk fungsionalitas yang disebut sebagai unit testing.
Integration & Testing
Seluruh unit yang dikembangkan dalam tahap implementasi diintegrasikan ke dalam sistem setelah pengujian yang dilakukan masing-masing unit. Setelah integrasi seluruh sistem diuji untuk mengecek  setiap kegagalan maupun kesalahan.
Operation & Maintenance
Tahap akhir dalam model waterfall. Perangkat lunak yang  sudah  jadi,  dijalankan  serta dilakukan  pemeliharaan. Pemeliharaan termasuk dalam memperbaiki  kesalahan yang tidak ditemukan pada langkah sebelumnya. Perbaikan implementasi unit sistem dan peningkatan jasa sistem sebagai kebutuhan baru.
Kelebihan Metode Waterfall
Kelebihan menggunakan metode air terjun (waterfall) adalah metode ini memungkinkan untuk departementalisasi dan kontrol. proses pengembangan model fase one by one, sehingga meminimalis kesalahan yang mungkin akan terjadi. Pengembangan bergerak dari konsep, yaitu melalui desain, implementasi, pengujian, instalasi, penyelesaian masalah, dan berakhir di operasi dan pemeliharaan.

Kekurangan Metode Waterfall
Kekurangan menggunakan metode waterfall adalah metode ini tidak memungkinkan untuk banyak revisi jika terjadi kesalahan dalam prosesnya. Karena setelah aplikasi ini dalam tahap pengujian, sulit untuk kembali lagi dan mengubah sesuatu yang tidak terdokumentasi dengan baik dalam tahap konsep sebelumnya.

2.    
·         Contoh Penerapan dari Pengembangan Model Sekuensial Linear / Waterfall Development Model
Contoh dari penerapan model pengembangan ini adalah pembuatan program pendaftaran online ke suatu Instansi Pendidikan. Program ini akan sangat membantu dalam proses pendaftaran, karena dapat meng-efektifkan waktu serta pendaftar tidak perlu repot-repot langsung mendatangi Instansi Pendidikan. Teknisnya adalah sebagai berikut :
·         Sistem program untuk pendaftaran dibuat menggunakan bahasa pemrograman PHP, dengan Sistem Database yang dibuat menggunakan MySQL, dan diterapkan (diaplikasikan) pada PC (personal computer) dengan sistem operasi berbasis Microsoft Windows, Linux, dan sebagainya.
·         Setelah program selesai dibuat dan kemudian dipergunakan oleh user, programmer akan memelihara serta menambah atau menyesuaikan program dengan kebutuhan serta kondisi user.

·         Kelebihan Model Sekuensial Linear / Waterfall Development Model :

§  Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
§  Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
§  Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
§  Documen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
·         Kekurangan Model Sekuensial Linear / Waterfall Development Model :

§  Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapatkan tim pengembang harus diubah kembali/iterasi sering menyebabkan masalah baru.
§  Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
§  Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
§  Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap sebelumnya sudah benar-benar selesai.
§  Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat produk.
§  Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya


2.      Model Prototype
Metode Prototype merupakan suatu paradigma baru dalam metode pengembangan perangkat lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia pengembangan perangkat lunak, tetapi juga merevolusi metode pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal dengan nama SDLC atau waterfall development model.

Dalam Model Prototype, prototype dari perangkat lunak yang dihasilkan kemudian dipresentasikan kepada pelanggan, dan pelanggan tersebut diberikan kesempatan untuk memberikan masukan sehingga perangkat lunak yang dihasilkan nantinya betul-betul sesuai dengan keinginan dan kebutuhan pelanggan.
Perubahan dan presentasi prototype dapat dilakukan berkali-kali sampai dicapai kesepakatan bentuk dari perangkat lunak yang akan dikembangkan.
Teknik – teknik Prototyping Meliputi :
·         Perancangan Model
·         Perancangan Dialog
·         Simulasi
Berikut adalah 4 langkah yang menjadi karakteristik dalam proses pengembangan pada metode prototype, yaitu :
·         Pemilihan fungsi
·         Penyusunan Sistem Informasi
·         Evaluasi
·         Penggunaan Selanjutnya
Metode ini menyajikan gambaran yang lengkap dari suatu sistem perangkat lunak, terdiri atas model kertas, model kerja dan program. Pihak pengembang akan melakukan identifikasi kebutuhan pemakai, menganalisa sistem dan melakukan studi kelayakan serta studi terhadap kebutuhan pemakai, meliputi model interface, teknik prosedural dan teknologi yang akan dimanfaatkan.
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Prototype, yaitu :

·         Pengumpulan kebutuhan

Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat
.
·         Membangun prototyping

Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).

·         Evaluasi protoptyping

Evaluasi ini dilakukan oleh pelanggan, apakah prototyping yang sudah dibangun sudah sesuai dengan keinginan pelanggan atau belum. Jika sudah sesuai, maka langkah selanjutnya akan diambil. Namun jika tidak, prototyping direvisi dengan mengulang langkah-langkah sebelumnya.

·         Mengkodekan sistem

Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.

·         Menguji sistem

Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, kemudian dilakukan proses Pengujian. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur, dll.

·         Evaluasi Sistem

Pelanggan mengevaluasi apakah perangkat lunak yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, maka proses akan dilanjutkan ke tahap selanjutnya, namun jika perangkat lunak yang sudah jadi tidak/belum sesuai dengan apa yang diharapkan, maka tahapan sebelumnya akan diulang.

·         Menggunakan sistem

Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Model Prototyping ini sangat sesuai diterapkan untuk kondisi yang beresiko tinggi di mana masalah-masalah tidak terstruktur dengan baik, terdapat fluktuasi kebutuhan pemakai yang berubah dari waktu ke waktu atau yang tidak terduga, bila interaksi dengan pemakai menjadi syarat mutlak dan waktu yang tersedia sangat terbatas sehingga butuh penyelesaian yang segera. Model ini juga dapat berjalan dengan maksimal pada situasi di mana sistem yang diharapkan adalah yang inovatif dan mutakhir sementara tahap penggunaan sistemnya relatif singkat.
Berikut merupakan Jenis – jenis dari Prototyping :

·         Feasibility prototyping

digunakan untuk menguji kelayakan dari teknologi yang akan digunakan untuk system informasi yang akan disusun.

·         Requirement prototyping

digunakan untuk mengetahui kebutuhan aktivitas bisnis user.

·         Desain Prototyping

digunakan untuk mendorong perancangan sistem informasi yang akan digunakan.

·         Implementation prototyping

merupakan lanjutan dari rancangan prototype, prototype ini langsung disusun sebagai suatu sistem informasi yang akan digunakan.

·         Contoh Penerapan Metode Prototype.

Sebuah rumah sakit ingin membuat aplikasi sistem database untuk pendataan pasiennya. Seorang atau sekelompok programmer akan melakukan identifikasi mengenai apa saja yang dibutuhkan oleh pelanggan, dan bagaimana model kerja program tersebut. Kemudian dilakukan rancangan program yang diujikan kepada pelanggan. Hasil/penilaian dari pelanggan dievaluasi, dan analisis kebutuhan pemakai kembali di lakukan.

·         Kelebihan Model Prototype :

·         Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
·         Penentuan kebutuhan lebih mudah diwujudkan.
·         Mempersingkat waktu pengembangan produk perangkat lunak.
·         Adanya komunikasi yang baik antara pengembang dan pelanggan.
·         Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
·         Lebih menghemat waktu dalam pengembangan sistem.
·         Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.

·         Kekurangan Model Prototype :

·         Proses analisis dan perancangan terlalu singkat.
·         Biasanya kurang fleksibel 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.



2.     V-Model

Model ini merupakan perluasan dari model waterfall. Disebut sebagai perluasan karena tahap-tahapnya mirip dengan yang terdapat dalam model waterfall. Jika dalam model waterfall proses dijalankan secara linear, maka dalam model V proses dilakukan bercabang. Dalam model V ini digambarkan hubungan antara tahap pengembangan software dengan tahap pengujiannya.





Berikut penjelasan masing-masing tahap beserta tahap pengujiannya:

1.      Requirement Analysis & Acceptance Testing

Tahap Requirement Analysis sama seperti yang terdapat dalam model waterfall. Keluaran dari tahap ini adalah dokumentasi kebutuhan pengguna.
Acceptance Testing merupakan tahap yang akan mengkaji apakah dokumentasi yang dihasilkan tersebut dapat diterima oleh para pengguna atau tidak.

2.      System Design & System Testing

Dalam tahap ini analis sistem mulai merancang sistem dengan mengacu pada dokumentasi kebutuhan pengguna yang sudah dibuat pada tahap sebelumnya. Keluaran dari tahap ini adalah spesifikasi software yang meliputi organisasi sistem secara umum, struktur data, dan yang lain. Selain itu tahap ini juga menghasilkan contoh tampilan window dan juga dokumentasi teknik yang lain seperti Entity Diagram dan Data Dictionary.
3.      Architecture Design & Integration Testing

Sering juga disebut High Level Design. Dasar dari pemilihan arsitektur yang akan digunakan berdasar kepada beberapa hal seperti: pemakaian kembali tiap modul, ketergantungan tabel dalam basis data, hubungan antar interface, detail teknologi yang dipakai.

      4.  Module Design & Unit Testing
Sering juga disebut sebagai Low Level Design. Perancangan dipecah menjadi modul-modul yang lebih kecil. Setiap modul tersebut diberi penjelasan yang cukup untuk memudahkan programmer melakukan coding. Tahap ini menghasilkan spesifikasi program seperti: fungsi dan logika tiap modul, pesan kesalahan, proses input-output untuk tiap modul, dan lain-lain.

      5.  Coding

Dalam tahap ini dilakukan pemrograman terhadap setiap modul yang sudah dibentuk.

 Keuntungan V Model

     Bahasa yang digunakan untuk merepresentasikan konsep V model menggunakan bahasa formal. Contoh : dengan menggunakan objek model ataupun frame-frame • Meminimalisasikan kesalahan pada hasil akhir karena ada test pada setiap prosesnya
  Penyesuaian yang cepat pada projek yang baru
      Memudahkan dalam pembuatan dokumen projek
        Biaya yang murah dalam perawatan dan modifikasinya
       V Model sangat fleksibel. V Model mendukung project tailoring dan penambahan dan pengurangan method dan tool secara dinamik. Akibatnya sangat mudah untuk melakukan tailoring pada V Model agar sesuai dengan suatu proyek tertentu dan sangat mudah untuk menambahkan method dan tool baru atau menghilangkan method dan tool yang dianggap sudah obsolete.
     V Model dikembangkan dan di-maintain oleh publik. User dari V Model berpartisipasi dalam change control board yang memproses semua change request terhadap V Model.

Kerugian V Model

      Aktifitas V-Model hanya difokuskan pada projectnya saja, bukan pada keseluruhan organisasi. V-Model adalah proses model yang hanya dikerjakan sekali selama project saja, bukan keseluruhan organisasi.
  Prosesnya hanya secara sementara. Ketika project selesai, jalannya proses model dihentikan. Tidak berlangsung untuk keseluruhan organisasi.
  Metode yang ditawarkan terbatas. Sehingga kita tidak memiliki cara pandang dari metode yang lain. Kita tidak memiliki kesempatan untuk mempertimbangkan jika ada tools lain yang lebih baik.
       oolnya tidak selengkap yang dibicarakan. SDE (Software Development Environment).Tidak ada tools untuk hardware di V-Model. Tool yang dimaksud adalah “software yang mendukung pengembangan atau pemeliharaan / modifikasi dari system IT.
 V Model adalah model yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.



1.      Foundain Model

Model Fontain merupakan perbaikan logis dari model waterfall, langkah langkah dan urutan prosedurnya pun masih sama. Namun pada model Fountain ini kita dapat mendahulukan sebuah step ataupun melewati step tersebut, akan tetapi ada yang tidak bisa anda lewati stepnya seperti kita memerlukan design sebelum melakukan coding jika itu di lewati maka akan ada tumpang tindih dalam siklus SDLC.
Fountain Model merupakan model yang memungkinkan pekerjaan saling tumpang tindih dalam siklus pengembangan sistem tentunya dengan melihat pertimbangan yang ada dan disesuaikan dengan kebutuhan pengembangan. Beberapa tahapan dan pengulangan yang terjadi tersebut akan berjalan secara pararel. Model fountain ini merupakan siklus hidup berorientasi objek sehingga akan lebih fokus pada bagian-bagian keseluruhan sistem yang dikenal dengan nama subsistem.
(Rifqi,-2018)
Metode fountain model merupakan model metode perangkat lunak yang diterapkan untuk pembangunan sistem yang bersifat object oriented. Tahapan-tahapan pengembangan yang dilakukan adalah anal isis kebutuhan, spesifikasi Kebutuhan user, perancangan sistem, perancangan program, coding, unit testing, sistem testing, implementasi, pemeliharaan dan pengembangan lebih lanjut.
Tahapan-tahapan tersebut saling terkait dan saling mempengaruhi (life cycle). (Iwan Rijayana, 2010)


Langkah – Langkah dalam Model Fountain:

·         User requirements analysis ( Analisis Kebutuhan Pengguna), disini kita sebagai programmer dalam mengembangkan sistem harus menganalisa kebutuhan terhadap pengguna baik itu dalam cara penggunaan yang mudah maupun efisiensi terhadap sistem yang pengguna butuhkan.
·         User requirements specifications (Spesifikasi kebutuhan pengguna), dalam tahap ini kita harus tahu apa saja yang dibutuhkan pengguna dalam sistem yang sedang kita kembangkan.
·         Software requirements specifications (Spesifikasi persyaratan perangkat lunak), dalam tahap ini kita harus menyesuaikan software yang kita buat jika di lihat dari sisi pengguna. Jika pengguna awam tentunya kita harus menciptakan Software yang mudah digunakan.
·         Systems/broad design (logical design), sebelum pengimplementasi dalam coding kita harus mendesain sistem yang akan kita buat / kembangkan.
·         Program/detailed design (physical design), dalam tahap ini kita membuat desain yang mendekati fisik atau secara deail.
·         Implementation/coding, setelah tahap desain barulah kita mengimplementasikan dalam coding
·         Program testing: units, dalam tahap ini kita testing / cek kembali unit nit yang dibutuhkan dalam sistem yang sedang kita kembangkan .
·         Program testing: system, dalam tahap ini kita test kembali sistem yang telah kita buat.
·         Program use, dalam tahap ini kita ajarkan ke pengguna program yang telah kita buat.
·         Software maintenance, setelah sistem di pasang maka tentunya kita harus rutin mengupdate software / sistem yang telah kita buat agar terhindar dari kesalaha / bugs.

Kelebihan Fountain Model
Perbaikan logis dari model waterfall, langkah langkah dan urutan prosedurnya pun masih sama. Namun pada model Fountain ini kita dapat mendahulukan sebuah step ataupun melewati step tersebut
Kekurangan Fountain Model
Ada yang tidak bisa anda lewati stepnya seperti kita memerlukan design sebelum melakukan coding jika itu di lewati maka akan ada tumpang tindih dalam siklus SDLC
Manfaat Fountain Model
Hampir sama dengan Waterfall, namun cara kerja dari usernya saja yang berbeda
Contoh Implementasi Fountain Model
Apllkasi Ensiklopedia Hewan Vertebrata Berbasis Multimedia (Iwan Rijayana, 2010)



  
1.      Spiral Mode
Model spiral diperkenalkan pertama kali oleh Barry Boehm pada makalahnya yang berjudul Spiral Model of Software Development and Enhancement. Barry Boehm menjelaskan bahawa model spiral merupakan model yang sangat berguna untuk melakukan pembangunan proyek-proyek besar dan prosesnya dilakukan dengan memperhatikan resiko proyek sehingga pada akhirnya akan menghasilkan model proses yang tepat sesuai kebutuhan pengguna.
Model Spiral adalah salah satu metode yang dapat digunakan dalam pengembangan perangkat lunak. Model spiral merupakan penggabungan dari model prototyping dan model waterfall. Model prototyping yang fokus pada penyajian atau presentasi kepada user dengan format input dan output kemudian perangkat lunak akan dievaluasi. Model waterfall yang fokus kepada proses pengembangan perangkat lunak yang sistematis atau berurutan. Model spiral menekankan pada Analisa resiko setiap tahapannya.
Fungsi model spiral adalah untuk melakukan perubahan, penambahan dan pengembangan perangkat lunak dengan memaksimalkan aspek kecepatan dan ketepatan berdasarkan keinginan dan kebutuhan penggunanya.


Tahapan dalam Spiral Model
Dalam penerapan Model Spiral, terdapat lima tahapan untuk merealisasikan penggunaannya, yaitu sebagai berikut:
1.      Tahap Liason
Tahap ini berhubungan dengan komunikasi antara pihak-pihak yang terlibat dalam pengembangan softaware (seperti: system analyst) dengan pelanggan (user). Tujuannya adalah memperbaiki dan mengembangan software sesuai kebutuhan dan keinginan hingga memuaskan pelanggan.
2.      Tahap planning
Tahap perencanaan meliputi estimasi biaya yang digunakan, batas waktu, pengaturan jadwal, identifikasi lingkungan kerja, sumber-sumber informasi untuk melakukan iterasi (Teknik perulangan). Hasil dari tahapan ini adalah dokumen spesifikasi kebutuhan sistem dan bisnis.
3.      Tahap analisis risiko
Tahap analisis reisiki berfungsi untuk mengidentifikasi resiko yang berpotensi akan terjadi dan menghasilkan solusi alternatif secara teknis dan manajemen saat strategi mitigasi (upaya untuk mengurangi resiko bencana) direncanakan dan diselesaikan.
4.      Tahapan rekayasa (engineering)
Pada tahap rekayasa, beberapa kegiatan ini yang akan dilakukan, yaitu:
·         Menguji, coding dan mengembangkan software
·         Menginstal software
·         Membuat prototype
·         Mendesain dokumen
·         Meringkas suatu pengujian software
·         Membuat laporan atas kekurangan dari software agar segera diperbaiki
5.      Tahap evaluasi
Pada tahap evaluasi, system analyst membutuhkan masukan dan tanggapan dari para user dalam mengevaluasi perangkat/produk yang diuji dan memastikan bahwa produk dibutuhkan sesuai ketentuan yang telah dibicarakan diawal dengan user. System analyst memastikan pelanggan puas dengan produk yang akan dihasilkan untuk menjawab persoalan bisnis mereka. Selain itu, system analyst harus tetap memantau resiko yang akan terjadi seperti faktor-faktor yang dapat menyebabkan cost overrun (pembengkakan biaya).

Kelebihan dalam menggunakan model spiral :
1.      Pembangunan dan perubahan perangkat lunak yang terjadi dapat diselesaikan secara sistematis
2.      Mudah dalam mengestimasi biaya karena proses pembuatan prototype yang jelas dan terencana dalam tahapan yang sistematis
3.      Manajemen dan analisa risiko yang lebih cepat dan mudah
4.      Mudah dalam melakukan perubahan kebutuhan dan dokumentasi
5.      Produksi software bisa terjadi lebih cepat

Kekurangan dalam menggunakan model spiral :
1.      Tidak cocok dan sulit diimplementasikan dalam projek kecil
2.      Memakan waktu yang cukup lama
3.      Membutuhkan best practice atau pengalaman sebelumnya karena proses yang sangat kompleks
Resiko dalam tahap planning cukup besar. Misalnya terjadi perbedaan dalam jadwal pengembangan dan anggaran belanja.


1.      Extreame Programing

Extreme Programming adalah suatu model yang termasuk dalam pendekatan agile yang diperkenalkan oleh Kent Back. Menurut penjelasannya, definisi XP adalah sebagai berikut: “Extreme Programming (XP) adalah metode pengembangan software yang cepat, efisien, beresiko rendah, fleksibel, terprediksi, scientific, dan menyenangkan.“.
Model ini cenderung menggunakan pendekatan Object-Oriented. Tahapan-tahapan yang harus dilalui antara lain: Planning, Design, Coding, dan Testing. Sasaran Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang sangat cepat. Extreme Programming merupakan agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat terkenal.
Core Value Extreme Programming, yaitu:



Core Value Extreme Programming
·         Komunikasi (Communication)
Kurangnya komunikasi merupakan penyebab utama kegagalan pengembangan software. Oleh karena itu Extreme Programming(XP) memfokuskan diri pada hubungan komunikasi yang baik antar tim-klien, anggota tim, dan manajer proyek.Komunikasi dalam XP dibangun dengan melakukan pemrograman berpasangan (pair programming).Klien harus dilibatkan dalam proses pengembangan perangkat lunaknya dengan tujuannya untuk memberikan pandangan pengembang sesuai dengan pandangan pengguna sistem yang dibangun.
·         Kesederhanaan (Simplicity)
Extreme Programming (XP) melakukan semua pekerjaan dengan sederhana dan praktis tanpa mengurangi fungsi utamanya. Dalam pengerjaan, metode yang dipilih adalah metode yang pendek dan simpel. Jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada gunanya atau hapus fungsi yang tidak terpakai. Dengan kata lain lebih baik melakukan hal yang sederhana saat sekarang (sesuai kebutuhan) dan mengembangkannya nanti jika diperlukan.
·         Umpan balik (Feedback)
Selalu evaluasi perkembangan perangkat lunak yang sedang dikerjakan. Segala informasi harus dikumpulkan setiap interval waktu yang konsisten dan kesalahan-kesalahan yang muncul selama proses pengembangan harus dibahas dan dicari solusinya. Umpan balik tersebut berfungsi sebagai indikator kemajuan proyek dan menginformasikan pemimpin proyek apabila perubahan perlu dibuat.
·         Keberanian (Courage).
Programmer Extreme Programming (XP) didorong untuk berani bereksperimen dan menulis ulang kode jika mereka tidak puas dengan kode atau desain yang sudah ada. Hal ini membantu mempertahankan moral serta intgritas para pengembang proyek dan dapat mendukung lebih lanjut komunikasi dengan anggota proyek lainnya.



Tahapan Dalam XP Programming
Tahapan Dalam Etreme (XP) Programming, yaitu:
Aktivitas planning dimulai dengan membentuk user stories. Anggota XP team kemudian menilai setiap story dan menentukan cost — diukur dalam development week.
Planning. Customer dan XP team bekerja bersama untuk memutuskan bagaimana grup story untuk release berikutnya (software increment berikutnya) untuk dibangun oleh XP team. Jika komitmen telah dibuat, XP team akan membangun story-story dengan cara :
Semua story segera diimplemetasikan (dalam beberapa minggu)
1. Story dengan value tertinggi akan dipindahkan dari jadwal dan dimplementasikan pertama.
2. Story dengan resiko paling tinggi akan diimplemetasikan terlebih dulu. Setelah project pertama direlease dan didelivery, XP team memperhitungkan kecepatan project. Selama development, customer dapat menambah story, merubah value, membagi story atau menghapusnya.
Design. XP menggunakan CRC card, untuk mengenali dan mengatur object oriented class yang sesuai dengan software increment.
Coding. Sebelum membuat code, lebih baik membuat unit test tiap story untuk dimasukkan dalam software increment. XP menyarankan agar dua orang bekerja bersama pada satu komputer workstation untuk membuat code dari satu story (pair programming), untuk menyediakan real time problem solving dan jaminan real time quality. Setelah pair programming selesai, code diintegrasikan dengan kerja laiinnya (continuous integration).
Testing. Unit test yang telah dibuat harus diimplementasikan menggunakan suatu framework dan diatur ke dalam universal testing suite, integrasi dan validasi sistem dapat dilakukan setiap hari. Customer test (acceptance test) dilakukan oleh customer dan fokus pada keseluruhan fitur dan fungsional sistem. Acceptance test diperoleh dari customer stories yang telah diimplemetasikan sebagai bagian dari software release.
Berikut Siklus Hidup dalam XP Programming.



Extreme Programming tepat untuk dipergunakan untuk pembuatan program yang:
·         Membutuhkan perubahan yang cepat (misalnya: Game Mobile)
·         Proyek beresiko tinggi dengan tantangan yang berat
·         Tim programmer sedikit, yaitu sekitar 2–10 orang
·         Adanya permintaan dari pelanggan secara langsung

Kelebihan Extreme Programming, yaitu:
·         Meningkatkan kepuasan kepada klien
·         Pembangunan system dibuat lebih cepat
·         Menjalin komunikasi yang baik dengan client.
·         Meningkatkan komunikasi dan sifat saling menghargai antar developer.

Kelemahan Extreme Programming, yaitu:
·         Cerita-cerita yang menunjukkan requirements dari pelanggan kemungkinan besar tidak lengkap sehingga Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
·         Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
·         XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.
Contoh Implementasi Extreme Programming
Rancang Bangun Sistem Informasi Administrasi Hotel Dengan Metode Extreme Programming (Akbar, 2017)

1.      Agile Model
Agile software development atau sering hanya disebut “agile” adalah kumpulan dari metode-metode pengembangan perangkat lunak yang berbasis pada Iterative dan Incremental Model. Agile memungkinkan mengembangkan perangkat lunak yang memiliki reequirement yang mudah berubah dengan cepat.
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 sistem software. Agile Modeling adalah kumpulan nilai- nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software development proyek secara efektif. (Wulan, 2016)


Alur Proses
Agile model memiliki beberapa fitur pada saat melakukan pengembangan perangkat lunak diantaranya adalah: (Ependi, 2015)

·                     Iterasi yang cepat dan pengiriman software yang befungsi secara regular memastikan kepuasan              pelanggan.
·                     Perubahan yang telat dapat ditangani dengan mudah dan juga diterima secara terbuka.
·                     Perkembangan dinilai berdasarkan implementasi software.
·                     Komunikasi pelanggan dan pengguna ditekankan secara bertatap muka.
·                     Setiap pertemuan dengan anggota tim dilakukan secara bertatap muka.
·                     Setiap anggota tim pengembang adalah orang yang berkomitmen dan bermoivasi timggi serta  kompeten dan dapat dipercaya.

Beberapa ciri dari metode ini:
• Suatu proyek lebih cepat rilis.
• Perubahan requirement dapat sering dilakukan.
• Interaksi antara client dengan developer dalam menentukan langkah proyek berikutnya
• Proyek dibangun antar tim.
• Tim mengorganisasikan dirinya sendiri.
• Tim bekerja dalam kecepatan yang bisa dipertahankan.
• Tim dapat mereview tingkat keberhasilan dan kegagalan mereka.
• Desain dan implementasi disusun sesederhana mungkin.
Kelebihan metode ini:
• Proses Iterative dan Incremental.
• Requirement dapat berubah sewaktu-waktu.
• Pelacakan requirement dengan melihat Backlog produk.
• Keterlibatan user secara aktif.
• Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir iterasi.
• Testing dilakukan setiap saat.
Kekurangan dari metode ini:
• Interaksi dengan client yang kadang terlalu berlebihan.
• Agile sulit diimplementasikan dalam proyek yang berskala besar.
• Waktu perencanaan proyek yang singkat.
• Membutuhkan manajemen tim yang terlatih.
Manfaat Agile Model
· Metodologi pengembangan Agile memberikan kesempatan untuk menilai arah proyek melalui siklus pengembangan
·Dengan berfokus pada pengulangan siklus kerja disingkat serta produk fungsional mereka menghasilkan, metodologi tangkas digambarkan sebagai “berulang” dan “incremental”.
·Dalam paradigma tangkas, setiap aspek persyaratan pembangunan, desain, dan lain-lain terus ditinjau kembali selama pemakaian.
Contoh Implementasi Agile Model
Pengembangan E-Trace Alumni Denganmenggunakan Pendekatanmetode Agile (Ependi, 2015)

Daftar pustaka
·         MODEL V UNTUK PERANGKAT LUNAK MANAGEMENT PENDAFTARAN ANGGOTA  DI PERPUSTAKAAN DAERAH KABUPATEN KUDUS.PDF
·         Model Prototyping Pada Pengembangan  Sistem Informasi.PDF



Komentar

Postingan populer dari blog ini

Algoritma Kriptografi Keccak (SHA-3)

Quick Sort C++