Lompat ke konten Lompat ke sidebar Lompat ke footer

Siklus Hidup Pengembangan Perangkat Lunak Berturut (SDLC)

Siklus Hidup Pengembangan Perangkat Lunak Berturut (SDLC) - Artikel ini akan membahas mengenai alur kehidupan yang membentuk perangkat lunak. Melalui artikel ini diharapkan dapat memahami siklus hidup dari perangkat lunak dengan mengetahui dari segi software.

Siklus Hidup Pengembangan Perangkat Lunak Berturut (SDLC)_
image source: www.123rf.com
baca juga kelanjutannya: Model-Model Proses Siklus Rekayasa Perangkat Lunak (SDLC)

Proses perangkat lunak adalah sebuah kerangka kerja untuk membangun perangkat lunak yang berkualitas tinggi. Gambar 2.5 dibawah menunjukkan lapisan teknologi pada rekayasa Perangkat lunak.

Lapisan-lapisan Rekayasa Perangkat Lunak
  • Dari Gambar tersebut dapat dilihat bahwa tujuan utama rekayasa perangkat lunak adalah pencapaian kualitas ( “Quality Focus”). Kualitas ini diterjemahkan ke dalam ukuran-ukuran (metrics), meliputi maintainability, dependability, usability, dan efificiency yang sudah diterangkan di atas.
  • Proses : mendefinisikan kerangka kerja (frame work) , sehingga pembangunan perangkat lunak dapat dilakukan secara sistematis.
  • Metode : mendefinisikan bagaimana perangkat lunak dibangun, meliputi metode-metode yang digunakan dalam melakukan analisis kebutuhan, perancangan, implementasi dan pengujian. Sebagai contoh : metode terstruktur, metode berorientasi objek, dan lain-lain.
  • Alat Bantu : perangkat yang bersifat otomatis maupun semi otomatis yang berfungsi mendukung tiap tahap pembangunan perangkat lunak. Contoh : CASE, CAD, dan lain-lain.

Definisi Software Process

Software process dapat didefinisikan sebagai berikut :
  • Merupakan suatu deskripsi proses yang dijadikan panduan kerja bagi para software engineer dengan memetakan peran dan tanggung jawab mereka masing-masing.
  • Merupakan sekumpulan aktifitas yang ditujukan untuk melakukan pengembangan maupun evolusi software.
  • Merupakan suatu urutan langkah yang diperlukan dalam pengembangan atau pemeliharaan software.
  • Merupakan kerangka teknis dan manajemen untuk menerapkan metode, alat bantu(tool) serta komponen SDM dalam pengerjaan software.
  • (Menurut Ian Sommerville) : merupakan sekumpulan proses dan hasil yang terkait dengan proses tersebut dalam rangka pengembangan produk software.

Aktifitas Umum Dalam Software Process

Untuk mengembangkan perangkat lunak secara memadai, proses pengembangan perangkat lunak harus didefinisikan terlebih dahulu. Usaha yang berhubungan dengan rekayasa perangkat lunak dapat dikategorikan ke dalam beberapa aktifitas dengan tanpa mempedulikan area aplikasi, ukuran proyek atau kompleksitasnya. Berikut adalah aktifitas umum yang terdapat dalam proses pengembangan perangkat lunak :


1. Requirement
Merupakan aktifitas dimana didefinisikan mengenai “apa” (what) yang akan dibangun terkait dengan produk perangkat lunak yang akan dihasilkan. Kebutuhan dari persepsi pelanggan (requirement) didefinisikan dan disepakati. Dari aktifitas ini akan diperoleh pernyataan global mengenai kegunaan sistem serta ketersediaan sumber daya yang akan mendukung pembangunan sistem seperti : kebutuhan sumber daya waktu, biaya dan tenaga (manusia).

2. Specification
Merupakan aktifitas dimana kebutuhan pelanggan (requirement) yang telah ditetapkan ditransformasikan ke dalam kebutuhan sistem. Dari aktifitas ini akan diperoleh spesifikasi detil mengenai produk perangkat lunak yang akan dibangun antara lain seputar fungsionalitasnya (mengidentifikasikan informasi apa yang akan diproses, fungsi dan unjuk kerja apa yang dibutuhkan, tingkah laku sistem seperti apa yang diharapkan), kebutuhan perangkat keras dan perangkat lunak pendukung dalam pembangunannya, dan lain-lain.

3. Design
Merupakan aktifitas dimana hasil analisis kebutuhan dan spesifikasi sistem dibentuk dalam suatu model. Pengembang harus mendefinisikan bagaimana data dikonstruksikan, bagaimana fungsi-fungsi diimplementasikan sebagai sebuah arsitektur perangkat lunak, bagaimana detail prosedur akan diimplementasikan, bagaimana interface ditandai (dikarakterisasi). Dalam membuat pemodelan, pengembang dapat menggambarkan pemodelan berdasarkan prilaku sistem ataupun secara struktural. Dari aktifitas ini akan diperoleh penggambaran sistem dalam bentuk model semacam use case diagram, data flow diagram, sequence diagram, entity relationship diagram, dan lain-lain.

4. Code
Merupakan aktifitas dimana hasil rancangan (model) dari tahapan sebelumnya diterjemahkan dalam bentuk coding program pada sebuah bahasa pemrograman.

5. Test (verification & validation)
Setelah rancangan diterjemahkan ke dalam bentuk coding program selanjutnya akan dilakukan proses pengujian untuk memastikan apakah aplikasi yang dibangun sudah sesuai dengan spesifikasi dan kebutuhan pelanggan yang ditahapan awal ditetapkan.

6. Debug

Merupakan tahapan dimana akan dilakukan proses perbaikan yang diperlukan apabila pada fase pengujian masih ditemukan adanya kesalahan.

7. Maintenance
Aktifitas ini berfokus pada perubahan (change), yang dihubungkan dengan koreksi kesalahan, penyesuaian yang dibutuhkan ketika lingkungan perangkat lunak berkembang, serta perubahan sehubungan dengan perkembangan yang disebabkan oleh perubahan kebutuhan pelanggan. Fase pemeliharaan mengaplikasikan lagi langkah-langkah pada fase definisi dan fase pengembangan, tetapi semuanya tetap bergantung pada konteks perangkat lunak yang ada. Ada empat tipe perubahan yang terjadi selama masa fase pengembangan yaitu :

a. Koreksi (corrective)
Meskipun dengan jaminan kualitas yang terbaik, sepertinya pelanggan akan tetap menemukan cacat pada perangkat lunak. Pemeliharaan korektif mengubah perangkat lunak, membetulkan cacat atau rusak.

b. Adaptasi (adaptive)
Dari waktu ke waktu, lingkungan original (contohnya CPU, sistem operasi, aturan-aturan bisnis, karakterisasi produk eksternal) dimana perangkat lunak dikembangkan akan terus berubah. Pemeliharaan adaptif menghasilkan modifikasi kepada perangkat lunak untuk mengakomodasi perubahan pada kebutuhan fungsional original.

c. Pengembangan (perfective)
Ketika perangkat lunak dipakai, pelanggan akan mengenali fungsi-sungsi tambahan yang memberi mereka keuntungan. Pemeliharaan perfektif memperluas perangkat lunak sehingga melampaui kebutuhan fungsi originalnya.

d. Pencegahan (preventive)
Keadaan perangkat lunak semakin memburuk sehubungan dengan waktu, dan karena itu preventive maintenance yang sering juga disebut software engineering (rekayasa perangkat lunak), harus dilakukan untuk memungkinkan perangkat lunak melayani kebutuhan para pemakainya. Pada dasarnya preventive maintenance melakukan perubahan pada program komputer sehingga bisa menjadi lebih mudah untuk dikoreksi, disesuaikan dan dikembangkan.

Aktifitas dasar dalam software process menurut Ian Sommerville antara lain :

1. Specification
Aktifitas dimana pelanggan dan pengembang membuat definisi mengenai software yang akan dibangun dan juga batasan pada pengembangannya.

2. Development
Aktifitas dimana software diproduksi ( didisain dan diprogram)

3. Validation
Aktifitas dimana dilakukan proses pengecekan apakah software yang dibangun sudah sesuai dengan keinginan pelanggan.

4. Evolution
Aktifitas dimana dilakukan perubahan/modifikasi terhadap software untuk diadaptasikan terhadap perubahan kebutuhan dari pelanggan.

Aktifitas atau langkah-langkah yang dijabarkan dalam pengembangan perangkat lunak tersebut harus diimbangi dengan sejumlah aktifitas pelindung (umbrella activities). Kegiatan-kegiatan khusus di dalam kategori ini menyangkut :
  • Manajemen proyek PL : melindungi agar PL yang ada hasilnya bagus
  • Formal technical review, contoh : menemui user dan mengecek kebutuhannya untuk analisis. Jika tidak dilakukan, nanti kita buat PL yang sesuai pikiran kita, bukan sesuai dengan kebutuhan user.
  • Software quality assurance (jaminan kualitas PL) : langkah supaya PL berkualitas
  • Manajemen konfigurasi PL : bagaimana PL bisa dikonfigurasikan atau dibuat
  • Pembuatan dan penyiapan dokumen : sebagai senjata jika user tiba-tiba meminta tambahan fungsi PL
  • Reusability management (manajemen reusabilitas): komponen PL bisa dipakai ulang
  • Measurement (pengukuran) : harus ada dalam setiap tahap
  • Risk Management (manajemen resiko) : risiko harus diantisipasi supaya tidak gagal
Aktifitas pelindung diaplikasikan ke seluruh proses perangkat lunak

Karakteristik Software Process Yang Baik

1. Understandability
Proses secara eksplisit didefinisikan sehingga mudah dipahami bagi siapapun yang terlibat di dalam proses pengembangan.

2. Visibility
Aktifitas proses memberi hasil yang jelas sehingga kemajuan proses dapat terlihat dari luar pihak pengembang.

3. Supportability

Proses dapat didukung oleh teknologi semacam CASE tools.

4. Acceptability
Penerimaan atas proses yang terdefinisi dan yang digunakan oleh software engineer selama pembangunan produk perangkat lunak.

5. Reliability
Proses didisain dengan suatu metode untuk menghindar dari kesalahan, dan apabila ada kesalahan dapat terdeteksi sedini mungkin sebelum mengakibatkan cacat pada produk akhir.

6. Robustness
Proses dapat terus dilanjutkan meskipun terdapat masalah yang tidak diharapkan muncul.

7. Maintainability
Proses dapat mengadaptasi terhadap permintaan perubahan ataupun perbaikan.

8. Rapidity
Proses dapat diselesaikan dalam waktu yang relatif cepat.

Sekian artikel tentang Siklus Hidup Pengembangan Perangkat Lunak Berturut (SDLC). Semoga bermanfaat.

Daftar Pustaka
  • Software Engineering, Ian Sommerville
  • Software Engineering, Roger S.Pressman
Nikita Dini
Nikita Dini Blogger, Internet Marketer, Web Designer

Posting Komentar untuk "Siklus Hidup Pengembangan Perangkat Lunak Berturut (SDLC)"