Selasa, 15 Januari 2013

TUGAS SOFTSKILL (metode siklus hidup sistem)




SIKLUS HIDUP SISTEM
SIKLUS HIDUP SISTEM
Dasar Perencanaan Sistem Informasi Berbasis Komputer
Implementasi sistem informasi berbasis komputer merupakan aktivitas yang berskala luas yang melibatkan orang dan fasilitas yang banyak, uang dan peralatan dalam jumlah yang besar, dan waktu yang panjang.
Perencanaan Sistem Informasi Berbasis Komputer juga mempunyai manfaat, yaitu:
  • Memberikan dasar pengontrolan.
  • Mendefinisikan lingkup proyek;
  • Mengatur urutan tugas;
  • Mengetahui bidang masalah yang potensial;
Siklus Hidup Sistem
PENGERTIAN SIKLUS HIDUP SISTEM
Metodologi adalah suatu cara yang disarankan untuk melakukan suatu hal. Pendekatan sistem adalah metodologi dasar untuk memecahkan masalah.
SIKLUS HIDUP SISTEM (System Life Cycle-SLC)
System Life Cycle (SLC) adalah proses evolusi yang diikuti oleh pelaksanaan system informasi dasar-dasar atau subsistem. Telah ada pendekatan implementasi tradisional sepanjang era komputer, dan ada perjanjian umum antara ahli-ahli komputer sehubungan dengan tugas-tugas yang dilaksanakan.
Adalah penerapan pendekatan sistem untuk pengembangan sistem atau subsistem informasi berbasis komputer. Sering disebut sebagai pendekatan air terjun (waterfall approach) bagi pengembangan dan penggunaan sistem.
Berbagai metodologi SLC telah dikembangkan untuk memandu proses yang terlibat termasuk model air terjun (asli metode SLC), pengembangan aplikasi cepat (RAD), pengembangan aplikasi bersama (JAD), maka air mancur model dan spiral model.Umumnya, beberapa model digabungkan ke dalam beberapa jenis hibrida metodologi. Dokumentasi sangat penting berapapun jenis model dipilih atau dibuat untuk setiap aplikasi, dan biasanya dilakukan bersamaan dengan proses pembangunan. Beberapa metode kerja lebih spesifik untuk jenis proyek, tetapi dalam analisis terakhir, faktor yang paling penting bagi keberhasilan suatu proyek dapat seberapa dekat rencana tertentu diikuti.
Beberapa SLC terdapat dalam perusahaan yang menggunakan komputer, mungkin ada seratus atau lebih. Pada kenyataannya SLC adalah sarana yang digunakan oleh manajemen untuk melaksanakan rencana strategis. Konsep life cycle menjadikan segala sesuatu yang tumbuh, menjadi dewasa setiap waktu dan akhirnya mati. Pola ini digunakan untuk sistem dasar komputer seperti subsistem pemrosesan data atau SSD.
System Life Cycle terdiri dari lima fase yaitu :
1. Fase Perencanaan
Fase ini dimulai dengan mendefinisikan masalah dan dilanjutkan dengan sistem penunjukan objektif dan paksaan. Di sini sistem analis memimpin studi yang mungkin terjadi dan mengemukakan pelaksanaannya pada manajer.
2. Fase Analisis
Fase ini mempunyai tugas penting yaitu menunjukkan kebutuhan pemakai informasi dan menentukan tingkat penampilan sistem yang diperlukan untuk memuaskan kebutuhan tersebut. Fase ini meliputi penetapan jangkauan proyek, mengenal resiko, mengatur rangkaian tugas, dan menyediakan dasar untuk kontrol. Analisis mengumpulkan persyaratan untuk sistem. Tahap ini meliputi rinci kajian terhadap kebutuhan bisnis organisasi.Pilihan untuk mengubah proses bisnis dapat dianggap. Berfokus pada desain tingkat tinggi seperti desain, program apa yang diperlukan dan bagaimana mereka akan berinteraksi, desain tingkat rendah (bagaimana setiap program akan bekerja), desain interface (antarmuka apa saja yang akan terlihat seperti) dan data desain (data yang akan diperlukan). Selama tahap ini, perangkat lunak dari keseluruhan struktur yang ditetapkan. Analisis dan Desain sangat krusial dalam pembangunan seluruh siklus. Any glitch dalam tahap desain dapat menjadi sangat mahal untuk memecahkan di kemudian tahap pengembangan perangkat lunak. Banyak perawatan dilakukan selama tahap ini. Yang logis sistem produk dikembangkan di tahap ini.
3. Fase Desain
Fase Desain ini meliputi penentuan pemrosesan dan data yang dibutuhkan oleh sistem yang baru, dan pemilihan konfigurasi terbaik dari hardware yang menyediakan desain. Desain system adalah ketentuan mengenal proses dan data yang dibutuhkan oleh sistem yang baru. Proses desain akan menerjemahkan syarat kebutuhan ke sebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada : struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Merancang alir kerja (workflow) dari sistem dalam bentuk diagram alir (flowchart) atau Data Flow Diagram (DFD). Merancang basis data (database) dalam bentuk Entity Relationship Diagram (ERD) bisa juga sekalian membuat basis data secara fisik. Merancang input ouput aplikasi (interface) dan menentukan form-form dari setiap modul yang ada. Merancang arsitektur aplikasi dan jika diperlukan menentukan juga kerangka kerja (framework) aplikasi. Pada tahapan ini atau sebelumnya sudah ditentukan teknologi dan tools yang akan digunakan baik selama tahap pengembangan (development) maupun pada saat implementasi (deployment).
4. Fase Pelaksanaan / Implementasi
Fase ini melibatkan beberapa spesialis informasi tambahan yang mengubah desain dari bentuk kertas menjadi satu dalam hardware, software, dan data. Pelaksanaan adalah penambahan dan penggabungan antara sumber-sumber secara fisik dan konseptual yang menghasilkan pekerjaan sistem. Dalam tahap ini, desain yang sudah diterjemahkan ke dalam kode.Program komputer yang ditulis menggunakan bahasa pemrograman konvensional atau aplikasi generator. Alat pemrograman seperti kompiler, Juru, Debuggers digunakan untuk menghasilkan kode. Berbagai bahasa pemrograman tingkat tinggi seperti C, C ++, Pascal, Java digunakan untuk coding. Sehubungan dengan jenis aplikasi, hak bahasa pemrograman yang dipilih.
5. Fase Pemakaian / Penggunaan
Selama fase penggunaan, audit memimpin pelaksanaannya untuk menjamin bahwa sistem benar-benar dikerjakan, dan pemeliharaannya pun dilakukan sehingga sistem dapat menyediakan kebutuhan yang diinginkan.
Pada fase 1-3 adalah siklus hidup pengembangan system. Tahap 4 adalah tahap penggunaan (implementasi) yang berlangsung hingga tiba waktunya untuk merancang system itu kembali jika diperlukan. Proses merancang kembali akan mengakibatkan berulangnya siklus hidup sistem secara keseluruhan.
Macam-macam metode siklus hidup sistem .

 PROTOTYPING
Prototipe memberikan ide bagi pembuat maupun pemakai potensial tentang cara sistem akan berfungsi dalam bentuk lengkapnya. Proses menghasilkan prototipe disebut dengan Prototyping.
Jenis-Jenis Prototipe
sistem operasional®Prototipe jenis I
Prototipe jenis II  sbg ceak biru bagi sistem operasional®
PENGEMBANGAN PROTOTIPE JENIS I
1. Mengidentifikasikan kebutuhan pemakai
2. Mengembangkan prototipe
3. Menentukan apakah prototipe dapat diterima
4. Menggunakan prototipe
MENGEMBANGKAN PROTOTIPE JENIS II
4. Mengkodekan sistem operasional
5. Menguji sistem operasional
6. Menentukan jika sistem operasional dapat diterima
7. Menggunakan sistem operasional
Daya Tarik Prototyping
• Komunikasi ant. Analis sistem dan pemakai baik
• Analis dpt bekerja lebih baik
• Pamakai berperan aktif
• Spesialis informasi dan pemakai efisien dlm waktu
• Penerapan menjadi mudah
Potensi Kegagalan Prototyping
• Tergesa-gesa dlm mendefinisikan mslh, evaluasi alternatif dokumentasi
• Mengharapkan sesuatu yg tdk realistis dr sistem operasional
• Prototipe jenis I tdk seefisiensi sistem yg dikodekan dlm bhs program
• Hubungan komp-manusia tdk mencerminkan tek.perancangan yg baik
Penerapan yg Berprospek Baik untuk Prototyping
• Risiko tinggi
• Interaksi pemakai penting
• Jumlah pemakai banyak
• Penyelesaian yg cepat diperlukan
• Perkiraan tahap penggunaan sistem yg pendek
• Sistem yg inovatif
• Perilaku pemakai yg sukar ditebak
Tahap – tahap Siklus Hidup Sistem :
Perencanaan.
Analisis.
Perancangan. Penerapan / Implementasi. Penggunaan.
EKSEKUTIF
menetapkan kebijakan dan membuat rencana yang mengatur pemakaian komputer. KOMITE PENGARAH SIM
 mengelola siklus hidup pengembangan sistem dalam perusahaan.
Fungsi Komite Pengarah SIM adalah Menetapkan kebijakan yang memastikan dukungan komputer untuk mencapai tujuan strategis perusahaan.
Menjadi Pengendali Keuangan; berwenang memberi persetujuan bagi semua permintaan dana yang berhubungan dengan penggunaan komputer.
Menyelesaikan pertentangan yang timbul sehubungan dengan prioritas penggunaan komputer.
Langkah – langkah dalam Tahap Perencanaan
1. Menyadari masalah.
2. Mendefinisikan masalah.
3. Menentukan tujuan sistem.
4. Mengidentifikasi kendala – kendala sistem.
5. Membuat studi kelayakan ; tinjauan sekilas pada faktor – faktor utama yang akan mempengaruhi kemampuan sistem untuk mencapai tujuan – tujuan yang diinginkan. 6.Mempersiapkan usulan penelitian sistem. Menyetujui atau menolak penelitian proyek. 7. Menetapkan mekanisme pengendalian.
Langkah – langkah dalam Tahap Analisis:
1. Penelitian sistem.
2. Mengorganisasikan tim proyek.
3. Mendefinisikan kebutuhan informasi.
4. Mendefinisikan kriteria kinerja sistem.
5. Menyiapkan usulan rancangan.
6. Menyetujui / menolak rancangan proyek.
Langkah – langkah dalam Tahap Rancangan
1. Menyiapkan rancangan sistem yang terinci.
2. Mengidentifikasikan berbagai alternatif konfigurasi sistem.
3. Mengevaluasi berbagai alternatif konfigurasi sistem.
4. Memilih konfigurasi yang terbaik.
5. Menyiapkan usulan penerapan.
6. Menyetujui / menolak penerapan sistem.

Langkah – langkah dalam Tahap Implementasi :
1. Merencanakan penerapan. Mengumumkan penerapan.
2. Mendapatkan sumber daya hardware.
3. Mendapatkan sumber daya software.
4. Menyiapkan database.
5. Menyiapkan fasilitas fisik.
6. Mendidik peserta dan user.
7. Masuk ke sistem baru.
Langkah – langkah dalam Tahapan Penggunaan :
1. Menggunakan sistem. Audit sistem.
2. Memelihara sistem, dilakukan untuk 3 alasan :
- Memperbaiki kesalahan.
- Menjaga kemutakhiran sistem.
- Meningkatkan kinerja system .
Prototipe memberikan ide bagi pembuat maupun pemakai potensial tentang cara sistem akan berfungsi dalam bentuk lengkapnya. Prosesnya disebut prototyping.
Ada 2 jenis prototype:
Prototipe jenis I sesungguhnya menjadi sistem operasional;
Prototipe jenis II merupakan suatu model yang dapat berfungsi sebagai cetak biru bagi sistem operasional.
 Potensi Kegagalan Prototyping :
· Ketergesaan membuat prototype mungkin menghasilkan jalan pintas dalam definisi permasalahan, evaluasi alternatif dan dokumentasi.
· Pemakai mungkin begitu tertarik dengan prototype sehingga mereka mengharapkan sesuatu yang tidak realistic dari sistem operasional.
· Prototipe Jenis I mungkin tidak seefisien sistem yang dikodekan dalam bahasa programming.
· Hubungan komputer-manusia yang disediakan oleh peralatan prototyping tertentu mungkin tidak mencerminkan teknik perancangan yang baik.
Prototyping bekerja paling baik pada penerapan-penerapan yang
berciri:
· Risiko tinggi
· Interaksi pemakai penting
· Jumlah pemakai banyak
· Penyelesaian yang cepat diperlukan
· Perkiraan tahap penggunaan sistem yang pendek
· Sistem yang inovatif
· Perilaku pemakai yang sukar ditebak.

Rapid Application Development (RAD)
RAD adalah istilah yang dibuat oleh James Martin, seorang konsultan komputer dan pengarang, untuk suatu siklus hidup pengembangan yang dimaksudkan untuk menghasilkan sistem secara cepat tanpa mengorbankan kualitas. RAD merupakan seperangkat strategi, metodologi dan peralatan yang terintegrasi yang ada dalam
satu kerangka kerja menyeluruh yang disebut information engineering. Information Engineering (EI), pendekatan menyeluruh dalam pengembangan sistem, yang memperlakukannya sebagai kegiatan seluruh perusahaan.
Unsur-unsur penting dari RAD : manajemen, manusia, metodologi, dan peralatan. Siklus hidup RAD : (a) perencanaan kebutuhan, (b) rancangan pemakai, (c) konstruksi, (d) cut over.
Evolusi sistem berbasis komputer mengikuti suatu pola yang disebut siklus hidup sistem, yang terdiri dari tahap perencanaan, analisis, rancangan, dan penerapan serta penggunaan.
Tahap analisis dimulai dengan pengumuman kepada para pegawai dan dibentuknya tim proyek. Kegiatan yang dilakukan yaitu pemakai mendefinisikan kebutuhan informasi, menentukan kriteria kinerja, menyiapkan usulan rancangan untuk merancang sistem baru.
Tahap rancangan mulai saat analis terlibat dalam rancangan sistem yang terinci, dengan menggunakan teknik-teknik dan peralatan terstruktur yang mendokumentasikan proses dan data.
Tahap penerapan melibatkan para spesialis informasi lainnya, pemakai tambahan dan mungkin orang luar seperti konsultan dan kontraktor.
Setelah tahap penggunaan dimulai, analis sistem dan auditor internal melaksanakan penelaahan pasca penerapan, yang diulang secara berkala sepanjang umur hidup sistem. Spesialis informasi juga melakukan pemeliharaan sistem.
Meskipun siklus hidup sistem mewakili bentuk dasar dari kerja sistem, siklus hidup sistem terpengaruh perubahan metodologi lain yang menekankan penggunaan peralatan pengembangan berbasis komputer. Salah satunya yaitu rapid application development – RAD yang menyatukan baik CASE maupun prototyping.

KEUNTUNGAN DAN KERUGIAN .
metode yang bisa kita gunakan dalam pengembangan  sistem  seperti  Waterfall,   spiral,   prototyping,  RAD  (Rapid  Application  Development),  Scrum,Extreme Programming (XP), Bandung Bondowoso serta masih banyak lagi yang lainnya.  Masing-masing metode ini memiliki kelebihan dan kekurangan sendiri-sendiri. Sehingga terkadang membutuhkan studi khusus untuk menentukan  metode  mana  yang  sebaiknya  akan  kita  gunakan dalam mengembangkan sebuah perangkat lunak, terlebih
sebuah sistem informasi.
Banyak  aspek  yang  bisa  dijadikan  acuan  dalam  penentuan ini,  misalkan seperti ukuran sistem,  jumlah tim (SDM),  resiko  pengembangan,  budget  (dana),  schedule (waktu) serta beberapa aspek lainnya.  Ketepatan pemilihan metode tentunya akan sangat menguntungkan bagi developer, terutama untuk penghematan cost baik cost waktu, cost resource maupun SDM. Dalam paper ini, kami akan mencoba untuk membandingkan dua metode pengembangan perangkat lunak yang cukup populer yakni metode Wa-
terfall dan metode Agile dari beberapa aspek yang telah kami jabarkan di atas.

2. Metode Klasik
Metode pengembangan perangkat lunak (Software Development Methodology) atau metode pengembangan sistem mengacu pada kerangka yang digunakan untuk membuat struktur, rencana, dan kontrol dari proses pengembangan sebuah sistem (khususnya sistem informasi)[2]. Dalam kata lain dapat dikatakan juga sebagai sebuah pendekatan yang  digunakan  oleh  organisasi  atau  sebuah  tim  dalam mengembangkan perangkat lunak.
Ada banyak metode-metode pengembangan perangkat lunak yang ada saat ini.  Beberapa diantaranya merupakan metode dasar (klasik) yakni seperti metode Waterfall, Spiral dan Prototyping.  Selain ketiga metode tersebut, telah banyak juga pengembangan metode-metode klasik lainnya seperti RAD, Incremental, V-Shaped model serta beberapa metode lainnya.

2.1. Waterfall Model
Yakni sebuah desain  proses yang sequensial (berurutan) yang dalam progressnya terlihat seperti aliran air ter-jun (waterfall) dari proses perancangan konsep, inisialisasi project, alanisis, desain, pembuatan system (coding), testing, produksi/implementasi dan perawatan (maintenance).

Beberapa prinsip utama dari model ini yakni[2]:
• Project dibagi-bagi dalam beberapa fase yang saling berurutan.
• Penekanan  pada  perencanaan,   jadwal  (schedule), deadline, budget, dan implementasi keseluruhan sis-
tem sekaligus.
• Kontrol yang ketat dalam siklus hidup project dengan menggunakan bantuan dokumentasi tertulis.

Kelebihan dari metode ini yakni:
• Mudah dimengerti, mudah digunakan,
• Requirement dari sistem bersifat stabil,
• Baik dalam manajemen kontrol,
• Bekerja dengan baik ketika kualitas lebih diutamakan dibandingkan dengan biaya dan jadwal (deadline).
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnCbDZXEGa-nJvKqY4owCpc7_xo9xmOPfkwBM0Tou33aXqdIhQzwx7tVvkCIpvpc58kPsojsss2bShPOlEkzMR-lVCQmw21rctSC6Lrj0FmRJQ2PgDOxGbKkEKe48k6IB87DIrQRe91J-5/s200/Three_software_development_patterns.png

Gambar 1. Tiga metode klasik dalam pengembangan perangkat lunak (Waterfall, Prototyping dan Spiral)

Selain kelebihan-kelebihan di atas, model Waterfall ini memiliki kekurangan yang sangat banyak.  Dikarenakan sangat banyak tim yang telah mengimplementasikan projectnya dengan menggunakan model ini. Beberapa diantara kekurangannya itu yakni:
• Semua  kebutuhan  sistem  harus  diketahui  terlebih dahulu,
• Penenyahan  dari  setiap  fase  ke  fase  lainnya  dapat dikatakan statis (tidak fleksible)
• Dapat memberikan kesan palsu dari progresnya.
• Tidak menunjukkan menunjukkan prinsif ”ProblemSolving”  dalam  Pengembangan  Perangkat  Lunak
dikarenakan fase yang harus berurut.
• Integrasi sekaligus di akhir sistem.
• Customer hanya memiliki sedikit kesempatan untuk melihat dan mereview sistem (yakni di akhir project).
• Resiko sangat tinggi, karena testing hanya dilakukan pada  setiap  akhir  fase,  bahkan  tidak  jarang  testing hanya dilakukan di akhir-akhir project.
• Membutuhkan waktu yang cukup lama (walaupun projectnya tidak terlalu besar).
• Perubahan  requirement  dapat  merubah  keseluruhan proses yang telah dilaksanakan.

2.2. Prototyping
Yakni sebuah pendekatan pengembangan dalam sebuah aktifitas pengembangan perangkat lunak untuk pembuatan prototype,  misalnya berupa produk belum jadi dari peragkat lunak yang dikembangkan.   Beberapa prinsip utamanya yakni[2]:
• Tidak  berdiri  sendiri,   serig  digabungkan  dengan metode lainnya seperti Incremental, Spiral atau RAD.
• Berusaha  untuk  mengurangi  resiko  project  dengan memecahkannya kedalam sub-sub project yang lebih kecil  yang  memungkinkan  untuk  memudahkan  perubahan.
• User terlibat dalam proses, sehingga memungkinkan sistem yang sesuai dengan permintaan user.
• Mock-ups berukuran kecil dari sistem dengan perubahan  berlanjut  hingga  sesuai  dengan  kebutuhan  dari user.
• Pengembangan lebih lanjut dengan mengembangkan prototype.
Metode ini memiliki banyak keuntungan bagi developer, karena pada metode ini customer dan user system terlibat secara langsung dalam pengembangan. Kelebihan dari metode ini yakni:• User  dapat  melihat  secara  langsung  perkembangan system seiring dengan permintaannya,
• Developer belajar langsung mengenai kebutuhan sistem dari customer/user,
• Hasil produk yang lebih akurat (lebih sesuai dengan permintaan user),
• Desain sistem lebih fleksibel,
• Iteraktif dengan adanya simulasi prototype,
• Untuk pengembangan lebih lanjut (jika terjadi perubahan), developer hanya perlu mengubah prototype,
• Jika customer sudah ”puas”, prototype dibuat menjadi system secara sempurna untuk dijadikan ’Final Product’.

Sedangkan kekurangan-kekurangannya yakni:
• Proses bisa jadi berlanjut terus menerus tanpa henti (mengikuti keinginan customer),
• Bisa jadi customer malah menginginkan prototype system dikirim,
• Reputasi  yang  buruk  sebagai  sebuah  metode  yang bersifat ”Quick-and-Dirty”.
• Kemungkinan perawatan secara keseluruhan bisa saja terabaikan.
• Pengembangan yang berlebihan untuk prototype.

2.3. Spiral
Model Spiral adalah proses pengembangan perangkat lunak yang menggabungkan antara elemen waterfall model dengan prototyping dalam setiap tahap, dalam upaya untuk menggabungkan keuntungan dari konsep top-down dan bottom-up.  Model ini pertama kali dikenalkan pada tahun 1988 oleh Barry Boehm. Beberapa prinsip utama model ini yakni:
• Fokus pada penilaian resiko dan minimalisasi resiko project  dengan  memecah  project  menjadi  beberapa bagian
• Setiap perjalanan siklus spiral selalu melalui empat kuadran utama yakni:  (1) menentukan objective atau
tujuan,  alternative-alternative dan  batasan dalam  iterasi tersebut; (2) evaluasi alternative-alternative, iden-
tifikasi resiko dan penyelesaiannya; (3) pengembangan (develop) dan persiapan untuk pengajuan dari iterasi
tersebut; dan (4) perencanaan untuk iterasi berikutnya.
• Permulaan setiap siklus identifikasi stakeholder dan kondisi akhir, serta review dari setiap siklus.

Kelebihan dari model ini yakni:
• User dapat melihat sistem lebih awal dengan adanya rapid prototyping tools,
• Fungsi-fungsi  yang  memiliki  resiko  tinggi  diprioritaskan lebih utama,
• Desain sistem tidak perlu perfect,
• Mendapat respon yang lebih cepat dari user,
• Perhitungan biaya dilakukan setiap saat.

Sedangkan kelemahan dari model Spiral ini yakni:
• Rumit, membutuhkan manajemen yang penuh perhatian dan berpengalaman untuk bisa melakukannya.
• Beresiko besar jika tidak sesuai dengan budget atau schedule.
• Penggunaan waktu untuk melakukan evaluasi resiko terlalu besar.
• Spiral (siklus) munkin bisa berlanjut tanpa batas.
• Bisa  sangat  sulit  untuk  mendefinisikan  tujuan  dan pencapaian yang menujjukkan kesiapan untuk melan-
jutkan menuju ke iterasi berikutnya.
• Model ini hanya bekerja dengan baik pada project yang berukuran besar dan memiliki waktu pengerjaan yang panjang juga.[3]

2.4. Iterative dan Incremental Model
Selain  ketiga  metode  basic  tersebut,   ada  beberapa metode lainnya yang merupakan pengembangan dari ketiga metode tersebut.  salah satunya yakni metode Iterative dan Incremental Model. Iterative dan Incremental Model adalah sebuah model yang dibuat untuk menanggulangi kelemahan dari metode  waterfall.  Model ini dimulai dengan inisialisasi perencanaan dan diakhiri dengan deployment atau produksi dengan sebuah lingkaran iterasi diantara perencanaan dan deployment.  Gambar 2 berikut dapat menjelaskan bagaimana siklus dari model ini.

3. Agile SDLC
Agile   software   development   (sering   disebut   ”agile”)adalah kumpulan dari metode-metode pengembangan perangkat  lunak  yang  berbasis  pada  Iterative  dan  Incremental  Model.    Agile  membawakan  perubahan  dari  model metode-metode  kelas  berat  seperti  waterfall  dan  Spiral
Gambar 2. Iterative dan Incremental.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiThYgtr7WkQnlCTpe632Ap6zmlUTxaGsfv2ApIFsc93UbKXDOhgukeMSlGStbvfYk6kzOLv2mThqUn8H9s6EA2Zhg9gsQn0qoCYJ9LM8ulfTTvEyZDDqxL_g1kSCReWFi7xEYHXLo4hTEg/s200/Iterative_development_model.jpg

Agile  adalah  metode  pengembangan  perangkat  lunak yang  ringan,  yang  memungkinkan  tim  untuk  mengembangkan perangkat lunak yang memiliki reequirement yang samar-samar dan mudah berubah dengan cepat.

Gambar 3. Agile Development
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip8bcEh3txq5rvK54D_tHtGWlUBFwnZwF7WCkGlAPR7sn_-BvGynJKwP0MwcIkq79h3QPXGokrxQfDjTMj37J3Qryjio56X9ZxfkCygRio00J-1NAQHpwo1WXGZFH2c5vsQpLc-KWsve8n/s200/Agile_Software_Development_methodology.jpg

Agile memiliki beberapa prinsip utama yang membedakannya dengan metode-metode klasik yang telah dijelaskan di atas.  Prinsip-prinsip ini telah dikenalkan dalam Agile manifesto1 sejak tahun 2001 lalu. Prinsip-prinsip ini yakni:
1 www.agilemanifesto.org
• Lebih cepat dalam merilis perangkat lunak secara terus menerus,
• Pengiriman perangkat lunak sesering mungkin,
• Dapat dengan mudah menerima perubahan requirement,
• Kebutuhan komunikasi harian antara customer dengan pengembang,
• Kebutuhan  komunikasi  secara  langsung  antara  customer dengan pengembang,
• Project dibangun antar tim,
• Kepercayaan dan support terhadap tim,
• Tim bebas mengorganisasikan dirinya sendiri,
• Tim bebas bekerja dalam kecepatan yang bisa dipertahankan,
• Tim bebas mereview tingkat keberhasilan dan kegagalan mereka,
• Sesederhana mungkin dalam desain dan implementasi,
• Berusaha untuk keunggulan dalam desain teknis dan implementasinya.

3.1. Kelebihan dan Kekurangan Agile (Scrum dan XP)
Sebelum kita membahas tentang kelebihan Agile, mari kita coba list beberapa alasan utama kenapa sebuah project sering mengalami kegagalan. Alasan pertama yakni sedikitnya keterlibatan user atau customer dalam proyek. Dalam beberapa kasus yang menggunakan metode pengembangan waterfall, user hanya terlibat pada fase analisis dan testing saja.  Sehingga, kebanyaka user terkadang menerima begitu saja hasil yang diberikan oleh developer dengan sedikit sekali testing terhadap perangkat lunaknya.
Alasan  kedua  yakni  requirement  yang  ’buruk’. Beberapa hal yang munkin perlu kita jadikan catatan bahwasanya  mustahil  untuk  mengumpulkan  requirement  di awal-awal  project  dan  semua  requirement  yang  telah berhasil  dikumpulkan  tidak  bisa  dijamin  untuk  tidak berubah. Alasan lain yang menyebabkan buruknya requirement adalah karena user atau customer kadang tidak tahu apa yang mereka butuhkan. Alasan ketiga yakni schedule atau jadwal yang tidak realistis.Kadang jadwal tidak disepakati dari pihak-pihak yang terlibat dalam pengembangan, seperti tim yang menganalisa  project  terkadang  memutuskan  schedul  project akan selesai dalam waktu tertentu yang terkadang menjadi beban bagi tim yang mengembangkan perangkat lunaknya(tim developer).  Tim developer terkadang tidak memiliki cukup waktu untuk mengembangkan perangkat lunak sehingga kadang membuat keterlambatan dalam penyerahan perangkat lunak yang jadi.
Alasan keempat yakni sedikitnya testing.  Pada banyak metode klasik,  testing dilakukan di akhir-akhir fase,  sehingga sangat sedikit testing yang dilakukan.  Sedikitnya testing ini bisa mngakibatkan kemungkinan ditemukannya bug dan perbaikan dalam system sangatlah kecil.  Hal ini mungkin menguntungkan bagi Developer, akan tetapi bisa berakibat buruk pada masa perawatan system setelah system diproduksi.
Alasan kelima yakni minimnya adaptasi dengan perubahan requirement.  Terkadang rencana bisa berubah di tengah jalan, rencana yang tadinya seharusnya lurus bisa jadi berliku-liku  seiring  dengan  berubahnya  permintaan  customer.  Apa yang seharunya dikerjakan nanti belakangan, terkadang ditemukan penyelesaiannya terlebih dahulu.
Serta masih banyak lagi alasan-alasan lainnya yang sering membuat sebuah project mengalami kegagalan.   Apa hubungannya  dengan  Agile?     Secara  teori  Agile  dapat menanggulangi masalah-masalah ini berdasarkan dari prinsip-prinsip agile di atas.
Beberapa  keunggulan  agile 2 dengan  metode-metode lainnya yakni:
• Proses Iterative dan Incremental,
• Requirement dapat berubah sewaktu-waktu,
• Pelacakan requirement dengan melihat Backlog produk,
• Keterlibatan user secara aktif,
• Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir iterasi.
• Testing dilakukan setiap saat, Seperti metode-metode lainnya, Agile bukanlah metode yang  sempurna.
Agile  memiliki  kelemahan-kelemahan yang tidak kalah banyaknya dengan metode-metode klasik yang telah kami jelaskan di atas.  Beberapa kelemahannya ini antara lain[1]:
• Agile jarang dipraktekkan secara langsung,
• Interksi dengan customers yang berlebihan,
• Agile  sulid  diimplementasikan  dalam  proyek  yang berskala besar,
• Membutuhkan manajemen tim yang terlatih,
• Lemah dalam perencanaan arsitektur,2 Scrum dan Extreme Programming
• Keterbatasan waktu dalam perencanaan Proyek,
• Serta beberapa kelemahan lainnya.

3.2. Beberapa Metode Agile
Seperti  telah  dijelaskan  di  atas,   Agile  merupakan sekumpulan   metode-metode   pengembangan   perangkat lunak     yang     dikembangkan     untuk     menyelesaikan permasalahan-permasalahan yang ditemukan pada metodemetode klasik.  Beberapa metode yang termasuk ke dalam metode agile yakni:
• Crystal (Light, Clear, Orange, dll)
• DSDM,
• Lean,
• Kanban,
• Rational Unifield Process (RUP),
• Scrum,
• Extreme Programming (XP) dan lainnya


DOWNLOAD PDF
http://www.4shared.com/office/CVa1viLu/Softskill.html
 




KESIMPULAN :
Bahwa siklus hidup system tidaklah luput dari perencanaan yang matang karena tanpa  perencanaan tersebut maka suatu system tidaklah dapat berjalan sesuai rencana.


DAFTAR PUSAKA :
(http://maiasari.blogspot.com/2010/05/siklus-hidup-sistem.html
(http://juventus4ever.wordpress.com/2011/11/25/metodologi-siklus-hidup-sistem/

Tidak ada komentar:

Posting Komentar