Siklus Pengembangan Perangkat Lunak atau Software Development Life Cycle (SDLC)

Siklus Pengembangan Perangkat Lunak atau Software Development Life Cycle (SDLC)


Pengembangan perangkat lunak


Perangkat lunak, merupakan suatu produk yang terdiri dari banyak fungsi dan struktur, yang saling menyatu satu dengan lainnya. Dengan banyaknya fungsi dan struktur yang teradapat di dalam Perangkat lunak ini, maka menjadikan pembuatan perangkat lunak tidak mudah, dan dapat terjadi kesalahan seperti miskomunikasi antara kelompok, kebingungan dimana harus memulai bekerja, dan langkah - langkah apa yang harus dilakukan selanjutnya. Oleh karena itu, dibentuklah suatu hal yang dinamakan "proses pengembangan perangkat lunak". 

Proses pengembangan perangkat lunak adalah suatu proses, dimana kebutuhan yang dimiliki oleh pemakai, kemudian diterjemahkan menjadi produk yang berupa perangkat lunak. Aktivitas di dalam proses ini mencangkup :

  1. Penerjemahan kebutuhan yang dimiliki oleh pemakai, menjadi sebuah kebutuhan perangkat lunak,
  2. Mengubah kebutuhan perangkat lunak, menjadi sebuah desain 
  3. Pembuatan desain yang ada, menjadi kode program,
  4. Menguji coba kode program, dan penginstalan,
  5. Memeriksa kebenaran dari perangkat lunak ini, untuk operasional .
Dari pengertian di atas, dapat kita simpulkan secara umum, proses dari pengembangan perangkat lunak ini mengikuti tahapan - tahapan :
  1. penentuan atas APA yang dalam sebuah rentang waktu tertentu harus dikerjakan oleh sebuah perangkat lunak,
  2. Pendefinisian atas BAGAIMANA, perangkat lunak ini dibuat, yang mencangkup antarmuka internal, algoritma, arsitektur dari perangkat lunaknya, dan lain sebagainya,
  3. Menuliskan program dari desain dan arsitektur serta kegunaan di atas, serta pengujian atas unit - unit dari program. Bagian ini adalah tahap implementasi,
  4. Pengujian dan integrasi dari modul - modul program,
  5. pengujian sistem, yakni pemvalidasian perangkat lunak secara keseluruhan.

Kegiatan pengembangan sebuah perangkat lunak adalah tugas yang sangat rumit, dan membutuhkan banyak sumber daya, juga membutuhkan waktu berbulan - bulan, bahkan bertahun - tahun untuk diselesaikan. 

Selama waktu tersebut, pengembangan perangkat lunak melalui berbagai tahapan, mulai dari perencanaan perangkat lunak, hingga perangkat lunaknya diterapkan, dioperasikan, dan dipelihara.

Bila dalam pengoperasian perangkat lunak masih muncul kembali masalah - masalah kritis yang tidak dapat diatasi dalam tahap pemeliharaan perangkat lunak, maka ada perlunya untuk dilakukan pengembangan kembali suatu perangkat lunak untuk mengatasinya. 

Proses ini yakni kembali lagi ke tahap pertama yakni tahap perencanaan perangkat lunak. Semua proses dari pembangunan hingga ketika terjadi masalah, kemudian kembali ke pembangunan lagi, merupakan sebuah siklus yang disebut siklus hidup perangkat lunak.


Siklus pengembangan perangkat lunak

Siklus pengembangan perangkat lunak, sering kali juga disebut Siklus hidup/ daur ulang pengembangan perangkat lunak atau SDLC (software development life cycle),adalah siklus yang digunakan dalam pembuatan atau pengembangan sistem informasi yang bertujuan untuk menyelesaikan masalah dengan efektif,dalam pengertian lainnya juga, SDLC dapat diartikan sebagai tahapan kerja yang bertujuan untuk menghasilkan sistem berkualitas tinggi yang sesuai dengan keinginan pelanggan atau tujuan dibuatnya sistem tersebut.

Di dalam SDLC, terdapat tahapan - tahapan prinsipal, terhadap pemetaan model proses kedalaman aktivitas pengembangan yang fundamental yakni :

  • Software and system design
  • unit testing and implementation
  • system and integration
  • testing
  • maintenance and operation
  • Definition and requirement analysis

Periode waktu SDLC, diawali dengan keputusan mengembangkan sebuah produk perangkat lunak, dan diakhiri saat perangkat lunak diserahkan. 

Pada umumnya, siklus pengembangan ini terdiri atas tahap analisis kebutuhan, perancangan, penerapan, pengujian, dan instalasi, dan juga pemeriksaan. 

Ide utama dari siklus hidup perangkat lunak sederhana dan masuk akal. 

Di dalam SDLC, tiap bagian dari pengembangan perangkat lunak dibagi kembali menjadi beberapa tahapan kerja. Setiap tahapan kerja ini, masing - masing memiliki karakteristik tersendiri. Tahapan utama dari SDLC dapat terdiri dari tahapan perencanaan, analisis, desain, implementasi, dan perawatan perangkat lunak.


Model SDLC 

Dalam melakukan SDLC, masih banyak lagi model - model yang dapat dipilih sesuai kebutuhan. Setiap model, akan berpengaruh terhadap tahapan dari pekerjaan yang dilakukan,atau bahkan hasil dari produk akhirnya, sehingga penting untuk memilih model sesuai dengan tujuan yang dimiliki oleh pengembang software. Model - model dari SDLC yakni :

Waterfall Model


Model Waterfall adalah model yang pertama kali dikenal dari SDLC. Model waterfall, sering juga disebut sebagai linear-sequential life cycle model. Penggunaannya sangat mudah dipahami dan digunakan. Pada model waterfall, masing - masing langkah harus diselesaikan dahulu sebelum melanjutkan ke langkah berikutnya, dan tidak ada langkah yang dilaksanakan secara bersamaan.

Model waterfall adalah model paling awal yang digunakan untuk mengembangkan software.

Model waterfall mengilustrasikan proses pengembangan software dalam sebuah linear sequential flow, yang artinya setiap tahapan dalam kegiatan pengembangan, hanya boleh dilakukan apabila tahapan sebelumnya sudah selesai. 

Dalam model waterfall, tahapan yang berada dibelakang, berfungsi sebagai inputan bagi... tahapan di depannya. 

Seperti dapat dilihat dari gambar di atas, tahapan dari model waterfall adalah :

  1. Requirement gathering and analysis, yakni semua syarat, keperluan, dan persyaratan dari sistem yang akan dibangung ditentukan di fase ini, dan di dokumentasikan di dalam requirement specification document
  2. System Design, yakni semua syarat, keperluan, dan persyaratan dari sistem yang ditentukan pada langkah pertama akan dipelajari, dan kemudian desain sistem akan disiapkan. Sistem desain ini membantu dalam menspesifikasikan perangkat keras dan kebutuhan sistem, dan membantu dalam menentukan arsitektur sistem secara menyeluruh.
  3. Implementation - dengan input dari system desain, sistem pertama kali dikembangkan dalam  bentuk program kecil yang dinamakan unit, yang akan kemudian diintegrasikan di langkah berikutnya. Setiap unit dikembangkan dan di tes berdasarkan fungsionalitasnya, kegiatan ini distebut unit testing.
  4. Integration and testing - Semua unit yang dikembangkaan pada langkah implementasi, diintegrasikan ke dalam sebuah sistem setelah mengetes setiap unit. Setelah diintegrasikan, seluruh sistem kemudian di tes untuk mengecek apakah ada kesalahan atau kegagalan.
  5. Deployment of system - Saat testing functional dan non-functional telah selesai, produk disebarkan kepada kelompok pelanggan atau dikeluarkan ke pasar.
  6. Maintenance - Terkadang ada beberapa masalah yang datang dari tempat pengguna. Untuk memperbaiki masalah tersebut, patch dikeluarkan. Selain itu juga, maintenance ini juga untuk merilis versi terbaru yang lebih baik dari produk. Maintenance dilakukan untuk memberikan perubahan untuk penggunaan pelanggan.

Dari grafik, dapat dilihat langkah - langkah dari waterfall model terlihat seperti turun sedikit demi sedikit, bagaikan sebuah air terjun.  


Aplikasi dari waterfall model

Setiap software yang dikembangkan membutuhkan metode pendekatan SDLC yang berbeda sesuai kebutuhan. Waterfall model ini diimplementasikan ketika :

  • Kebutuhan, syarat dan persyaratan diberikan dengan jelas dan pasti
  • Definisi produk tidak berubah ubah
  • Teknologi yang digunakan dipahami dan tidak dinamis
  • Tidak ada kebutuhan yang ambigu
  • Proyek memiliki sumber daya yang cukup dan memiliki orang dengan kemampuan yang tepat yang tersedia untuk mendukung produk
  • Proyeknya bersifat pendek

Keuntungan Waterfall Model

Keuntungan dari waterfall model adalah dengan menggunakan model ini, membuat dapat terbentuknya pembagian departemen dan kontrol. Jadwal dapat di atur dengan batas waktu bagi setiap tahap pengembangan, dan sebuah produk bisa melanjutkan perkembangannya langkah demi langkah.

Pengembangan produk bergerak dari konsep, menuju desain, implementasi, testing, instalasi, perbaikan produk, dan berakhir pada tahap operasi dan pemeliharaan. Setiap fase pengembangan bergerak dalam urutan yang ketat.

Beberapa keuntungan terbesar dari Waterfall Model adalah :

  • Simpel dan mudah dipahami ataupun digunakan 
  • Mudah di manajemen, karena modelnya yang kaku. Setiap langkah memiliki hasil kerja spesifik dan sebuah proses review.
  • Setiap langkah diproses dan diselesaikan satu demi satu
  • Bekerja dengan baik pada proyek skala kecil dimana syarat yang dimiliki sangat dipahami
  • Langkahnya didefinisikan dengan baik
  • Tujuan yang dipahami dengan jelas
  • Tugas yang mudah dibagi
  • Proses dan hasil dapat didokumentasikan dengan mudah

Kelemahan Waterfall Model

Kelemahan dari waterfall model adalah prosesnya tidak memberikan kesempatan untuk melakukan refleksi ataupun revisi. Setelah sebuah aplikasi sudah di tahapan testing, sangat sulit bila ingin kembali dan mengganti sesuatu yang kurang didokumentasikan atau dipikirkan dalam tahapan konsep.

Kelemahan terbesar dari Waterfall model adalah :

  • Tidak ada hasil software yang diproduksi, kecuali pada bagian - bagian akhir dari proses pengembangan
  • Tinggi resiko dan ketidakpastian
  • Bukan model yang bagus untuk proyek kompleks atau yang berorientasi objek
  • Model yang buruk untuk proyek yang sedang berjalan ataupun proyek yang panjang
  • tidak cocok untuk proyek yang dimana syaratan aplikasinya ada kemungkinan cukup tinggi untuk diubah. Jadi, resiko dan ketidakpastian sangat tinggi pada model ini
  • Sulit untuk mengukur hasil kerja pada setiap fase
  • Tidak dapat digunakan pada proyek yang memiliki perubahan kebutuhan
  • Mengubah ruang lingkup ketika dalam life cycle bisa mengakhiri proyek
  • Integrasi dilakukan sebagai "big - bang" pada bagian akhir, yang tidak mengizinkan identifikasi persyaratan teknologi atau bisnis dan masalah awal.



Spiral Model

Model spiral adalah gabungan dari model waterfall dan sequential linear development model.




Design model spiral

Model spiral memiliki 4 fase. Proyek software terus menerus melewati fase ini berulang kali, disebut spiral.


Identifikasi

fase ini dimulai dengan mengumpulkan kebutuhan business pada batas awal spiral. Di bagian spiral selanjutnya, dengan produknya yang semakin dewasa, mengidentifikasi persyaratan sistem, persyaratan subsistem , dan persyaratan unit dilakukan pada fase ini.

Fase ini juga termasuk memahami kebutuhan sistem melalui komunikasi berlanjut antara pelanggan dan sistem analyst. Pada bagian akhir spiral, produknya dikeluarkan pada pasar yang ditentukan.

Desain

Fase desain dimulai dari desain konspetual pada dasar spiral dan melibatkan desain arsitektural, desain logis dari modul, desain produk fisik, dan desain akhir pada spiral selanjutnya.

Construct or Build

fase Construct merujuk pada produksi dari software yang sebenarnya di setiap spiral. Pada dasar spiral, ketika produk masih hanya dipikirkan, dan desainnya sedang dikembangkan, sebuah proof of concept (bukti konsep) dikembangkan pada fase ini, untuk mendapat pendapat pelanggan.

Kemudian, di spiral selanjutnya, dengan persyaratan yang lebih jelas, dan model yang fungsional dari software yang dinamakan build diproduksi dengan nomor versinya. Build ini kemudian dikirimkan ke pelanggan untuk mendapatkan pendapat. 

Evaluation and risk analysis

mengidentifikasi resiko termasuk mengidentifikasi, memperkirakan, dan memonitor kebisaan teknikal dan resiko manajemen, seperti keterlambatan dari jadwal, dan kelebihan biaya. Setelah mengetes Build, di akhir pengulangan pertama, pelanggan akan mengevaluasi produk, dan memberikan pendapat.

Berdasarkan evaluasi pelanggan, proses pengembangan software kemudian akan melewati pengulangan berikutnya dan kemudian mengikuti pendekatan linear untuk mengimplementasikan kilas balik yang diberikan pelanggan. Proses pengulangan pada spiral dilakukan terus menerus selama kelangsungan software.


Aplikasi Model Spiral

Model spiral digunakan secara luas di industri software, karena model ini mengikuti dari proses perkembangan natural produk.

Biasanya, model spiral digunakan pada :

  • Ketika memiliki anggaran yang terbatas dan mengevaluasi resikonya penting
  • Untuk proyek dengan resiko menengah keatas
  • Untuk proyek komitmen jangka panjang, karena kemungkinan perubahan pada prioritas ekonomi yang disebabkan karena perubahan persyaratan seiring waktu
  • Ketika pelanggan tidak yakin dengan persyaratan mereka, yang hal ini biasanya sering terjadi
  • Persyaratannya kompleks dan butuh evaluasi untuk mendapat kejelasan
  • Jejeran produk baru, yang harus dirilis di setiap fase, untuk mendapat pendapat pelanggan
  • Ketika berkemungkinan terjadi perubahan besar pada produk dalam siklus pengembangan  


Kelebihan dan kekurangan model spiral

Keuntungan dari model spiral adalah model ini mengakomodasikan penambahan elemen produk, ketika elemen tersebut tersedia, atau dibutuhkan. Hal ini memastikan tidak akan terjadi konflik antara persyaratan sebelumnya dengan desain.

Metode ini konsisten dengan pendekatannya, dengan memiliki banyak software yang
dibangun dan dirilis, yang membantu melakukan transisi yang rapi menuju aktivitas pemeliharaan. Aspek positif lainnya dari metode ini adalah model spiral memaksa keterlibatan dengan pengguna, dalam usaha pengembangan sistem, langsung dari awal kegiatan.

Di sisi lain, metode ini membutuhkan  manajemen yang ketat untuk menyelesaikan produknya,
dan ada resiko menjalankan spiral dalam jumlah pengulangan yang tidak pasti. Jadi, disiplin perubahan, dan pemberian batas atas perubahan menjadi sangat penting untuk mengembangkan dan menyebarkan produk dengan sukses.

Keuntungan dari model spiral adalah sebagai berikut: 

  1. Dapat mengakomodasi permintaan yang berubah - ubah
  2. Mengizinkan penggunaan prototipe secara luas
  3. Persyaratan dapat ditangkap dengan lebih akurat
  4. pengguna dapat melihat sistemnya sejak awal
  5. Pengembangan dapat dibagi menjadi  banyak bagian yang lebih kecil dan bagian yang beresiko dapat dikembangkan lebih awal, sehingga membantu memanajemen resiko yang ada.
Sebaliknya, kekurangan dari model spiral yakni :
  1. Manajemennya yang lebih kompleks
  2. Akhir dari proyek mungkin tidak dapat diketahui dari awal
  3. Tidak cocok untuk proyek kecil atau beresiko rendah, karena dapat membuat proyek kecil menjadi mahal
  4. Proses yang lebih kompleks
  5. Spiral yang dapat terus berulang secara tidak pasti
  6. Kebanyakan dari fase menegah membutuhkan dokumen yang berlebihan 

Agile Model



Model Agile SDLC adalah kombinasi dari model iteratif dan incremental, dengan fokus pada proses adaptasi, dan kepuasan pelanggan, dengan pemberian produk software yang bekerja secara cepat. Metode agile, memecah produk menjadi bagian pengembangan kecil, bagian ini disediakan dalam sebuah perulangan. Setiap perulangan biasanya berjalan selama satu sampai 3 minggu. Setiap perulangan melibatkan tim - tim yang bekerja secara bersamaan dalam sebuah tim, di berbagai area yang berbeda seperti :

  • Planning
  • Requirement Analysis
  • Design
  • Coding
  • Unit testing
  • Acceptance testing

Di akhir perulangan, produk yang dapat bekerja ditampilkan kepada pelanggan dan pemegang saham yang penting.

Apa itu model agile

Model agile percaya bahwa setiap proyek perlu dilaksanakan dengan berbeda - beda, dan metode yang ada, perlu diperbaiki agar lebih cocok dengan persyaratan proyek. Pada agile, tugas - tugas dibagi ke dalam berbagai kotak waktu (dengan batas waktu sedikit) untuk memberikan fitur tertentu sebelum produk dirilis.

Pendekatan iterative, diambil dan dipergunakan, sehingga software yang dapat bekerja, terus diberikan dalam setiap perulangan. Setiap model dibangun terus menerus dengan fitur; Model akhir kemudian akan memegang semua fitur yang dibutuhkan oleh pelanggan. 

Pemikiran akan metode agile sudah ada sejak zaman awal pengembangan software, dan mulai mendapat popularitas seiring waktu karena adaptibilitas dan fleksibilitasnya.

Metode agile yang paling populer yakni Rational uniified process (1994), Scrum (1995), Crystal clear, Extreme programming (1996), Adaptive software development, Feature Driven Development, dan Dynamic Systems Development Method (DSDM) (1995). Semua Metode ini secara kelompok disebut sebagai Metodologi agile, setelah manifesto agile dipublikasi di tahun 2001.

Di bawah ini adalah asas dari Agile Manifesto :

  • Individual dan interaksi - dalam pengembangan agile, Motivasi dan kemandirian organisasi dianggap penting, selain itu interaksi seperti co - location dan pair programming juga dianggap penting
  • Working Software - Demo working software dianggap sebagai cara komunikasi terbaik dengan pelanggan, untuk memahami persyaratan mereka, dibandingkan hanya bergantung kepada dokumentasi
  • Customer collaboration - Karena persyaratan tidak dapat dikumpulkan sepenuhnya di awal proyek karena berbagai faktor, interaksi berlanjut dengan pelanggan menjadi sangat penting untuk memahami persyaratan produk
  • Responding to change - Pengembangan agile memfokuskan pada respon cepat terhadap perubahan, dan perkembangan berlanjut.


Keuntungan dan kelemahan model agile 

Model agile telah diterima secara luas di dunia software tidak lama lalu. 

Keuntungan dari model agile adalah :

  • Pendekatan yang sangat realistis dalam pengembangan software
  • Menjunjung kerja sama dan cross training
  • Fungsionalitas dapat dikembangkan dengan cepat dan didemonstrasikan
  • Kebutuhan sumber daya minimum
  • Cocok untuk prasyarat yang berubah - ubah, maupun tidak
  • Memberikan dengan cepat, sedikit dari solusi kerja
  • Model yang bagus untuk area yang lambat laun berubah
  • Aturan yang minimal, dan dokumentasi mudah dilakukan
  • Sedikit atau bahkan tidak membutuhkan perencanaan
  • Mudah di manajemen
  • Memberikan fleksibilitas terhadap pengembang
  • Membuat pengembangan dapat dilakukan secara bersamaan.


Kelemahan model agile

Kelemahan dari model agile adalah :

  • Terdapat resiko dalam keberlanjutan, penjagaan, dan kemampuannya untuk bertahan lama
  • Rencana keseluruhan, pemimpin, dan perdana mentri harus ada, bila tidak, agile model tidak dapat bekerja
  • Metode ini kurang cocok diimplementasikan pada tim yang tidak memiliki komitmen untuk bekerja sama atau menyelesaikan proyek bersama-sama.
  • Kurang tepat jika diimplementasikan pada tim dengan skala besar. Contohnya, tim dengan anggota lebih dari 20 orang.
  • Para developer harus senantiasa siap siaga, lantaran perubahan dapat terjadi sewaktu-waktu.
  • Jangkauan kerja yang dapat berubah-ubah juga menjadi salah satu kelemahan metode agile.
  • Adanya ketidakpastian waktu berakhirnya proyek. Terlebih ketika ada banyak perubahan.
  • Membutuhkan manajemen pengiriman yang ketat, yang menentukan jangkauan, fungsionalitas yang akan dikirm, dan pengaturan, untuk mencapai deadline.
  • Bergantung besar dengan interaksi dengan pelanggan, apabila pelanggan tidak pasti, tim bisa diarahkan ke arah yang salah
  • Memiliki depedensi individual yang tinggi, karena dokumentasi yang dihasilkan bersifat minimum
  • Pemberian teknologi pada anggota baru dalam tim akan lebih sulit, karena dokumentasi yang sedikit


Rapid Application Development Model



Rapid application development(RAD) model, adalah model yang  didasarkan dari prototyping dan iteratif development, dengan tidak adanya rencana spesifik. Proses dari penulisan softwarenya itu sendiri melibatkan perencanaan yang dibutuhkan untuk mengembangakan produk.

RAD berfokus dalam mengumpulkan persyaratan pelanggan lewat workshop atau grup fokus, early testing prototipe oleh pelanggan dengan menggunakan konsep iterative, penggunaan kembali prototipe yang ada (komponen), integrasi berlanjut dan pengiriman produk dengan cepat.

Apa itu RAD

RAD adalah metodologi pengembangan software yang menggunakan perencanaan minimal, dan memilih untuk memfokuskan pada menghasilkan prototyping dengan cepat. Sebuah prototype adalah model yang dapat bekerja, yang fungsionalitasnya setara dengan komponen dari sebuah produk.

Dalam model RAD, modul fungsionalnya dikembangkan secara paralel sebagai prototipe, dan diintegrasikan untuk membuat sebuah produk yang jadi, agar pengiriman produk akhir terjadi dengan lebih cepat. Karena tidak ada preplanning yang detail, lebih mudah untuk melakukan perubahan dalam proses pengembangan.

Proyek RAD mengikuti model iterative dan incremental, dan memiliki tim yang kecil, yang terdiri dari developer, domain expert, representatsi pelanggan, dan sumber daya IT lainnya yang bekerja secara progresif dalam komponen atau prototipe mereka masing - masing.

Aspek paling penting dari model ini agar menjadi sukses, adalah memastikan prototipe yang dihasilkan dapat digunakan kembali.

Model desain RAD

Model RAD mendistribusikan fase analisis, desain, membangun, dan mengetes, ke dalam beberapa siklus pengembangan berulang yang pendek.

Di bawah ini adalah berbagai fase dari model RAD :

Modeling bisnis

Model bisnis untuk produk yang dalam tahap pengembangan dedesain berdasarkan arus informasi dan distribusi informasi antara berbagai chanel bisnis. Sebuah analisis bisnis lengkap, dilakukan untuk mencari informasi penting untuk bisnis, dan bagaimana hal itu dapat dilakukan, dimana dan kapan informasi di proses, dan faktor apa yang mendorong arus informasi yang sukses. 

Data Modeling

Informasi yang dikumpulkan dari fase modeling bisnis di review dan di analisis untuk membuat pasangan data objek vital untuk bisnis. Atribut dari semua pasangan data diidentifikasi dan didefinisikan. Hubungan antara data object ditentukan dan didefinisikan secara detail, sehubung dengan model bisnis


Memodelkan proses

Pasangan data objek yang telah didefiniskan di fase data modeling, diubah untuk membuat arus informasi bisnis, yang dibutuhkan untuk mencapai tujuan bisnis tertentu, sesuai dengan model bisnis. Model proses, untuk pengubahan atau peningkatan ke pasangan data object, didefinisikan di fase ini. Deskripsi proses untuk menambah, menghapus, mengambil, atau mengubah sebuah data object, diberikan


Application Generation

Sistem yang sebenarnya dibangun, dan coding dilakukan menggunakan alat otomatis untuk mengubah proses dan model data ke protoipe sebenarnya.


Testing and Turnover

Waktu testing secara keseluruhan, dikurangi dalam model RAD karena prototipe telah dites masing - masing dalam setiap perulangan. Tetapi, arus data dan tampilan dari semua komponen, perlu di tes secara menyeluruh dengan tes yang menyeluruh. Dikarenakan kebanyakan dari komponen programming telah dites, hal ini menurunkan resiko masalah besar dalam sistem. 


Aplikasi dari model RAD

Model RAD dapat dilaksanakan secara sukses di dalam proyek, apabila modulisasi dalam proyek memungkinkan. Apabila proyek tidak dapat dibagi menjadi modul - modul, RAD mungkin akan gagal

Beberapa skenario dimana RAD dapat digunakan dalam pengembangan perangkat lunak yakni :

  • RAD hanya seharusnya digunakan ketika sistem yang ingin dibangun dapat dimodulkan, untuk dikerjakan secara incremental
  • Hanya seharusnya diguankan apabila tersedia banyak desainer untuk modelling.
  • Hanya seharusnya digunakan hanya ketika anggaran yang dimiliki dapat mencukupi penggunaan automated code generating tools.
  • Model RAD SDLC hanya seharusnya dipilih apabila domain expert tersedia dengan pengetahuan bisnis yang relevan
  • Hanya seharusnya digunakan dimana persyaratannya berubah ketika melaksanakan proyek, dan protoype harus diserahkan kepada pelanggan secara berkelanjutan setiap 2 - 3 bulan.


Keuntungan dan kekurangan model RAD

Model RAD memberikan kemampuan pemberian prototype dengan cepat karena model ini mengurangi waktu pengembangan secara keseluruhan, dikarenakan kemampuan penggunaan ulang dari komponen, dan kemampuan pengembangan paralel. RAD hanya bekerja dengan baik apabila tersedia insinyur dengan tingkat kemampuan yang tinggi, dan pelanggan juga berkomitmen untuk mencapai target prototype dalam waktu yang diberikan. Apabila terdapat komitmen yang kurang dari salah satu pihak, model ini dapat berakhir gagal

Keuntungan dari model RAD adalah :

  • Dapat mengakomodasi perubahan persyaratan
  • Kemajuan dapat diukur
  • Waktu pengembangan dapat menjadi pendek karena penggunaan alat powerful RAD
  • Produktifitas tinggi dengan jumlah personil terbatas dalam waktu pendek
  • Mengurangi waktu pengembangan
  • Meningkatkan kemampuan penggunaan ulang komponen
  • Review awak didapat dengan cepat
  • Medorong masukan pelanggan
  • Integrasi dari awal menyelesaikan masalah integrasi dari awal proyek.

Sedangkan kelemahan dari RAD adalah sebagai berikut :

  • Berketergantungan tinggi kepada anggota tim yang kuat untuk mengidentifikasi persyaratan bisnis
  • Hanya sistem yang dapat di modularkan yang dapat dibangun dengan RAD
  • Membutuhkan Developer yang memiliki kemampuan tinggi/desainer
  • Ketergantungan tinggi terhadap kemampuan modeling
  • Tidak dapat dilakukan pada proyek murah, karena biaya modeling dan automated code generation sangat tinggi
  • Compleksitas manajemen yang lebih tinggin
  • Cocok untuk sistem yang berbasis komponen dan dapat diukur.
  • Membutuhkan keterlibatan pengguna selama masa hidupnya
  • Cocok untuk proyek yang butuh waktu pengembangan yang pendek 

Kesimpulan :

  1. Pengembangan perangkat lunak berfungsi untuk membantu proses pengembangan perangkat lunak, dengan tujuan menerjemahkan kebutuhan yang dimiliki pemakai, menjadi sebuah produk berupa perangkat lunak.
  2. Aktivitas dalam proses pengembangan perangkat lunak mencangkup menerjemahkan kebutuhan pemakai, membuat desain perangkat lunak yang diinginkan pemakai, membuat desain menjadi code program, menguji coba kode program, dan memeriksa kebenaran perangkat lunak untuk operasional
  3. Proses dari pengembangan perangkat lunak mencangkup apa yang harus dikerjakan, bagaimana perangkat lunak harus dibuat, menuliskan program berdasarkan desain, pengujian dan integrasi modul program, menguji sistem
  4. Setelah proses pengembangan perangkat lunak selesai dan menghasilkan produk, ketika terjadi masalah – masalah kritis yang tidak dapat diatasi dalam tahap pemeliharaan perangkat lunak, maka akan dilakukan pengembangan kembali suatu perangkat lunak untuk mengatasinya, proses ini kembali lagi ke tahap pengembangan perangkat lunak, hal ini disebut siklus pengembangan perangkat lunak
  5. Tahapan utama dari SDLC dapat terdiri dari tahapan perencanaan, analisis, desain, implementasi, dan perawatan perangkat lunak.
  6. Terdapat beberapa model SDLC, yakni model waterfall, spiral, agile, RAD.
  7. Setiap model SDLC memiliki langkah yang berbeda, kelebihan dan kekurangan, serta fungsi masing - masing.
  8. Waterfall model dilakukan dengan menyelesaikan setiap langkah satu per satu. Model ini dilakukan ketika proyeknya pendek dan memiliki tujuan jelas..Model ini tidak cocok untuk proyek panjang dan memiliki keinginan pelanggan yang tidak pasti atau berubah ubah.
  9. Model spiral dilakukan dengan menjalankan langkah - langkah dalam bentuk seperti spiral. Model ini cocok untuk proyek jangka panjang yang memiliki tujuan yang berubah - ubah, anggaran terbatas, resiko yang cukup tinggi, dan persyaratan yang belum pasti. Model ini tidak cocok untuk proyek yang kecil dan beresiko rendah.
  10. Model agile dilakukan dengan memecah produk ke dalam kelompok pengembangan kecil, yang mengurus tugasnya masing - masing, sehingga kemudian produk akan dihasilkan dengan menggabungkan hasil dari masing – masing kelompok. Model ini cocok apabila proyek tidak memiliki banyak sumber daya, dan apabila ingin mendapatkan hasil yang cepat. Model ini tidak cocok untuk proyek yang pelanggan tidak memiliki kepastian akan keinginannya.
  11. Model RAD dilakukan dengan lebih memfokuskan pada pengembangan prototype. Model RAD dilakukan dengan membagi tugas ke dalam kelompok individualistik, yang kemudian akan menjadikan prototype, yang kemudian akan dirakit dengan menggunakan automation tool menjadi sebuah produk akhir. Model ini cocok apabila proyek ingin dilakukan dengan kemampuan mengakomodasikan perubahan, dan apabila prototype harus diberikan kepada pelanggan setiap 2 - 3 bulan.








































Referensi :
https://accounting.binus.ac.id/2020/05/19/memahami-system-development-life-cycle/

https://www.tutorialspoint.com/sdlc/sdlc_quick_guide.htm






















































Comments

Popular posts from this blog

Mengenai Perangkat Lunak

REKAYASA KEBUTUHAN