470 likes | 703 Views
TESTING & IMPLEMENTASI SISTEM. “ Pengembangan & Perancangan Perangkat Lunak ” Diema HS, S. Kom. Pengembangan Perangkat Lunak. Secara umum , diketahui bahwa dalam suatu siklus pengembangan perangkat lunak selalu terdapat empat proses utama , yaitu :. Plan. Act. Do. Check.
E N D
TESTING & IMPLEMENTASI SISTEM “ Pengembangan & PerancanganPerangkatLunak” Diema HS, S. Kom
Secaraumum, diketahuibahwadalamsuatusikluspengembanganperangkatlunakselaluterdapatempatprosesutama, yaitu : Plan Act Do Check
Pelaksanaankegiatanpadatahapanalisis, desaindanimplementasi di dalamsikluspembuatanperangkattidakmenjaminbahwasuatuperangkatlunakakanbebasdarikesalahan (fault free), untukmengurangiataubahkanmenghilangkankesalahanpadaperangkatlunakdiperlukansuatutahappengujian. Kesalahan yang terjadijugatidakhanyakesalahan yang dapatmenyebabkanfungsiperangkatlunaktidakdapatberjalan (error), tetapidapatjugaberartipenggunaanperangkatlunaksukaruntukdimengerti user danproses pelacakan kesalahan sukar untuk dilakukan.
Pengembanganperangkatlunak (Software development) merupakansalahsatudaritahaprancangan system rinci/detail dariSiklusHidupPengembanganSistem (Software Development Life CycleatauSDLC). • Tim proyek system mungkinmulaimencaripaketperangkatlunakkomersial yang sesuaiataumendukungspesifikasirancangan system danberjalanpadarancanganarsitekturkomputernya. Paketperangkatlunakkomersialsecaraluastersediauntukaplikasifungsispesifikdanaplikasibisnis yang telahditetapkansecarabaku. • Tetapiuntukrancangansistem yang terkaitdengankebutuhankhususatauunik (memenuhikeperluanpemakaidanspesifikasirancangansistem) makapaketperangkatlunakkomersialmungkintidaksesuaiataumendukungkebutuhanpemakaisecaralangsung. Perangkatlunak yang diharapkanuntukmendukungrancangansistemtersebutharusdibuatsendiridariawal (scratch)
TipePengembanganSistem (ProyekPerangkatLunak) • Tipeproyekpengembanganperangkatlunakharusdisesuaikandenganlingkunganataumetodologi/paradigma yang digunakandalampengembanganperangkatlunak. • TipePengembanganSistem : A. Pengembangansistembiasa Karakteristik : Menggunakanmetodologipengembangan system User mengetahui requirement Pengembanganmenentukanstruktur SiasatPengujian : Pengujiandilakukanpadaakhirtiap-tiaptahap Melakukanverifikasitiap-tiapspesifikasi yang diperlukan Mengujistrukturdanfungsi
B. PengembanganIteratif (Prototyping/CASE) Karakteristik : Requirement tidakdiketahui Struktur didefinisikan di awal pengembangan SiasatPengujian : Verifikasialat Bantu CASE yang digunakan Verifikasikebutuhantiap prototype Mengujifungsionalitas C. PemeliharaanSistem Karakteristik : Memodifikasistruktur SiasatPengujian : Mengujistruktur Mengeluarkanmetodekerja yang terbaik Memerlukanpengujianregresi
D. Kontrak/Pembelian Software • Karakteristik : Strukturtidakdiketahui • Banyakterjadi defect • Fungsionalitastercantumdalamdokumen • Terdapatberbagai document • SiasatPengujian : Verifikasifungsi yang diperlukan • Pengujianfungsionalitas • Pengujiandi dalamlingkungankerja
MenentukanLingkupProyek • Menentukanlingkupsuatuproyekditentukanberdasarkankeseluruhanaktivitas yang tersangkutdalampembangunan system perangkatlunak. • Lingkupproyekmenggambarkankarakteristik yang diperlukansecaralebihrinci, denganmenekankanpadadaftar requirements yang telahditentukanterlebihdahulu.
Perbedaanlingkupproyek : A. PengembanganSistembaru a) Apakahakanmengotomatisasiprosesbisnis yang manual b) Prosesbisnis yang mana yang akandipengaruhioleh system baru c) Area bisnis yang mana yang akandipengaruhioleh system baru d) Program Perantaradengan system lama e) Sistem yang lama akanterpengaruhatautidak B. Perubahan system yang telahada a) Apakah hanya melakukan koreksi b) Apakahhanyamelakukanprosesrekayasa PL secarastandar c) Pengoreksianuntukmengetahui defect dalamrangkaperluasan system d) Apakahterdapat system yang terpengaruh e) Adakahresikoataukemunduran system
SumberPerangkatLunakAplikasi • PerangkatLunakKomersialdari Vendor • PerangkatLunakPesanan (customized software) dikembangkansecara in-house atauolehkontraktorpemrograman independent
A. PerangkatLunakKomersialdari Vendor • Paket (off-the-self) yang tersediabisaditerapkandalamberbagaikebutuhanbisnis. Beberapapaketbersifatgenerikdanmultifungsional yang memungkinkanparapemakaimemprogramsofwaretersebutuntukkebutuhannyasendiri. Paket-pakettersebutmengotomisasifungsi-fungsibisnisdasar yang umumnyatidakterlalubervariasidarisatuorganisasidenganorganisasi lain. Contohjenispaketadalah spreadsheet dan DBMS.
Keuntungan/kelebihandariPerangkatLunakKomersial : • Implementasi yang cepat Software tersebutbersifatsiap, teruji, danterdokumentasi. Paket yang dibelibiasanyapengimplementasiannyajauhlebihcepatdaripadamengembangkan program yang samasecara in-house ataumenyuruhkontraktorindependenuntukmengembangkannyasehinggasecarapotensialmembantumemecahkanbacklog (penimbunanpekerjaan yang belumselesai). • PenghematanBiaya Satupaketperangkatlunakkomersialbisadijualkepadabanyakorganisasisehinggabiayapengembanganditanggungolehbanyakpemakai, danbiaya total suatupaketakanlebihmurahdaripada program pesanan yang sama • Estimasibiayadanwaktu Biayaatauhargapaketkomersialtelahdiketahui, dantanggalpengimplementasian-nyamudahdiestimasi. Sebaliknya program pesananbiasanyacenderungmelampauiestimasiwaktudanbiaya. • Reliabilitas Sebelumditerbitkandipasaranumum, paketperangkatlunakkomersialpastitelahdiujisecarateliti. Melaluipenggunaan yang ekstensifolehsejumlahorganisasi, segalakesalahan yang dijumpaitelahdideteksidandikoreksisehinggapeluangkesalahannyalebihsedikit.
Kerugian/kelemahan : • KesesuaianRancangansistem yang tidakbaik Paket software komersialdibuatuntukberbagaiorganisasi, dantidakuntukorganisasitertentumakapaketinimungkinmempunyaibeberapafungsi yang tidakdiperlukanataumungkintidakmempunyaifungsi yang diperlukansehinggapakettersebutharusdimodifikasi. Jika vendor tidakmembuatkodesumber (source code) yang bisadigunakanuntukpenyesuaiandantidakmenyediakanlayananpenyesuaianmakarancangansistemmungkinharusdiubah agar sesuaidenganpakettersebut. Jikahaliniterjadisebaiknyamengembangkan program secara in-house agar programnyabisamemenuhispesifikasirancangansistem yang tepat. • Ketergantungan Vendor Jikaorganisasimemerlukanperubahanpaketnyamakaorganisasiakantergantungpada vendor dalamperolehandukungannya, danjika vendor telahtiadamakaorganisasiakankesulitanmencaridukungannya.
Biayatidaklangsungdarikerusakan SDLC Seringkaliapa yang ingindicapai, manajementidakmelaksanakan SDLC menyeluruhataumungkinmelewatitahap SDLC, dansecaralangsungmenujukepaketperangkatlunakkomersialStrategiiniseringkalimengakibatkanpaketperangkatlunakkomersialtidakberjalansesuai yang diharapkandanmasalahsistemsertaorganisasional yang terjadisebelumimplementasipakettersebuttetapmunculsehinggamenimbulkankesulitanatauharusdibayarkemudianyaituadanyapeningkatanbiayaimplementasi, operasi, danpemeliharaan.
Penilaian KinerjaPengoperasian, Dokumentasi, Kemudahanpembelajaran, Kemudahanpenggunaan (pengendaliandanpenanganankesalahan, dukungan)
B. PerangkatLunakPesanan (customized software) • Jika system yang sedangdikembangkantidakbisadidukungolehpaket software makaharusmemesandariperusahaanjasa/kontraktorindependenataumembangunsendiriperangkatlunak (in-house) agar sesuaidenganrancangansistemnya. • Mengikuti SWDLS (Software Development Life Cycle) • Rancangan (Design) • Kode (Code) • Uji (Test)
SiklusHidupPengembanganPerangkatLunak (Software Development Life Cycle) • System Development Life Cycle
Membangunperangkatlunakmengikutitigatahap SWDLC • Rancangan (design) : Bagiandarirancangansistemterinci yang akandikonversike program aplikasi yang dapatdigunakansebagaipedomanoleh programmer dalammenulis program. Alat (tools) rancangan program yang pokokadalah : • Baganterstruktur • BahasaInggristerstruktur • TabelKeputusan • PohonKeputusan • Persamaan/miripbahasapemrograman (Pseudocode) • Kamus data
Kode (Code): • Menulisstatemendalambahasapemrograman, misal3GL, 4GL, Pemrograman Object • Uji(Test) • Pengujianterhadapsemuamodulkodeuntukmendeteksikesalahan,misalWhite Box, Black Box
Macam-MacamPerangkatLunak • PerangkatLunakBerdasarkanPemakai • Generik: Perangkatlunak yang bisadigunakansecaraumum • Spesifik: Perangkatlunak yang dibuatberdasarkanpesanan • PerangkatLunakBerdasarkanFungsional • Interfacing • Operating System • PerangkatLunakAplikasi • CASE Tools – – – – – –
MengorganisasiProyekPengembanganperangkatlunak • Perancangdananalissistemterlibatdalamtimpengembanganperangkatlunakdanharusmengetahuibagaimana program inidikodedanbagaimanahasilakhirnya. Untukitudiperlukanketerampilanpengorganisasiandalamtimproyek. Pengorganisasianproyekpengembanganperangkatlunakmemerlukankomunikasi, integrasidankoordinasi yang baik. Pengorganisasiantimpemrogramanmenggunakanpendekatanorganisasional.
PendekatanOrganisasional • Tigacarauntukmengorganisasitimpemrograman, yaitu : • Tim Pengembangan Program ( Program development team) • Tim programmer kepala (chief programmer team) • Tim pemrogramanbersama (Egoless programming team)
Tim Pengembangan Program • tersusunatas 2 perancang, 1 pengkode, 2 penguji. Interface danlintasankomunikasiberadaantaraperancangdanpengkode, pengkodedanpenguji, perancangdanpenguji. Interface danlintasankomunikasikemanajertimhanyamemberikanrekapitulasidaninformasikinerjakarenamanajertidakterlibatlangsungdalampekerjaan yang sebenarnya. Jadi total interface danlintasankomunikasiada lima, dansatu interface manajemen.
Tim programmer kepala • terdiridari lima programmer pendukungmempunyai lima interface danlintasankomunikasi, danlebihmungkinmemenuhi deadline yang ketat.
Tim pemrogramanbersama • terdiridari lima programmer. Jumlah interface danlintasankomunikasi = n(n-1)/2= 5(5-1)/2=10
MerencanakanproyekSiklusHiduppengembanganperangkatlunak • Perangkat yang digunakanadalahtekniktinjauan dan evaluasi program (PERT) • PERT : untuk menentukan rangkaian atau urutanpelaksanaantugaspengembanganperangkat lunak dan untuk mengestimasikan lamanyawaktu yang diperlukandariawal sampaiselesainyapelaksanaantugas
Langkahmenyusunjaringan PERT • Identifikasisemuatugas • Mengestimasiwaktu • Menetapkanrangkaiantugas • Menentukanjalurkritis
FungsidalamPengembanganPerangkatLunak • Software Development Management (terdiridaribanyakfungsidantim), yaitu • Software Project Manager: pertamaberhubungandengankonsumen, menetapkananggarandanjadwalpelaksanaanproyekperangkatlunak. • Software Engingeering Analyst berhubungandengankonsumensecaralebihrinci; bertugasmendeskripsikanataumenggalifungsidanunjukkerjasoftware yang akandibangun. Designer : bertugasmerancangalgoritma/prosedur yang tepatuntukfungsitersebutdisesuaikandenganhardware atausoftware pendukung yang ada. Programmer : mengimplementasikanalgoritmadalambentukkode-kode program menggunakanbahasapemograman.
Software Configuration Management : memantaufungsi-fungsi/prosedurproseduryang telahditentukan, mencatatkonfigurasipadatahap-tahap/ waktuwaktutertentuberdasarkankenyataan yang ada. System Administrator : bertugasmelakukanpengelolaanterhadapsistempadasaatdiimplementasikan. • Software Quality Software Test Engineer : bertugasmelakukanpengujiansistem. Software Quality Assurance: bertugasmelakukanpengawasanapakahsoftware yang dibanguntelahberjalansesuaidenganfungsidankebutuhannya
DokumenRencanaPengembanganPerangkatLunak (RPPL) • Padaumumnyasebelummelakukanpengembanganataupembangunansuatuperangkatlunak, terlebihdahuludibuat proposal proyekpengembanganataupembangunanperangkatlunaktersebut. Hal inibertujuanuntukmemberikangambaransecararingkasmengenaiperangkatlunak yang akandikembangkanataudibangun. Format/kerangkadaridokumenRencanaPengembanganPerangkatLunak (RPPL) adalahsebagaiberikut :
TahapanRancanganPerangkatLunak • 2 Pendekatanrancanganperangkatlunak • Rancanganperangkatlunakterstruktur • Rancangan perangkat lunak berorientasi objek Tahaprancanganperangkatlunak :
PerancanganTerstruktur • OrientasipadaProsesdan Data • Alatperancanganperangkatlunakterstuktur : • Kamus data • Model data logik • ERD • DFD • STD • Baganterstruktur
PerancanganTerstruktur • Karakteristikrancanganuntuk program terstruktur • Moduldisusunsecarahirarkis (baganstruktur,diagramjackson,diagramwarnier/orr) • MenggunakanLogika CALL-based atau PERFORM-based • Menggunakan control flow (alurkendali) danrancangan top-to-bottom danpengkodean top-to-bottom atau bottom-to-top • Merancangrepetisiatau loop dalamsatumodul • Menerapkankonsepsikendalistandar (untukurutan, seleksi, repetisi)
RancanganPerangkatLunakBerorientasiObyek • AdalahStrategiperancangandimanaperancangsistemmemikirkan ‘benda’ danbukanoperasiataufungsi. • OrientasipadaObyek • Alat yang digunakan : DFD, ERD, STD,BaganTerstruktur, SE/Pseodocode • Tahapan: • MendeskripsikanObyek, Kelas, AtributdanDaftarOperasi • MemodelkanrelasiantaraObyekdanKelas • MemodelkanPewarisan
Objekdankelasobjek • Objek • Memberi identitas kepada orang atau benda • Merepresentasikanentitasdariaplikasi yang dirancang • KelasObjek • Dibuatuntukmenurutdefinisikelasobjek • Definisi kelas objek berfungsi sebagai template untukmembuatobjek
Objekdankelasobjek • Superkelas : kumpulankelas • Subkelas : kejadian dari suatu kelas • Inheritance : kemampuanuntukmendefinisikansubkelasobjekdarisuatukelasobjek • Didefinisikanpada UML
Tahapanperancanganberorientasiobjek • MendefinisikanKontekssistemdan model penggunaan • Merancangarsitektursistem • Mengidentifikasiobyekutamasistem • Mengembangkan model desain • Menspesifikasi interface obyek