Assalamu‘alaikum wr. wb.
Halo gais! Dalam Perusahaan-perusahaan Teknologi besar yang mengembangkan Perangkat Lunak, tentunya menggunakan cara ini agar Software-nya berjalan dengan baik. Dengan adanya Siklus Hidup Perangkat Lunak atau Software Development Life Cycle (SDLC), dapat menghidupkan dan mengelola kualitas sebuah Software.
Sumber Artikel Materi : Phoenixnap.com (Blog), Tutorialspoint.com, Glints.com, dan Accounting.Binus.ac.id
A. Pengertian Software Development Lifecycle (SDLC)
Software Development Lifecycle (SDLC) adalah proses yang diikuti untuk proyek perangkat lunak, dalam organisasi perangkat lunak. Ini terdiri dari rencana terperinci yang menjelaskan bagaimana mengembangkan, memelihara, mengganti dan mengubah atau meningkatkan perangkat lunak tertentu. Siklus hidup mendefinisikan metodologi untuk meningkatkan kualitas perangkat lunak dan proses pengembangan secara keseluruhan.
Karakter dan jumlah fase yang tepat dalam SDLC bervariasi antara bisnis dan proyek. Model yang paling umum adalah variasi pada langkah-langkah berikut :
- Requirement analysis
- Perencanaan yang mendalam (In-depth planning)
- Product design
- Coding
- Testing
- Deployment
- Perawatan pasca produksi (Post-production maintenance)
Menurut Stackify, software development life cycle adalah sebuah proses yang bisa memproduksi software dengan kualitas tinggi dengan biaya yang rendah. SDLC juga memiliki beberapa tahap kerja, termasuk planning, design, testing, building, dan deployment. Model SDLC yang terkenal meliputi Waterfall model, Spiral model, dan Agile model.
B. Cara Kerja Software Development Lifecycle (SDLC)
Sejatinya, SDLC adalah sebuah proses yang bisa menurunkan biaya pembangunan sebuah software. Sebab, ia didesain untuk mempersingkat waktu produksi secara serentak. Menurut Phoenixnap, SDLC sendiri biasanya dilakukan berdasarkan panduan yang dibuat oleh stakeholders atau klien. Rancangan panduan ini dimulai dengan proses evaluasi sistem yang sudah ada demi efisiensi produk.
Kemudian, tim developer akan mendefinisikan persayaratan-persyaratan dari sistem software yang baru. Setelah itu, software akan dibuat dengan beberapa tahap. dimulai dari identifikasi, perencanaan, rancangan, membangun produk, pengujian, pemasaran, dan pemeliharaan.
Untuk menghindari penggunaan biaya yang terlalu besar, engineer akan meminta feedback dari end-user terhadap produknya. Proses SDLC ini dapat mengeliminasi pekerjaan yang berulang-ulang setelah perbaikan yang sudah selesai.
SDLC menguraikan setiap tahap pengembangan perangkat lunak, memecah proses menjadi fase-fase terpisah yang memiliki individu :
- Sasaran (Goals)
- Tugas (Tasks)
- Harapan (Expectations)
- Instruksi proses
- Dokumentasi
- Kiriman (Deliverables)
- Personel masuk (ditentukan berdasarkan nama atau posisi)
Jumlah pasti dan sifat langkah bergantung pada bisnis dan tujuan produknya. Rata-rata, sebagian besar perusahaan mendefinisikan SDLC dengan lima hingga tujuh fase, meskipun proyek yang lebih kompleks mencapai sepuluh atau lebih tahapan.
Setiap langkah dalam SDLC menghasilkan keluaran (dokumen, diagram, perangkat lunak yang berfungsi, dll.) yang berfungsi sebagai masukan yang diperlukan untuk langkah berikutnya. Terlepas dari pendekatan seperti corong ini, strategi SDLC modern tidak sepenuhnya linier. Tim sering mundur satu atau dua langkah di SDLC untuk melakukan perbaikan atau melakukan perbaikan.
SDLC produk harus menjadi proses hidup yang diperbarui secara rutin oleh tim (atau setidaknya ditinjau). Memperbarui SDLC membutuhkan upaya gabungan dari analis bisnis, pengembang, anggota staf QA, dan pemangku kepentingan.
Strategi SDLC telah ada sejak tahun 1960-an, dan sebagian besar konsep intinya telah berkembang dari waktu ke waktu. Perubahan paling signifikan terjadi pada tahap pengujian. Sementara pengujian secara tradisional merupakan tahap SDLC yang terpisah, tim saat ini lebih suka mengintegrasikan aktivitas keamanan sepanjang siklus hidup untuk membuat perangkat lunak yang lebih andal yang dirancang dengan aman.
C. Langkah-langkah Penerapan pada SDLC
Uniknya, walaupun ia mengurangi durasi produksi, SDLC dapat membereskan kualitas software yang dirasa masih perlu diperbaiki. Gambar berikut adalah representasi grafis dari berbagai tahapan SDLC tipikal.
1. Identifikasi Masalah
Menganalisis kebutuhan dan masalah adalah premis dasar SDLC dan juga persyaratan utama.
Pada fase ini, engineer atau developer menerima semua input yang masuk termasuk dari customer, salesperson, industri, dan juga programmer.
Setelah masukan diberikan, insinyur/engineer akan mencoba mempelajari kekurangan dan kelebihan dari sistem. Tujuan utama dari fase ini adalah untuk meningkatkan sistem saat ini.
2. Perencanaan
Pada tahap ini, tim engineer akan merencanakan berbagai persyaratan untuk membuat software baru atau yang sudah ada. Ini juga termasuk aspek biaya serta bahan yang dibutuhkan.
Selain itu, rencana ini juga menjelaskan risiko atau skenario terburuk yang terkait dengan pemindahan Software ke SDLC.
3. Rancangan
Tahap pekerjaan selanjutnya yang harus dilakukan dalam sistem SDLC adalah tahap desain.
Tahap kerja SDLC dimulai dengan transformasi spesifikasi sebuah software ke dalam design plan yang disebut dengan Desain Dokumen Spesifikasi (DDS).
Semua tim yang relevan, termasuk klien, membantu meninjau rencana ini dan memberikan masukan/feedback.
Sangat penting untuk mengumpulkan semua komentar yang diberikan dalam dokumen ini. Jika terjadi kesalahan pada tahap ini, maka akan mengakibatkan kenaikan harga dan overruns. Bahkan, kemungkinan terburuknya adalah proyek tersebut bisa gagal dan bangkrut.
4. Membangun atau mengembangkan produk
Pada fase SDLC ini, tugas engineer dan tim adalah membuat produk dari bahasa atau line pemrograman.
Jika langkah sebelumnya dikerjakan dengan sangat detail, mungkin langkah ini bisa disebut sebagai langkah yang paling sulit dan membingungkan.
5. Pengujian
Pada fase pengujian, pertanyaan seperti "Apakah kita memiliki apa yang kita inginkan?" akan terus berulang.
Selama pengujian, Insinyur/Engineer dan tim harus memastikan bahwa produk yang diproduksi tidak memiliki cacat dan memenuhi permintaan pelanggan.
6. Memasarkan Produk
Setelah pengujian selesai, proses kerja SDLC selanjutnya yang dapat segera dimulai adalah komersialisasi produk
Langkah ini tidak menunjukkan bahwa setiap langkah SDLC telah selesai. Juga, saran pengguna lain harus disimak lagi. Jika perlu, penyesuaian lebih lanjut dilakukan pada produk.
7. Melakukan Pemeliharaan (Maintenance)
Langkah terakhir yang harus diselesaikan oleh semua perusahaan dalam sistem SDLC adalah Pemeliharaan atau Maintenance.
Saat kondisi dan keadaan teknis berubah, fase akhir SDLC membutuhkan insinyur dan tim untuk memelihara produk jadi. Hal ini harus dilakukan untuk mengurangi kesalahan/error dan menurunkan kualitas produk.
D. Model-model pada SDLC
Ada beberapa model yang biasa digunakan dalam menjalankan proses SDLC, di antaranya adalah :
1. Waterfall model
Model SDLC ini merupakan salah satu model tertua dan terpendek dalam penerapannya. Dalam sistem ini, begitu satu fase selesai, fase berikutnya harus segera dimulai.
Setiap level memiliki rencana kecil dan menghitung mundur ke level berikutnya. Itulah sebabnya tahap ini disebut Waterfall atau Air Terjun, karena setiap tahap memiliki istilah "turunan" kecil lainnya.
2. Agile model
Model Agile adalah model SDLC yang memisahkan produk dari proses dan waktu prosesnya cepat. Dipercayai bahwa metode ini sangat efektif dalam keberhasilan pembuatan produk.
Dengan metode ini, tim mencoba meminimalkan kesalahan pada setiap produk jadi.
Namun, salah satu kelemahan dari metode ini adalah dapat mengarahkan proyek ke arah yang salah dan tidak sesuai dengan kemauan dan ekspektasi dari customer.
3. Iterative model
Metode SDLC ini merupakan metode iteratif tinggi. Pengembang membuat produk dengan versi cepat dan tentunya murah.
Setelah itu, mereka menguji produk dan melihat apakah ada kesalahan. Kerugian dari metode ini adalah dapat mengonsumsi bahan mentah jika masih ada detail yang perlu diproses.
Setiap iterasi melewati fase-fase berikut :
- Fase awal (analisis kebutuhan proyek, tujuan, dan ruang lingkup).
- Fase elaborasi (desain arsitektur produk fungsional).
- Fase konstruksi (pengodean arsitektur dan pembuatan produk yang dapat digunakan)
- Fase transisi (melepaskan produk ke lingkungan produksi).
Setiap iterasi melewati verifikasi dan membutuhkan umpan balik dari pengguna atau pemangku kepentingan. Iterasi terakhir menyebarkan versi produk yang melalui pengujian ketat dan memenuhi semua persyaratan yang ditentukan dalam DDS.
Tidak seperti metodologi Spiral SDLC (yang memiliki konsep serupa), Model Inkremental Iteratif (Iterative Incremental Model) menyebarkan setiap versi perangkat lunak ke produksi.
4. V-Shaped model
V-shaped SDLC model merupakan kelanjutan dari model air terjun. Metode SDLC ini menguji setiap langkah dari proses pengembangan produk.
Setiap fase verifikasi memiliki tahap validasi yang ditugaskan, yang membuat diagram model muncul sebagai huruf V (dasar dari V adalah fase pengkodean). Tahap verifikasi terdiri dari langkah-langkah berikut :
- Requirement analysis
- System design
- High-level design (Arsitektur dan fungsionalitas modul)
- Low-level design (Arsitektur dan fungsionalitas komponen individual)
Tahap validasi memiliki langkah-langkah sebagai berikut :
- Unit Testing (Paralel dengan fase desain tingkat rendah)
- Integration Testing (Paralel dengan fase desain tingkat tinggi)
- System Testing (Paralel dengan fase desain sistem)
- Acceptance Testing (Paralel dengan fase analisis kebutuhan)
Model berbentuk V yang sebenarnya tidak memiliki fase pengujian khusus karena setiap tahap pengembangan memiliki urutan QA sendiri.
5. Big Bang model
Model Software Development Lifecycle (SDLC) ini diklaim berisiko tinggi untuk dijalankan. Mengapa demikian? Hal ini dikarenakan dalam pengerjaannya, tim menginvestasikan semua bahan baku dalam proyek tersebut. Jadi metode ini bekerja untuk proyek kecil dan biasanya berbahaya untuk proyek besar.
Dalam banyak kasus, pengembang adalah satu-satunya yang bertanggung jawab untuk mengetahui persyaratan, menulis kode, dan memeriksa validitas produk jadi.
Kelebihan model ini :
- Taktik SDLC high-risk-high-reward yang tidak menginvestasikan banyak waktu atau uang ke dalam sebuah proyek.
- Membutuhkan sedikit perencanaan.
- Pilihan bagus untuk produk sederhana bernilai rendah yang tidak berinteraksi dengan pelanggan.
- Pilihan alami untuk tim dan perusahaan kecil tanpa proses formal yang ketat.
- Memberi pengembang kebebasan untuk mengerjakan produk dengan caranya sendiri.
Kekurangan dari model ini :
- Kurangnya perencanaan awal membuat big bang sangat rentan terhadap kesalahan.
- Tidak termasuk fase pengujian bawaan apa pun.
- Bukan pilihan yang baik untuk proyek besar, berkelanjutan, atau kompleks.
6. Spiral model
Metode ini paling fleksibel dan mirip dengan model iteratif. Metode ini berfokus pada pengulangan dalam proses.
Kelebihan modelnya :
- Tim dengan mudah mundur satu langkah dalam siklus jika terjadi kesalahan.
- Analisis risiko yang mendalam menjadikan SDLC ini model masuk untuk bisnis di industri yang berat kepatuhannya.
- Sangat cocok untuk proyek besar dengan persyaratan dan ruang lingkup yang sulit ditentukan.
- Memungkinkan tim untuk beradaptasi dengan harapan pengguna dengan cepat.
- Sedikit risiko berdampak negatif pada UX.
Kekurangan dari modelnya :
- Biaya sering lepas kendali jika tim melewati terlalu banyak iterasi.
- Membutuhkan tim ahli untuk mengevaluasi kapan harus mengakhiri iterasi dan beralih ke fase SDLC berikutnya.
- "Berlebihan" untuk proyek yang lebih kecil dengan sedikit ketergantungan dan persyaratan sederhana.
7. Model Synchronize And Stabilize (SDLC)
Model ini adalah model yang digunakan oleh Microsoft. Secara garis besar, Model Synchronize and Stabilize ini sama dengan model incremental, tetapi oleh CUsamano dan Selby tahun 1997 menyebutnya sebagai model Syncronize and Stabilized Model karena ada beberapa proses manajemen yang ditekannya oleh microsoft. Analisis kebutuhan dilakukan dengan wawancara dengan sejumlah konsumen yang potensial. Kemudian kebutuhan-kebutuhan tersebut dibuat paket dan disusun daftar secara prioritas. Kemudian spesifikasi ditulis. Selanjutnya pekerjaan dibagi dalam tiga atau empat bagian pembangunan software. Bagian pertama menangani hal-hal yang paling kritis, bagian selanjutnya menangani hal-hal yang krisis selanjutnya, dan seterusnya.
Kelebihan Model Synchronize And Stabilize (SDLC), yaitu :
- Membagi produk yang besar ke dalam bagian-bagian yang lebih kecil (prioritas dari fitur produk yang memiliki tim fitur kecil dapat dibuat dalam beberapa bulan)
- Membuat project bekerja secara sistematis meskipun mereka tidak dapat menggambarkan dan menyelesaikan suatu produk di awal project.
- Mengijinkan tim besar bekerja menjadi tim yang lebih kecil dengan membagi sebuah tim menjadi beberapa bagian, bekerja secara paralel tetapi tetap dapat berkesinambungan dalam men synchronizing setiap perubahan, stabilizing produk dan menemukan serta memperbaiki kesalahan.
- Memfasilitasi masukkan dari customer, fitur produk dan waktu pengembangan yang pendek, yang didukung oleh mekanisme masukkan customer, prioritas, menyelesaikan dahulu bagian yang sangat penting dan melakukan perubahan tanpa harus mengurangi fitur yang diperlukan.
8. Model Rational Unified Process (RUP)
Unified Process (UP) adalah metodologi pengembangan sistem berbasis objek. Metode ini sudah menjadi salah satu metode yang banyak digunakan dalam pengembangan sistem berorientasi objek. UP memperkenalkan pendekatan baru untuk siklus hidup pengembangan sistem yang menggabungkan Perulangan (Iterations) dan Tahapan (Phases) yang disebut dengan Siklus Hidup UP (UP Lifecycle). UP mendefinisikan empat tahapan siklus hidup yaitu inception, elaboration, construction, dan transition.
Kelebihan Model RUP :
- Ada beberapa keuntungan dengan mengunakan RUP di antaranya
- Menyediakan akses yang mudah terhadap pengetahuan dasar bagi anggota tim.
- Menyediakan petunjuk bagaimana menggunakan UML secara efektif.
- Mendukung proses pengulangan dalam pengembangan software
- Memungkinkan adanya penambahan-penambahan pada proses.
- Memungkinkan untuk secara sistematis mengontrol perubahan- perubahan yangterjadi pada software selama proses pengembangannya.
- Memungkinkan untuk menjalankan test case dengan menggunakan Rational TestManager Tool
Kekurangan Model RUP :
- Metodologi ini hanya dapat digunakan pada pengembangan perangkat lunak yang berorientasi objek dengan berfokus pada UML (Unified Modeling Language)
E. Manfaat Software Development Lifecycle (SDLC)
Jelas bahwa SDLC adalah sistem pembuatan serta pengelolaan software yang mumpuni.
Ia dapat mengurangi durasi proses produksi, mengurangi biaya operasional, dan menjaga kualitas produk untuk waktu yang tidak sebentar.
Nah, selain hal-hal tersebut, software development life cycle memiliki sejumlah manfaat lain. Berikut ini adalah penjelasannya, termasuk :
- Biaya pengembangan lebih rendah.
- Peningkatan kualitas produk perangkat lunak.
- Lebih banyak visibilitas atas aktivitas tim pengembangan.
- Time-to-market lebih cepat karena organisasi yang lebih baik, lebih transparan, dan lebih sedikit perbaikan setelah fakta.
- Perencanaan proyek, estimasi anggaran, dan penjadwalan yang lebih tepat.
- Peningkatan komunikasi antara tim yang berbeda dan manajemen atas.
- UX yang ditingkatkan karena lebih sedikit bug dan kesalahan mencapai produksi.
- Peluang lebih rendah untuk serangan dunia maya yang berhasil.
- Lebih sedikit kemungkinan kegagalan proyek.
- Peningkatan kualitas dan ketepatan dokumentasi.
- Pemahaman mendalam tentang kebutuhan pelanggan dan bisnis.
- Lebih banyak peluang bagi pemangku kepentingan untuk memberikan masukan mereka pada proyek (terutama penting pada tahap awal pengembangan produk).
- Pemahaman yang lebih baik tentang kemampuan tim saat ini dan area untuk peningkatan potensial.
- Tingkat retensi karyawan yang lebih baik karena pengembang biasanya suka mengerjakan proyek berbasis SDLC yang lancar.
- Lebih sedikit kemungkinan menderita kerusakan data atau merusak integritasnya.
- Budaya tim yang menekankan berbagi pengetahuan dan pembelajaran berkelanjutan.
- Peningkatan ketersediaan layanan dan lebih sedikit kemungkinan downtime yang tidak direncanakan.
- Pencadangan dan pemulihan bencana (BDR) yang direncanakan dengan lebih baik.
Itulah Penjelasan singkat Materi tentang apa itu Software Engineering atau Rekayasa Perangkat Lunak (RPL). Semoga bermanfaat bagi Mahasiswa Teknik Informatika (TI) dan Sistem Informasi (SI).
Terima Kasih 😄😘👌👍 :)
Wassalamu‘alaikum wr. wb.