Software Development Life Cycle

SDLC dimulai dari tahun 1960-an, untuk mengembangkan sistem skala usaha besar secara fungsional untuk para konglomerat pada jaman itu. Sistem-sistem yang dibangun mengelola informasi kegiatan dan rutinitas dari perusahaan-perusahaan yang nantinya akan memiliki jumlah data yang sangat banyak seiring berkembangnya sistem yang berjalan.
SDLC atau Software Development Life Cycle atau sering disebut juga System Development Life Cycle adalah proses mengembangkan atau mengubah suatu sistem perangkat lunak yang memakai metodologi yang dipakai oleh orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya, berdasarkan pengalaman terbaik atau cara-cara yang sudah pasti terjamin sangat baik. Seperti halnya proses perubahan pada seseorang, untuk menjadi orang yang sukses maka dibutuhkan beberapa tahap untuk dilalui, sama halnya dengan membuat perangkat lunak, memiliki proses yang dilalui agar dapat menghasilkan perangkat lunak yang berkualitas.

 

Tahapan-tahapan yang ada pada SDLC secara umum adalah sebagai berikut:

1. Inisiasi (initiation), tahap ini biasanya ditandai dengan pembuatan proposal proyek perangkat lunak.

2. Pengembangan konsep sistem (system concept development), mendefinisikan lingkup konsep termasuk dokumentasipengembangan sistem pada analisis lingkup area sistem dan memanajemen rencana  dan mempelajari cara kerja sisitem.

3. Perencanaan (planning), membuat perencanaan terhadap pekerjaan dan berkas perencanaan yang lainnya. Menyediakan dasar untuk mendapatkan sumber daya (resources) yang dibutuhkan untuk memperoleh solusi.

4. Analisis kebutuhan (requirements analysis), analisa terhadap kebutuhan pengguna sistem perangkat lunak (user) dan mengembangkan kebutuhan user. Membuat dokumen kebutuhan fungsional.

5. Desain (design), mentransformasikan kebutuhan secara terinci, dokumen desain sistem focus pada bagaimana dapat memenuhi fungsi-fungsi yang dibutuhkan oeleh sistem.

6. Pengembangan (development), mengubah perancangan ke sistem informasi yang kompleks dan bagaimana mendapatkan dan melakukan penginstalan lingkungan sistem yang diharapkan; membuat basis data dan menyiapkan standar prosedur pada saat pengujian, menyiapkan dokumen atau file coding, testing, compile, repair dan cleaning program.

7. Integrasi dan pengujian (integration and test), mepresentasikan sistem perangkat lunak yang telah memenuhi keadaan yang dispesifikasikan pada dokumen kebutuhan fungsional. Dengan diarahkan oleh bagian penjamin mutu (quality assurance) dan user. Menghasilkan pelaporan analisis dari pengujian.

8. Implementasi (implementation), termasuk pada persiapan implementasi, pelaksanaan perangkat lunak pada area produksi (area pada user) dan menjalankan resolusi dari problem yang terdeteksi dari tahap integrasi dan pengujian.

9. Operasi dan pemeliharaan (operations and maintenance), menjelaskan tentang pekerjaan untuk menjalankan dan memaintenance sistem informasi pada area Produksi (lingkungan pada user), termasuk implementasi akhir dan masuk pada proses peninjauan.

10. Disposisi (Disposition), mendeskripasikan aktifitas dari pengembangan sistem dan membangun data yang sesungguhnya sesuai dengan aktifitas user.

Model System Development Life Cycle (SDLC)

1. SDLC Tradisional Model

SDLC tradisional adalah metode pengembangan sistem informasi klasik yang mengikuti suatu pola teratur secara bertahap yang dikerjakan dari atas ke bawah. SDLC tradisional seringkali disebut pendekatan waterfall. Aktivitas dalam siklus ini memiliki aliran satu arah menuju penyelesaian proyek.
Tahapan dalam SDLC tradisional adalah sebagai berikut :
  • Perencanaan, sasaran Tahap perencanaan adalah diperolehnya cakupan dari proyek pengembangan sistem dan dasar-dasar untuk kendali.
  • Analisis, tujuan dari tahap analisis adalah memahami permasalahan secara menyeluruh dan mendefinisikan kebutuhan pemakai (apa yg harus dilakukan oleh sistem utk memenuhi keinginan pemakai).
  • Perancangan, tujuan dari tahap perancangan adalah menentukan solusi yang dapat memenuhi kebutuhan informasi pemakai yang sudah didefinisikan dan membuat suatu model implementasi yang akan dibangun kemudian.
  • Implementasi, tujuan tahap implementasi adalah mendapatkan sistem informasi sesuai dengan kebutuhan pemakai.
  • Penggunaan, tujuan tahap penggunaan adalah menjaga agar sistem tetap beroperasi secara normal, dapat mengantisipasi penyimpangan yang mungkin dialami sistem dan melakukan evaluasi sistem.

2. Agile DevelopmentModel SDLC

Agile development adalah sebuah filosofi dan serangkaian panduan untuk mengembangkan sistem informasi di dalam lingkungan yang sering berubah dan dapat digunakan dengan metodologi pengembangan sistem apapun. Metodologi agile adalah sebua filosofi tentang bagaimana membangun model, beberapa diantaranya formal dan detil, namun yang lainnya hanya berupa sketsa dan sangat ringkas.

Pemodelan agile bukan berarti melakukan pemodelan lebih sedikit namun membuat pemodelan yang tepat untuk tujuan yang tepat pada level tertentu. Pemodelan agile tidak menentukan model mana yang harus dibuat dan bagaimana membuat model tersebut. Sebaliknya, pemodelan agile hanya membantu pengembang untuk tetap pada jalurnya dengan pemodelan yang mereka buat sebagai alat untuk mencapai tujuan namun bukan tujuan akhirnya. Prinsip pemodelan agile berikut mengindikasikan membangan model adalah teknik yang utama dalam pengembangan software namun model adalah sarana bukan tujuan.
  • Membangun software sebagai tujuan utama.
  • Menjalankan usaha berikutnya sebagai tujuan sekunder.
  • Meminimalkan kegiatan pemodelan – sedikit dan sederhana.
  • Merangkul perubahan dan perubahan bertahap.
  • Membuat model dengan tujuan.
  • Membuat beberapa model.
  • Membuat model dengan kualitas baik dan mendapatkan umpan balik.
  • Fokus pada isi daripada tampilan.
  • Belajar dari yang lain dengan komunikasi terbuka.
  • Mengetahui model yang dibuat dan cara menggunakannya.
  • Beradaptasi pada kebutuhan proyek yang spesifik.

3. Waterfall Model SDLC

Waterfall adalah pendekatan SDLC paling awal yang digunakan untuk pengembangan perangkat lunak. Hal ini juga disebut sebagai model SDLC linear-sekuensial. Hal ini sangat sederhana untuk memahami dan menggunakanya dalam mengimplementasikan sebuah sistem.
Dalam Model Waterfall, setiap tahap harus berurutan, dan tidak dapat meloncat ketahap berikutnya, harus menyelesaikan tahap pertama baru lanjut ke tahap ke dua dst.
Langkah-langkah Waterfall SDLC

  • Requirement Gathering and analysis, mengumpulkan kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.
  • System Design, desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap.
  • Implementation, desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.
  • Integration and Testing, penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).
  • Deployment of system, mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.
  • Maintenance, proses pemeliharaan sistem yang sudah dibangun.

4. Scrum Model SDLC

Scrum pada dasarnya merupakan salah satu komponen dari metodologi pengembangan sistem Agile . Akhir-akhir ini scrum mulai marak di implemntasikan 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
  • 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.

5. Iterative Model SDLC

Dalam Iterative model SDLC, proses iterative dimulai dengan implementasi sederhana dari komponen kecil dari software sampai dengan meningkatkan versi dari sebuah software dengan update-updateanya sehingga software siap digunakan ke user. Di setiap Iterative nya, perubahan baik design maupun fungsi ditambahkan. Ide dasar di balik metode ini adalah untuk mengembangkan sistem melalui siklus berulang (iterative) dan dalam porsi kecil di setiap updatetanya.

Iterative dan Incremental development adalah kombinasi dari kedua desain iterative dan incremental, untuk sebuah development. Selama development lebih dari satu iterasi dari sebuah software development life cycle.

Kunci dari keberhasilan dari Iterative model SDLC (Software development life cycle) adalah validasi kebutuhan yang ketat dan melakukan testing yang detail di setiap version dari sebuah software. Sebuah update version software pastinya harus memberikan fitur-fitur baru yang membuat software tersebut menjadi semakin baik, untuk dari itu versi software terbaru harus dilakukan testing yang berulang-ulang agar fungsi lama nya tetap berjalan dengan baik.

Spesifikasi Iterative Model

  • Requirement sistem dan design harus jelas dan mudah di pahami.
  • Persyaratan Utama harus didefinisikan, namun nantinya akan ada request baru untuk penambahan fungsi pada saat sistem sedang berjalan.
  • Teknologi yang sedang digunakan dalam pengembangan software bisa diganti apabila ada teknologi baru yang lebih bagus.
  • Ada beberapa fitur berisiko tinggi dan tujuan yang mungkin berubah di masa depan.

6. Spiral Model SDLC

Model Spiral SDLC adalah sebuat metode pengabungan antara Iterative Model dengan Waterfall Model. dengan penekanan yang tinggi pada analisis resiko yang akan di hadapi. Spiral model bertujuan untuk meningkatkan tingkat keberhasilan pada saat pengembangan suatu sistem.

Fase Spriral Model SDLC:

  • Identification, pada fase ini bertujuan untuk mengumpulkan kebutuhan bisnis di dasar spiral, Dalam spiral berikutnya disebut sebagai produk deawsa. Identifikasi persyaratan sistem, persyaratan subsistem, persyaratan unit dilakukan pada fase ini. Fase ini juga mencakup komunikasi antar sistem analis dengan klien.
  • Design, pada fase ini dimulai dengan desain konseptual di dasar spiral dan melibatkan desain arsitektur, desain logis dari modul, desain produk fisik dan desain akhir dalam spiral berikutnya.
  • Construct or Build, pada fase ini  mengacu produksi produk perangkat lunak yang sebenarnya di setiap spiral.
  • Evaluation and Risk Analysis, pada fase ini  mengidentifikasi, memperkirakan dan memantau kelayakan teknis dan risiko manajemen, seperti jadwal selip dan biaya lebih. Setelah pengujian sistem, akhir dari iterasi klien akan mengevaluasi produk yang sudah dibangun dan akan memberikan feedback.

7. V-Model SDLC

V-Model adalah model SDLC dimana pelaksanaan proses yang terjadi secara berurutan dalam bentuk V. Dikenal juga sebagai model verifikasi dan validasi.

Fase verifikasi di V-Model:
  • Business Requirement Analysis, ini adalah tahap pertama dalam siklus pengembangan di mana persyaratan produk dipahami dari perspektif pelanggan. Fase ini melibatkan komunikasi rinci dengan pelanggan untuk memahami harapan dan kebutuhan yang tepat. Ini merupakan kegiatan yang sangat penting dan perlu dikelola dengan baik, karena sebagian besar pelanggan tidak yakin tentang apa yang sebenarnya mereka butuhkan Acceptance test desain dilakukan pada tahap ini sebagai kebutuhan bisnis dapat digunakan sebagai masukan untuk pengujian penerimaan.
  • System Design, desain sistem akan memiliki pemahaman dan merinci hardware lengkap dan setup komunikasi untuk produk dalam pengembangan. Rencana pengujian sistem dikembangkan berdasarkan desain sistem. Melakukan hal ini pada tahap awal membuat lebih banyak waktu untuk pelaksanaan tes yang sebenarnya nanti.
  • Architectural Design, spesifikasi arsitektur dipahami dan dirancang dalam fase ini. Biasanya lebih dari satu pendekatan teknis diusulkan dan berdasarkan kelayakan teknis dan finansial keputusan akhir diambil. Desain sistem dipecah lebih jauh ke dalam modul mengambil fungsi yang berbeda. Hal ini juga disebut sebagai “Desain Tingkat Tinggi”
  • Module Design, pada fase ini, desain internal rinci untuk semua modul sistem yang ditentukan, disebut “Desain Tingkat Rendah”. Penting  bahwa desain tersebut kompatibel dengan modul lain dalam arsitektur sistem dan sistem eksternal lainnya.
  • Coding Phase, bahasa pemrograman yang paling cocok ditentukan berdasarkan sistem dan persyaratan arsitektur. pengkodean dilakukan berdasarkan pedoman coding dan standar. Kode berjalan melalui berbagai ulasan kode dan dioptimalkan untuk kinerja terbaik sebelum final membangun diperiksa ke dalam repositori.
Fase Validasi V-Model:
  • Unit Testing, adalah pengujian pada tingkat kode dan membantu menghilangkan bug pada tahap awal, meskipun semua cacat tidak dapat ditemukan oleh unit testing.
  • Integration Testing, dikaitkan dengan fase desain arsitektur. tes integrasi dilakukan untuk menguji koeksistensi dan komunikasi dari modul internal dalam sistem.
  • System testing, memeriksa seluruh fungsi sistem dan komunikasi sistem dalam pengembangan dengan sistem eksternal.
  • Acceptance Testing, dikaitkan dengan tahap analisis kebutuhan bisnis dan melibatkan pengujian produk di lingkungan pengguna.  Acceptance testing mengungkap masalah kompatibilitas dengan sistem lain yang tersedia di lingkungan pengguna. Juga menemukan masalah non-fungsional seperti beban dan kinerja cacat pada aktual lingkungan pengguna.

8. SDLC Big Bang Model

Pengertian dari SDLC Big Bang Model adalah dimana kita tidak mengikuti proses tertentu. Perkembangan hanya dimulai dengan uang dan usaha yang dibutuhkan sebagai masukan, dan hasilnya adalah perangkat lunak yang dikembangkan yang mungkin atau mungkin tidak sesuai dengan kebutuhan pelanggan. Model Big Bang ini tidak mengikuti dan hanya ada sedikit perencanaan yang diperlukan. Bahkan pelanggan pun tidak yakin dengan apa yang sebenarnya dia inginkan dan persyaratannya diimplementasikan dengan cepat tanpa banyak analisis. Biasanya model ini di implementasi untuk proyek kecil dimana tim developernya sangat sedikit.

Spesifikasi Big Bang Model SDLC:

l pengertian-big-bang-model

Model Big Bang terdiri dari memfokuskan semua sumber daya yang mungkin dalam pengembangan perangkat lunak dan pembuatan code / coding, dengan perencanaan yang sangat sedikit atau tidak sama sekali. Requirement yang dibutuhkan terkadang datang pada saat pembuatan code. Setiap perubahan yang diperlukan mungkin atau mungkin tidak perlu mengubah perangkat lunak yang lengkap.