EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini,...

22
EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN

Transcript of EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini,...

Page 1: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

EKSPLORASI KONSEP DAN

SPESIFIKASI PERSYARATAN

Page 2: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

2. EKSPLORASIKONSEPDANSPESIFIKASIPER-SYARATAN

Terdapat beberapa kegagalan pada suatu proyek yang disebabkan oleh analisisawal yang tidak memadai. Bebernpa sumber yang penting telah dihabiskan padahalrealisasi pengembangan sistem belum dilakukan. Eksplorasi konsep dan spesifIkasipersyaratan 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 teknikmaupun piranti yang ada. Mungkin karena alasan inilah, maka permasalahantersebut kemudian lebih diperhatikan oleh para p~ar software. Tahap awal padapengembangan sistem merupakan tahap yang sangat penting dalam menentukankeberhasilan suatu proyek software. Namun demikian karena keputusan yangmenentukan viabilitas produk akhir dibuat dalam tahap tersebut, maka kesalahanyang terjadi pada tahap ini akan lebih berat dibandingkan dengan kesalahan yangterdapat pada tahap berikutnya. Dalam bab ini dibicarakan masalah yang pentingdalam tahap awal pembuatan sistem. Selain itu dibahas pula perlengkapan sertateknik yang ada untuk membantu memecaIIkan masalah ini.

2.1 TAHAPEKSPLORASIKONSEP

Sistem software dibuat pada saat suatu proses hams dibuat secant otomatis.Jika suatu sistem software yang diproyeksikan cukup penting, maka harnsditentukan hal-hal yang diperlukan serta kelayakan proyek tersebut. Sangat seringterjadi produk software dibuat untuk mencari pemecahan t'nasalah atau dibuathanya untuk memecahkan masalah yang kecil, sedangkan masalah utamanyatidak diperhatikan. Proyek pengembangan software sering dimulai tanpa adanyaharapan dapat menyelesaikannya baik karena masalah teknik maupun politikyang tidak memungkinkannya. Pekerjaan yang hatl:-hati dalam bentuk eksplorasikonsep dari tahapan pengembangan sistem dapat membantu menghindari masalahseperti ini. J

Para teknokrat kadang-kadang meremehkan pentingnya interaksi manusiadalam prosespengembangansoftware.Untuk menjawabpertanyaanyang munculdalm bentuk eksplorasi konsep, misalnya, seseorang hams sering berinteraksi

14

Page 3: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

...

secam luas dengan klien yang berpotensi pada suatu sistem. Misalnya denganmanajer yang mengontrol sumber-sumber yang diperlukan, dengan organisasilain yang berkaitan dengan suatu pekerjaan, serta dengan bagian-bagian lain.Kegagalandalam berinteraksisecaraefektifdengan kelompok-kelompoktersebutdapat dengan mudah menggagalkan suatu proyek.

2.1.1. Proses Eksploras; Konsep.

Pada bentuk eksplorasi konsep, system yang diajukan akan dianalisa danakan dieari kebaikannya.analisis terseb,utmeliputipenentuanpermasalahanyangakan dipecahkan dengan system yang bam, dan pada tingkat tinggi, bagaimanasuatu systm dapat memecahkan masalah tersebut. Sedangkan pencarian tersebutmeliputi suatu penentuan apakah hams dibuat suatu system bam, dan apakahsystemtersebutdapatdibuat. ·

Langkah pertama dalam eksplorasi konsep (penjelasan masalah danpemecahannya) hams meliputi sebagai berikut :

. Masalah yang akan dipecahkandengan system barn hams dinyatakan secaratepat. Latihan semacam ini biasanya memberikan suatu pengertian yanglebih 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 padasystem yang disebabkan oleh permintaan lain pada komputer.

. Tujuansystemdan proyekhamsditentukan.Tujuansystemmeliputiaspeknon fungsional yang diinginkan dari suatu system, seperti level dokumentasiuser, atau ketegapan suatu system. Sedangkan tujuan proyek meliputi suatukeuntungan yang diinginkan pada organisasi, seperti meningkatkanproduktifitas, atau pengalaman pengembangan software.

. Feature-feature dan fungsi-fungsi dari system barn hams disket pada tingkattinggi dari biasanya. Kriteria penerimaan untuk system barn (tugas utamahams dikerjakan) hams ditentukan/ditetapkan.

Satu kali system barn tersebut telah ditentukan dengan detail, seseoranghams mencari apakah suatu system hams dan dapat dibuat. Mulailah denganmenentukan apakah system software bam "hams" dibuat. Pengembangan soft-ware adalah mempakan suatu bisnis yang mahal. Pembuatan system yang salahakan membuatbencanapadasebaikapapunprosespengembangandiimplementasi.Pada umumnya, system software harus dibuat hanya jika system tersebut

15

Page 4: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

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 suatupemecahan yang sempurna pada pekerjaan utama dari suatu organisasi atauindividual. Jika suatu pemecahan hanya dapat dicapai melalui usaha"pernbosanan", keterbali kan",atau penggunaan waktu, maka suatu otomatisasiakan banyak membantu.

Apakah masalah yang dipecahkan dengan software sering dipakai ?Suatu masalah yang tirnbul satu kali setiap beberapa tahun,misillnya, mungkintidak menjamin biaya pengembangan proyek software.

Apakah populasi pemakai yang potensial terhadap system barn cukup besar?

lni adalab suatu pertanyaan tentang pemasaran. Mungkin beberapa produksoftware mengalami kegagalan karena pemasamnya terlalu sempit.

Tujuan pemasaran adalah suatu hal yang sulit/proses yang sukar, yangsering memerlukan reseach yang ekstensif dan system engineering. Salahsatu cara yang berguna adalah mengidentifikasikan secara jelaspemakai-pemakai yang berpotensi. lnformasi informasi dapat membantumengubah apa yang dilakukan oleh system barn, atau dalam (constrain-nya).Misalnya, mungkin diperlukan untuk menambah fasilitas-fasilitas yangmembantu secara lebih ekstensif pada suatu program bagi para pemakaiyang belurn berpengalaman.

Faktor lain yang membuat tujuan pemasaran sukar adalah bahwapasarannya itu sendiri berubah secara konstan. Suatu pemasaran yang terlihatmenguntungkan 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 pemecahanmasalah yang lebih baik ? .

Komputer bukanlah merupakan jawaban yang terbaik dari setiap masalah -pemecahan masalah yang secara tehnik kurang, kadang-kadang mempunyaihasil yang lebih baik. Contoh yang baik adalah mekanisasi penunjuk kalender.Mekanisme kalender, khususnya pada personal komputer, pada umumnyasudah ada. Tapi hanya sedikit yang menggunakan mekanisme ini, karenamereka tidak senang. Appointment dengan kalender diperlukan untuk suatumeeting, makan siang, telpon umum, juga pada meja. Kalender kertas sakumerupakan suatu pemecahan yang lebih berguna dibandingkan dengankomputer dalam hal ini.

16

Page 5: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

Tahap eksplorasi konsep seringkali menuntun perubahan ide tentang sestembaru, pengertian baru dari system konstrain, dan tujuan altematif pada system danproyek. Jika produk baru harus dibuat, point berikutnya sebagai penentu adalahapakah system baru "harus" dibuat. Mungking telah ada system software untukmemecahkan 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 tersebutrneliputi dua komponen pokok yaitu : analisis tehnik/feasibilitas tehnik dan analisispolitik/feasibilitas politik.

. Suatu system akandisebut sebagai feasibilitas tehnik jika ada hardware yangterjarnin dan metode-metode soft ware, peralatan-peralatan dan tehnik-tehnikdalam membuat system.

Contoh, system software yang digunakan sebagai komprehen bahasa naturalsecara penuh tidak semata-mata adanya feasibilitas teknik. Kadang-kadangmemerlukan studi yang panjang dan mahal, serta rnembutuhkan komponensoftware yang besar, untuk menyelidiki feasilitas teknik.

Dalam menyelidiki feasibilitas teknik, harus dimengerti tentang strategipengembangan yang mungkin ada.

Contoh prototype yang canggih mungkin dapat memecahkan masalah tanpamembutuhkan usaha yang banyak. Peralatan komputer diperlukan untukmendukung pengembangan dan pemeliharaan agar ,tetap bersih.

. Suatusystemakandisebutsebagaianalisispolitikatau feasibilitaspolitikjika ada organisasi pendukung yang memadai dan sumber-sumber yang cukupuntuk melengkapinyaFeasibilitas politik ini tergantung pada faktor-faktor seperti stabili pendanaandan personal, managemen kornitmen pada research yang panjang dan usahausaha pengembangan, adanya tujuan organisasi yang jelas, dan sebagainya.

Sekali lagi bahwa penemuan-penemuan feasibilitas untuk system barumungkin 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 berubahbahkan perubahnnya sangat cepat. Pertanyaan-pertanyaan in; f1<1r'1ISdi~aji kembalimelalui perputaran adanya software. M~skipun ada beberap~ ! r.Jyek ~'ang gagalyang disebabkan oleh pekerjaan yang tidak memadai pad t I entuk ei"splorasi

17

Page 6: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

konsep, tapi ada juga yang gagal karena suatu kesimpulan dan keputusan yangdibuat selama dalam tahap ini tidak pemah dipertimbangkan lagi di dalamperputaran kehidupan.Mungkin akan bijaksanajika dapat membuat tujuan ulangdari suatueksplorasikonsepdan feasibilitasdokumendi dalam putarankehidupan.

2.1.2. Dokumen eksplorasi konsep.

Tugas terakhir dalam tahap eksplorasi konsep adalah persiapan "conceptexploration document" (dokumen eksplorasi konsep), yang merekam menyimpanpenemuan-penemuan dalam tahap eksplorasi konsep. Dokumen ini menyajikansebagai suatu baris untuk suatu keputusan tentang hasil proyek dan masukan padatahap spesiftkasi persyaratan dan suatu perputaran kehidupan.

Seperti dalam ilustrasi, kita telah menuliskan dokumen explorasi konsepuntuk 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 bahasashell UNIX dan "awk", program e, rencana test, dan hasil test. Bentuk kategoriukuran proyek "ccount" adalah tidak begitu penting dan karenya maka typicalproyek 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 sarnauntuk proyek yang besar telah dibuat oleh " NavalResearch Laboratory. Sedangkan dokumentasi engineering untuk peralatan kitatel~ dikumpulkan dalam Appendix A, sedangkan kode sumber berada diAppendix B.

2.1.3. Alat-alat dan tehnik-tehnik tahap ekplorasi konsep.

Seeara virtual tidak ada peralatan UNIX dan tehnik-tehnik formal yang khususdibuat untuk membantu porsi eksplorasi konsep dari perputaran kehidupan. Tekseditor 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 versiyang baik atas dokumen eksplorasi konsep.

(Template) tentang dokumen eksplorasi konsep ada dalam Appendix C.

18

Page 7: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

2.2. TAHAPSPESIFIKASIPERSYARATAN.

"Software product requirement" adalah suatu feature. fungsi, kemampuan,atau properti dimana harns ada produk software. persyarntan tersebut dapat berupafungsi, penjelasan feature, system yang dipersiapkan, atau non fungsi, penjelasan"constraint" dimana suatu system harns dijalankan.

Requirements specification document" adalah suatu pernyataan dari seluruhpersyaratan untuk hasiVproduk software. Tujuan dari tahap spesifikasi persyaratandalam perputaran kehidupan adalah untuk menentukan persyaratan produk soft-ware dan menempatkannya kedalam dokumen spesifikasi persyaratan.

Hal penting yang ada dalam penentuan dan penempatan persyaratan adalahbahwa 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 harnsdikerjakan pada tingkat kemungkinan tertinggi dari suatu abstraksi. Ada tendensinatural, khususnya bagi para programer, untuk memindahkan dari pernyataanpenempatan yang mendukung penentuan design dan implementasi detail. Tendensisemacam ini harns dibalik selama dalam .tahap ini dari perputaran kehidupan.

Seperti telah dibicarakan dalam tahap eksplorasi konsep, bahwa tahaplbentukpersyaratan secara kritis tergantung pada pengertian akan kebutuhan user yangpotensial. Hal ini sering membutuhkan "Joint Application Design (JAD)" adalahsuatu metodologi yang membantu interaksi user dalam tahap persyaratan yangakan 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 implementasisebab dokumen tersebut menentukan feature yang pokok dari suatu system. Selamadalam testing dan validasi, persyaratan-persyaratan tersebut merupakan suatustandar pada system yang telah selesai yang telah diputuskan kebenarannya dankemampuannya. Setelah menyebar, maka dokumen persyaratan akan menyajikanlagi sebagai suatu standar kesulitan kekurangan, dan juga sebagai basis keputusan

. tentang perubahan dan penambahan

19

Page 8: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

Kedua dokumen spesiftkasi persyaratan berfungsi sebagai suatu persetujuan,atau kontak, antara developer dengan klien, Persyaratan tersebut bagi developeradalah

sebagai patokan apa yang akan disampaikan dan bagi klien adalah apa yangdiharapkan. Hal semacam ini merupakan basis/dasar untuk suatu kemenanganperselisihan/persaingan antara developer dan klien, yang mesti ada, jika suatusystem disampaikan.

Dokumen spesiftkasi persyaratan harns berisi informasi sebagai berikut :

. Pengenalan produk (Product overview)

Menjelaskan fungsi-fungsi pokok dan komponen-komponensystem dalambentuk yang umum. RingkasanrasionaldaIampembuatansystem untuk parapembaca tidak biasa dengan proyek.

. Pengembangan, pengoperasian dan pemeliharaan lingkungan (Develop-ment, operating, dan maintenance environments)

Menjelaskan sumber-sumberhardwaredan software dan peralatan-peralatanyang diperlukanuntukmembuatdan menjagasuatuhasiVproduk.Tentukanlahtarget lingkungan hardwaredan software, termasuk konftgurasioptimal danminimal untuk penggunaan suatu produk.

. Model Konseptual (Conceptual Model)

Menyajikan suatu model konseptual dari suatu system (suatu pandangantingkat tinggi akan menunjukanpelayanan & komponen utama/pqkok daripada systemdanhubungannyadengan yang lain).Dalam hal ini notasi graftklebih 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 darisuatu system. Tentukan tombol keyboardterkai tertentu. Tentukan bahasacommand-nya. Tentukan interaksi atau konvensi dialog dalam pembuatan/perintah interfaceuser dengan lengkapdan detail. Oleh karena spesiftkasi inikadang-kadang sukar ditentukanpada kertas, maka sering digunakan proto-type interfac~user. (lihat pembahasan berikut nanti).

20

Page 9: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

. Persyaratan Fungsional(Functional(requirement»

Menyajikan suatu pelayanan, operasi dan transfonnasi data, dan sebagainya,yang disajikan oleh suatu system. Porsi dari dokumen persyaratan ini adalahyang terbesar. Karena sistem fungsional harns dijelaskan keseluruhan danteliti. Beberapa metode dan notasi fonnal mungkin juga digunakan untuktujuan tersebut.

. PersyaratanNonFungsional(Nonfunctionalrequirement)

Menentukansuatukonstraindimanasoftwareharns dioperasikan.persyara~non fungsional yang khas ini berhubungan dengan dfisiensi, realibilitas,ketegasan, portabilitas, ukuran memory maksimal, standar kualitas, wakturespon, biaya, perawatan dan lain-lain.

. Persyaratan database dan Antar Muka eksternal (External interfacesand database requirements)

Menjelaskan suatu interface dengan system yang lain. Organisasi logikaldari basis data yang digunakan oleh system juga harns dijelaskan.

.. PenangananKesalahan(Error handling)

Katalog kondisi perkecualian dan kondisi kesalahan dan jawaban dari kondisitersebut selengkap mungkin.

. Peningkatan dan Perubahan yang dapat diramalkan (Foreseeablechanges and enhacements)

Tentukan suatu perubahan dan peningkatan yang dapat diramalkan untukmemberikeuntungankepadadesignerdan implementor.Perubahansemacamitu pada umumnya muncul dari evolusi hardware, perubahan-perubahankebutuhan user, pengenalan system lain dalam lingkungan operasi, dansebagainya.

. Implenientasi Rancangan, Petunjuk dan Panduan Pengujian (DesignImplementation, and testing hints and guidelines)

Tak dapat dihindarkan bahwa design implementasi,wawasan testing selalumenjadi pemikiran selama dalam tahap persyaratan proyek. Wawasansemacam ini jangan sampai hilang meskipun bukan merupakan persyaratandokumen spesifikasi. Bagian dari dokumen ini memberikan suatu tempatuntuk menjelaskanciri-ciri rancangan,kendala-kendala(constraints),strategi

21

Page 10: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

pengujian, perangkap-perangkap (pitfalls) atau pengamatan-pengamatanlainnya.

. Ringkasan (Glossary)

TentukanseluruhbentuktehnikRekayasaPerangkatLunakuntuk keuntungancustomer, dan seluruh bentuk tehnik aplikasi untuk keuntungan ahli soft-ware.

. IndeksBuatlah indeks alphabetik standar. Dapat juga macam indeks yang lain.

Meskipun versi awal dari dokumen spesiflkasi persyaratan telah dilengkapiselama dalam tahap spesiflkasi persyaratan dari putaran kehidupan akan berubahdan harns ditempatkan dalam kontrol versi (lihat Bab-9). Perubahan-perubahanyang tidak diharapkan dalam kebutuhan customer, pembiayaan, personal, sumber,hardware, dan sebagainya, mungkin menuntun pada persyaratan-persyaratan yangdiubah. Kesulitan yang tidak diharapkan selama dalam design, implementasi,atau testing sering mengalami perubahan dalam persyaratan.

Suatu contoh dokumen persyaratan untuk "C Count", peralatan tehnik metrikC, ada di dal~ Appendix A.

2.2.2. KRITERIA KUALITAS UNTUK DOKUMEN PERSYARA TAN.

Didalam penulisan dokumen persyaratan setiap usaha harus dibuat agarmemenuhi kriteria-kriteria sebagai berikut :

Kelengkapan(Completeness).Seluruhfungsi,ciri-ciri,kemampuan,konstrain,dan sasaran sistem yang lain dijelaskan secara mendalamldetail.

Dapat diuji (Testability).Setiappersyaratanditetapkansehinggadapat ditest.Contoh pemyataan "the system must respond to queries in a reasonableamount of time "tidak dapat ditest. Sedangkan pemyataan yang sama yangdapat di test dapat berupa "the system must respond to any query within 10seconds."

Keringkasan (Conciseness). Tidak ada informasi yang tak berhubungan yangada dalam dokumen persyaratan. Dalam prakteknya hal ini berarti bahwainformasi tentang sejarah proyek, pembiayaan, perencanaan, dan sebagainyaakan muncul dimana saja.

22

Page 11: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

Dapat dibaca (Readability). Dokumen persyaratan sangat mudah uotuk dibacadan dimengerti dan setiap persyaratan ditetapkan dengan tidak mempunyaidua acti.

Kemudahan Pelacakan (fraecability). Berarti disediakan untuk diuji apakahpersyaratan-persyaratan tersebut dapat direalisasi dalam disain dan kode.Persyaratan penomoran individual dan pengacuan kepadanya dengan angkacolem dokumen akan dana kode sumber dapat membantu.

Kelayakan (Feasibility). Seluruh persyaratan dapat dilengkapi denganmenggunakan peralatan-peralatan, tehnik tehnik,orang-orang, dan biaya yangada.

Membuat profotipe mungkin diperlukan untuk membantu menentukanfeasibilitas. Meskipun feasibilitas harns ditentukan selama dalam tahap eksplorasikonsep, namun tahap spesifIkasi persyaratan merupakan saat yang baik untukmengevaluasi kembali feasibilitas.

Mudah diubah (Changeability). Dokumen spesiftkasi persyaratan ditulis agarnantinya mudah untuk di ubah.

2.2.3. PERALA TAN DAN TEHNIK-TEHNIK TAHAP PER-SYARATAN.

Kelengkapan, pengujian dan konsistensi adalah merupakan atribut dokumenpersyaratan yang penting, yang sukar dicapai dan diuji dengan menggunakanbahasa Inggris.

Bahasa formal tidak dapat dijadikan analisis formal (minimal belum), sehinggasukar untuk meyakinkan atribut-atribut tersebut untuk dokumen, persyaratan bahasanatural. Dalam usaha mengatasi masalah ini, beberapa pekerjaan telahdikembangkan dengan tehnik spesiftkasi persyaratan formal.

Davis, memberikan suatu pandangan yang sangat bagus dan perbandingandari beberapa tehnik tersebut.

Tehnik-tehnik dalam spesiftkasi persyaratan formal termasuk mesin penentuyang terbatas, tabel dan diagram batang suatu keputusan, dan bahasa palsu. Duakriteria penting dimana tehnik-tehnik tersebut harus lengkap adalah bahwakeduanya harns dikomperhen pada user terakhir dan pemakai pada umumnyauntuk menyampaikan persyaratan lain. Oleh karena tak seorangpun dari tehnikformal yang dapat melengkapi kriteria tersebut maka persyaratan-persyaratanmasih tetap ditulis dalam bahasa natural, meskipun akan muncul masalah-masalah

23

Page 12: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

seperti diatas. Templates yang memberi struktur konsisten dalam dokumenpersyaratan sangatlah berguna. Contoh dokumen persyaratan "template" yangkita diskusikan ada dalam appendik C. Sebagai tambahan,contoh"ccount"menggunakan "temlate" tersebut.

System UNIK sedikitdukungandalam tahap persyaratan,sepertidalam tahappealatan manajemen versi yang ada dalam lingkungan UNIX sangatlah baikuntuk suaatu penulisan dan pemeliharaan dokumen spesifikasi, juga dalampenulisan dan pemeliharrandokumeneksplorasikonsep. LingkunganUNIXjugamenyediakan beberapa peralatan prototype yang baik, yang akan dibicarakanpada bagian berikut ini :

2.3. BANTUANPROTOTYPEDALAMTAHAPAWALPERPUTARANKEHIDUPAN.

"Prototype" adalah implementasi bagian dari produk software yang secaratypical fungsinya dibatasi, reliabilitas rendah, tampilannya miskin, dan kurangketegasa.Prototypeseringdikembangkansecaracepatdalam bahasa tingkat tinggiatau bahasa prototype tertentu, tanpa memperhatikan kebenaran dan ketegapandan sebagainya. Prototype mempunyai4 (empat) tujuan utama :

1. Untuk membantu pengembangan persyaratan jika tidak dapat ditentukandengan mudah.

2. Untuk mengesahkanpersyaratan,khususnyadengancustumerllangganandanuser yang potensial.

3. Untuk menyjikan sebagai tempat pengembanganjika menggunakan strategipengembangan evolusi prottype.

. Ada dua macamprototype.PrototypeThrowawaydibuatuntukmembantumemperjelas atau membuat valid suatu persyaratan atau design, atau untukmenunjukan feasibilitas.Jika tujuan ini telah dicapai, maka prototype tidak akandipakai.

Prototype minimal useful system dibuat sebagai tanda dari akhir suatu sys-tem yang dibuat minimal sebagian dari protype. Protype macam ini juga dapatdigunakan untuk menunjukan feasibilitas dan untuk membantu memperjelaspersyaratan dan rancangan.

24

Page 13: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

Keuntungan yang mungkin diperoleh dalam pembuarnn prototype dapat berupasebagai berikut :

Kesalahpahaman antara system developer dan system user dapat diidentifIkasidan dibetulkan. Ciri-ciri yang membuat bingung user dapat diidentifIkasi dandibetulkan. Kehilangan atau kesalahan persyaratan dapat diientifIkasi.

Prototype yang sedang bekerja m\lngkin sangat berguna dalam suatupembuktian managemen dimana suatu proyek adalah feasibel sehinggamenjamin kelangsungan dukungan.

Keuntungan yang mungkin diperoleh dalam pembuatan prototype adalahsebagai berikut :

Pemakai atau penemu system mungkin ingin menggunakanprototype tidakdibuat berdasarkan standar yang nyata : hal,ini akan membuat suatu perawatanyang tidak baik.

Pembuatan prototype mungkinmahal - harga pembuatanprototypemungkindirahasiakan.Penggunaanbahasa tingkat tinggi untukpembuatanprototypedapatmembantu dalam hal ini. Prototype mungkin tidak mencerminkankarakteristikoperasidari final systemsecaraakurat.Hal ini mungkinsebagaihasildari evaluasiprototype yang tidak akurat,khususnya yang dilakukan oleh langganari ataupotensial user yang tidak mengertiperbedaan antara prototype dan final system.

Pada pokoknya prototype menawarkan keuntungan yang besar untuk suatupenjelajahan,penjelasan,dan validasipersyaratan,dan untuk pengembangandanpembuktian feasibilitas. Prototype mungkin menyesatkan, atau hasil dalamkeputusan yang salah akan membuat lingkungan yanga salah. Suatu keputusanuntuk penggunaan prototype, tergantungdari lingkungantehnik dan politik, dankebutuhan dari para developer.

Beberapa bahasa prototype yang baik, dan domain-domain yang cocok/sesuaiadalah sebagai berikut :

-7 APL. APL adalah suatu kekuatan bahasa untuk pembuatan prototype dalamaplikasi matematika. Bahasa ini menawarkan operasi tingkat tinggi yangdapat mempercepat suatu pengembangan secara luar biasa.

Contoh, Operasi inversi matrik dan vektor penuh dan matrik matematikatersedia sebagai suatu operasi primitif dalam bahasa. Namun demikian,APL memberikan sedikit dukungan untuk program-program terstruktur.

25

Page 14: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

~ Prolog. Prolog adalah suatu bahasayang didasarkanpada subset darilogika pesanan pertama. Bahasa ini membuat suatu operasi database yangcanggih mudah dalam program.Macam-macamsystem yang lain dapat jugadibuat dengan mudah dengan menggunakan Prolog. Pada segi negatif,beberapa versi prolog memberikan suatu fasilitas input dan out put yangtidak baile,dan sedikit dukungan untuk floating point aritmatika.

~ Bahasa shell UNIX. UNIX shell language menawarkan lingkunganpembuatan prototype yang bagus untuk beberapa aplikasi. Bahasa ini adalahinteraktif dan menawarkan beberapa kekuatan peralatan yang berintegrasiuntuk manipulasi byte stream. Bagian berikut nanti akan membicarakankemampuan UNIX shell sebagai peralatan prototyping secara mendalam.

Beberapa metode untuk menghasilkan suatu persyaratan menggabungkanprototype sebagai suatu komponen yang integral, JAD adalah suatu tehnik untukdefinisi persyaratan yang dikembangkan pada mM, dan digunakan secara ekstensif,dan sekarang dipasarkan oleh mM sebagai suatu produk. Ide utama dari JADadalah mendapatkan seluruh partai tertarik dengan system software dan menyetujuidalam persyarannya. Oleh karena masalah-masalah pokok sering muncul dalampengembangan system user dan system developer, maka JAD mengalamatkansuatu masalah yang serius dari tahap ini dari perputaran kehidupan. Fokus utamadari JAD adalah untuk mem-prototype user interface. untuk interaktif system.Tehnik-tehnik untuk kecepatan layar pada system dimana user ingin berpartisipasidalam proses. Tetapi hal ini sering menimbulkan masalah.

Tidak seperti, misalnya, developer dari kategori bam yang lengkap dari suatusystem 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 peralatanprototype menarik. Pertama, UNIX shell menediakan suatu "kekayaan" dariperalatan yang sedikit yang dapat "menyaring" data stream, yaitu peralatan yangmembaca .data dari input sumber dan menulis data dalam output Contoh."catberisi file yang ada pada standar output, "grep" menemukan seluruh baris yangdibaca dari standar input yang sesuai dengan pola dan mendaftarnya kedalamstandar output, "cut" akan memilih kolom dari baris yang dibaca dari standarinput, "sort" akan memilih baris-baris yang terbaca dari standar input.

26

Page 15: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

Lebih jauh tentang "kekayaan" dari peralatan penyaring, lingkungan UNIXmenawarkan suatukemampuanuntuk merakitperalatan sehinggaoutputdari satuperalatan yang lain. Hubungansemaeamini disebut "pipes", dan ditandaidengangaris vertikal"_", memungkinkanuser membuat"saringan"yang lengkapdenganfilter yang sederhana.

Contoh, anggap kita mempunyai file dengan nama "partyfIle". yang berisinama-nama dan afiliasi partai politik sebagai berikut :

Daftar terurut dari semua demokrat dalam file ini dapat diperoleh denganeara berikut :

cat partyfile I grep Democrat I cut -fl I sort

Outputnya adalah sebagai berikut:

Abbott

Jones

Cara diatas dimulai pada saat cat menghasilkanalur data yang memuat isipartyfile. Alur ini dialihkan ke grep, yang beIjalan bersama dengan baris yangberiskanstring"Demokrat"dua baris tengahdaripartyfile. Outputgrep diteruskanke cut, mengganti field pertarna dari masing-masing baris dan menyampaikandata seearabergantianpada posisi ini, alur data berisidua barisyang mengandungnama-nama di atas, Abbott dan Jones. Sort akan menyusunbaris-baris ini untukmendapatkan hasil tersebut. lelaslah bahwa banyak baris kode yang terdapatdalam bahasa pernrograman standard, seperti bahasa C, akan diperlukan untukmelaksanakan tugas yang sama.

Akhirnya, Bahasa Shell UNIX memberikan struktur kendali yangmenggunakan perangkat lunak UNIX. Diantara konstruksi ini adalah statementif-then-else, while, for, dan case, sebagai eontoh sederhana, misalnya kitamenghendakiprogramshelluntuk menghasilkandaftar pilihandari demokratdari

27

Collins Republican

Jones Democrat

Abbott Democrat

Wilson Republican

Page 16: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

semua file dalam direktori pada contoh sebelumnya. Program Shell Collinmelaksanakan tugas berikut:

# Program to get sorted lists of Democrats# From all files in the current directory

for FILE in *do

cat $FILE I grep Democrat I cut -£1 I sortdone

For-Loop bekerja dengan menempatkan setiap file dalam current direc-tory ke variabel sheD FILE, dan melaksanakan loop body.

Beberapa jenis aplikasi, kecepatan dengan prototype dapat di buat denganmenggunakan sheD UNIX. Hal ini cukup mengesankan.

2.3.2. Prototype program Metrik C.

Dalam konsep dan rancangan, ccount bersifIkasi langsung (lihat ApendiksA) tidak ada pertanyaan tentang kelayakan ini, sehingga tidak terlalu diperlukanuntukmembuatprototypenya.Untukberatdaribagianini adalahuntukmemberikancontoh pembuatan prototype yang sederhana, dan untuk menunjukkan beberapakelebihan shell UNIX dan piranti UNIX untuk membuat prototype. Kitamemberikanprototype ccount. Dua prototype yang pertama merupakanprogramshellUNIXyangpendekyangmemberikanjumlah yangkotordan cepat.Meskipunsederhana, prototype ini menunjukkan beberapa manfaat ccount. Disampingmenunjukkankelebihan bahasa awk, bahasa ini bermanfaat untuk menggunakanbeberapa kemampuan dalam penguraian (parsing) file kode sumber (source codefile) C untuk menghasilkanjumlah baris komentar maupun bukan komentar.

Mungkin cara yang paling mudah untuk memperkirakan angka dari barissumber non commentary (NCSL) dalam file sumger C adalah menghitungbaris-baris yang berisi titik koma, sebab titik koma harns digunakan untukpangkalan beberapa perintah C. Hal ini hanya merupakan suatu kira-kira yangbelum pasti karena akan kehilangan baris-baris kode sumber yang berisi hanyatanda kurung, beberapa deklarasi variabel, baris-baris header deklarasi fungsi,dan seterusnya.Begitujuga baris-barissumber commentary(csl) dapat dikra-kiradengan cara menghitung baris-baris yang berisi batasan perintah. Hal ini jugamasih merupakan suatu perkiraan yang kasar sebab akan kehilangan baris-barisinternal pada perintah-perintah.Prototype pertama menggunakanperkiraan yang

28

Page 17: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

kasar tersebut untuk menghitungnya :

#######echo IIFilefor FILE do

NCSL= 'grep -c ';' $FILE'CSL='egrep -c '/\*.*\*/'RATIO='bc «-end

scale=2

$CSL/$NCSLend'

ccount Prototype 1This program estimatesNCSL are estimated byand CSL are estimateddelimiters.

NCSL and CSL by grepping.grepping on semicolons,by grepping on cormnent

CSL NCSL CSL/NCSL"

$FILE'

echo II$FILEdone

$CSL $NCSL ~RATIO"

Barispertamadari shellprogramakanmencetakheader.Sedangkanloop-"for"akan memroses tiap-tiap file yang ditentukan pada baris command, penyusunantiap nama pada variabel "FILE" untuksatu kali lewat melalui loop. Body loopmenggunakan program "grep" dengan pilihan "-c"(yang menjadikan programtersebut menghitung baris-baris yang cocoklsesuai) untuk perkiraan NCSL danCSL.

Per}9raan-perkiraantersebut kemudian diterapkan pada program kalkulator"be" untukmenghitungperintahpada rasiokode.Hasilnya"dikumandangkan"padastandar 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

CSL249

NCSL284

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 tidakterhitung. Prototype yang lebih baik dengan jelas dapat digunakan.

29

Page 18: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

Prototype berikutnya menggunakanpreprocessor C untuk menghitung Ncslsecara tepat/akurat. Preprocessor C disamping memperluas macro, juga akanmemindahkan seluruh perintah dari file sumber. Preprocessor C ini jugamenyediakan baris patah, meskipun dapat menambah baris-baris kosong. Olehsebab itu NcSI dapat dihitung dengan cara melewatkan file sumber melalui pre-processor kemudian menghitungbaris-baris yang tidak kosong yang masih ada.Penghitungancsl secara akuratmemerlukansuatuperalatanyang lebih baik untukproses text dibandingkan dengan bahasa skill. Kita menggunakan bahasa polayang sesuai UNIX "awk" didalam prototype ini.

#######echo "File CSL NCSL CSL/NCSL"for FILE do

sed e 's/#//g' $FILE > /tmp/ccount.trnpNCSL='/lib/cpp p < /trnp/ccount.tmplgrep c '[A ]'

ccount Prototype 2

This utility counts NCSL using thecounts CSL using awk, and computesCSL/NCSL ratio.

C preprocessor,the total

CSL= ' awk f csl. awk $FILE'RATIO= ' bc « end

scale=2

$CSL/$NCSLend'

echo "$FILE $CSL $NCSL $RATIO"done

rrn /tmp/ccount. tmp

Sepertipadaprototype I. prototypeinijuga "mengumandangkan"header,kemudianbergabung melalui tiap file yang disediakan sebagai suatu argument pada bariscommand. Ncsl dihitung dengan melalui input file melalui processor C "cpp"kemudian menggunakan "grep" untuk menyesuaikan pada baris yang berisikarakter selai tempat kosongmaupun tabulasi."-p" pada "cpp" mencegah adanyapenambahan baris pada file, yang akan memperbanyakpenjumlahan. Persiapanpemrosesan dengan "sed" adalah san.gat penting karena preprocessor akanmenimport file-file "#include", menyebarkan makro dan seterusnya. Denganmemindahkan tanda pound dari sumberfile akan mencegah preprocessor daripenyebarluasan.

30

Page 19: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

Program "awk","csl".awk" yang digunakan pada prototype ini akan

memperkirakan csl dengan melihat batasan perintah seperti pada "agrep". Pro-

gram ini juga menjaga track apakah ada baris-baris tanpa batasan perintah yangada dalam comment sehingga tidak akan gagal dalam menghitung baris-baristersebut.

Programi"csI.awk"adalahsebagaiberikut:

#

#

##

##

BEGIN

cs1.awk

This awk script counts the commentary sourcelines in a C source file

cs1 = 0; o }

# skip blank linesnext }# count lines with complete commentscs1 += 1; next }# count lines that open a commentcs1 += 1; is_comment = 1; next }# count lines that close a commentcs1 += 1; is_comment = 0; next }# count lines inside a commentif ( is_comment ) cs1 += 1 }

END# print total cs1

{ print cs1 }

out put dari Prototype 2 adalah sebagai berikut :

File CSL NCSL CSL/NCSL

prog. c 433 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 akuratdari total CSL, NCSL, dan rasio comment-to-code.

Seperti pada prototype awal, prototype dua mungkin cukup jelas menunjukkansecara fungsional ketidak gunaan dan peralatan, Prototype akhir menggambarkan

31

/"[ \t]*$/ {

/\/\*.*\*\// {

/\/\*/ {

/\*\// {

Page 20: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

32

bahwa programdapat dihasilkandengan menggunakanshell UNIX dan peralatanUNIX seperti "awk". Prototype tiga akan mempunyai perintah sebanyak yangditentukan dalam perintah "ccount". Prototype tiga akan menerima flag .t, danmembuat format report tabbed atau non tabbed yang menampilkanhitungan danrasio untuk masing-masingdefinisifungsi,untukbari -baris ekstemal pada definisfungsi, dan untuk keselurhan file. Perbedaan utama antara prototype fungsipembatas string ditentukan dengan "Z", fungsi yang memulai pembatas yangdigunakan dalam prototype tes program adalah "prog.c".

Dalam "prog.c, "Z" adalah "#defined " sebagaisesuatu yang tak berarti danditempatkan sebelumdefinisi fungsi. Meskipun hal ini diberi tanda kurung untukprototype namun akan menjadi pendek dari hasil perintah.

Shell script berikut ini al(an membuat prototype tiga

############if [ "-t" = $1 ]

thenshiftfor FILE do

echo $FILEawk -f ccount.awk F="TABBED" $FILE

doneelse

for FILE doechoecho $FILE "echoecho" Function CSL. NCSL CSL/NCSL"echo " ~ "awk -f ccount.awk F="NONTABBED" $FILE

done

ccount Prototype 3This utility counts CSL and NCSL, and computes theCSL/NCSL ratio for each function definition, codeexternal to any function definition, and for thefile as a whole.

It relies on awk to do its counting and most output.The awk program ccount. awk produces reports formattedaccording to whether the variable F is set to"TABBED" or "NONTABBED".

" 'date'

fi

Page 21: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

Skrip shell ini memutuskan apakah laporan format non tabbed atau tabbedhendak dibuat, mencetak leader, memberikan file sumber kepada program awkyang melakukan penghitungan. Program awk ccount.awk adalah panjang; kitamendapatkan dalam Apendik B dengan prototype lain. Output dari prototype 3merupakan format nontabbed agar prog. C memenuhi persyaratannya sertamenghasilkanjumlah yang tepat untuk contoh berikut :

Prototype 3 bekeIja seperti sistein target. Dia dapat dibuat lebih baik, lengkapdan dapat diperbaiki, serta digunakan sebagai sistem final sebagaimana dianjurkandalam pembahasan strategi pemecahan dalam konsep dokumentasi Eksplorasi,Namun sayangnya, prototype ini tidak cukup cepat. Bila diukur dengan perintahtime UNIX pada sun 3/50, Prototype 3 hampir memerlukan waktu 9 detik dariwaktu CPU untuk menghasilkan laporan bagi program .C, yang memiliki panjang55.190 bait. Hal ini jelas tidak memenuhi target 2 detik waktu CPU untuk file40.000 bait. Versi terakhir dari ccount dapat memenuhi persyaratan ini, karenakeIja memerlukan waktu 2 detik untuk mengolah program C dan kurang 1 detikuntuk file dengan 40.000 byte.

2.4. KESIMPULAN.

Eksplorasi konsep dan definisi persyaratan yang menekankan pada softwarelife cycle sangatlah vital untuk keberhasilan proyek pengemangan dan produksoft war. Keduanya juga sulit, penting dimengerti, dan penting dialamatkan denganperalatan dan tehnik-tehnik yang baik.

33

prog.c Thu Feb 9 14:41:20 EDT 1989

Function CSL NCSL CSL/NCSL-------------------------------------------------

Refresh_Form 23 29 0.79Build.:.-Form 102 145 0.70

Init_Form_Frames 30 121 0.25

Set_Form_Defaults 42 36 1.17Ex_Forn_Frame 32 44 0.73

Exec_Form 53 61 0.87external 149 225 0.66

total 433 661 0.66

Page 22: EKSPLORASI KONSEP DAN SPESIFIKASI PERSYARATAN · Tapi hanya sedikit yang menggunakan mekanisme ini, karena mereka tidak senang. Appointment dengan kalender diperlukan untuk suatu

Teknologi yang penting didalam eksplorasi konsep dan tahap persyaratanadalah penggunaansecaraekstensifprototypeuntuk mengujikelayakandan untukmemperbaharui perintah, khususnnya persyaratan/perintah "user interface".Meskipun lingkungan UNIX memberikan fasilitas prototype yang handal,piranti-piranti UNIX adalah yang terbaik untuk membuat prototype fungsionaldan biasanya tidak dapat mendukung untuk membuat prototype bagi interfacepemakai yang didasarkan pada window yang canggih yang kemudian menjadistandard.

34