PROSES DESIGN SOFTWARE
PROSESDESAINSOFTWARE Tahap Desain memfokuskan pada bagaimana suatu persyaratan sistem dapat OOrtemu. Selama tahap Desain struktur dan pemrosesan secara detail dari hasil software adalah, dokumen, dan review. Suatu diskripsi dari struktur software yang melengkapi persyaratan software dicakup dalam satu atau lebih "design document" yang berlaku seperti blue print pada tahap implementasi dan menyediakan suatu bimbingan /tuntunan selama tahap penjelasan dan pemeliharaan. BeOOrapa konsep yang penting dan prinsip seperti atraksi, modularisasi, kohesi, "pasangan ", dan informasi Desain cara penyembunyian. Kita akan membicarakan
konsep tersebut dan prinsip-prinsipdalam bab I.
.
Designer software juga menggunakan Desain metode, notasidan peralatan-peralatan. Suatu Desain metode adalah suatu prosedur yang sistematis untuk pembuatan diskripsi sistem software dari persyaratan-persyaratan. Desain metode membantu para designer mengembangkan sistem arsitektur (suatu model konseptual sistem yang diperbarui), penentuan elemen data pokok, dan penentuan pemrosesan rencana dan (algorithma) tingkat fungsi. Hampir semua Desain metode termasuk "design notasi" pada penjelasan struktur sistem, elemen data ,dan langkah-Iangkah pemrosesan. Desain notasi termasuk graftk, diagram, chart, taOOI,dan bahasa formal, juga bahasa natural. "Design peralatan" adalah program-program yang mendukung proses Desain dengan membantu membuat, menganalisis dan (verify) design. Pada bagian kedua dalam bab ini, akan kita bicarakan empat Desain metode yang sering digunakan dan notasi-notasinya. Pacla bagian ke tiga akan kita review OOOOrapaperalatan design. Pada bagian akhir akan kita bicarakan isi dari dokumen design-output dari proses design.
3.1. KONSEPDAN PRINSIP-PRINSIP DESAINSOFr-
WARE Dalam bagian .ini akan kita bicarakan prinsip prinsip Desain dari pada abstraksi, kolusi,coupling, modularitas dan informasi penyembunyian.
36
3.1.1. ABSTRAKSI Abstraksi adalah suatu supresi dari beberapa property objek, kejadian atau situasi yang lain. Lebih banyak properti ditekan, akan memberikan tingkat abstraksi yang lebih tinggi. Pada Rekayasa Perangkat Lunak, abstraksi biasanya mencakup supresi property yang umum secara detail. Analisa yang sederhana ini didapat dengan mengabaikan perbedaan yang tidak relevan. Contoh, Suatu daftar dapat dianggap pada tingkat abstraksi yang mengabaikan penyisipan dan penghapusan. Pada level ini (stack), Quene, dequene, dan list yang umum adalah sarna: merupakan kumpulan elemen yang terurut. Pada tingkat abstraksi yang lebih rendah, aturan penyisipan dan penghapusan mungkin dapat dilakukan. Tetapi implementasi ditekan. Pada level ini tidak ada perbedaan yang dibuat antara stock .yang diimplementasi dengan menggunakan linked list atau array. Perbedaan berikutnya hanya dibuat pada ketiga, level abstraksi yang lebih rendah. Proses Desain dapat berupa bottom up atau top down. Rancangan bawah keatas akan memulai pada level bawah suatu abstraksi dan bekerja keatas menuju generalitas yang lebih besar. Sedangkan rancangan atas kebawah akan memulai level paling tinggi dari suatu abstraksi dan bekerja ke bawah menuju spesiftkasi yang lebih besar. Namun demikian pendekatan .atas-bawah atau bawah-atas jarang dipraktekkan. Pendekatan yang biasa di pakai adalah melakukan keduanya yaitu: atas -bawah dan bawah -atas dengan dominasi. atas-bawah, dan mendahulukan atas bawah. Abstraksi adalah kekuatan tehnik untuk menganalisa dan merancang. Ringkat abstraksi harns dibedakan secara jelas dan hati-hati, dan seluruh detail yang tidak cocok pada abstraksi ditekan dengan ketat. Sayangnya tidak ada prosedur mekanik untuk mengidentiflkasi tingkat abstraksi yang baik atau untuk pemilihan yang pokok dari detail yang tidak pokok.
3.1.2.
Modularitas
Suatu system secara khusus disusun kembali kedalam sub sistem yang lebih kecil. Sub system disusun kembali berulang-ulang hingga menghasilkan suatu bagian yang dapat diatur secara logis dan teknis seperti unit tunggal. Suatu "modul" adalah bagian lain atau sub system dari system yang lebih besar. Modul terbagi atas dua kelompok dimana keduanya tersusun kedalam modul yang lain -internal modul - dan tidak akan tersusun kembali - leaf modul. Internal modul digunakan untuk mengoranisasimodul yang lain! Leaf modul tidak berisi modul yang lain tetapi berisi kode dan data. 37
Suatu system akan disebut "modulator" jika disusun dengan definisi yang baik,terkonsep secara sederhana, dan bagian-bagian yang secara bebas beriteraksi melalui interface ketentuan yang baik. Modulator system dapat dipakai pada beberapa alasan sebagai berikut: Mudah untuk dimengerti dan dipahami karena dapat didekati perbagian dalam suatu waktu dan karena bagian-bagian terssebut telah ditentukan secara baik dalam interrelation.
Karena mudah untuk dimengerti dan dipakai, mudah di dokumentasi. Mudah didalam program karena kelompok yang bebas dapat bekerja pada modal yang terpisah dengan sedikit komunikasi. Mudah dikontrak karena dapat dites secara terpisah, dan kemudian digabungkankembaliuntuk dites bersama-sama,satu modul pada satu waktu. Jika modull-modulbebas, maka akan mudah dirawatg,Perubahan-perubahan dapat dibuat dalam modul yang sedikit dengan tanpa mengganggu system yang masih ada. Modularitas yang baik tergantung pada prinsip-prinsip penyusunan system kedalam bagian, yang kemudian kita sebut Kriteria modularisasi(Modularization criteria). Modul-modul hams menyembunyikan implementasi yang mungkin perlu untuk diubah (prinsip dari penyembunyian informasi). Modullllll-mooul hams berimplementasi tunggal secara logis dalam tugas indepeenden. Modul hams merninimalkanpasanganmodul, dan memaksimalkanlokasi modul : Modul hams mengimplementasi type data abstrak atau membedakan obyek logikal dan hams mempengamhilevelabstraksidalamDesainsystem.Modulhams (enhance)dengan pengetesan dengan menyediakan secara terpisah unit yang dapat dites dengan mudah. Akhirnya leaf modul hams menunjukkansatu fungsikhusus yang kurang dari satu halaman. Pandangan pertama dari kriteria tersebut adalah penting dan. akan kita bicarakan nanti. Prinsip yang paling penting arti modularixation termasuk pengkode-an dan efisiensi.Hal ini akan mempengamhiperaturan. Modularization : akan lebih penting menysun suatu system hingga sederhana,dapat dipaharnidan merupakan bagian yang terpisahdibandingkanmenyusunnyamenjadiefisien atau mudah dalam kode.
38
3.1.3. KOHESI Kohesi adalah kekuatan hubungan antara elemen modul. Modul-modul sedapat mungkin menjadi kohesif. Tingkat kohesif akan sarna dengan yang lainya didalarn literatur, yang terdaftar dari paling tinggi (terbaik) ke paling rendah (terjelek) adalah sebagai berikut :
Kohesi type data. Modul-modul yang mengimplementasitype data abstrak mempunyai kohesi type data. Type data abstrak adalah satu set angka data dan operasi data. Suatu implementasi dan type data abstrak adalah representasi dari angka suatu type, selama dalam sub program operasi. Con toh, suatu modul yang menimplementasi type "int-stack" akan menyediakan struktur data untuk mewakili stack integer, selarna fungsi-fungsioperasi seperti "push", "pop". "empty" dan sebagainya. Kohesi Fungsional. Suatu modul mempunyaikohesi fungsional-jikamempunyai/terdiriatas sub program dan strukturdata yang berimplementpada fungsi tunggal, feanture, atau operasi secara kolektif. Contoh, satu modul untuk menampilkan grafIk pada terminal pertunjukkankohesi fungsional. Kohesi logis. Suatu modul mempunyai kohesi logikal jika elemennya membentuk suatu set tugas yang berhubungan secara logis. Contoh, modul yang terdiri atas fungsi-fungsiuntuk mencetakberbagaivariasikesalahandan pesan peringatan yang mempunyaikohesi logis. Dalarn Contoh ini, melalui data menuju data yang lain,fungsi-fungsitersebutmengerjakantugasyang logis dari pencetakan
kesalahandan pesan-pesanperingatanyangsarna.
.
Kohesi Urotan. Suatu modul yang terdiri atas elemen-elemen yang dibuat hampir sarna akan mempunyai kohesi Urutan. Data dikirim secara tipikal dari satu rutin ke rutin berikutnya, engan mentransfer data sebelum melaluinya.Suatu contoh dari modul semacam itu mungkin disebut pemformatan. teks, Fungsi pokok memproses bagian-bagian tertentu dari teks seperti tabel dan persamaan.
39
Fungsi-fungsi berikunya dalarn (pipeline). mungkin mengubah teks kedalarn baris-baris, kemudian kedalarn paragraf, halarnan, dan bab.Fungsi terakhir mungkin menyisipkan kontrol printer yang sarna. Contoh lain dari kohesi urutanlsequential adalah ada dalarn program shell UNIX.
Kohesi insidental. Suatu modul mempunyai kohesi insidentaljika tidak ada hubungan antara elemennya. Suatu study pada pada "National Aeronantics and space Administration Rekayasa Perangkat Lunak Laboratory "menunjukan bahwa modul kohesif yang tinggi mempunyai rata-rata kesalahan yang rendah dan biaya yang sedikit, dan programmer yang baik cenderung akan menuliskan modul kohesif yang sedikit dibandingkan dengan mQdul kohesif yang sedikit, dan programmer yang baik cenderung akan menuliskan modul kohesif yang tinggi. Levellokasi didalarn modul haruss dipertimbangkanketika menentukandan mengevaluasi struktur dari system software. Suatu modul dapat mempunyai beberapa macam kohesi. Contoh satu modul dapat mempunyai kohesi sequential dan kohesitype datajika fungsi-fungsinyaberoperasipada data yang biasa dipakai.
40
Tipe Data Functional
Mengimplementasitipe data abstrak
Logis
Elemen yang secara logis berhubungan dengan tugas
Sekuensial
Elemen yang dijalankan dalam urutan
Insidental
Elemen yang tak berhubungan
Elemen yang bersama-sama melakukan satu tugas
3.1.4. COUPLING. COUPLINGadalah suatu kekuatan pelemahan antara modul-modul yang didasarkan pada jumlah komunikasi yang terjadi pada modul tersebut seperti kohesi, Couplingjuga mempunyaivariasidalam level.Pada umunya. yang terbaik adalah coupling tingkat rendah. Modul gabungan yang hilang akan mudah dipahami, di dokumen, dikode, dites dan diralat. Kita membedakan lima level coupling yang terdaftar dari terendah (terbaik) tertinggi (terjelek) :
.
Coupling difinisi data. Ketika modul-modul memanipulasi data dari type yang sama maka modul tersebut mempunyai Coupling definisi data.
.
CouplingElementdata. Modul-modulyang menujupada element data melaluiinteface,sepertidaftar paramater, mempunyai copling element data. Modul-modul digabungkan hanya melalui elemen data yang diubah secara bebas sepanjang interfacenya tidak diubah.
.
CouplingControl. Modul-modul mempunyai coupling control jika satu modul dapat mempengaruhi arus kontrol dalam modpl yang lain dengan melewatkan informasi-kontrol sebagai "flag". Gabungan semacam ini menguraikan kode yang telah dibuat antara modul-modul,sehingga membuat modull-modullebih interdependent.
.
CouplingGlobal. Modul modul yang bereferensi pada variabel global yang umum akan menampilkancouplinglobal.Oleh karena interfaceantara modul-modulyang memperlakukan data global mungkin tidak disiplin, maka ikatan gabungan cenderung meningkatkanprogram lebih komplek.
.
CouplingContent. Coupling Content terjadi jika satu modul memilih data atau mengkontrol lokal pada modaul yang lain. Bentuk Coupling ini dapat terjadi hanya dalam bahasa yang mempunyai ruang lingkup peraturan yang lemah atau type pengecekan yang lemah atau di dalam bahasa dimana kode dapat dipilih dalam waktu singkat. 41
Pada bahasa C, Coupling Content terjadi jika pointer digunakan untuk memasukkan lokal data tertentu ( "static" ) kepada modul yang lain. Coupling Content seharusnya tidak terjadi Coupling global harus di minimalkan dan dikontrol, sebanyak mungkin melalui penggunaan ruang lingkupperaturan.Couplingcontrolbiasanyadapatdihindari.Couplingdefmisi data dan coupling element data adalah lebih utama dalam mekanisme komunikasi termodul ( Tabel 3.2. )
III :~COUPling
Modul
Definisi data
Modul ambil bagian dalam deklarasi data
Elemen data
Modul menyampaikan data ke parameter
Kontrol
Modul mempengaruhi kendali alur
Global
Modul mengakses data global
Isi
Modul mengubah objek khusus dari modul lain
Kohesi dan coupling biasanya komplementer. Modul kohesif yang tinggi pada umumnya lebih lemah terhadap modul yang lain, tetapi modul-modul yang me-lock kohesi cenderung di gabungkan kepada modul yang lain secara ketal. Sayangnya sangat umum dalam modul kohesif tinggi untuk digabung dengan modul yang lain secara ketat karena adanya kecenderunganmemperiakukandata global sebagai pengganti dari pemasukan data dengan paramater.
3.1.5. Penyembunyian informasi Penyembunyian informasi adalah strategi penguaian dimana tiap modul (skilds) internal detail dari pemprosesannya dari seluruh modul yang lain. Seluruh komunikasi antara modul-modul terjadi melalui intrface yang ditentukan dengan baik. Informasi tentang modul tersebu terbagi atas dua kategori informasi pribadi dan informasi umum. Informasi pribadi termasuk represetasi data internal modul data yang detail, Operasi algorimik, Organisasi internal dan obyek data dan operasi yang meminta modul yang lain. Informasi ini juga disebut "Secret modul".
42
Infonnasi ini perlu menggunakan pelayanan modul yang ditentukan dalam interface umum modul. Interface - interface menentukan nama, property dan parameter obyek data dan operasinya yang disediakan oleh modul, tingkah lakunya, dan kondisi kesalahnnya. Suatu cara untuk memikirkan tentang modul-modul yang menguatkan prinsip penyembunyian infonnasi adalah "prosedur-consumer model". Dalam model ini, "product" adalah obyek data, seperti angka dari type ata abstrak, atau contoh-contoh dari kelompok program orientasi obyek."Services" adalah suatu operasi atau fungsi untuk mernanipulasi obyek data mengontrol devisi dan sebagainya.Suatu modul adalah merupakan "producer" dimana produk-produk atau servisnya disediakan oleh modul yang lain. Penyembunyian infonnasi disini. meliputi keduanya. yaitu "producer" dan "consumer". Consumer dari produk atau service tidak mempunyai akses pada mekanisme yang dipakai oleh producer untuk menyediakan produk atu servisnya. Begitu pula, producer tidak akses pada mekanisme yang dipakai oleh konsumer pada saat menggunakan produk atau servis. Prinsip dari penyembunian infonnasi mempunyai dua aspek yang dapat diaplikasikan satu dengan yang lain pada producer dan consumer. Penyembunyian infonnasi dapat terjadi pada beberapa level dalam sistem software. Suatu prinsip dimana obyek selalu dibuat selokal mungkin adalah suatu prinsip penyembunyian infonnasi yang diterapkan pada level blok. (seperti dalam C semua kode diantara kurung) dan pada level nidyk compile. "Bagian luar" dari fungsi private (dalam c "static") dan obyek data dalam modul compile adalah suatu manifestasi dari prinsip ini pada level rnodul compile. Penyembunyian informasi mempunyai beberapa keuntungan. Pertama, penyembunyian infonnasi adalah suatu jenis abstraksi. Modul rahasia secara detail di-supressed dalam spesiftkasi modul interface. Penyembunyian infonnasi akan mengurangi kerurnitan. Kedua, modul-modul yang menyembunyiakan intemalnya secara detail cenderung akan menjadi kohesif yang tinggi Desain dan implemntasi secara detail disembunyikan didalam modul,maka akan menjadi terpisah dengan modul yang lain.Hal semacam ini sangat penting khususnya pada saat implemnentasi secara detail harns diubah. "Rahasia" dapat diubah dengan mudah dan reliabel karena akibat dari perubahan semacam ini terbatasi pada modul-modul yang disembunyikan. Penyembunyian infonnasi adalah suatu pr!nsip yang kuat yang sangat mernbantu praktek medularisasi lain yang bail<.Dengan berdasar pada pengalaman. kita percaya bahwa penyembunyian infonnasi adalah suatu prinsip yang fundamental dari modularisasi. 43
3.2.METODEDESAINSOFTWARE. "Metode desain"adalah suatu prosedur atau tabnik seeara sistematis dalarn pembuatan, sistem software dari persyaratan produk software. Kita akan membicarakan empat metode Desain yang populer, yaitu : Desain terstruktur, Desain struktur data, Desain orientasi obyek dan Desain dataflow. Elemen-elemen pembeda dari metode metode Desain tersebut adalah mekanisme yang digunakan untuk menyusun sistem kedalarn subsistem yang lebih keeil, dan notasi yang digunakan untuk mengekspresikan design. Desain struktur data akan me-rely pada struktur data sebagai suatu baris penyusunan, dan notasinya merupakan bentuk graflk dari hubungan antar operasi. Desain dataflow dan Desain orintassi obyek mengguanakan keduanya, yaitu struktur data dan operasi sebagai suatu basis penysunan dan saling bekerja sarna dalarn Desain notasinya. Kadang-kadang ada beberapa metode komplementer yang digunakan untuk tujuan tersebut. Contoh, Seseorang mungkin menggunaan penusunan fungsional untuk mengerjakan penyusunan fungsional untuk mengerjakan penyusunan sistem tingkat tinggi, tapi kemudian menggunakan Desain orientasi obyek untuk "devire" modul modul yang membuat sistem tersebut.
3.2.1. Desain terstruktur Disainterstrukturjuga disebutpenyusunanfungional"ata desain atas kebawah .
L yaitu suatu pendekatan" devide and conquer"untuk pemeeahanmasalah. Desain ini diperkenalkan olehy with pada tabun 1971 dan merupakansalah satu dari sekian banyak metode Desain pertam kali. Pada Desain terstruktur pertama seseorang hams menganalisa persyaratan untuk menentukan beberapa langkah high level seeara fungsional yang dapat memeeahkan masalah atau memenuhi persyaratantsb. Langkah-Iangkahfungsionaltersebut kemudiandisusun ke dalam langkah-Iangkah fungsional yang lebih detail. Penyusunan yang berhasil akan dapat dijalankan hingga seluruh fungsi dapat diekspresikanke dalam konstruksi bahasa pemprograman. Pada tiap langkah penyusunan, hams hati-hati agar kita yakin benar bahwa sub fungsi dimasukkan kedalam fungsi, tersusun dengan benar. Selama dalam penyusunan penggunaan Desain harus ditunda selama mungkin agar komitmen implementasi terbawa kedaJam level terendah dari sistem yang membantu penggandaan modul. Penggandaan (decoupling) terbuat dengan cara pembuatan langkah proses yang bebas. Kohesi fungsional akan terbantu oleh mekanisme penyusunan itu sendiri.
44
Penyusunan fungsional telah difonnalkan oleh Yourdon dan Constantine, dan Myers pada pertengahan dapat digunakan sebagai pengganti desain-desain yang dihasilkan dari penyusunan fungsional. Struktur charts merupakandiagram pohon yang menunjukan heirachy fungsional dari suat system, seperti contoh OOrikut(gambar 3.1) yang menunjukan Desain compiler. Tiap-tiap (rectangle)mempersembahkansuatu modul di dalam system.Suatu (arc)-(tanda panah melingkar) menunjukkan suatu struktur panggilan yang ter-iterasi. (Yaitu,input scan yang diulang-ulang, kemudian mengupdate taOOl symbol kemudian membuat deagram pohon) Tanda mutiara hitam menandakan suatu kondisi pemanggilan (yaitu modul inser-new-symbol"dipanggiloleh modul " update-symbol-table"found"). Tanda panah menunjukan paramater yang melewati antara modul-moduldengan nama paramateryang dilaluiyang diarahkan ). Tanda panahterbukamenunjukkan data couple, Sedangkan tanda panah tertutup menunjukan suatu kontrol couple (seperti : "flag", found"). Design terstruktur telah digunakan untuk memecahkan pennasalahan yang OOsar.Desain ini sangat populasi, motode Desain yang lain, seperti yang akan kita lahap dalam diskusi berikut nanti.Permasalahan terbesar dalam Desain terstrukturadalahbahwaDesaintersebuttidakmempunyaiprinsip-prinsippenuntun penyusunan yang jelas. Kesukaran yang lain adalah bahwa Desain terstuktur menitikberatkan pada operasi bukan data. Konsekwensinya. Desain terstruktur tidak dapat menunjang penyembunyian infonnasi. Akhimya Desain terstruktur adalah merupakan suatu pendekatan atas - bawah yang kuran baik, sehingga mungkin dapat menghilangkankeOOradaandata pada level rendah yang biasa dan operasi-operasi.
3.2.2. Desain struktur Data. Metode Desain struktur data didasarkan pada (premise) bahwa penentuan struktur data dalam suatu masalah menuntun ke pemecahan yang OOtul.Metode Desain ini diperkenalkanoleh jackson pada pertengahan tahan 1970-an dn di kembangkan lebih konprenhensif metodologi yang di sebut jackson Sistem Development (JSD) pada tabun 1980-an. Disini kita akan membicarakan hanya pada pendekatan jackson yang pokok. Para pembaca yang tertarik dengan nuansa JSD hams mempelajari buku-buku Jackson.
45
Empat langkah dalam metode Desain struktur data adalah : 1. Menentukan dan menjelaskan secara grafIk struktur data input dan out put. 2.
Menentukan point korespondenl titik hubungan antara struktur data input dan out put dan menggunakan hubungan tersebut untuk membuat struktur program secara graftkal.
3.
Menentukan operasi yang diminta untuk mentranformasi nilai data input kedalam nilai data out put, dan menggabungkanya.
4.
Mentransformasi adanya gfrafIk struktur program ke dalam representasi prosedural (di dalam psendocode) dengan menggunakan operasi yang ditentukan didalam langkah ke tiga dan menambahkankondisi-kondisiyang di perlukan dan prosedural detail.
Metode Jackson menggunakan "diagram struktur data" untuk menampilkan struktur data input dan output. Diagram struktur data menampilkan struktur data seperti pohon. Setiap node menunjukkan suatu element data, node yang kecil menunjukkan konstituante element data dari induknya. Sehingga akar dari pohon tersebut menunjukkan bagian-bagiannya. Node digambarkan seperti (rectangles).Item data dikelompokkan kedalam bentuk struktur data yang lebih besar sebagai berikut :
Urutan Item data (Sequencing of data items). Strukturdata mungkin disusun dari kelompok item data, misalnya, struktur data mungkin relevan dari empat keadaanyaitunama, umur,jenis kelamindan pekerjaan..Kesamaan tersebut dapat ditandai dengan node kecil yang dihubungkan dengan item data yang konsituent. Pengulangan Item data (Repetition of data items). Struktur data mungkin disusun dari beberapa struktur data tertentu yang ada. Misalnya, struktur data mungkin disusun dari nol record atau beberapa record. Pengulangan ditandai dengan node kecil tunggal dengan tanda asteris (*) dalam sudut kanan atas dari (rectangle)nya.Sedangkan sudut kiri atas dari (rectangle) tersebut mungkin terdiri atas batasan pengulangan element.
Pemilihan Item data (Sel~ction of data items). Strukturdatamungkin disusun dari satu atau beberapa altematif item data. (seperti "Union" dalam bahasa C). Contoh, struktur data mungkin berupa pesan yang salah atau pesan yang betul, tetapi tidak kedua-duanya. Hal ini ditunjukkan didalam 46
diagram struktur data dengan node keeil untuk altematif, tiap altematif mempunyai lingkaran keeil disudut kanan atas dari kotak segi empatnya. Suatu contoh diagram struktur data dapat dilihat pada gambar 3.2. Dalam contoh tersebut pesan (message) dapat berupa pesan kesalahan (error message) atau pesan keberhasilan (succes-message). Sedangkan pesan kesalahan dapat berupa pesan kesalahan leksikal (lexical-error- message) ataupun pesan kesalahan sintak (syntak-error message).
pesan
pesan kesalahan
pesan kesalahan leksikal
pesan keberhasilan
o
pesan kesalahan sintak
Gambar 3.2
Grafik struktur program yang dirunkan dari diagram struktur data adalah sarna pada diagram struktur data. Node-node adalah kotak segi empat, tetapi node- tersebut menunjukkan langkah proses atau operasi bukan item data) Node operasi yang keeil menunjukkan kesamaan operasi, iterasi yang kedl menunjukkan kesamaan operasi iterasi operasi, atau altematif operasi yang dibuat seeara kondisional. Seperti didalam diagram struktur data. altematif kondisional dibedakan dengan menempatkan lingkaran keeil pada sudut kanan atas dari kotak segi empat dan iterasi operasi ditunjukkan dengan menempatkan tanda asteris (*) pada sudut kanan atas dari kotak segi empat. Contoh:
Kita dapat menginterpretasikan diagram dalam gambar 3.2. sebagai suatu diagram struktur program. Pesan yang menghasilkan operasi pesan terdiri atas altematif operasi yang dibuat seeara kondisional atas pesan kesalahan atau pesan keberhasilan.
47
Desain struktur data menyediakan tuntunan yang lebih dalam pembuatan Desain yang lengkapdibandingkanmetodeyang lain.Mmetode ini sangat populer untuk pendesgn-an struktur data tetapi tidak digunakan secara luas seperti metodologi Desain yang lengkap. Hal ini mungkin karena Desain struktur data tidak menunjang konsep.dan prinsip Desain yang pentin, sepert penyembunyian informasi.Metodeinijuga sukar digunakanpada proyek-proyekyang besardimana struktur data tidak diketahui dengan cepat dalam proses design.
3.2.3. Desain Alur Data "Design data flow " dipopulerkan oleh De Marco dan Gane dan Sarson. Desain ini menitikberatkan pada data dan aliran data dibandingkan dengan operasi aliran control. Cara lain untuk melihat Desain data flow adalah seperti penyusunan fungsional dengan respect pada aliran data/dataflor. Desain data florw mendasarkan pada empat peralatan notasi yaitu, diagram dataflow hams data, kartu struktur, dan psendocode. Diagram dataflow berupa grafIk dimana data dikonsumsi, ditranformasi, dan dihasilkan dalam system. Empat symbol utama yang digunakan untuk (deplict) data flow sebagai berikut :
lingkaran menunjukkan suatu proses perubahan data yang disebut "transforms". Persegi empat terbuka menunjukkan tempat penyimpanan data seperti file, database, dan sebagainya, yang disebut "data stores". Tanda panahdisebut"dataflows"menunjukkanjalanperpindahandata melalui sistem. Persegi empat menunjukkan sumber outside system yang asli atau menerima system data disebut "sources" atau "sinks", secara respectif. Gambar 3.3 dan 3.4 diambil atas Desain "ccount" yang mengggambarkan penggunaaan diagram dataflow.
Level paling atas dari diagram dataflow menunjukkan seluruh struktur system, Ada tiga sumber data yaitu : user, standar input stream "stdin", dan file sumber C. Sumber-sumber tersebut akan rnensupply baris command, dan kode sumber C, secara respectif, pada transformasi data pokok "ccount".Tempat penyimpanandata berisi string delimiter.Proses ccount akan menghasilkanpesan yang salah dan laporan metrik yang dikonsumsi oleh slink "stderr" dan "stdoot". Diagram alur data yang diuraikan untuk ccount muncul seperti diagram alur dat kedua. 48
Gambar 3.3
source charecters
Gambar 3.4 49
.__ .u
.-
Kamus data (Data dictionary) adalahsuatu derectory masterdari seluruh struktur data dan element data didalam system,. Data ini digunakan untuk menyediakan informasitentang dermis,struktur,dan penggunaantiap element data. Nama-nama element data, deskripsi -seskripsi, type-type, dan tentangan angka adalah contoh informasi yang disimpan dalam "Data dictionary". Kartu strruktur dapat dibuat dari diagram data flow untuk menghasilkan hirakhi yang fungsional dari sub system yang berhubungan dengan transformasi dalam diagram data flow. Psendocode atau "mini-specs" digunakan untuk menjelaskanalgoritmayang diimplementasida1amtingkatttansformasiyang paling rendah."Pseudocode" adalah merupakan bahasa code pemrogramman tingkat tinggi, seperti code C, yang dikembangkan dengan bahasa Inggris Psendocode merupakan mekanisme yang tepat untuk menjelaskan fungsi program secara informal tanpa me~gganggfubahasa pemrogramman formal. Empat langkah Desain data flow adalah sebagai berikut : 1.
Modul seluruh system yang menggunakan diagram dataflow tingkat tinggi dan data dictionary yang pokok.
2.
Penyusunan diagram dataflow tingkat tinggi dengan membentuk hirarkhi dari diagram data flow tingkat rendah.
3.
Prosedur atas -bawah berikut ini, memetakan diagram data flow k~alam kartu strukturyang membentukpenyusunanseluruh system secarafungsional. Aktivitas ini dituntun dengan informasi dari data dictionary, dan kriteria modulasisasi seperti kohesi, coupling dan penyembunyian informasi.
4.
Penggunaan kartu struktur dan data dictionary sebagai tuntunan dalam pembuatan pseudocode untuk seluruh program.
Mekanisme ini telah dijuicobakanldijalankan dan didokumentasi secara lengkap. Banyak petunjuk yang diberikan pada designer dengan beberapa langkah-Iangkahvariasi dalam proses ini, meskipun ada beberapa tempat, seperti analisa dan diagram konfformasidataflow pada kartu stuktur, dimana ketrmpilan dan pengalaman sangat diperlukan. Desain dataflow didukung oleh notasi yang kuat, dan dipersiapkanmenjadipenolong yang kuat dalam analisa dan spesifIkasi struktur system walaupun diluar paradima Desain data flow. Metode ini juga mempunyai keuntungan dalam Desain kerjasama, seperti kriteria modularisasi dan pendekatan atas
50
- bawah.
Desain data flow kadang-kadang gagal pada system dimana secara algoritmik mempunyai data yang sedikit (seperti aplikasi matematika) > Metode ini juga menarnpilkan kesempatan yang sedikit didalarn keIja sarna type data yang abstrak, yaitu suatu peralatan Desain yang penting. Cara lain dari Desain dataflow klasik adalah tidak mungkin untuk menunjukkan control flow dalarn diagram data flow. Hal ini akan membuat pendekatan yang sukar yang dapat digunakan dalam Desain system seperti system waktu, dimana Control flow merupakan Desain yang pokok. Defesiensi semacarn ini bam saja dialarnatkan dalarn ekstensi pendekatan Desain data flow pada system real time, oleh dan Pirbhai, dan Word dan Mellor. Ekstensi dari notasi data flow mereka menyajikan cara pembuatan control flow dalarn diagfram data flow.
3.2.4. Desa;n Or;entas; Object. Desain orientasi object didasarkan pada penguraian system kedalarn koleksi interaksi objek."Object" adalah merupakan koleksi data dan operasi yang (encapsulated). Contoh,dalarn system manajemen window, window dapat berupa obyek, window hams (encapsulated). data seperti lokasinya, demensinya, isinya, dan sebagainya. Juga hams penutupan, pemindahan,penggantian ukuran dan sebagainya. Obyek adalah suatu contoh dari "class", yang merupakan koleksi objek dengan data dan operasi yang umum: Didalam system manajemen window ada beberapa window yang aktif. Tiap windon semacam ini merupakan pembeda objek, ( ruangan data ) dan operasi, sehingga window tersebut membentuk suatu class. Hampir semua metode orientasi object mengandung definisi classlkelas darimana sub class dapat diperoleh. Atribut-atribut (ruangan data) danoperasi-operasi dari class mungkin "diwarisi oleh sub claal-nya. Subclass munkin mempunyai atribut-atribut dan operasi -operasi tambahan., dan subclass tersebut dapat mengganti operasi yang "diwariskan" tersebut. Contoh, window class mungkin mempunyai untuk mengoperasikan kegiatan bawah tersebut. Object atau class sarna dengan type data abstrack. Perbedaan antara kedua konsep tersebut terletak pad akeaddan/ kondisi yang dibedakan oleh model, dan kondisi yang dibedakan oleh model dan kondisi yang digubungkan dengan aktifitas didalarn model. Pada type data abstrak, ad dua macarn benda : angka data dari type, dan operasi-operai yang dapat diterapkan pada angka type. Pada type data abstrak operasi-operasi dianggapl diperlakukan sebagai aktif agen yang beroperasi pada
51
angka data pasif. Sebaliknya,object dianggapsebagaikondisi tunggal yang berisi kedua data dan operasi tersebut. Operasi-operasitersebut tidaklah aktid, namun demikian, operasi-operasitersebut dianggap mampu seperti halnya kepemilikan object, Aktif agen dalam model object merupakan object itu sendiri. Object diharapkan dapat beraksi dengan ditandai oleh operasi (encapsulated) dalam object.Oleh sebab itu object yang secara formal sama dengan type data abstrak, merupakan perbedaan konsep saja. Penyembunyian informasi adalah merupakan suatu prinsip yang fundamentaldari pendekatan orientasi objek. bagian-bagianyang mendalam dari implementasi objek terlindungoleh objek yang lain. Jumlah yang disebut dengan Encapsuation). Obje-objek berkomunikasi melalui intgerface yang didalamnya termasuk nama objek,element data (property), dan operasi (atau metode). Dalam hal prlnsippenembunyianinformasiDesain orientasidata menekankan dua tujuan dalam detinisi objek. Pertama , pembuatan perubahan haruslah proporsional dengan kemungkinan suatu perubahan yang dapat buat. Tujuan ini direalisasi dengan menymbunyikanDesain yang dapat diubah atau implementasi detail yang didalamnya terdapat objek secara rahasia. Detail yang kurang dapat diubah mungkin muncul sebagai feature dari intterface objek. Kedua, software enginerharus dapat mengertiaktivitasobjek melaluiinterfacenya tanpa menetahui tentang seluk beluk internal objek. BeberapametodeDesain orientasiobjek,yang menemaninotasitelah muncul. Boch misalnya, menganggap suatu pendekatan untuk Desain objek dengansuatu analisa, dan memerlukan objek dengan notasi disebut "Booch Diagram" atau "Booch-grams". Didalam Booch diagram objek ditunjukkan dalam segi empat dengan type datanya ditunjukkan dalam tanda oval, dan operasinya dalam tanda segi empat. Tujuan akhir antara objek yang menunjukkan bahwa satu objek memerlukanserviceyang disedakanoleh objek yang lain. GeneralObject-Oriented Development (GOOD) menggunakandiagram dataflow sebagaisuatu basis untuk mengidentitikasi dan mendetinisi objek. Diagram objek digunakan untuk menunjukkan komunikasi antar objek tersebut. Hierarchical Object-Oriented Desain (HOOD) adalah.suatu metode untuk Desain orientasi objek khusunya untuk program Ada. Object-Oriented Struktured Desain (OOSD). menambah kartu struktur dengan ide dan diagram Booch, dan mekanisme tambahan untuk menunjukkan perkecualian, warisan, generik, dan hubungan visibilitas.objek. Tak satupun dari metode dan notasi tersebut muncul sebagai suatu pilihan metode dan notasi. 52
Desain orientasi objek digunakan untuk menaikkan penggunaan kembali karena objek dapat didesign dan diimplementasisebagai unit yang terpisah yang berguna dalam berbagai aplikasi. Keuntunganpokok dari desain orientasi objek adalah bahwa desain tersebutdengan dapat menaikkanpenyembunyianinformasi. Namun demikian juga mempunyai kekurangan. Untuk masalah yang besar, terkadang sukar melihatbagaimana suatu objeck berinteraksidalam memecahkan masalah. Beberapa aplikasi tidak terlihat pantas dalam cetakan orientasi objek, Kadang-kadangpandangan fungsionaldari system atau bagian dari system lebih efektif. Akhirnya, beberapa designer mempunyai pengertian waktu yang sukar dan penerapan filosofi orientasiobjek, khususnyajika telah tumbuhlberkembang dengan menggunakan pemikiran dalam bentuk fungsi atau dataflow. Ctt yang dibicarakandalambab7, adalahsuatupengembanganorientasiobjek pada C yang telah populer.C++ lebih tepat dibandingkandengan C dalam system Desain dan implementasi orientasi objek.
3.3. PERALATAN DESAIN GRAFIK Oleh karena hampir seluruh Desain notasi adalah grafik, hingga bam-bam ini tidak praktis menyediakan dukungan yang otomatis untuk metode tersebut dalam system UNIX. Meskipunout put dari graftkdapat dibuat dalam lingkungan standarUNIX denganmenggunakan"trroff' dengan';pic"dan "grap", kejanggalan dari peralatan tersebut orientasikelompoknya angka kecH sebagai peralatan pendukung design. Sekarang,namun demikian,peralatangrafik yang mendukung Desain software dalam lingkungan UNIIC tersedia dari beberapa sumber dalam perkembangan pasar peralatan desain software komputer. Peralatan tersebut mempunyai editor grafik yang baik yang secara khusus ditulis untuk keperluan berbagaidesain notasi.Juga dapatuntuk menganalisadesign,Juga dapat digunakan untuk menganalisa design, mendeteksikelainan, yang tidak konsisten, dan yang tidak lengkap. Beberapa alasanyang kuat dalampenggunaandesain sotrwareadalah sebagai berikut : .
Produks~manual dari desain, khususnya graftk, adalah cenderung salah dan membutuhkan waktu. Dengan otomatisasi proses desain dapat menghernat waktu dan mencegah adanya kesalahan. 53
.
Akan sukarmengontrolkebenarandan kelengkapandesaindengantangan. PeraIatan deesign komputer yang canggih dapat menambah kemampuan dalam menontrol kelengkapan dan konsistensi desain.
.
PeralatandesaingrafIkakan memaksasuatunotasi. Hal ini akan menyebabkanpenggunaannotasiyang konsisten,yang membantu komunikasi dan menghindari kesalahan.
.
Beberapa peralatan dapat menghasilkancode yang palsu dan deklarasi data dari adanya desain. Hal ini akan menghemat waktu dan dapat menyediakan basis untuk pembuatan code yang ddijamin betul dan pasti cocok dengan
desain
. .
.
Peralatan yang otomatis memunkinkanmanager proyek melihat lihat desihn proyek yang ada dan melakukan beberapa variasi analisa desain. PeraIatandesain & menyediakansuaturepositorypasaruntuk semua informasi desain.
3.3.1 Contoh Pera/atan Desain grafik. Sekarang akan kita bicarakan Software Through Pictures (Stp). suatu produk komersial dan Interactive Development Environments, IncoIpointed (IDE). untuk
menggambarkan . kemampuan dari peralatan desain yang bam. Kita memilih membicarakan STp secara mengalam karena stp merupakan peraIatan yang populer dalam lingngan UNIX. dan karena stp merupakan kelompok besar yang khas Computer Aided Softare Enginerring (CASE) Stp akan beIjalan pada workstation seperti wokstation. Sun dan Appolo, dan mempunyai keuntungan dari kemampuan inter face window dan grafIk, Stp menawarkan peraltan yang mendukung metode desain software penomoran termasuk didalam nya penguraian fungsional, Desain struktur data, dan desain data flow. Stp merupakan koleksi editor untk menggambarkan objek seperti kartu struktur, diagram struktur data, dan diagram dataflow. Editor dapat dignakan bergantian untuk menghasilkan sesign. system tunggal. Contoh editor dataflow (FE) mungkin dapat suatu system dimana dilanjukan dengan menggunakan editor struktur dataflow mengkin dilanjutkanpada 5 kultus data yang dilanjutkan dengan menggunakan editor data (SDE). Tiap editor menghasilkan diagram yang disimpan pada me UNIX dan didalam system managemen ht,lbungan basis data. Tiap Editor dapat kita lihat lebih lanjut sebagai berikut :
54
Structure Chart Editor (SCE). SCE ini mendukung definisi arsitektur software - termasuk parameter input dan out put untuk tiap modul didalam system dengan memungkinkan adanya kreasi, manipulasi, dan anlisa kartu struktur gambar 3.1 dihasilkan dengan menggunakan See. See juga dapat menghasilkan kerangka bahasa desain program kartu struktur. SCE dapat mengontrolkonsistensiantaramoduldaIamkartu strukturdan prosesdaIamdigram dataflow.
-
DataStructureEditor (DSE). DSE ini mendt,lkungdefinisi secara hirarki atas struktur data seperti yang didefinisikan oleh Jackson. Gambar 3-2 dihasilkan dengan menggunakan DSE. DSE mendukungdefinisi dari objek data. DSE juga menghasilkan type dan deklarasi data dalam C. .Data flow Editor (DFE) . DFE ini mendukungkreasipenambahandan analisa diagram data flow dengan menggunakan baik notasi DeMarco maupun notasi Gone-Sarson. Tranformasi secara otomatis akan bemomor untuk menunjukkan level dan (ancectry). DSE mempunyai kemampuan dalam analisa grafik : Mengontrol pengiriman diagram atas induknya, termasuk mengontrol konsistensi dataflow antara diagram dan anaknya. Mengontrol penggunaan item data, termasuk mengontrol diagram data flow dan penyimpanan data mengontrol dataflow yang tidak merupakan bagian. dari struktur data yang benar, dan mengontrolbagian dari struktur data yang tidak ditunjukkan sebagai dataflow. Mengontrol diagram invalid, termasuk mengontrol tran~formasiyang tidak berhubungan, dan dataflow yang tidak berkabeI, penyimpanan data dan
trasformasi.
.
Control Flow Editor (CFE). CFE ini mendukung kreasi, perubahan dan analisa diagram dan notasi Perbhi. Diagram Control How digunakan pada model interaksi diantara proses komunikasi. CFE dan DSE adalah saling berintegrasi, sehingga data dan control How dapat diampilkan secara terpisah maupunbersaama-sama. Transition Diagram Editor ('IDE). Interaksi interface user dibuat model dengan diagram transisi terpisah yang dibuat dan diubah oleh TOE. TOE memungkinkan diskripsi susunan screen, input yang menyebabkan transisi adanay suatu kejadian, aksi yang digabungkan dengan transisi adanay suatu kejadian,aksi, yang digabungkan dengan transisi dan prompt out put dan pesan-pesan. Informasi display seperti, teks yang hams ditampilkan dan posisi kursor, digabungkan dengan tiap node. (Arcs) menggabungkan input user dengan perubahan yang terpisah.
55
IDE secara otomatis akan membuat versi dialog yang dapat dibuat yang dihasilkan dengan diagram transisi yang dapat digunakansebagaiprototype. IDE memungkinkan input dilalui antarafungsi C, yang juga memungkinkan proses prottype secara fungsional. IDE juga mendukung fasilitas pembuatan diagram trasisi. Entity-Relationship Editor (ERE). ERE ini mendukung data Entity-RelationshipAtribut(ERA)yaitusuatupendekatanmodelyang didefmisikan oleh Chen. ERE secara otomatis dapat membuat sken basis data relasional yang didasarkan pada diagram entity-Relationship. Picture Editor. Picture Editor ini merupakan suatu peralatan menggambar yang menyediakan berbagai simbol yang digunakan dalam graftk bisnis dan Desain software Dat,a Dictionar. Tiap editor grafik memuat didalamya operasi-operasi yang membuat informasi untuk kamus data Stp. Kamus data ini disusun dengan editor graftk dan dibuat pada system management basis data relasional. GraphicalOutput. S'IP dapat membuatgraftkdari beberapa editomya dengan beberapa format termasukformat "pic" dan "postscript".
3.4. BAHASADESAINPROGRAM Beberapa bahasa Desain telah diusulkan tabun terakhir ini. Kesemuanya merupakanpengembangandan bahasadesainprogramyang asliyaituPDL. Bahasa tersebut menyediakan pengembangan software dengan kemampuan spesiftkasi algoritma, otomatisasi, dan pembuktian. PDL adalah suatu peralatan yang menggunakan perbendaharaan kata dari bahasa natural dan syntax dari bahasa pemrograman (misalnya pascal). PDL dapat dianggap sebagai "structured English",yaitubahasayang memungkinkanspesifIkasistrukturdata dan manipulasi logis dalam system software. PDL hams dapat meng ekspresikan modul, kontrol flow,dan strukturdatapada levelabstrakyang semestinyapada saat memindahakan constrain yang dibebankan oleh bahasa pemrograman. Pembicaraan lebih mendalam tentang PDL ini dapat ditemukan pada Nejmeh dan Dunsmore.
56
3.5. ISI OARIOOKUMENOESAIN. Dokumen Desain menggambarkan suatu keputusan tertinggi struktur dan system. Dokumen ini menyajikan minimal 4 tujuan sebagai berikut : 1.
Menjelaskan bagaimana system akan disusun untuk memenuhi persyaratan. Dan harns direview untuk memasukkankelengkapannya,kebenarannya dan keberhasilan didalam memenuhi persyaratan tersebut.
2.
Mendekomentasi rasional dibalik keputusan design, menyimpan altematif yang tersebar dan alasan-alasanuntuk keputusan desain.
3.
Mengantisipasiperugbahanpada system dan menerangkanbagaimana suatu perubahan itu seharnsnya dibuat. Hal ini akan memudahkan mengevaluasi adanya perubahandesain dan menyajikansystemperawatandengan informasi yang dapat dinilai.
4.
Melayani sebagai system blue print untuk programer tester, dan perawat (maintener) yang lebih Ianjut didalam life cycle.
Dokumen d~sain yang jelek menunjukkan masalah yang merupakan bencana. Bahkan jika dokumen desain bagus untuk memulai dapat juga menjadi jelek jika tidak diupto date dengan perubahan design. Dokumen desain harus selalu secara akurat mereflek struktur system dan fungsi.
Dokumen desain harns terdiri dari informasi sebagai berikut : .
Pengenalandesain (DesignOverview). Pengenalanini menyediakandiskripsi tingkat tinggi, dan struktur system dengan sedikit koleksi dari modul level atas. Diskripsi tersebut harns menunjukkantiap modul dengan nama, tujuan, dan diskusi tentan bagaimana interaaksinyadengan modul lain.
.
ModelArsitektural(ArchitecturalModel).ArchitecturalModeldari suatu system adalah diskrisidari modullevel atas, dan data dan control flow antara keduanya. Notasi graflk adalah lebih baik dalam hal ini, tetapi singkat, teks yang ditulis dengan baik sudah cukup.
57
.
DeskripsiModul (Module description). Seperti ditulis diatas module adalah bagian atau sub system dari system yang lebih besar > Modul mungkin diuraikansendiri kedalam modul-modulyang menyediakanbagian dari induk modul tersebut secara fungsional dan menyembunyikan induk modul yang rahasia. Informasitertentuharns disuplay untuk tiap modul didalam deskripsi modul, tetapi beberapa informasi hanya dibutuhkan pada dokumen struktur internal yang lebih banyak dari modul yang lebih banyak dari modul bertebaran. Informasi harns sdisediakanuntuk tiap modul termasuk sebagai berikut : PerilakuModul. Keterangantentangbehaviormodultermasuk(1) kataIof dari operasi yang disediakan,dengan keterangan input dan out put serta pengarnh yang dapat dilihat secara eksternal; dan (2) kataIog dari type data dan objek yang menyediakkan modul. Asumsi. Asumsi modul adalah suatu kondisi yang harns dipenuhi untuk modul agar bekeIja dengan benar : Contoh, modul pemrosesan file mungkin mengasumsikan bahwa file yang melewatinya adalah terouka dan dapat dibaca. Rahasia. Ini adalah implementasidetail yang disembunyikandari modul lain didalam modul. Kendala dan Keteroatasan. Kendala dan batasan modul termasuk persyaratan tampilan, maksimal persyaratan memory yangdigunakan penomoran yang akurat dan sebagainya. Penanganan Kesalahan. Kategori ini memuat kesalahan-kesalahan dan kondisi perkecualian yang mungkin djumpai oleh modul, penyebanya, dan sttategi yang digunakan untuk menyelesaikanya. Perubahan yang diharapkan. Pembicaraan tentang perubaahan yang diharapkanoleh designermodulharns meliputiide-idetentangbagaimana perubahan seharnsnya dibuat. Persyaratan yang berhubungan. Inilah persyaratan yang harns dipenuhi oleh modul. Sebagai tambahan untuk informasi ini keterangan modul yang tersebut harns juga mencakup sebagai berikut :
.
58
Pengepakan Modul (Module packaging). Informasi pengepakan harns berisi daftar fungsi yang disediakan oleh modul, dengan typenya dan type dari seluruh parameter input dan output, Pengarnh tiap fungsi yang dapat dilihat secara external harns dijelaskan pengarnh lain yang dituli dan diterangkan.
Ciri yang tak nampak dari type data dan object yang disediakan oleh modul harus dibicarakan dengan mendalam.
.
.
Struktur Internal(Internal Structure) Spesiftkasidari strukturinternalmodul harus berisi daftar type data dan object, dan menjelaskan type data dan object yang disembunyikan dan fungsi internal dengan typenya ,type parameternya dan pengaruhnyalakibatnya. Jika pilihan algoritma tertentu dicoba untuk digunakan dalam beberapa fungsi, maka harus dinyatakan dan dibenarkan. Jika algoritma merupakan hal yang penting atau hanya bentuk akal-akalan, maka aIgoritma tersebut mungkin ditulis dengan code yang salah.
Hubungan Pemakai (Uses relationships).Leaf modul A menggunakan leaf modul 5 jika B harus membuat dengan benar untuk A agar menjumpai
spseftkasinya.
.
.
.
Rasional (Rationale). Bagian ini menerangkan bagian Desain yang berisi alternatif yang dikembangkandan bagain Desain yang dibenarkan . Ringkasan (Glossury). Seperti dalam dokumen pengembangan yang lain"daftar kata harus disediakan agar kebingungan tentang bentuk tehnik sangat kecil.
Dokumen Desain "Ccount" ada dalam Appendix A sebagai suatu contoh. Sedangkan Appendix C berisi (template)dokumen Desain yang didasarkanpada pembicaraan kita dalam babini.
59