360 likes | 656 Views
Estimasi Pengembangan Perangkat Lunak. Salah satu kriteria penilaian proyek sehingga bisa dikatakan sukses adalah bahwa produknya selesai tepat waktu dan sesuai dengan rencana biayanya.
E N D
EstimasiPengembanganPerangkatLunak Salahsatukriteriapenilaianproyeksehinggabisadikatakansuksesadalahbahwaproduknyaselesaitepatwaktudansesuaidenganrencanabiayanya
Setelah objectives, goal dan requirements faseselesai, kemudianfaserencanaaktivitasproyekjugatelahselesai. • Makalangkahkrusialberikutnyaadalahmemperkirakanwaktu (danjugaberkaitaneratdenganbiayaproduksi) penyelesaianproyek
Perangkatlunaksebagaisuatuproduk yang kompleksdan intangible (tidakkasat mata), memerlukan perlakuan khusus dalam pengestimasiannya karena dalam proses pengembangannya perangkat lunak tidak dapat dinilai secara mekanis ataupun kuantitas. Secara khusus ada bidang ilmu dalam dunia informatika yang mempelajari teknik pengukuran perangkat lunak, dikenal dengan sebutan Software Metrics and Quality
Dalambidangilmuiniselainpengukuranperkembanganpadasaatperangkatlunakdibuat, jugadiukurkinerjanyapadasaattelahdipakaidalamlingkunganaplikasi, dikenaldenganistilahsoftware maturity model, contohnyaadalah CMM (Capability and Maturity Model) dan Bootstrap Model.
Kesulitanestimasiperangkatlunak • Selainkarenaperangkatlunakmerupakanproduk yang tidakdapatdinilaisecarakasatmatadankarenakompleksitasnya, adabeberapafaktor lain yang membuatpengembangansuatuprodukperangkatlunaksulitdiestimasibaiksecarabiayamaupunwaktunya.
Keunikanprodukperangkatlunak. Perangkatlunakatau program biasanyaunikdikembangkanuntuksuatupermasalahantertentu. Lain denganprodukrekayasalainnya, rekayasaperangkatlunaktidakdapatbegitusajamenggunakanpengalamandarimasasilamuntukmenentukanestimasibiayaataupunwaktudalampengimplementasiannyadimasakini. • Perubahanteknologi. Perkembanganduniainformasisangatcepat, teknologi yang digunakan lima tahunlalu, sudahdianggapusangpadamasakini. Perangkatlunak yang dibuatdalambahasa C, dianggapsudahtidakmemenuhisyaratuntukturutsertadalampertukaraninformasimelalui Internet saatini, program misalnyaharusdiubahmengikutiperkembangan program berorientasiobyeksaatini, denganmenggunakanbahasa Java.
Perbedaanpengalamanpekerjadalamproyek Programmer sebagai unit pekerja yang mengimplementasikan requirements sebuahprodukperangkatlunak, memilikipengalaman yang berbeda-bedadalammenggunakanteknikpemrogramandanteknologiseputar IT. Iniberkaitaneratjugadengantacit knowledge, yaitupengetahuan intern yang dimilikipekerjadalamsuatuorganisasi.
PengenalanRekayasaPerangkatLunak • RekayasaPerangkatLunak (software engineering) ataudikenaljugadengansebutanmetodologipengembanganperangkatlunak (software development methods) merupakansuatucabangilmudalamdunia IT yang mempelajarisecarakhususteknik-teknikdalamupayapengembanganperangkatlunakdarimulaifaseawal (requirements) hinggafaseakhir (evaluasi).
Suatumetodologimenggambarkanfase-fasedanketerkaitanantarfasetersebutdalamprosespengembanganproduk, dalamhaliniprodukperangkatlunak. Untukmemudahkanmelihatketerkaitanantarfasediciptakanlah life-cycles, yaitugambaransiklushidupdalampengembanganproduk. Denganpertolongan life-cycles ini, makaestimasiwaktudanbiayadapatdipecah-pecahdalamsetiapfase (ingatjugametode yang serupadigunakandalam WBS).
Sofware Life-cycles • Secaraumumkegunaandari life-cycles iniadalah: • Membagiproyekdalamfase-fasesecarajelasdanmenyeluruh; • Membantupengontrolandanpengarahanproyeksesuaidenganobjectives dan requirements; • Hasildarisetiapfasedalam life cycles dapatdigunakansebagai Milestones dansebagai input untukfaseselanjutnya.
Macam-macam life-cycles yang seringdigunakanadalah: • Spiral model; • Waterfall model; • Throw-away prototyping model (metodecepatdankotor, biasadigunakandalampemrogramanindividu); • Evolutionary prototyping model (digunakanpadaproyek-proyekberisikorendah); • Incremental / iterative development (Rapid Application Development, iterasiproyek, client-minded); • Automated software synthesis (requirements and specifications tools, masihdalampengembangan
Karakteristik: • Life cycles inimasihdigunakansecaraluassampaisekarang; • Fasedalamproyekterukurdanperkembangansetiapfasedapatdiikuti. • Pengalamandariproyek (fase) sebelumnyadapatdigunakansebagai feed-back dalamestimasi. • Hasil (bagian) proyekdapatdigunakansbgacuandiproyekmendatang. • Setiapfaseharustuntassebelumdapatmelanjutkanproyekkefaseberikutnyaatau feed-back kefasesebelumnya. • Perkembanganproyekmudahdiikutipadasetiapfasenya.
Spiral model • Karakteristik: • Menggunakanprinsipiterasi, namundalamsetiap kali iterasidiperhitungkandengan “manajemenrisiko”-nya. • Padasetiapsiklus (iterasi) dinilaibagaimana status proyeksaatini, apakahsesuaidengantujuan (objectives) semula; • Mempertimbangkanrisiko-risikoapa yang dapatmunculbiladiadakanperubahanpadasuatuiterasidanmelihatalternatifapasaja yang tersediadanmenilaidampaknyabagiproyek; • Tahapiterasiberikutnyaharusmenitik-beratkanpadapenanggulanganrisiko-risiko; • Setiapiterasiditutupdenganpengeksekusianrencana.
Singkatnya: desain (rencana); identifikasitujuan; evaluasialternatifdanrisiko; danpengembangan (implementasi) dilakukanpadasetiapfase. Produkberkembangpadasetiapfase. Setiapfasemenghasilkansuatu prototype sebagai input bagifaseberikutnyadengantujuanpadafaseterakhirprodukmenjadilengkap.
Analisis domain • Sebuahproyekperangkatlunakberoperasipadasalahsatudariproduk domain berikutini: • Data oriented design (information engineering); • Contoh: pengembangan database untuk data pegawai; • Function oriented design (structured analysis); • Contoh: pengembangansistemtransaksi online e-commerce; • Object Oriented (OO) methods (gabunganantara data orientasidenganfungsiorientasi); • Contoh: pengembanganpengembanganperangkatlunakuntuksistemkeamananrumah.
Formal methods (evaluasi): untukmenggambarkanataumembuktikankebenaranjawabandarisuatu problem dalamteoritentanginformasi; • contoh: penggunaanpenggunaanbukti-buktimatematikadiskrit (otomata, graphs, perhitungankombinatorial, dll) untukmembuktikannilaikebenaransuatu program. • Berdasarkanpadapembagian domain ini, risetterhadapproyeksertaestimasiterhadapbiayadanwaktudapatlebihfokus.
Biaya-biayaproyekperangkatlunak • Biaya-biayainimeliputi: • Biayalangsung: • Berhubunganlangsungdenganjalannyaproyek. • Hargabarang-barangbaikperangkatkerasmaupunlunak. • Lisensiperangkatlunak. • Jam kerjaorganisasidan/atau outsourcing. • Biayataklangsung: • Biaya yang mendukungjalannyaproyek. • Biayarapat. • Material kerja (kertas-kertas, printer, alattulis, disket, dsb). • Biayatakterduga, misalnyauntukwaktukerja yang melebihiperkiraan.
informasimengenaibiayadapatdilakukanmelaluirisetpadaawalterjadinyaproyek. Hal inimeliputi: • Kontakdengan IT vendor terpercaya (ataudenganexpert); • Informasiproyeksejenis (misalnyadaridatabase perusahaanataudariIT-Vendorsterpercaya); • Menggunakanteknik-teknikperhitunganfinansial (parametric model), disusundari WBS yang telahdibuat: • Total budgeted costs (alokasidanauntukimplementasi); • Cumulative actual costs (biaya yang sampaisaatinitelahdikerluarkan); • Cost variance (selisih total rencanabiayadgnbiayaaktual);
ManajemenBiayaProyekPerangkatLunak • Secara global project cost managementmeliputiaktivitasdibawahini: • Perencanaansumberdaya; • Estimasibiaya; • Pembuatananggaran; • Kontrolanggaran.
PerencanaansumberdayasebagianbesartelahterbahaspadabagianWBSdannetwork planning. Dalambabiniakandibahaskelanjutandaripermasalahanbiaya, yaituestimasibiaya. Untukpembuatananggarantidakakandibahasdalamkuliahini, masalahinidibahaskhususdalambidangilmufinancial project management. Sedangkankontrolanggaranakandibahassebagiankecilsaja, yaitumengenaiearned value, cost performance index danschedule performance index.
Teknikumumestimasibiayadanusaha (effort) • Top-down estimating (analogous estimating): menggunakaninformasidariproyek-proyeksejenissebelumnyasebagaidasarperhitungan. Penggunaanteknikiniadalah yang paling cepatdansederhana, namunberisikotinggikarenakurangakurat. Disebabkankarenaperhitungannyaberkaitaneratdengankeunikansetiapproyek yang berbedadankemampuanestimasidaripelaksananya (expertataumanajerproyek) yang jugaberbeda-beda. Salahsatucontohpenggunaanteknikiniadalahdenganpenggunaancase-based reasoning.
Paremetricmodelling: menggunakan data-data langsungdariproyeksebagai input untukdiolahdenganmenggunakan model matematis. Keakuratanteknikinibergantungpadaprosespembuatan model matematis yang digunakan, keakuratan data proyekdan model dapatdigunakansecara general untukproyekkompleksmaupunsederhana. Contoh model matematis: estimasijadwaldenganmetode PERT, estimasijumlahfunction pointdengan COCOMO model.
Bottom-up estimating: menggunakanperancanganaktivitas (WBS) yang sudahdibuat. Setiapaktivitasdinilaisendiri-sendirikemudianditotalkanuntukkeseluruhanproyek. Keakuratanteknikinibergantungpadabesarnyaaktivitasproyek yang diestimasi. Semakinkecilaktivitasnyaakanmeningkatkankeakuratan, tapiakanmemperbesarestimasibiayanya. • Tools komputer: menggunakanmisalnya software manajemenproyek, seperti MS-Project dalammelakukanestimasi.
Kontrolbiaya • Setelahproyekberjalan, semuacash flow (pengeluarandanpemasukanuang) harusdikontrolsehinggatetapberadapadabatasan yang direncanakanmelaluiestimasibiaya. Adapun data-data yang diperolehdarikontrolbiayadapat pula dijadikanmasukanbilaadaperubahanrencanapadaaktivitaskerjaproyek (sebagaiinformasihistoris).
Untukmengadakanpengontrolanterhadappemasukandanpengeluaraniniadabeberapaistilah yang wajibuntukdipahami: • Total budgeted costs, yaitujumlahbiaya total yang dianggarkan, terutamauntukfaseimplementasi; • Cumulative actual costs, yaitujumlahbiaya yang dikeluarkandalamproyekpadasaatkontroldilakukan; • Cost variance, yaituperbedaanjumlahpengeluaran yang terjadipadasaatkontroldengan yang dianggarkan; • Earned value, yaitujumlahuang yang dihitungdarinilaipekerjaansampaipadasaatkontroldilakukan. Persentasepekerjaan yang terselesaikanpadasaatkontrolakanmembantumanajerproyekuntukmenghitungnilaipekerjaanpadasuatuaktivitasataupunproyekkeseluruhan. • Qualitative value, yaituhal-hal yang tidakdapatdinilaidenganuangatauangka, sepertikepuasanpelanggan, perbaikanprosesdalamproyek.
Biladigambarkandalamsebuahgrafikantarahubunganwaktuproyekdanbiaya, makamekanismepengontrolanbiayaproyekdapatdijelaskansebagaiberikut
Apabilanilaidaripekerjaan yang telahdijalani (actual cost earned value), yaitubiayasesungguhnyadarisuatuaktivitaspadasaatkontroldilakukan, telahdihitung; makadenganmenggunakaninformasisejenisdariaktivitas-aktivitaslainnya, kinerjakeseluruhanproyekdapat pula dihitung. • BesaranuntukmenghitungkinerjaaktivitasinidikenaldenganistilahIndeksBiayadanKinerja (Cost Performance Index), yaituperbandingannilaipekerjaan yang diperolehdengan total pengeluaran yang terjadipadasaatsuatukontroldalamproyekdiadakan. • Besaranlainnya yang dapatdihitungdanberperandalammenentukanapakahkinerjaproyekharusditingkatkanatausudahmemadaiadalahIndeksPenyelesaianKinerja (To-complete Performance Index).