Proses pengembangan perangkat lunak (Software development
process) adalah suatu struktur yang diterapkan pada pengembangan suatu produk
perangkat lunak yang bertujuan untuk mengembangkan sistem dan memberikan
panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem melalui
tahap demi tahap. Proses ini memiliki beberapa model yang masing-masing
menjelaskan pendekatan terhadap berbagai tugas atau aktivitas yang terjadi
selama proses.
Berikut ini penjelasan dari beberapa model proses.
Berikut ini penjelasan dari beberapa model proses.
1. Incremental Model
Incremental model adalah perbaikan dari model waterfall yang pengembangannya dilakukan secara bertahap, untuk mengulang proses tidak harus mengunggu satu siklus selesai. Satu siklus dianggap sebagai satu increment. Berikut merupakan proses tahapan dari Incremental Model :
- Requirement , Proses penentuan kebutuhan / analisis kebutuhan.
- Specification, Proses spesifikasi atau penyesuaian kebutuhan menggunakan analisis kebutuhan.
- Architecture Design, Proses perancangan software yang
terbuka agar dapat diterapkan sistem pembangunan per-bagian pada tahapan
selanjutnya.
- Code, Proses pengkodean.
- Test, Tahap pengujian.
Kelebihan dari Incremental model antara lain :
- Risiko yang rendah pada pengembangan sistem.
- Pemakaian sistem yang mudah.
- Tahap awal adalah dasar dari pembuatan tahap berikutnya (dikerjakan secara terurut).
- Cocok untuk proyek skala kecil.
- Client dapat menggunakan increment pertama sebagai prototype.
- Mengurangi trauma karena perubahan sistem. Client dibiasakan perlahan-lahan menggunakan produknya bagian per bagian.
- Memaksimalkan pengembalian modal investasi client.
Kelemahan dari Incremental Model antara lain :
- Hanya berlaku pada proyek skala kecil.
- Kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung, sehingga susah untuk diintegrasikan (dan dapat menjadi build and fix model).
- Membutuhkan waktu yang lama untuk menghasilkan produk lengkap.
2. Concurrent Development Model
Concurrent Developement Model, atau biasa disebut Concurrent Engineering merupakan serangkaian kegiatan framework, software. Tindakan rekayasa, tugas dan kondisi terkait.
Berikut merupakan gambar proses Concurrent Engineering :
Kelebihan dari Concurrent Engineering antara lain :
- Semua kegiatan dijalankan secara bersamaan tetapi berbeda kondisi.
- Berlaku untuk semua jenis perangkat lunak.
- Hasil yang di dapat akan menghasilkan suatu sistem yang sangat baik karena terdapat perancangan yang terjadi secara besar dan terencana secara matang.
Kekurangan dari Concurrent Engineering antara lain :
- Memungkinkan terjadinya perubahan besar-besaran, maka akan membuat biaya dan waktu yang diperlukan membengkak.
3. V-Model
Bisa dikatakan sebagai perluasan dari Waterfall Model karena tahap prosesnya yang mirip.
Berikut merupakan gambar proses dari V-Model :
Kekurangan dari V-Model antara lain :
Merupakan teknik Incremental bertingkat yang memungkinkan software untuk dibangun dalam waktu yang cepat.
5. Spiral Model
Model ini merupakan penggabungan dari fitur waterfall model dan prototype. Setiap tahapan selalu dilakukan risk analis dan testing dan diproses secara realistis pada software karena proses dari awal sampai proses pengiriman dan perbaikan dapat dipahami oleh client dan developer. Model ini mempunyai rangkaian kerja yang iterasi (peningkatan pada model) awal yang berbentuk prototype dan kemudian iterasi selanjutnya akan menjadi perkembangan dari model sebelumnya. Model ini dapat terus digunakan meskipun software sudah dikirimkan karena proses (siklus) dapat berputar lagi jika ada perubahan pada software.
Berikut merupakan gambar proses dari Spiral Mode :
Kelebihan dari Spiral Model antara lain :
Berikut merupakan gambar proses dari V-Model :
Kelebihan dari V-Model antara lain :
- Model yang fleksibel.
- User dapat memberikan masukkan untuk perkembangan V-Model
Kekurangan dari V-Model antara lain :
- Hanya dapat digunakan sekali dalam suatu proyek.
- Terlalu fleksibel sehingga jadwal kegiatan terlihat abstrak.
4. RAD Model
Merupakan teknik Incremental bertingkat yang memungkinkan software untuk dibangun dalam waktu yang cepat.
Berikut merupakan gambar proses dari RAD Model :
Kelebihan dari RAD Model antara lain :
- Mempunyai kemampuan "menggunakan kembali" komponen yang ada (reusable object).
- Setiap fungsi utama dimodulkan dalam waktu tertentu kurang dari 3 bulan dan dapat didiskusikan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga lebih efisien waktu.
Kekurangan dari RAD Model antara lain :
- Butuh orang yang banyak untuk menyelesaikan proyek skala besar.
- Tidak cocok untuk proyek yang berisiko tinggi.
- Tidak cocok bagi sistem perangkat lunak yang tak bisa dimodulkan.
5. Spiral Model
Model ini merupakan penggabungan dari fitur waterfall model dan prototype. Setiap tahapan selalu dilakukan risk analis dan testing dan diproses secara realistis pada software karena proses dari awal sampai proses pengiriman dan perbaikan dapat dipahami oleh client dan developer. Model ini mempunyai rangkaian kerja yang iterasi (peningkatan pada model) awal yang berbentuk prototype dan kemudian iterasi selanjutnya akan menjadi perkembangan dari model sebelumnya. Model ini dapat terus digunakan meskipun software sudah dikirimkan karena proses (siklus) dapat berputar lagi jika ada perubahan pada software.
Berikut merupakan gambar proses dari Spiral Mode :
Kelebihan dari Spiral Model antara lain :
- Setiap tahap pengerjaan dibuat prototyping untuk mempermudah dalam pencarian kelemahan.
- Cocok untuk pengembangan proyek skala besar.
- Masa pakainya dapat disesuaikan agar perangkat lunak selama hidup perangkat lunak komputer.
- Pengembang dan user dapat lebih memahami setiap risiko dalam setiap tingkat evolusinya karena perangkat lunak terus bekerja selana proyek.
- Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk.
- Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja iteratif.
- Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko sebelum menjadi permaslahan yang serius.
- Banyak konsumen (Client) tidak percaya bahwa pendekatan secara evolusioner dapat dikontrol oleh kedua pihak. Model spiral mempunyai resiko yang harus dipertimbangkan ulang oleh konsumen dan developer.
- Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses.
- Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru.
- Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
- Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute.
6. Agile Development Methods
Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari metodologi pengembangan perangkat lunak yang digunakan dalam pengembangan perangkat lunak.
Scrum tepat digunakan saat kondisi :
Scrum memiliki prinsip yaitu:
Kelebihan Scrum antara lain:
Kekurangan Metode Scrum antara lain:
8. Specialized Process Model
Terdiri dari 3 jenis, yaitu : Component Based Development, Formal Method, dan Aspect Oriented Model.
a. Component Based Development
Model konsep yang digunakan ketika konsep "reuse" menjadi tujuan utama dalam pembangunan perangkat lunak. Arsitekturnya dibentuk dalam komponen-komponen.
b. Formal Method
Model proses yang menggunakan model matematika dalam setiap spesifikasi kebutuhannya.
c. Aspect Oriented Model
Paradigma yang menekankan pendefinisian, penspesifikasian, dan pembangunan aspek (function, fitur, dan konten informasi).
Berikut merupakan gambar proses dari Specialized Process Model :
a. Component Based Development
b. Formal Method
c. Aspect Oriented Model
Kelebihan dari Specialized Process Model antara lain :
Kekurangan dari Specialized Process Model antara lain :
Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari metodologi pengembangan perangkat lunak yang digunakan dalam pengembangan perangkat lunak.
Ada
beberapa langkah dalam Agile Development Methods, yaitu :
- Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan dari perangkat lunak yang akan dibuat.
- Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.
- Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas agar bug yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.
- Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses dokumentasi perangkat lunak untuk mempermudah proses maintenanance kedepannya.
- Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem. Setelah sistem memenuhi syarat maka perangkat lunak siap dideployment.
- Pemeliharaan, langkah terakhir yaitu pemeliharaan. Tidak ada perangkat lunak yang 100% bebas dari bug, oleh karena itu sangatlah penting agar perangkat lunak dipelihara secara berkala.
Ada juga
beberapa model dalam Agile Development Methods, seperti: Acceptance Test Driven
Development (ATDD), Agile Modeling, Adaptive Software Development (ASD), Agile
Unified Process (AUP), Continuous integration (CI), Crystal Clear, Crystal
Methods, Dynamic Systems Development Method (DSDM), Extreme Programming (XP),
Feature Driven Development (FDD), Graphical System Design (GSD), Kanban, Lean
software development, Rational Unified Process (RUP), Scrum, Scrum-ban,
Story-driven modeling,Test-driven development (TDD), Velocity tracking, dan
Software Development Rhythms.
Beberapa
keuntungan dari Agile Development Methods :
- Menambah produktivitas tim.
- Menambah kualitas dari perangkat lunak.
- Menambah kepuasan dari client.
- Menghemat biaya.
Dalam
Agile Software Development interaksi dan personel lebih penting dari pada proses
dan alat, software yang berfungsi lebih penting daripada dokumentasi yang
lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan
sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana.
Pada
intinya, Agile Development Methods sangat membantu para pengembang perangkat
lunak dalam melakukan penyerahan produk secara tepat waktu dari suatu tahap
operasional perangkat lunak yaitu pada bagian analisa dan desain.
Kelebihan
Metode Agile antara lain :
- Pembangunan sistem dibuat lebih cepat.
- Meningkatkan kepuasan kepada klien.
- Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
- Jika pada saat pembangunan sistem terjadi kegagalan,kerugian dar segi materi relatif kecil.
Kekurangan
Metode Agile antara lain :
- Siap menghadapi beberapa perubahan.
- Bekerja dengan cepat, jika tim tidak dapat menyesuaikan tidak akan maksimal.
- Rencana awal dapat berubah se waktu-waktu.
- Jadwal tidak menentu.
- Jika tim tidak bisa komunikasi dengan baik maka akan terjadi kemunduran.
7. Scrum
Model
Scrum, pada dasarnya merupakan salah satu komponen dari Agile development methods.
Akhir-akhir ini scrum mulai marak di implementasikan di perusahaan IT di
Indonesia, dikarenakan maraknya perusahaan IT mengimplementasikan agile
development. Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi
pekerjaan yang perlu dilakukan, memprioritaskan yang bekerja dengan
berkomunikasi dengan pelanggan atau wakil pelanggan, dan pelaksanaan yang
bekerja menggunakan rilis iterative dan memiliki tujuan utama untuk mendapatkan
perkiraan berapa lama development akan dilakukan.
Scrum
merupakan suatu kerangka kerja. Jadi, bukannya menyediakan deskripsi rinci
tentang bagaimana segala sesuatu yang harus dilakukan pada proyek seperti
diserahkan kepada tim pengembangan perangkat lunak pada umumnya. Hal ini
dilakukan supaya tim akan tahu bagaimana cara terbaik untuk memecahkan masalah.
Element-Element
dalam Scrum
Ada 3
elemen organisasi utama pada scrum yaitu Product Owner, Scrum Master, dan The
Scrum Team.
- Product Owner mewakili bisnis, pelanggan atau pengguna dan memandu tim ke arah pegembangan produk yang tepat.
- Scrum Master dapat dianggap sebagai pemersatu bagi product owner dan scrum team (developer, QA, technical wirter dll), membantu anggota tim menggunakan kerangka Scrum untuk menyelesaikan suatu project berdasarkan timeline yang ditentukan di awal.
- Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9 orang. Untuk projek yang sangat besar, pekerjaan biasanya dibagi dan didelegasikan ke grup-grup kecil.
Scrum tepat digunakan saat kondisi :
- Keperluan berubah dengan cepat.
- Tim programmer sedikit, yaitu 5-9 orang.
- Pelanggan tidak terlalu paham dengan apa yang diinginkan.
Scrum memiliki prinsip yaitu:
- Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain.
- Proses dapat beradaptasi terhadap perubahan teknis dan bisnis.
- Proses menghasilkan beberapa software increment.
- Pembangunan dan orang yang membangun dibagi dalam tim yang kecil.
- Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun.
- Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan.
Kelebihan Scrum antara lain:
- Keperluan berubah dengan cepat
- Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain
- Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat
- Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
- Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Kekurangan Metode Scrum antara lain:
- Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
8. Specialized Process Model
Terdiri dari 3 jenis, yaitu : Component Based Development, Formal Method, dan Aspect Oriented Model.
a. Component Based Development
Model konsep yang digunakan ketika konsep "reuse" menjadi tujuan utama dalam pembangunan perangkat lunak. Arsitekturnya dibentuk dalam komponen-komponen.
b. Formal Method
Model proses yang menggunakan model matematika dalam setiap spesifikasi kebutuhannya.
c. Aspect Oriented Model
Paradigma yang menekankan pendefinisian, penspesifikasian, dan pembangunan aspek (function, fitur, dan konten informasi).
Berikut merupakan gambar proses dari Specialized Process Model :
a. Component Based Development
b. Formal Method
c. Aspect Oriented Model
Kelebihan dari Specialized Process Model antara lain :
- Pelanggan dapat mengakses kefungsian yang telah diuji terlebih dahulu daripada model waterfall.
- Feedback lebih awal dapat meningkatkan kemungkinan untuk menghasilkan produk yang memuaskan pelanggan.
- Hasil produk lebih berkualitas dibandingkan dengan metode lain. Karena :
a.
Bagian
kefungsian inti yang krusial dikembangkan lebih awal dan diuji berulang kali
pada tiap perilisan.
b.
Hanya
sebagian kecil dari kefungsian yang ditambahkan dalam tiap perilisan agar lebih
mudah dalam tahap pengujian.
c.
Dapat
mengatasi kesalahan desain lebih awal dan memperbaikinya bahkan bisa mendesain
ulang.
- Harus menunggu tahap sebelumnya untuk selesai sebelum lanjut ke tahap berikutnya.
- Tidak berlaku bagi proyek yang persyaratannya terus berubah.
- Tidak ada perilisan prototype dalam model ini.
Referensi :
- http://www.markijar.com/2015/04/kelebihan-dan-kekurangan-model-proses.html
- https://www.academia.edu/10658998/Kelebihan_Dan_Kekurangan_Dari_Macam-Macam_Model_Pengembangan_Perangkat_Lunak?auto=download
- https://sites.google.com/a/student.unsika.ac.id/metodologi-penelitian-septian-maulana-1141177004039/documents/metode-the-concurrent-development-model
- http://tinta-merahputih.blogspot.com/2012/04/keuntungan-dan-kerugian-scrum.html
- http://awangherlambang.blogspot.com/2015/08/kelebihan-dan-kekurangan-model-proses.html
- https://brainly.in/question/1351651
Komentar
Posting Komentar