Rabu, 25 September 2019

SDLC (System Development Life Cycle)



PENGERTIAN

SDLC  (System Development  Life  Cycle) atau Siklus  Hidup Pengembangan Sistem dalam rekayasa perangkat lunak adalah tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun sistem informasi. tahapan yang digunakan adalah :

1. Melakukan survei dan menilai kelayakan proyek pengembangan sistem informasi

2. Mempelajari dan menganalisis sistem informasi yang sedang berjalan

3. Menentukan permintaan pemakai sistem informasi

4. Memilih solusi atau pemecahan masalah yang paling baik

5. Menentukan perangkat keras (hardware) dan perangkat lunak (software)

6. Merancang sistem informasi baru

7. Membangun sistem informasi baru

8. Mengkomunikasikan dan mengimplementasikan sistem informasi baru

9. Memelihara dan melakukan perbaikan/peningkatan sistem informasi baru bila diperlukan

Ada beberapa model pada SDLC, Model yang cukup populer dan banyak digunakan adalah waterfall. Beberapa model lain SDLC misalnya fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize. Dengan siklus SDLC, proses membangun sistem dibagi menjadi beberapa langkah dan pada sistem yang besar, masing-masing langkah dikerjakan oleh tim yang berbeda. Dalam sebuah siklus SDLC, terdapat enam langkah. Jumlah langkah SDLC pada referensi lain mungkin berbeda, namun secara umum sama. Langkah tersebut adalah :

1. Analisis sistem, yaitu membuat analisis aliran kerja manajemen yang sedang berjalan

2. Spesifikasi kebutuhan sistem, yaitu melakukan perincian mengenai apa saja yang dibutuhkan dalam pengembangan sistem dan membuat perencanaan yang berkaitan dengan proyek sistem

3. Perancangan sistem, yaitu membuat desain aliran kerja manajemen dan desain pemrograman yang diperlukan untuk pengembangan sistem informasi

4. Pengembangan sistem, yaitu tahap pengembangan sistem informasi dengan menulis program yang diperlukan

5. Pengujian sistem, yaitu melakukan pengujian terhadap sistem yang telah dibuat

6. Implementasi dan pemeliharaan sistem, yaitu menerapkan dan memelihara sistem yang telah dibuat

Siklus SDLC dijalankan secara berurutan, mulai dari langkah pertama hingga langkah keenam. Setiap langkah yang telah selesai harus dikaji ulang, kadang-kadang bersama expert user, terutama dalam langkah spesifikasi kebutuhan dan perancangan sistem untuk memastikan bahwa langkah telah dikerjakan dengan benar dan sesuai harapan. Jika tidak maka langkah tersebut perlu diulangi lagi atau kembali ke langkah sebelumnya.


Model - Model SDLC

A. Model Waterfall
Gambar 1. Model Waterfall
Model ini biasa disebut model Waterfall atau model sekuensial linier (sequential linear). Model Waterfall menyediakan pendekatan alur perangkat lunak secara sekuensial/terurut  mulai dari Requirement, Design, Implementation, Verification, dan Maintenance.

1. Requirement Gathering and analysis
Mengumpulkan kebutuhan secara lengkap 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.

2. Design
Dalam tahap ini pengembang akan menghasilkan sebuah sistem secara keseluruhan dan menentukan alur perangkat lunak hingga algoritma yang detail.

3. Implementation 
Adalah Tahapan dimana seluruh desain diubah menjadi kode kode progam . Kode progam yang dihasilkan masih berupa modul-modul yang akan diintregasikan menjadi sistem yang lengkap.

4. Verification
Adalah client/user menguji apakah sistem tersebut telah sesuai dengan yang disetujui.

5. Maintenance
Yaitu instalasi dan proses perbaikan sistem sesuai yang disetujui.































































































B. Model Prototype
Gambar 2. Model Prototype




Prototype digunakan untuk memungkinkan client/user mengevaluasi sistem yang di rancang di awal oleh developer dan mencobanya sebelum di implementasikan. Hal ini dapat membantu memahami persyaratan pembangunan sistem yang spesifik oleh user dan mungkin belum implementasikan oleh developer selama perancangan produk.

C. Model Rapid Application Development (RAD)
Gambar 3. Model RAD
Model pengembangan yang menggunakan pendekatan orientasi komponen terhadap pengembangan perangkat lunak. Model ini bertujuan mempersingkat waktu yang biasanya diperlukan dalam siklus hidup pengembangan konvensional.

D. Model Agile
Gambar 4. Model Agile









Ditulis oleh (Widodo Journal : 2006:1) Pada tahun ke 90 an diperkenalkan metodologi baru yang dikenal dengan nama Metode Agile. Metodologi ini sangat revolusioner perubahannya jika dibandingkan dengan metode sebelumnya. Metode Agile dikembangkan karena pada metodologi tradisional terdapat banyak hal yang membuat proses pengembangan tidak dapat berhasil dengan baik sesuai tuntutan user. Saat ini metodologi ini sudah cukup banyak berkembang, diantaranya adalah:

1. eXtreme Programming (XP)

 
Gambar 5. XP

XP Adalah sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel. XP bukan hanya berfokus pada coding tetapi meliputi seluruh area pengembangan perangkat lunak. XP mengambil pendekatan ‘ekstrim’ dalam iterative development.

2. Scrum Methodology
Gambar 6. Scrum
Scrum merupakan framework untuk manajemen pengembangan software dengan karakteristik cekatan dan bersifat iteratif dan incremental. Scrum mendefinisikan dirinya fleksible, strategi pengembangan yang menyeluruh di mana seluruh team bekerja sebagai satu unit dalam mencapai tujuan yang sama.

3. Crystal Family

Gambar 7. Crystal Family
Crystal Family menggunakan warna yang berbeda untuk menunjukkan "berat", untuk menentukan metodologi yang digunakan. Jika proyek tersebut merupakan proyek kecil, maka metodologi seperti Crystal Clear, Crystal Orange atau Crystal Kuning dapat digunakan. Atau jika proyek tersebut merupakan sebuah misi yang kritis dimana dapat membahayakan kehidupan manusia, maka metode Crystal Diamond atau Crystal Sapphire akan digunakan.


4. Dynamic Systems Development Method (DSDM)
Gambar 8. DSDM
Dynamic System Development Method adalah sebuah kerangka kerja yang mengutamakan keterlibatan pengguna secara berkesinambungan dengan pendekatan pengembangan secara berulang dan bertambah, yang menangani proyek secara efektif dan efisien.

5. Adaptive Software Development (ASD)
Gambar 9. ASD
Adaptive Software Development adalah metode yang diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari metode ini adalah kolaborasi manusia dan tim yang mengatur diri sendiri.

6. Feature Driven Development (FDD)

Gambar 10. FDD

Feature Driven Development adalah proses pengembangan perangkat lunak yang iterative dan incremental. Kerangka kerja ini termasuk termasuk dalam metode Agile yang digunakan untuk mengembangkan perangkat lunak. FDD memadukan sejumlah praktik terbaik yang diakui industri menjadi satu kesatuan yang utuh. Praktik-praktik ini didorong dari perspektif fungsionalitas (fitur) yang dihargai klien. Tujuan utamanya adalah untuk memberikan perangkat lunak yang nyata dan berfungsi berulang kali secara tepat waktu sesuai dengan prinsip di balik Agile Manifesto.

 Jika kita lihat dari beberapa metodologi diatas, Agile bisa berarti tangkas, cepat, atau ringan. Agility merupakan metode yang ringan dan cepat dalam pengembangan perangkat lunak. Agile Alliance mendefinisikan 12 prinsip untuk mencapai proses yang termasuk dalam agility:


  • Prioritas tertinggi adalah memuaskan pelanggan melalui penyerahan awal dan perangat lunak yang bernilai.
  • Menerima perubahan requirements meskipun perubahan tersebut diminta pada akhir pengembangan.
  • Memberikan perankat lunak yang sedangdikerjakan dengan sering,beberapa min ggu atau bulan, dengan pilihan waktu yang paling singkat.
  • Pihak bisnis dan penggembangan harus berkerja sama setiap hari selam penggembangan berjalan.
  • Bangun proyek dengan individu-individu yang bermotivasi tinggi dengan memberikan lingkungan dan dukungan yang diperlukan, dan mempercyai mereka sepenuhnya untuk menyelesaikan pekerjaannya.
  • Metode yang paling efektif dan efisien dalam menyampaikan informasi kepada tim pengembangan adalah dengan komunikasi langsung  face to face.
  • Perangkat lunak yang dikerjakan merupakan pengukur utama kemajuan.
  • Proses agile memberikan proses pengembangan  yang bias ditopang.Sponsor,pengembangan, dan user garus bias menjaga ke-konstanan langkah yang tidak pasti.
  • Perhatian yang harus terus mennerus terhadap rangcangan dan teknik yang baik meningkatkan agility.
  • Keserdahanaan seni untuk meminimalkan jumlah pekerjaan adalah penting
  • Arsitektur,requirements, dan rancangan terbaik muncul dari tim yang mengatur sendiri.
  • Pada interval reguler tertentu,tim merefleksikan bagaimana menjadi lebih efektif, kemudian menyesuaikannya. 


 Kebutuhan Sistem

Untuk mempermudah menganalisis sebuah sistem dibutuhkan dua jenis kebutuhan. Kebutuhan fungsional dan kebutuhan nonfungsional. Kebutuhan fungsional adalah kebutuhan yang berisi proses-proses apa saja yang nantinya dilakukan oleh sistem. Sedangkan kebutuhan nonfungsional adalah kebutuhan yang mengarah pada perilaku yang dimiliki oleh sistem. 


 
-  Sekian Terimakasih :)  -

Tidak ada komentar:

Posting Komentar