EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN
2.
EKSPLORASI KONSEPDAN SPESIFIKASIPERSYARATAN Terdapat beberapa kegagalan pada suatu proyek yang disebabkan oleh analisis awal yang tidak memadai. Bebernpa sumber yang penting telah dihabiskan padahal realisasi pengembangan sistem belum dilakukan. Eksplorasi konsep dan spesifIkasi persyaratan menekankan pada masalah pengalamatan tersebut. Tahap ini merupakan bagian yang forin~ dan dapat dilacak dari tahap pengembangan sistem. Namun tahap ini paling tidak memiliki dukungan yang memadai dari teknik maupun piranti yang ada. Mungkin karena alasan inilah, maka permasalahan tersebut kemudian lebih diperhatikan oleh para p~ar software. Tahap awal pada pengembangan sistem merupakan tahap yang sangat penting dalam menentukan keberhasilan suatu proyek software. Namun demikian karena keputusan yang menentukan viabilitas produk akhir dibuat dalam tahap tersebut, maka kesalahan yang terjadi pada tahap ini akan lebih berat dibandingkan dengan kesalahan yang terdapat pada tahap berikutnya. Dalam bab ini dibicarakan masalah yang penting dalam tahap awal pembuatan sistem. Selain itu dibahas pula perlengkapan serta teknik yang ada untuk membantu memecaIIkan masalah ini.
2.1 TAHAPEKSPLORASI KONSEP Sistem software dibuat pada saat suatu proses hams dibuat secant otomatis. Jika suatu sistem software yang diproyeksikan cukup penting, maka harns ditentukan hal-hal yang diperlukan serta kelayakan proyek tersebut. Sangat sering terjadi produk software dibuat untuk mencari pemecahan t'nasalah atau dibuat hanya untuk memecahkan masalah yang kecil, sedangkan masalah utamanya tidak diperhatikan. Proyek pengembangan software sering dimulai tanpa adanya harapan dapat menyelesaikannya baik karena masalah teknik maupun politik yang tidak memungkinkannya. Pekerjaan yang hatl:-hati dalam bentuk eksplorasi konsep dari tahapan pengembangan sistem dapat membantu menghindari masalah
seperti ini. Para teknokrat kadang-kadang meremehkan pentingnya interaksi manusia dalam proses pengembangansoftware.Untuk menjawabpertanyaanyang muncul dalm bentuk eksplorasi konsep, misalnya, seseorang hams sering berinteraksi J
14
...
secam luas dengan klien yang berpotensi pada suatu sistem. Misalnya dengan manajer yang mengontrol sumber-sumber yang diperlukan, dengan organisasi lain yang berkaitan dengan suatu pekerjaan, serta dengan bagian-bagian lain. Kegagalandalam berinteraksisecara efektifdengan kelompok-kelompoktersebut dapat dengan mudah menggagalkan suatu proyek.
2.1.1. Proses Eksploras; Konsep. Pada bentuk eksplorasi konsep, system yang diajukan akan dianalisa dan akan dieari kebaikannya.analisisterseb,utmeliputipenentuan permasalahanyang akan dipecahkan dengan system yang bam, dan pada tingkat tinggi, bagaimana suatu systm dapat memecahkan masalah tersebut. Sedangkan pencarian tersebut meliputi suatu penentuan apakah hams dibuat suatu system bam, dan apakah
systemtersebutdapatdibuat.
·
Langkah pertama dalam eksplorasi konsep (penjelasan masalah dan pemecahannya) hams meliputi sebagai berikut :
.
.
Masalah yang akan dipecahkandengan system barn hams dinyatakan secara tepat. Latihan semacam ini biasanya memberikan suatu pengertian yang lebih baik dari permasalahan pokok dan system yang diproyeksikan. System yang dipakai hams diteliti dan dinyatakan dengan jelas. Misalnya, mungkin ada suatu batasan pada sumber-sumber perhitungan yang ada pada system yang disebabkan oleh permintaan lain pada komputer.
.
Tujuansystemdan proyekhamsditentukan.Tujuansystemmeliputiaspek non fungsional yang diinginkan dari suatu system, seperti level dokumentasi user, atau ketegapan suatu system. Sedangkan tujuan proyek meliputi suatu keuntungan yang diinginkan pada organisasi, seperti meningkatkan produktifitas, atau pengalaman pengembangan software.
.
Feature-feature dan fungsi-fungsi dari system barn hams disket pada tingkat tinggi dari biasanya. Kriteria penerimaan untuk system barn (tugas utama hams dikerjakan) hams ditentukan/ditetapkan.
Satu kali system barn tersebut telah ditentukan dengan detail, seseorang hams mencari apakah suatu system hams dan dapat dibuat. Mulailah dengan menentukan apakah system software bam "hams" dibuat. Pengembangan software adalah mempakan suatu bisnis yang mahal. Pembuatan system yang salah akan membuatbencanapada sebaikapapunprosespengembangandiimplementasi. Pada umumnya, system software harus dibuat hanya jika system tersebut 15
menyediakan suatu pemecahan yang efektif pada masalah yang penting. Ada empat pertimbangan yang harns diperhatikan yaitu : Apakah masalah yang dipecahkan dengan system barn tersebut penting. Masalah yang penting adalah suatu masalah yang membutuhkan suatu pemecahan yang sempurna pada pekerjaan utama dari suatu organisasi atau individual. Jika suatu pemecahan hanya dapat dicapai melalui usaha "pernbosanan", keterbali kan",atau penggunaan waktu, maka suatu otomatisasi akan banyak membantu. Apakah masalah yang dipecahkan dengan software sering dipakai ? Suatu masalah yang tirnbul satu kali setiap beberapa tahun,misillnya, mungkin tidak menjamin biaya pengembangan proyek software. Apakah populasi pemakai yang potensial terhadap system barn cukup besar? lni adalab suatu pertanyaan tentang pemasaran. Mungkin beberapa produk software mengalami kegagalan karena pemasamnya terlalu sempit. Tujuan pemasaran adalah suatu hal yang sulit/proses yang sukar, yang sering memerlukan reseach yang ekstensif dan system engineering. Salah satu cara yang berguna adalah mengidentifikasikan secara jelas pemakai-pemakai yang berpotensi. lnformasi informasi dapat membantu mengubah apa yang dilakukan oleh system barn, atau dalam (constrain-nya). Misalnya, mungkin diperlukan untuk menambah fasilitas-fasilitas yang membantu secara lebih ekstensif pada suatu program bagi para pemakai yang belurn berpengalaman. Faktor lain yang membuat tujuan pemasaran sukar adalah bahwa pasarannya itu sendiri berubah secara konstan. Suatu pemasaran yang terlihat menguntungkan pada awal suatu proses pengembangan yang panjang, mungkin tak akan bertahan lama setelah seluruh produk telah lengkap. Apakah system yang otomatis tersebut dapat menyediakan bentuk pemecahan
masalah yang lebih baik ?
.
Komputer bukanlah merupakan jawaban yang terbaik dari setiap masalah pemecahan masalah yang secara tehnik kurang, kadang-kadang mempunyai hasil yang lebih baik. Contoh yang baik adalah mekanisasi penunjuk kalender. Mekanisme kalender, khususnya pada personal komputer, pada umumnya sudah ada. Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu meeting, makan siang, telpon umum, juga pada meja. Kalender kertas saku merupakan suatu pemecahan yang lebih berguna dibandingkan dengan komputer dalam hal ini.
16
Tahap eksplorasi konsep seringkali menuntun perubahan ide tentang sestem baru, pengertian baru dari system konstrain, dan tujuan altematif pada system dan proyek. Jika produk baru harus dibuat, point berikutnya sebagai penentu adalah apakah system baru "harus" dibuat. Mungking telah ada system software untuk memecahkan suatu masalah. Jika demikian, maka sudah barang tentu lebih murah, lebih cepat, dan lebih mudah membelinya dibanding harus membuatnya sendiri. Tugas terakhir dalam eksplorasi konsep adalah suatu analisis yang dapat dilakukan, yang merupaka suatu pencarian apakah system ham "dapat" dibuat. analisis tersebut rneliputi dua komponen pokok yaitu : analisis tehnik/feasibilitas tehnik dan analisis politik/feasibilitas politik. .
Suatu system akandisebut sebagai feasibilitas tehnik jika ada hardware yang terjarnin dan metode-metode soft ware, peralatan-peralatan dan tehnik-tehnik dalam membuat system. Contoh, system software yang digunakan sebagai komprehen bahasa natural secara penuh tidak semata-mata adanya feasibilitas teknik. Kadang-kadang memerlukan studi yang panjang dan mahal, serta rnembutuhkan komponen software yang besar, untuk menyelidiki feasilitas teknik. Dalam menyelidiki feasibilitas teknik, harus dimengerti tentang strategi pengembangan yang mungkin ada. Contoh prototype yang canggih mungkin dapat memecahkan masalah tanpa membutuhkan usaha yang banyak. Peralatan komputer diperlukan untuk mendukung pengembangan dan pemeliharaan agar ,tetap bersih.
.
Suatu systemakan disebutsebagaianalisispolitikatau feasibilitaspolitik jika ada organisasi pendukung yang memadai dan sumber-sumber yang cukup untuk melengkapinya Feasibilitas politik ini tergantung pada faktor-faktor seperti stabili pendanaan dan personal, managemen kornitmen pada research yang panjang dan usaha usaha pengembangan, adanya tujuan organisasi yang jelas, dan sebagainya.
Sekali lagi bahwa penemuan-penemuan feasibilitas untuk system baru mungkin dapat menuntun perubahan-perubahan pada feature dan fungionalnya, penguasaan konstrain system, dan tujuan proyek dan system Kebutuhan akan system software dan feasibilitasnya, se~iap saat berubah bahkan perubahnnya sangat cepat. Pertanyaan-pertanyaan in; f1<1r'1IS di~aji kembali melalui perputaran adanya software. M~skipun ada beberap~ ! r.Jyek ~'ang gagal
yang disebabkan oleh pekerjaan yang tidak memadai pad t I entuk ei"splorasi 17
konsep, tapi ada juga yang gagal karena suatu kesimpulan dan keputusan yang dibuat selama dalam tahap ini tidak pemah dipertimbangkan lagi di dalam perputaran kehidupan. Mungkin akan bijaksanajika dapat membuat tujuan ulang dari suatu eksplorasikonsepdan feasibilitasdokumendi dalam putarankehidupan.
2.1.2. Dokumen eksplorasi konsep. Tugas terakhir dalam tahap eksplorasi konsep adalah persiapan "concept exploration document" (dokumen eksplorasi konsep), yang merekam menyimpan penemuan-penemuan dalam tahap eksplorasi konsep. Dokumen ini menyajikan sebagai suatu baris untuk suatu keputusan tentang hasil proyek dan masukan pada tahap spesiftkasi persyaratan dan suatu perputaran kehidupan. Seperti dalam ilustrasi, kita telah menuliskan dokumen explorasi konsep untuk kode metrik program sumber e yang sederhana yang disebut "ccount". Kita akan menggunakan "ccount" seperti contoh dalam buku. Dalam membuatnya, kita akan membuat dokumen persyaratan, dokumen design, protetype dalam bahasa shell UNIX dan "awk", program e, rencana test, dan hasil test. Bentuk kategori ukuran proyek "ccount" adalah tidak begitu penting dan karenya maka typical proyek software tidak representatif, dimana ukuranya adalah medium ke besar. Kita membutuhkan suatu contoh keeil untuk tujuan ilustrasi. Lebih lanjut temyata "ccount" telah diketemukan kegunaanya dalam proyek pengembangan yang lebih .
besa. Dokumentasiyang sarna untuk proyek yang besar telah dibuat oleh " Naval Research Laboratory. Sedangkan dokumentasi engineering untuk peralatan kita tel~ dikumpulkan dalam Appendix A, sedangkan kode sumber berada di Appendix B.
2.1.3. Alat-alat dan tehnik-tehnik tahap ekplorasi konsep. Seeara virtual tidak ada peralatan UNIX dan tehnik-tehnik formal yang khusus dibuat untuk membantu porsi eksplorasi konsep dari perputaran kehidupan. Teks editor dapat digunakan untuk menu lis dan mengubah dokumen eksp!orasi konsep, dan "writers workbench" dapat digunakan untuk membantu peng-eja-an, grammar, tanda baca dan model tulisan. Bersi peralatan managemen seperti sees (Iihat Bab 9) adalah suatu versi yang sangat berguna dalam pemeliharaan versi yang baik atas dokumen eksplorasi konsep. (Template) tentang dokumen eksplorasi konsep ada dalam Appendix C.
18
2.2. TAHAPSPESIFIKASI PERSYARATAN. "Software product requirement" adalah suatu feature. fungsi, kemampuan, atau properti dimana harns ada produk software. persyarntan tersebut dapat berupa fungsi, penjelasan feature, system yang dipersiapkan, atau non fungsi, penjelasan "constraint" dimana suatu system harns dijalankan. Requirements specification document" adalah suatu pernyataan dari seluruh persyaratan untuk hasiVproduk software. Tujuan dari tahap spesifikasi persyaratan dalam perputaran kehidupan adalah untuk menentukan persyaratan produk software dan menempatkannya kedalam dokumen spesifikasi persyaratan. Hal penting yang ada dalam penentuan dan penempatan persyaratan adalah bahwa persyatan tersebut menerangkan "~alah" suatu system bekerja bukannya "bagaimana" system tersebut bekerja. Hal ini kadang-kadang sukar. Jika "bagaimana" suatu system akan mengerjakan sesuatu harns dibuat, maka harns dikerjakan pada tingkat kemungkinan tertinggi dari suatu abstraksi. Ada tendensi natural, khususnya bagi para programer, untuk memindahkan dari pernyataan penempatan yang mendukung penentuan design dan implementasi detail. Tendensi semacam ini harns dibalik selama dalam .tahap ini dari perputaran kehidupan. Seperti telah dibicarakan dalam tahap eksplorasi konsep, bahwa tahaplbentuk persyaratan secara kritis tergantung pada pengertian akan kebutuhan user yang potensial. Hal ini sering membutuhkan "Joint Application Design (JAD)" adalah suatu metodologi yang membantu interaksi user dalam tahap persyaratan yang akan dibicarakan nanti.
2.2.1. Dokumen Spesifikasi Persyaratan.
.
Suatu dokumen spesifikasi persyaratan akan menyajikan dua tujuan utama. Pertama, akan menyajikan sebagai penuntun selama sisa perputaran kehidupan. Dokumen spesifikasi persyaratan akan membawa tahap design dan implementasi sebab dokumen tersebut menentukan feature yang pokok dari suatu system. Selama dalam testing dan validasi, persyaratan-persyaratan tersebut merupakan suatu standar pada system yang telah selesai yang telah diputuskan kebenarannya dan kemampuannya. Setelah menyebar, maka dokumen persyaratan akan menyajikan lagi sebagai suatu standar kesulitan kekurangan, dan juga sebagai basis keputusan tentang perubahan dan penambahan
19
Kedua dokumen spesiftkasi persyaratan berfungsi sebagai suatu persetujuan, atau kontak, antara developer dengan klien, Persyaratan tersebut bagi developer adalah sebagai patokan apa yang akan disampaikan dan bagi klien adalah apa yang diharapkan. Hal semacam ini merupakan basis/dasar untuk suatu kemenangan perselisihan/persaingan antara developer dan klien, yang mesti ada, jika suatu system disampaikan. Dokumen spesiftkasi persyaratan harns berisi informasi sebagai berikut :
.
Pengenalan produk (Product overview) Menjelaskan fungsi-fungsi pokok dan komponen-komponen system dalam bentuk yang umum. Ringkasanrasional daIam pembuatan system untuk para pembaca tidak biasa dengan proyek.
.
Pengembangan, pengoperasian dan pemeliharaan lingkungan (Development, operating, dan maintenance environments) Menjelaskan sumber-sumberhardware dan software dan peralatan-peralatan yang diperlukanuntukmembuatdan menjagasuatu hasiVproduk.Tentukanlah target lingkungan hardware dan software, termasuk konftgurasi optimal dan minimal untuk penggunaan suatu produk.
.
Model Konseptual (Conceptual Model) Menyajikan suatu model konseptual dari suatu system (suatu pandangan tingkat tinggi akan menunjukan pelayanan & komponen utama/pqkok dari pada systemdanhubungannyadengan yang lain).Dalam hal ini notasi graftk lebih disukai, tapi mekanisme yang lain, seperti Bahasa Inggris yang jelas, tabel-tabel grammar, dan sebagainya mungkin juga digunakan.
.
Spesifikasi Antar-Muka Pemakai (User Interface Specification) Menyajikan suatu layar, window, graftk, dan aspek visual y~g lain dari suatu system. Tentukan tombol keyboardterkai tertentu. Tentukan bahasa command-nya. Tentukan interaksi atau konvensi dialog dalam pembuatan/ perintah interfaceuser dengan lengkap dan detail. Oleh karena spesiftkasiini kadang-kadang sukar ditentukanpada kertas, maka sering digunakan prototype interfac~ user. (lihat pembahasan berikut nanti).
20
.
Persyaratan Fungsional(Functional(requirement» Menyajikan suatu pelayanan, operasi dan transfonnasi data, dan sebagainya, yang disajikan oleh suatu system. Porsi dari dokumen persyaratan ini adalah yang terbesar. Karena sistem fungsional harns dijelaskan keseluruhan dan teliti. Beberapa metode dan notasi fonnal mungkin juga digunakan untuk tujuan tersebut.
.
PersyaratanNon Fungsional(Nonfunctionalrequirement) Menentukansuatu konstraindimana softwareharns dioperasikan.persyara~ non fungsional yang khas ini berhubungan dengan dfisiensi, realibilitas, ketegasan, portabilitas, ukuran memory maksimal, standar kualitas, waktu respon, biaya, perawatan dan lain-lain.
.
Persyaratan database dan Antar Muka eksternal (External interfaces and database requirements) Menjelaskan suatu interface dengan system yang lain. Organisasi logikal dari basis data yang digunakan oleh system juga harns dijelaskan.
..
PenangananKesalahan(Error handling) Katalog kondisi perkecualian dan kondisi kesalahan dan jawaban dari kondisi tersebut selengkap mungkin.
.
Peningkatan dan Perubahan yang dapat diramalkan changes and enhacements)
(Foreseeable
Tentukan suatu perubahan dan peningkatan yang dapat diramalkan untuk memberikeuntungankepadadesignerdan implementor.Perubahansemacam itu pada umumnya muncul dari evolusi hardware, perubahan-perubahan kebutuhan user, pengenalan system lain dalam lingkungan operasi, dan sebagainya. .
Implenientasi Rancangan, Petunjuk dan Panduan Pengujian (Design Implementation, and testing hints and guidelines) Tak dapat dihindarkan bahwa design implementasi, wawasan testing selalu menjadi pemikiran selama dalam tahap persyaratan proyek. Wawasan semacam ini jangan sampai hilang meskipun bukan merupakan persyaratan dokumen spesifikasi. Bagian dari dokumen ini memberikan suatu tempat untuk menjelaskanciri-cirirancangan,kendala-kendala(constraints),strategi 21
.
pengujian, perangkap-perangkap (pitfalls) atau pengamatan-pengamatan lainnya. Ringkasan (Glossary) Tentukan seluruhbentuktehnikRekayasaPerangkatLunak untuk keuntungan customer, dan seluruh bentuk tehnik aplikasi untuk keuntungan ahli software.
. Indeks Buatlah indeks alphabetik standar. Dapat juga macam indeks yang lain. Meskipun versi awal dari dokumen spesiflkasi persyaratan telah dilengkapi selama dalam tahap spesiflkasi persyaratan dari putaran kehidupan akan berubah dan harns ditempatkan dalam kontrol versi (lihat Bab-9). Perubahan-perubahan yang tidak diharapkan dalam kebutuhan customer, pembiayaan, personal, sumber, hardware, dan sebagainya, mungkin menuntun pada persyaratan-persyaratan yang diubah. Kesulitan yang tidak diharapkan selama dalam design, implementasi, atau testing sering mengalami perubahan dalam persyaratan. Suatu contoh dokumen persyaratan untuk "C Count", peralatan tehnik metrik C, ada di dal~ Appendix A.
2.2.2. KRITERIA KUALITAS UNTUK DOKUMEN PERSYARA TAN. Didalam penulisan dokumen persyaratan setiap usaha harus dibuat agar memenuhi kriteria-kriteria sebagai berikut : Kelengkapan(Completeness).Seluruhfungsi,ciri-ciri,kemampuan,konstrain, dan sasaran sistem yang lain dijelaskan secara mendalamldetail. Dapat diuji (Testability).Setiap persyaratanditetapkan sehingga dapat ditest. Contoh pemyataan "the system must respond to queries in a reasonable amount of time "tidak dapat ditest. Sedangkan pemyataan yang sama yang dapat di test dapat berupa "the system must respond to any query within 10 seconds." Keringkasan (Conciseness). Tidak ada informasi yang tak berhubungan yang ada dalam dokumen persyaratan. Dalam prakteknya hal ini berarti bahwa informasi tentang sejarah proyek, pembiayaan, perencanaan, dan sebagainya akan muncul dimana saja.
22
Dapat dibaca (Readability). Dokumen persyaratan sangat mudah uotuk dibaca dan dimengerti dan setiap persyaratan ditetapkan dengan tidak mempunyai dua acti. Kemudahan Pelacakan (fraecability). Berarti disediakan untuk diuji apakah persyaratan-persyaratan tersebut dapat direalisasi dalam disain dan kode. Persyaratan penomoran individual dan pengacuan kepadanya dengan angka colem dokumen akan dana kode sumber dapat membantu. Kelayakan (Feasibility). Seluruh persyaratan dapat dilengkapi dengan menggunakan peralatan-peralatan, tehnik tehnik,orang-orang, dan biaya yang ada. Membuat profotipe mungkin diperlukan untuk membantu menentukan feasibilitas. Meskipun feasibilitas harns ditentukan selama dalam tahap eksplorasi konsep, namun tahap spesifIkasi persyaratan merupakan saat yang baik untuk mengevaluasi kembali feasibilitas. Mudah diubah (Changeability). Dokumen spesiftkasi persyaratan ditulis agar nantinya mudah untuk di ubah.
2.2.3.
PERALA TAN DAN TEHNIK-TEHNIK TAHAP PERSYARATAN.
Kelengkapan, pengujian dan konsistensi adalah merupakan atribut dokumen persyaratan yang penting, yang sukar dicapai dan diuji dengan menggunakan bahasa Inggris. Bahasa formal tidak dapat dijadikan analisis formal (minimal belum), sehingga sukar untuk meyakinkan atribut-atribut tersebut untuk dokumen, persyaratan bahasa natural. Dalam usaha mengatasi masalah ini, beberapa pekerjaan telah dikembangkan dengan tehnik spesiftkasi persyaratan formal. Davis, memberikan suatu pandangan yang sangat bagus dan perbandingan dari beberapa tehnik tersebut. Tehnik-tehnik dalam spesiftkasi persyaratan formal termasuk mesin penentu yang terbatas, tabel dan diagram batang suatu keputusan, dan bahasa palsu. Dua kriteria penting dimana tehnik-tehnik tersebut harus lengkap adalah bahwa keduanya harns dikomperhen pada user terakhir dan pemakai pada umumnya untuk menyampaikan persyaratan lain. Oleh karena tak seorangpun dari tehnik formal yang dapat melengkapi kriteria tersebut maka persyaratan-persyaratan masih tetap ditulis dalam bahasa natural, meskipun akan muncul masalah-masalah
23
seperti diatas. Templates yang memberi struktur konsisten dalam dokumen persyaratan sangatlah berguna. Contoh dokumen persyaratan "template" yang kita diskusikan ada dalam appendik C. Sebagai tambahan,contoh"ccount" menggunakan "temlate" tersebut. System UNIK sedikitdukungandalam tahap persyaratan,sepertidalam tahap pealatan manajemen versi yang ada dalam lingkungan UNIX sangatlah baik untuk suaatu penulisan dan pemeliharaan dokumen spesifikasi, juga dalam penulisan dan pemeliharrandokumen eksplorasikonsep. LingkunganUNIX juga menyediakan beberapa peralatan prototype yang baik, yang akan dibicarakan pada bagian berikut ini :
2.3. BANTUANPROTOTYPEDALAMTAHAPAWAL
PERPUTARANKEHIDUPAN. "Prototype" adalah implementasi bagian dari produk software yang secara typical fungsinya dibatasi, reliabilitas rendah, tampilannya miskin, dan kurang ketegasa. Prototypeseringdikembangkansecaracepat dalam bahasa tingkat tinggi atau bahasa prototype tertentu, tanpa memperhatikan kebenaran dan ketegapan dan sebagainya. Prototype mempunyai 4 (empat) tujuan utama : 1.
Untuk membantu pengembangan persyaratan jika tidak dapat ditentukan dengan mudah.
2.
Untuk mengesahkanpersyaratan,khususnyadengan custumerllangganandan user yang potensial.
3.
Untuk menyjikan sebagai tempat pengembanganjika menggunakan strategi pengembangan evolusi prottype.
.
Ada dua macamprototype.PrototypeThrowawaydibuatuntukmembantu
memperjelas atau membuat valid suatu persyaratan atau design, atau untuk menunjukan feasibilitas.Jika tujuan ini telah dicapai, maka prototype tidak akan dipakai. Prototype minimal useful system dibuat sebagai tanda dari akhir suatu system yang dibuat minimal sebagian dari protype. Protype macam ini juga dapat digunakan untuk menunjukan feasibilitas dan untuk membantu memperjelas persyaratan dan rancangan. 24
Keuntungan yang mungkin diperoleh dalam pembuarnn prototype dapat berupa sebagai berikut : Kesalahpahaman antara system developer dan system user dapat diidentifIkasi dan dibetulkan. Ciri-ciri yang membuat bingung user dapat diidentifIkasi dan dibetulkan. Kehilangan atau kesalahan persyaratan dapat diientifIkasi. Prototype yang sedang bekerja m\lngkin sangat berguna dalam suatu pembuktian managemen dimana suatu proyek adalah feasibel sehingga menjamin kelangsungan dukungan.
Keuntungan yang mungkin diperoleh dalam pembuatan prototype adalah sebagai berikut : Pemakai atau penemu system mungkin ingin menggunakan prototype tidak dibuat berdasarkan standar yang nyata : hal,ini akan membuat suatu perawatan yang tidak baik. Pembuatan prototype mungkin mahal - harga pembuatan prototypemungkin dirahasiakan.Penggunaanbahasa tingkat tinggi untuk pembuatan prototypedapat membantu dalam hal ini. Prototype mungkin tidak mencerminkan karakteristik operasi dari final system secaraakurat.Hal ini mungkinsebagaihasildari evaluasi prototype yang tidak akurat,khususnya yang dilakukan oleh langganari atau potensial user yang tidak mengerti perbedaan antara prototype dan final system. Pada pokoknya prototype menawarkan keuntungan yang besar untuk suatu penjelajahan,penjelasan, dan validasipersyaratan,dan untuk pengembangandan pembuktian feasibilitas. Prototype mungkin menyesatkan, atau hasil dalam keputusan yang salah akan membuat lingkungan yanga salah. Suatu keputusan untuk penggunaan prototype, tergantungdari lingkungantehnik dan politik, dan kebutuhan dari para developer. Beberapa bahasa prototype yang baik, dan domain-domain yang cocok/sesuai adalah sebagai berikut : -7
APL. APL adalah suatu kekuatan bahasa untuk pembuatan prototype dalam aplikasi matematika. Bahasa ini menawarkan operasi tingkat tinggi yang dapat mempercepat suatu pengembangan secara luar biasa. Contoh, Operasi inversi matrik dan vektor penuh dan matrik matematika tersedia sebagai suatu operasi primitif dalam bahasa. Namun demikian, APL memberikan sedikit dukungan untuk program-program terstruktur.
25
~
Prolog.
Prolog adalah suatu bahasayang didasarkanpada subset dari
logika pesanan pertama. Bahasa ini membuat suatu operasi database yang canggih mudah dalam program. Macam-macam system yang lain dapat juga dibuat dengan mudah dengan menggunakan Prolog. Pada segi negatif, beberapa versi prolog memberikan suatu fasilitas input dan out put yang tidak baile,dan sedikit dukungan untuk floating point aritmatika. ~
Bahasa shell UNIX. UNIX shell language menawarkan lingkungan pembuatan prototype yang bagus untuk beberapa aplikasi. Bahasa ini adalah interaktif dan menawarkan beberapa kekuatan peralatan yang berintegrasi untuk manipulasi byte stream. Bagian berikut nanti akan membicarakan kemampuan UNIX shell sebagai peralatan prototyping secara mendalam.
Beberapa metode untuk menghasilkan suatu persyaratan menggabungkan prototype sebagai suatu komponen yang integral, JAD adalah suatu tehnik untuk definisi persyaratan yang dikembangkan pada mM, dan digunakan secara ekstensif, dan sekarang dipasarkan oleh mM sebagai suatu produk. Ide utama dari JAD adalah mendapatkan seluruh partai tertarik dengan system software dan menyetujui dalam persyarannya. Oleh karena masalah-masalah pokok sering muncul dalam pengembangan system user dan system developer, maka JAD mengalamatkan suatu masalah yang serius dari tahap ini dari perputaran kehidupan. Fokus utama dari JAD adalah untuk mem-prototype user interface. untuk interaktif system. Tehnik-tehnik untuk kecepatan layar pada system dimana user ingin berpartisipasi dalam proses. Tetapi hal ini sering menimbulkan masalah. Tidak seperti, misalnya, developer dari kategori bam yang lengkap dari suatu system software akan dapat mengidentiftkasikan populasi user.
2.3.1. UN/X shell/anguage
sebagai Pera/atan Prototype.
Unix shell language mempunyai beberapa feature yang membuat peralatan prototype menarik. Pertama, UNIX shell menediakan suatu "kekayaan" dari peralatan yang sedikit yang dapat "menyaring" data stream, yaitu peralatan yang membaca .data dari input sumber dan menulis data dalam output Contoh."cat berisi file yang ada pada standar output, "grep" menemukan seluruh baris yang dibaca dari standar input yang sesuai dengan pola dan mendaftarnya kedalam standar output, "cut" akan memilih kolom dari baris yang dibaca dari standar input, "sort" akan memilih baris-baris yang terbaca dari standar input. 26
Lebih jauh tentang "kekayaan" dari peralatan penyaring, lingkungan UNIX menawarkan suatu kemampuanuntuk merakitperalatan sehingga output dari satu peralatan yang lain. Hubungan semaeam ini disebut "pipes", dan ditandaidengan garis vertikal"_", memungkinkanuser membuat"saringan" yang lengkap dengan filter yang sederhana. Contoh, anggap kita mempunyai file dengan nama "partyfIle". yang berisi nama-nama dan afiliasi partai politik sebagai berikut : Collins Jones Abbott
Republican
Wilson
Republican
Democrat Democrat
Daftar terurut dari semua demokrat dalam file ini dapat diperoleh dengan
eara berikut
:
cat partyfile
I
grep Democrat
I
cut
-fl
I
sort
Outputnya adalah sebagai berikut:
Abbott Jones Cara diatas dimulai pada saat cat menghasilkan alur data yang memuat isi partyfile. Alur ini dialihkan ke grep, yang beIjalan bersama dengan baris yang beriskanstring "Demokrat"dua baris tengahdari partyfile. Output grep diteruskan ke cut, mengganti field pertarna dari masing-masing baris dan menyampaikan data seeara bergantianpada posisi ini, alur data berisidua baris yang mengandung nama-nama di atas, Abbott dan Jones. Sort akan menyusun baris-barisini untuk mendapatkan hasil tersebut. lelaslah bahwa banyak baris kode yang terdapat dalam bahasa pernrograman standard, seperti bahasa C, akan diperlukan untuk melaksanakan tugas yang sama. Akhirnya, Bahasa Shell UNIX memberikan struktur kendali yang menggunakan perangkat lunak UNIX. Diantara konstruksi ini adalah statement if-then-else, while, for, dan case, sebagai eontoh sederhana, misalnya kita menghendaki program shell untuk menghasilkandaftar pilihandari demokrat dari 27
semua file dalam direktori pada contoh sebelumnya. Program Shell Collin melaksanakan tugas berikut: # Program to get sorted lists of Democrats # From all files in the current directory for FILE do
in *
cat $FILE done
I
grep Democrat
I
cut -£1
I
sort
For-Loop bekerja dengan menempatkan setiap file dalam current directory ke variabel sheD FILE, dan melaksanakan loop body. Beberapa jenis aplikasi, kecepatan dengan prototype dapat di buat dengan menggunakan sheD UNIX. Hal ini cukup mengesankan.
2.3.2. Prototype program Metrik C. Dalam konsep dan rancangan, ccount bersifIkasi langsung (lihat Apendiks A) tidak ada pertanyaan tentang kelayakan ini, sehingga tidak terlalu diperlukan untuk membuatprototypenya.Untukberatdari bagianini adalahuntukmemberikan contoh pembuatan prototype yang sederhana, dan untuk menunjukkan beberapa kelebihan shell UNIX dan piranti UNIX untuk membuat prototype. Kita memberikan prototype ccount. Dua prototype yang pertama merupakanprogram shellUNIX yang pendekyang memberikanjumlah yang kotor dan cepat.Meskipun sederhana, prototype ini menunjukkan beberapa manfaat ccount. Disamping menunjukkankelebihan bahasa awk, bahasa ini bermanfaat untuk menggunakan beberapa kemampuan dalam penguraian (parsing) file kode sumber (source code file) C untuk menghasilkanjumlah baris komentar maupun bukan komentar. Mungkin cara yang paling mudah untuk memperkirakan angka dari baris sumber non commentary (NCSL) dalam file sumger C adalah menghitung baris-baris yang berisi titik koma, sebab titik koma harns digunakan untuk pangkalan beberapa perintah C. Hal ini hanya merupakan suatu kira-kira yang belum pasti karena akan kehilangan baris-baris kode sumber yang berisi hanya tanda kurung, beberapa deklarasi variabel, baris-baris header deklarasi fungsi, dan seterusnya.Begitujuga baris-barissumber commentary (csl) dapat dikra-kira dengan cara menghitung baris-baris yang berisi batasan perintah. Hal ini juga masih merupakan suatu perkiraan yang kasar sebab akan kehilangan baris-baris internal pada perintah-perintah.Prototype pertama menggunakanperkiraan yang 28
kasar tersebut untuk menghitungnya : # # ccount Prototype 1 # This program NCSL and CSL by grepping. estimates # NCSL are estimated by grepping on semicolons, # and CSL are estimated by grepping on cormnent # delimiters. # CSL NCSL CSL/NCSL" echo IIFile for FILE do NCSL= 'grep -c ';' $FILE' CSL='egrep -c '/\*.*\*/' RATIO='bc «-end scale=2 $CSL/$NCSL end' echo II$FILE $CSL
$FILE'
$NCSL
~RATIO"
done
Baris pertamadari shellprogramakan mencetakheader.Sedangkanloop-"for" akan memroses tiap-tiap file yang ditentukan pada baris command, penyusunan tiap nama pada variabel "FILE" untuksatu kali lewat melalui loop. Body loop menggunakan program "grep" dengan pilihan "-c"(yang menjadikan program tersebut menghitung baris-baris yang cocoklsesuai) untuk perkiraan NCSL dan CSL. Per}9raan-perkiraantersebut kemudian diterapkan pada program kalkulator "be" untuk menghitungperintahpada rasio kode. Hasilnya"dikumandangkan"pada standar output. Sebagai suatu test, Prototype 1 telah berjalan pada contoh file sumber C "prog.c" yang berisi GG1 NcSt. 433 csl, dan comment pada rasio kode 0,656. Prototype 1 akan menghasilkan laporan sebagai berikut File prog.c
CSL 249
NCSL 284
:
CSL/NCSL .87
Perkiraan tersebut adalah kasar. Bentuk kode yang digunakan pada "prog.c" cenderung membuat beberapa baris dari kode sumber tannpa titik koma, "prog.c" juga berisi beberapa perintah yang panjang dimana baris-baris internal tidak terhitung. Prototype yang lebih baik dengan jelas dapat digunakan.
29
Prototype berikutnya menggunakan preprocessor C untuk menghitung Ncsl secara tepat/akurat. Preprocessor C disamping memperluas macro, juga akan memindahkan seluruh perintah dari file sumber. Preprocessor C ini juga menyediakan baris patah, meskipun dapat menambah baris-baris kosong. Oleh sebab itu NcSI dapat dihitung dengan cara melewatkan file sumber melalui preprocessor kemudian menghitung baris-baris yang tidak kosong yang masih ada. Penghitungancsl secara akurat memerlukansuatu peralatanyang lebih baik untuk proses text dibandingkan dengan bahasa skill. Kita menggunakan bahasa pola yang sesuai UNIX "awk" didalam prototype ini. # # # # # # #
ccount
Prototype
This utility counts NCSL using the counts CSL using awk, and computes CSL/NCSL ratio.
echo "File for
2
CSL
FILE do sed e 's/#//g' NCSL='/lib/cpp
NCSL
C preprocessor, the total
CSL/NCSL"
$FILE > /tmp/ccount.trnp p < /trnp/ccount.tmplgrep
CSL= ' awk f csl. awk $FILE' RATIO= ' bc « end scale=2 $CSL/$NCSL end' echo "$FILE $CSL
$NCSL
c
'[A
]'
$RATIO"
done rrn
/tmp/ccount.
tmp
Sepertipadaprototype I. prototypeinijuga "mengumandangkan"header,kemudian bergabung melalui tiap file yang disediakan sebagai suatu argument pada baris command. Ncsl dihitung dengan melalui input file melalui processor C "cpp" kemudian menggunakan "grep" untuk menyesuaikan pada baris yang berisi karakter selai tempat kosong maupun tabulasi."-p" pada "cpp" mencegah adanya penambahan baris pada file, yang akan memperbanyak penjumlahan. Persiapan pemrosesan dengan "sed" adalah san.gat penting karena preprocessor akan menimport file-file "#include", menyebarkan makro dan seterusnya. Dengan memindahkan tanda pound dari sumberfile akan mencegah preprocessor dari penyebarluasan. 30
Program "awk","csl".awk" memperkirakan
csl dengan
yang
melihat
digunakan
batasan
perintah
pada prototype ini akan seperti
pada
"agrep".
Pro-
gram ini juga menjaga track apakah ada baris-baristanpa batasan perintah yang ada dalam comment sehingga tidak akan gagal dalam menghitung baris-baris tersebut.
Programi"csI.awk"adalahsebagaiberikut
:
# # cs1.awk # # This awk script counts the commentary source # lines in a C source file # BEGIN cs1 0; o }
=
# skip blank lines { next } # count lines with complete comments /\/\*.*\*\// { cs1 += 1; next } # count lines that open a comment /\/\*/ { cs1 += 1; is_comment = 1; next } # count lines that close a comment /\*\// { cs1 += 1; is_comment = 0; next } # count lines inside a comment if ( is_comment ) cs1 += 1 } /"[ \t]*$/
# print total cs1 }
END
{ print cs1
out put dari Prototype 2 adalah sebagai berikut File prog.
CSL c 433
NCSL
CSL/NCSL
661
.65
:
Seluruh angka yang dihasilkan oleh Prototype2 ini adalah benar bagi "prog.c" (kecuali kesalahan kecil "round off: pada rasio comment -to- code). Prototype ini akan berhasil dalam pembuatan penghitungan secara akurat dari total CSL, NCSL, dan rasio comment-to-code. Seperti pada prototype awal, prototype dua mungkin cukup jelas menunjukkan secara fungsional ketidak gunaan dan peralatan, Prototype akhir menggambarkan
31
bahwa program dapat dihasilkandengan menggunakanshell UNIX dan peralatan UNIX seperti "awk". Prototype tiga akan mempunyai perintah sebanyak yang ditentukan dalam perintah "ccount". Prototype tiga akan menerima flag .t, dan membuat format report tabbed atau non tabbed yang menampilkanhitungan dan rasio untuk masing-masingdefinisifungsi,untuk bari -baris ekstemal pada definis fungsi, dan untuk keselurhan file. Perbedaan utama antara prototype fungsi pembatas string ditentukan dengan "Z", fungsi yang memulai pembatas yang digunakan dalam prototype tes program adalah "prog.c". Dalam "prog.c, "Z" adalah "#defined " sebagaisesuatu yang tak berarti dan ditempatkan sebelum definisi fungsi. Meskipun hal ini diberi tanda kurung untuk prototype namun akan menjadi pendek dari hasil perintah. Shell script berikut ini al(an membuat prototype tiga # # # # # # # # # # # # if
ccount Prototype 3 This utility counts CSL and NCSL, and computes the CSL/NCSL ratio for each function definition, code external to any function definition, and for the file as a whole. It relies on awk to do its counting and most output. The awk program ccount. awk produces reports formatted according to whether the variable F is set to "TABBED"
or
"NONTABBED".
[ "-t" = $1 ] then shift for FILE do echo $FILE awk -f ccount.awk done
F="TABBED"
$FILE
else for
FILE do echo echo $FILE " echo echo" Function
echo " awk -f done fi 32
"
'date'
CSL.
NCSL ~
ccount.awk
F="NONTABBED" $FILE
CSL/NCSL"
"
Skrip shell ini memutuskan apakah laporan format non tabbed atau tabbed hendak dibuat, mencetak leader, memberikan file sumber kepada program awk yang melakukan penghitungan. Program awk ccount.awk adalah panjang; kita mendapatkan dalam Apendik B dengan prototype lain. Output dari prototype 3 merupakan format nontabbed agar prog. C memenuhi persyaratannya serta menghasilkanjumlah yang tepat untuk contoh berikut : prog.c
Thu Feb 9 14:41:20 EDT 1989 Function
CSL
NCSL
CSL/NCSL
29 145 121 36 44 61 225 661
0.79 0.70 0.25 1.17 0.73 0.87 0.66 0.66
------------------------------------------------Refresh_Form Build.:.-Form
Init_Form_Frames Set_Form_Defaults Ex_Forn_Frame Exec_Form external total
23 102 30 42 32 53 149 433
Prototype 3 bekeIja seperti sistein target. Dia dapat dibuat lebih baik, lengkap dan dapat diperbaiki, serta digunakan sebagai sistem final sebagaimana dianjurkan dalam pembahasan strategi pemecahan dalam konsep dokumentasi Eksplorasi, Namun sayangnya, prototype ini tidak cukup cepat. Bila diukur dengan perintah time UNIX pada sun 3/50, Prototype 3 hampir memerlukan waktu 9 detik dari waktu CPU untuk menghasilkan laporan bagi program .C, yang memiliki panjang 55.190 bait. Hal ini jelas tidak memenuhi target 2 detik waktu CPU untuk file 40.000 bait. Versi terakhir dari ccount dapat memenuhi persyaratan ini, karena keIja memerlukan waktu 2 detik untuk mengolah program C dan kurang 1 detik untuk file dengan 40.000 byte.
2.4. KESIMPULAN. Eksplorasi konsep dan definisi persyaratan yang menekankan pada software life cycle sangatlah vital untuk keberhasilan proyek pengemangan dan produk soft war. Keduanya juga sulit, penting dimengerti, dan penting dialamatkan dengan peralatan dan tehnik-tehnik yang baik.
33
Teknologi yang penting didalam eksplorasi konsep dan tahap persyaratan adalah penggunaansecaraekstensifprototypeuntuk mengujikelayakandan untuk memperbaharui perintah, khususnnya persyaratan/perintah "user interface". Meskipun lingkungan UNIX memberikan fasilitas prototype yang handal, piranti-piranti UNIX adalah yang terbaik untuk membuat prototype fungsional dan biasanya tidak dapat mendukung untuk membuat prototype bagi interface pemakai yang didasarkan pada window yang canggih yang kemudian menjadi standard.
34