Jumat, 10 Februari 2017

Metode-metode System Development Life Cycle (SDLC)

   Metode-metode System Development Life Cycle (SDLC)

Model SDLC atau Sekuensial Linier sering disebut juga Model Air TerjunModel ini mengusulkan sebuah pendekatan perkembangan perangkat lunak yang sistematik dan sekunsial yang dimulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan.

Model ini disusun bertingkat, setiap tahap dalam model ini dilakukan berurutan, satu sebelum yang lainnya. Model ini biasanya digunakan untuk membuat sebuah software dalam skala besar dan yang akan dipakai dalam waktu yang lama. Sangat cocok untuk pengembangan sistem yang besar. Tidak sesuai atau tidak terlalu disarankan untuk small scale project  karena:




   A. Model Waterfall (Air Terjun)
   System Engineering :
     Menetapkan segala hal yang diperlukan dalam pelaksanaan proyek
   Analisis :
      Menganalisis hal-hal yang diperlukan untuk pembuatan atau pengembangan perangkat lunak.

Analisis :

Menganalisis hal-hal yang diperlukan untuk pembuatan atau pengembangan perangkat lunak

Design :

Tahap penerjemahan dari keperluan atau data yang telah dianalisis ke dalam bentuk yang mudah dimengerti oleh programmer . Tiga atribut yang penting dalam proses perancangan yaitu : struktur data, arsitektur perangkat lunak dan prosedur rinci / algoritma.

Coding :
Menerjemahkan data yang telah dirancang / algoritma ke dalam bahasa pemrograman yang telah ditentukan
Testing :
Uji coba terhadap program telah dibuat .
Maintenance :
Perubahan atau penambahan program sesuai dengan permintaan user.
o  Sering juga disebut model Sequential Linier.
o  Metode pengembangan sistem yang paling tua dan
o  paling sederhana.
o  Cocok untuk pengembangan perangkat lunak dengan
o  spesifikasi yang tidak berubah-ubah.
Ø Model ini menyediakan pendekatan alur hidup perangkat
Ø lunak secara sequential atau terurut dimulai dari analisa,
Ø desain, pengkodean, pengujian dan tahap pendukung

Tahap-tahap metode WATERFALL

1. Analisis Kebutuhan Perangkat Lunak
Pengumpulan kebutuhan untuk menspesifikasikan
kebutuhan perangkat lunak sehingga dapat dipahami
kebutuhan dari user.
2. Desain
Desain pembuatan program perangkat lunak termasuk
struktur data, arsitektur perangkat lunak, representasi
antar muka dan prosedur pengkodean.
3. Pembuatan Kode Program
Hasil tahap ini adalahprogram komputer sesuari
dengan desain yang telah dibuat pada tahap desain.
4. Pengujian
Pengujian fokus pada perangkat lunak dari segi logik dan fungsional serta memastikan bahwa semua bagian sudah
diuji sehingga keluaran yang dihasilkan sesuai dengan
yang diinginkan.
5. Pendukung atau Pemeliharaan
Dikarenakan adanya perubahan ketika sudah dikirimkan ke
user. Perubahan dapat terjadi karena adanya kesalahan
yang muncul dan tidak terdeteksi saat pengujian.

        Keunggulan dan Kelemahan Metode Waterfall

Metode pengembangan waterfall mempunyai keunggulan dalam membangun dan mengembangkan suatu sistem, antara lain:
       1.       Kualitas dari sistem yang dihasilkan akan baik. Ini dikarenakan oleh pelaksanaannya secara bertahap. Sehingga tidak terfokus pada tahapan tertentu.
       2.       Dokumen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya. Jadi setiap fase atau tahapan akan mempunyai dokumen tertentu.

Dalam proses membangun dan mengembangkan suatu sistem, metode waterfall mempunyai beberapa kelemahan, antara lain:
       1.       Diperlukan majemen yang baik, karena proses pengembangan tidak dapat dilakukan secara berulang sebelum terjadinya suatu produk..
       2.       Kesalahan kecil akan menjadi masalah besar jika tidak diketahui sejak awal pengembangan.
       3.       Pelanggan sulit menyatakan kebutuhan secara eksplisit sehingga tidak dapat mengakomodasi ketidakpastian pada saat awal pengembangan.

   B. Model Spiral



Model spiral pada awalnya diusulkan oleh Boehm, adalah model proses perangkat lunak evolusioner yang merangkai sifat iteratif dari prototype dengan cara kontrol dan aspek sistematis model sequensial linier. Model iteratif ditandai dengan tingkah laku yang memungkinkan pengembang mengembangkan versi perangkat lunak yang lebih lengkap secara bertahap.






Tahapan-tahapan Model Spiral
1.       Komunikasi Pelanggan
Yaitu tugas-tugas untuk membangun komunikasi antara pelanggan dan kebutuhan- kebutuhan yang diinginkan oleh pelanggan.
2.       Perencanaan
Yaitu tugas-tugas untuk mendefinisikan sumber daya, ketepatan waktu, dan proyek informasi lain yg berhubungan.
3.       Analisis Resiko
Yaitu tugas-tugas yang dibutuhkan untuk menaksir resikomanajemen dan teknis.
4.       Perekayasaan
Yaitu tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari apikasi tersebut.
5.       Konstruksi dan Peluncuran
Yaitu tugas-tugas yang dibutuhkan untuk mengkonstruksi, menguji, memasang, dan memberi pelayanan kepada pemakai.
6.       Evaluasi Pelanggan
Yaitu tugas-tugas untuk mendapatkan umpan balik dari pelanggan.

Kelebihan dan Kekurangan
1.       Kelebihan
Ø  Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
Ø  Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
Ø  Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses
Ø  Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk.
Ø  Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja iteratif .
Ø  Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko sebelum menjadi permaslahan yang serius.

2.       Kekurangan
Ø  Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
Ø  Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
Ø  Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute.

C. Model Iterative (Perulangan)

Metode yang merupakan pengembangan dari prototyping model dan digunakan ketika requirement dari software akan terus berkembang dalam tahapan-tahapan pengembangan aplikasi tersebut. Sedikit pengertian tentang requirement software dari 
developer yang diterapkan pada tahap pertama iterasi, akan mendapatkan tanggapan dari user. Ketika requirement menjadi jelas, tahapan iterasi selanjutnya akan dilaksanakan.


Beberapa tipe dari Iterative Model di antaranya :
A. Spiral Model
Dikembangkan dari sifat iterative prototyping model dan sifat linier waterfall model. Merupakan model yang ideal bagi software yang memiliki bermacam jenis.
Dalam tiap iterasinya, proses software development mengikuti tahap-tahap fase linier, dan dalam akhir tiap fasenya, user mengevaluasi software tesrebut dan memberikan feed back. Proses iterasi berlangsung terus dalam pengembangan software tersebut.

B. Win Win Spiral Model
Dalam win win spiral model yang merupakan ekstensi dari spiral model, tim pengembang dan pelanggan akan melakukan diskusi dan negosiasi terhadap requirement-nya. Disebut win win karena merupakan situasi kemenangan antara tim pengembang dan pelanggan. Yang membedakan antara win win spiral model dan spiral model adalah setelah selesai mendapatkan feed back dari pelanggan, tim pengembang aplikasi dan pelanggan akan kembali melakukan negosiasi untuk perkembangan aplikasi tersebut.

C. Component Based Development Model
Dalam metode component based development ini, menitik beratkan pada penggunaan kembali dari komponen-komponen yang dibangun dalam sebuah aplikasi. Komponen di sini, dapat berupa fungsi tertentu atau sebuah kelompok yang berhubungan
dengan fungsi tertentu.

   D. Model Fountain
   Model Fountain merupakan perbaikan logis dari model waterfall, langkah langkah dan urutan prosedurnya pun masih sama. Namun pada model Fountain ini kita dapat mendahulukan sebuah step ataupun melewati step tersebut, akan tetapi ada yang tidak bisa anda lewati stepnya seperti kita memerlukan design sebelum melakukan coding jika itu di lewati maka akan ada tumpang tindih dalam siklus SDLC.


     
        Langkah – Langkah dalam Model Fountain:

        · User requirements analysis ( Analisis Kebutuhan Pengguna), disini kita sebagai programmer dalam mengembangkan sistem harus menganalisa kebutuhan terhadap pengguna baik itu dalam cara penggunaan yang mudah maupun efisiensi terhadap sistem yang pengguna butuhkan.

        · User requirements specifications (Spesifikasi kebutuhan pengguna), dalam tahap ini kita harus tahu apa saja yang dibutuhkan pengguna dalam sistem yang sedang kita kembangkan.
      
      · Software requirements specifications (Spesifikasi persyaratan perangkat lunak), dalam tahap ini kita harus menyesuaikan software yang kita buat jika di lihat dari sisi pengguna. Jika pengguna awam tentunya kita harus menciptakan Software yang mudah digunakan.
      
        · Systems/broad design (logical design), sebelum pengimplementasi dalam coding kita harus mendesain sistem yang akan kita buat / kembangkan.

        · Program/detailed design (physical design), dalam tahap ini kita membuat desain yang mendekati fisik atau secara deail.
      
        · Implementation/coding, setelah tahap desain barulah kita mengimplementasikan dalam coding

        · Program testing: units, dalam tahap ini kita testing / cek kembali unit nit yang dibutuhkan dalam sistem yang sedang kita kembangkan .

        · Program testing: system, dalam tahap ini kita test kembali sistem yang telah kita buat.
      
        · Program use, dalam tahap ini kita ajarkan ke pengguna program yang telah kita buat.

         · Software maintenance, setelah sistem di pasang maka tentunya kita harus rutin mengupdate software / sistem yang telah kita buat agar terhindar dari kesalaha / bugs.

   E. Model Rapid Application Development (RAD) & Prototyping
    RAD adalah penggabungan beberapa metode atau teknik terstruktur. RAD menggunakan metode prototyping dan teknik terstruktur lainnya untuk menentukan kebutuhan user dan perancangan sistem informasiselain itu RAD menekankan siklus perkembangan dalam waktu yang singkat (60 sampai 90 hari) dengan pendekatan konstruksi berbasis komponen.

Tahapan-tahapan Model RAD :
1.       Business Modelling
Fase ini untuk mencari aliran informasi  seperti: informasi mengendalikan proses bisnis, di mana informasi digunakan,  siapa yang memprosenya, dan informasi apa yang dimunculkan.
2.       Testing and Turnover
Karena menggunakan kembali komponen yang telah ada, maka akan mengurangi waktu pengujian. Tetapi komponen baru harus diuji dan semua interface harus dilatih secara penuh..
3.       Aplication Generation
Selain menggunakan bahasa pemrograman generasi ketiga, RAD juga memakai komponen program yang telah ada atau menciptakan komponen yang bisa dipakai lagi. Alat-alat baantu bisa dipakai untuk memfasilitasi konstruksi perangkat lunak.
4.       Process Modelling
Aliran informasi pada fase data modelling ditransformasikan untuk mendapatkan aliran informasi yang diperlukan pada implementasi fungsi bisnis. Pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atu mendapatkan kembali objek data tertentu
5.       Data Modelling
Fase ini menjelaskan objek data yang dibutuhkan dalam proyek. Karakteristik (atribut) masing-masing data diidentifikasikan dan hubungan antar objek didefinisikan.

Kelebihan dan Kekurangan :
1.       Kelebihan
  •    RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada (reusable object).
  •   Setiap fungsi dapat dimodulkan dalam waktu tertentu dan dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga waktunya lebih efesien.
2.       Kekurangan
  • Tidak cocok untuk proyek skala besar
  • Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi.
  • Sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
  • Resiko teknis yang tinggi juga kurang cocok untuk model ini.
MODEL PROTOTYPING
Prototyping adalah proses iterative dalam pengembangan sistem dimana requirement diubah ke dalam sistem yang bekerja (working system) yang secara terus menerus diperbaiki melalui kerjasama antara user dan analis. Prototype juga bisa dibangun melalui beberapa tool pengembangan untuk menyederhanakan proses.



Proses pada model prototyping yang dapat dijelaskan sebagai berikut:

a. User Requirements

Pada tahap ini developer dan klien bertemu dan menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan berikutnya. Detil kebutuhan mungkin tidak dibicarakan pada tahap ini.

b. Develope Prototype

Pada tahap ini dilakukan perancangan prototype sistem oleh developer, perancangan sistem dilakukan secara cepat dan rancangan diusahakan mewakili semua aspek software yang telah diketahui.
c. Revise Prototype
Pada tahap ini dilakukan evaluasi prototype sistem oleh klien. Apabila klien merasa prototype sistem yang telah dikembangkan sesuai dengan keinginannya maka prototype tersebut dapat digunakan, akan tetapi jika  prototype tersebut tidak sesuai, maka prototype tersebut akan dilakukan revisi dan digunakan sebagai acuan dalam memperjelas kebutuhan software dan kemudian dikembangkan prototype selanjutnya. Siklus ini (develop-revise prototype) akan terus berlangsung hingga didapatkan prototype sistem yang sesuai dengan kebutuhan klien atau user.
Tahapan-tahapan Model Prototyping :
  1. Pengumpulan Kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
  1. Membangun Prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
  1. Menggunakan Sistem
Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai dengan keinginann pelanggan.
  1. Mengkodekan Sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
  1. Menguji Sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain.
  1. Evaluasi Sistem
Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan.
  1. Evaluasi Protoptyping
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.

Kelebihan dan Kekurangan
  1. Kelebihan
  •      Prototype melibatkan user dalam analisa dan desain.
  •      Punya kemampuan menangkap requirement secara konkret.
  •      Digunakan untuk memperluas SDLC.

  1. Kekurangan
  •          Proses analisis dan perancangan terlalu singkat.
  •      Mengesampingkan alternatif pemecahan masalah.
  •      Bisanya kurang fleksible dalam mengahdapi perubahan.
  •      Protitype yang dihasilkan tidak selamanya mudah dirubah dan cepat selesai.
F. Model Build & Fix


Build & Fix Method merupakan metode yang paling lemah diantara metode SDLC yang lain tetapi menjadi acuan pengembangan untuk metode SDLC yang lain. Build & fix bertujuan untuk memberikan kepercayaan terhadap pelanggan dengan cara memberikan pelayanan perbaikan dan perawatan secara terus menerus terhadap produk yang digunakan oleh user.






Langkah – Langkah dalam Build & Fix Method:

Functional Desain, dalam tahap ini seorang developer membuat perancangan fungsi terhadap sistem yang akan dibuatnya.

Technical Desain, dalam tahap ini seorang developer membuat perancangan teknis terhadap sistem yang akan dibu   Implementation, dalam tahap ini developer melaksanakan dan membuat produk berdasarkan rencana rancangan design yang telah ditetapkan sebelumnya.

Deployment, dalam fase ini developer meluncurkan / memasarkan.

Usage, Dalam fase ini user / konsumen diibaratkan sebagai user sekaligus tester yang jika ada kekurangan dalam sistem dapat di report ke developer.

Problem, Adalah masalah atau kekurangan dalam sistem

Bug Report, adalah tindakan melaporkan bug / kekurangan dalam sistem.

Vendor Evaluation, dalam tahap ini Developer melakukan pengecekan atau evaluasi terhadap sistem yang telah dibuat.

Fix, adalah tindakan memperbaiki sistem yang memiliki kerusakan (bug)

Upgrade, adalah proses memperbaharui atau memperbaiki sistem yang rusak.

G. Model Synchronize & Stabilize

      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.

       Pada akhirnya, setiap hari dilakukan proses sinkronisasi, yaitu menggabungkan bagian-bagian yang terpisah tersebut kemudian ditesting.  Proses stabilisasi dilakukan pada akhir pembangunan setiap bagian.  Kesalahan yang terjadi akan diperbaiki, dan tidak akan ada perubahan spesifikasi.


Keuntungan Dari Synchronize-And-Stabilize

     Walaupun prinsip-prinsip dibalik synchronize and stabilizememberikan persamaan dalam hal cepatnya pengembangan sistem, disana tidak terdapat suatu tahap yang dapat memecahkam masalah besar dengan dengan solusi yang singkat. Melainkan, terdapat pendekatan yang spesifik, tool dan teknik, beberapa aturan yang kaku dan tingginya kemampuan orang-orang yang menggunakan pendekatan ini. Beberapa elemen membedakan synchronize and stabilize dengan beberapa pengembangan yang lebih lama.

Pendekatan synchronize and stabilize mempunyai beberapa keuntungan bagi para manajer dan engineer dalam mengembangkan suatu produk.

  • 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 mensynchronizing 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.
  • Mengijinkan suatu tim produk menjadi lebih responsive dalam penempatan produk di pasar dengan “selalu” mempunyai produk yang siap untuk dijual, mempunyai keakuratan fitur yang komplit dan fleksibilitas produk yang tinggi.
H. Model Extreme Programming (Agile)
        Agile methods adalah salah satu dari beberapa metode yang digunakan dalam pengembangan sooftware. Agile method adalah jenis pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun.
       Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana.
      Agile Method juga dapat diartikan sekelompok metodologi pengembangan software yang didasarkan pada prinsip-prinsip yang sama atau pengembangan system jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Metode ini jg merupakan membuang beberapa tahapan yang tidak mempunyai nilai/value dan menekankan pada pengembangan sederhana dan iterative/berulang. 


Extreme Programming (XP)

    Proyek Pemrograman Extreme pertama dimulai 6 Maret 1996. Extreme Programming adalah salah satu dari beberapa Proses Agile populer. Sudah terbukti sangat sukses di banyak perusahaan dari berbagai ukuran dan industri di seluruh dunia.

   Extreme Pemrograman berhasil karena menekankan kepuasan pelanggan. Alih-alih memberikan semua yang anda mungkin inginkan pada tanggal beberapa jauh di masa depan proses ini memberikan perangkat lunak yang Anda butuhkan saat Anda membutuhkannya. Extreme Pemrograman memberdayakan pengembang Anda untuk percaya diri menanggapi perubahan kebutuhan pelanggan, bahkan terlambat dalam siklus hidup.

  Extreme Pemrograman menekankan kerja sama tim. Pengelola, pelanggan, dan pengembang semua mitra setara dalam sebuah tim kolaboratif. Extreme Pemrograman menerapkan, sederhana namun efektif yang memungkinkan tim lingkungan menjadi sangat produktif. Tim mengorganisir diri mengatasi masalah untuk menyelesaikannya seefisien mungkin.

     Extreme Pemrograman meningkatkan proyek perangkat lunak dalam lima cara penting; komunikasi, kesederhanaan, umpan balik, rasa hormat, dan keberanian. Extreme Programmer selalu berkomunikasi dengan pelanggan mereka dan programer sesama. Mereka terus desain mereka yang sederhana dan bersih. Mereka mendapatkan umpan balik dengan menguji perangkat lunak mereka dimulai pada hari pertama. Mereka memberikan sistem ke pelanggan sebagai perubahan sedini mungkin dan melaksanakan seperti yang disarankan. Setiap keberhasilan kecil memperdalam rasa hormat mereka atas kontribusi yang unik dari masing-masing dan setiap anggota tim. Dengan dasar Extreme pemrogram dapat berani merespon perubahan kebutuhan dan teknologi.
    Aspek yang paling mengejutkan dari Extreme Programming adalah aturan sederhana. Extreme Pemrograman sangat mirip jig gergaji teka-teki. Ada banyak potongan-potongan kecil. Individual potongan
    Extreme Programming adalah metode pengembangan perangkat lunak yang ringan dan termasuk salah satu agile methods yang dipelopori oleh Kent Beck, Ron Jeffries, dan Ward Cunningham. Extreme Programming merupakan agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat terkenal. Sasaran Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang sangat cepat.
    Extreme Programming sebagai sebuah metode yang dinamis diperlihatkan dalam empat values yang dimilikinya dan keempatnya merupakan dasar-dasar yang diperlukan dalam Extreme Programming. Kent Beck menyatakan bahwa tujuan jangka pendek individu sering berbenturan dengan tujuan sosial jangka panjang. Karena itu dibuatlah values yang menjadi aturan, hukuman, dan juga penghargaan. Keempat values tersebut adalah :
1. Komunikasi (Communication)
  Tugas utama developer dalam membangun suatu sistem perangkat lunak adalah mengkomunikasikan kebutuhan sistem kepada pengembang perangkat lunak. Komunikasi dalam Extreme Programmning dibangun dengan melakukan pemrograman berpasangan (pair programming). Developer didampingi oleh pihak klien dalam melakukan coding dan unit testing sehingga klien bisa terlibat langsung dalam pemrograman sambil berkomunikasi dengan developer. Tujuannya untuk memberikan pandangan pengembang sesuai dengan pandangan pengguna sistem.
2. Kesederhanaan (Simplicity)
XP mencoba untuk mencari solusi paling sederhana dan praktis. Perbedaan metode ini dengan metodologi pengembangan sistem konvensional lainnya terletak pada proses desain dan coding yang terfokus pada kebutuhan saat ini daripada kebutuhan besok, seminggu lagi atau sebulan lagi. Lebih baik melakukan hal yang sederhana dan mengembangkannya besok jika diperlukan.
3. Umpan Balik (Feedback)
Hal ini diperlukan untuk mengetahui kemajuan dari proses dan kualitas dari aplikasi yang dibangun. Informasi ini harus dikumpulkan setiap interval waktu yang singkat secara konsisten. Ini dimaksudkan agar hal-hal yang menjadi masalah dalam proses pengembangan dapat diketahui sedini mungkin. Setiap feed back ditanggapi dengan melakukan tes, unit test atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).
4. Keberanian (Courage)
Berani mencoba ide baru. Berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki. Contoh dari courage adalah komitmen untuk selalu melakukan design dan coding untuk saat ini dan bukan untuk esok. Ketika ada kode yang terlalu rumit, sulit dibaca dan dipahami, tidak sesuai dengan kemauan pelanggan, dll maka seharusnya kode program seperti itu di refactor (kalau perlu dibangun ulang). Hal ini menjadikan pengembang merasa nyaman dengan refactoringprogram ketika diperlukan.
Extreme Programming menggunakan pendekatan berorientasi objek. Pada aktifitas Perencanaan terjadi pengumpulan user stories dari klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga dan lama pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa story yang lebih kecil. Terjadi pemeriksaan dan pertimbangkan resiko dan aktifitas Desain kegiatannya sederhana yaitu memanfaatkan kartu CRC (Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class di konsep OO. Jika temuikan kesulitan, prototype dibangun [ini namanya spike solution].
Dilakukannya refactoring, yaitu mengembangkan desain dari program setelah ditulis. Pada aktifitas Pengkodean adalah penyiapan unit test sebelum pengkodean dipakai sebagai focus pemrogram untuk membuat program. Pair programming dilakukan untuk real time program solving dan real time quality assurance. Proses pengujiannya menggunakan unit test yang dipersiapkan sebelum pengkodean Menggunakan pendekatan berorientasi objek.


Keuntungan dan Kerugian

Keuntungan Extreme Programmning:

Menjalin komunikasi yang baik dengan client. Meningkatkan komunikasi dan sifat saling menghargai antar developer.

Kerugian Extreme Programmning:

Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima. Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).


SUMBER :
http://uchiuwik.blogspot.co.id/2014/11/metode-metode-pengembangan-sistem.html
http://sdlcteknikprograman.blogspot.co.id/2012/11/sdlc-system-development-life-cycle.html
https://erihadiyana.wordpress.com/2008/11/03/jenis-jenis-pemodelan-pengembangan-sistem/
http://catatanngampusku.blogspot.co.id/2014/10/metodologi-sdlc.html
https://fatharaannisaa.wordpress.com/2014/08/22/macam-macam-metode-pengembangan-perangkat-lunak/
http://adikristanto.net/synchronize-and-stabilize/
https://dwijaantara.wordpress.com/2010/10/25/agile-method/

1 komentar:

  1. The Sands Casino Hotel - Seattle
    The Sands Casino Hotel is one of Seattle's finest hotels and is the only one in town with septcasino free WiFi 1xbet and free self parking. Guests enjoy 인카지노 the locale

    BalasHapus