Perkembangan & Model pengembangan software
Perkembangan software telah mengalami transformasi besar selama beberapa dekade terakhir. Awalnya, pengembangan software dilakukan secara manual dan sangat tergantung pada keterampilan dan pengalaman pengembang.
Perkembangan software
Perkembangan software merujuk pada evolusi teknologi, metode, dan praktek-praktek dalam pengembangan software dari waktu ke waktu. Sejak awal pengembangan software, perkembangan dalam teknologi dan proses bisnis telah membawa perubahan besar dalam cara kita membangun software
Software Process
Software Process merupakan serangkaian kegiatan yang mengarah ke produksi produk perangkat lunak
Terdapat 2 type software process:
- Plan-driven processes merupakan proses di mana semua kegiatan proses yang direncanakan terlebih dahulu dan kemajuan diukur terhadap rencana ini
- In agile processes merupakan perencanaan tambahan dan lebih mudah untuk mengubah proses yang mencerminkan perubahan kebutuhan pelanggan
Process Flow
Aliran proses (process flow) adalah urutan tindakan yang diperlukan untuk menyelesaikan suatu proses atau tugas dalam suatu proyek atau kegiatan bisnis. Aliran proses dapat digunakan dalam banyak konteks, termasuk pengembangan software, manufaktur, dan administrasi bisnis.
Dalam pengembangan software, aliran proses digunakan untuk menggambarkan urutan tindakan yang harus dilakukan untuk menyelesaikan pengembangan software, dari tahap perencanaan hingga tahap pengiriman.
empat proses secara aliran yang umum digunakan dalam pengembangan software:
- Linier (linear): Proses aliran linier adalah model pengembangan perangkat lunak tradisional yang terdiri dari serangkaian tahap yang berurutan, dimulai dari perencanaan, analisis, desain, implementasi, pengujian, dan pemeliharaan. Setiap tahap harus diselesaikan sebelum tahap berikutnya dimulai.
- Iteratif (iterative): Proses aliran iteratif melibatkan siklus pengembangan yang berulang dan berfokus pada pengembangan yang cepat dan berulang. Setiap iterasi melibatkan serangkaian tahap pengembangan perangkat lunak yang meliputi perencanaan, analisis, desain, implementasi, dan pengujian. Setiap iterasi dapat memperbaiki hasil iterasi sebelumnya.
- Evolusioner (evolutionary): Proses aliran evolusioner melibatkan pengembangan perangkat lunak secara bertahap dan terus-menerus dengan penekanan pada perbaikan yang terus-menerus. Setiap tahap pengembangan mencakup analisis, desain, implementasi, dan pengujian, namun proses pengembangan tidak berakhir setelah tahap implementasi dan pengujian, tetapi terus berlanjut dengan pemeliharaan dan pengembangan lebih lanjut.
- Paralel (parallel): Proses aliran paralel melibatkan beberapa tim pengembangan yang bekerja secara paralel untuk menyelesaikan tugas-tugas pengembangan perangkat lunak yang berbeda dalam waktu yang sama. Proses ini memungkinkan pengembangan perangkat lunak yang lebih cepat dan lebih efisien.
8 model pengembangan perangkat lunak yang umum digunakan
- Model waterfall atau model air terjun adalah salah satu model pengembangan perangkat lunak yang paling awal dan paling sederhana. Model ini menggambarkan pengembangan perangkat lunak sebagai serangkaian tahapan yang dilakukan secara berurutan dan linear, mirip dengan aliran air dalam sebuah air terjun.
- Spiral model adalah salah satu model pengembangan perangkat lunak yang menggabungkan pendekatan iteratif dan inkremental dengan prinsip manajemen risiko. Model ini digunakan untuk proyek-proyek perangkat lunak yang kompleks dan memerlukan pengembangan yang terus-menerus.
- Prototype model adalah salah satu model pengembangan perangkat lunak yang mengikuti pendekatan iteratif dan inkremental. Dalam model ini, pengembang membuat prototipe atau model awal dari perangkat lunak untuk memvalidasi kebutuhan dan persyaratan pengguna. Setelah pengujian dan validasi, pengembang melakukan revisi pada prototipe dan terus mengulangi proses tersebut sampai perangkat lunak dianggap cukup baik.
- Incremental model adalah model pengembangan perangkat lunak yang memecah proses pengembangan perangkat lunak menjadi beberapa iterasi kecil atau modul, yang dikembangkan secara bertahap. Dalam model ini, setiap modul akan mengalami tahap analisis, perancangan, implementasi, dan pengujian secara terpisah.
- Agile model adalah salah satu model pengembangan perangkat lunak yang menekankan pada fleksibilitas dan adaptabilitas terhadap perubahan kebutuhan pengguna. Dalam model ini, pengembangan perangkat lunak dilakukan melalui serangkaian iterasi pendek dan terstruktur, yang dikenal dengan sprint. Setiap sprint biasanya berlangsung selama 1-4 minggu dan pada akhir sprint, tim pengembang akan menghasilkan deliverables atau produk yang siap digunakan oleh pengguna
- Scrum model adalah salah satu metode pengembangan perangkat lunak yang termasuk dalam kelompok metode Agile. Scrum model memiliki pendekatan iteratif dan incremental dalam pengembangan perangkat lunak, yang mengutamakan kerja tim, komunikasi yang efektif, dan transparansi dalam seluruh proses pengembangan perangkat lunak.
- Lean model, juga dikenal sebagai Lean software development, adalah metode pengembangan perangkat lunak yang terinspirasi dari filosofi Lean Manufacturing yang berasal dari Toyota. Lean model bertujuan untuk mengurangi pemborosan dalam proses pengembangan perangkat lunak dan meningkatkan efisiensi serta kualitas produk yang dihasilkan.
- DevOps adalah sebuah model pengembangan perangkat lunak yang menggabungkan antara pengembangan (development) dan operasi (operations) secara terpadu dalam sebuah siklus yang kontinyu. Model DevOps ini bertujuan untuk mengurangi waktu dan biaya dalam pengembangan perangkat lunak serta meningkatkan kualitas dan keamanannya.