DESAIN PERANGKAT LUNAK

dokumen-dokumen yang mirip
Dibuat Oleh : 1. Andrey ( )

MAKALAH DESAIN PERANGKAT LUNAK. NAMA : RANI JUITA NIM : DOSEN : WACHYU HARI HAJI. S.Kom.MM

REKAYASA PERANGKAT LUNAK MATERI TM 10

PROSES MODEL DESAIN PERANGKAT LUNAK

: ENDRO HASSRIE. Nim : : REKAYASA PERANGKAT LUNAK DESAIN PERANG LUNAK DAN REKAYASA PERANGKAT LUNAK

MAKALAH REKAYASA PERANGKAT LUNAK ( KONSEP DESAIN PERANGKAT LUNAK )

Minggu 6 Prinsip & Konsep Desain

Prinsip dan Konsep Desain Perangkat Lunak

Perspektif Alur-kerja (workflow) - barisan kegiatan Perspektif Alur Data (Data flow) alur informasi Perspektif Peran/Aksi siapa melakukan apa.

P10 Konsep & Prinsip Desain. A. Sidiq P.

REKAYASA PERANGKAT LUNAK MATERI TM 12

DESAIN PERANGKAT LUNAK & REKAYASA PERANGKAT LUNAK

PRINSIP DAN KONSEP DESAIN

Tujuan. entitas yang kemudian akan dibangun. ó Menghasilkan suatu model atau representasi dari. Tim RPL 1 2

Pertemuan 9 PRINSIP DAN KONSEP DESAIN

Software Design. Konsep dan Prinsip Desain Struktur Desain. Mira/Rpl/Design

MAKALAH DESAIN DATA DAN ARSITEKTUR. NAMA : RANI JUITA NIM : DOSEN : WACHYU HARI HAJI. S.Kom.MM

MAKALAH MODEL DESAIN DAN DOKUMENTASI DESAIN. NAMA : RANI JUITA NIM : DOSEN : WACHYU HARI HAJI. S.Kom.MM

5 Perancangan Perangkat Lunak

Rekayasa Perangkat Lunak

REKAYASA PERANGKAT LUNAK

METODE DESAIN DAN CODING

Tujuan 04/07/ :01

Pertemuan 5 Konsep dan Prinsip Desain TIK : Menjelaskan konsep, prinsip dan tahapan dalam perancangan software

Tujuan. Menghasilkan suatu model atau representasi dari entitas yang kemudian akan dibangun. Tim RPL 1 2

Bab 6 PERANCANGAN PERANGKAT LUNAK

REKAYASA PERANGKAT LUNAK LANJUT DESIGN ENGINEERING. Defri Kurniawan M.Kom

Prinsip Fundamental dalam Desain Perangkat Lunak

Analisis dan desain model

DESAIN TEST CASE. Tugas ke 11 Rekayasa Perangkat Lunak

2. Semua struktur data dan operasi yang akan dilakukan pada masing masing struktur data harus diidentifikasi.

Pertemuan 10 METODE DESAIN (1)

Design Engineering. Tim RPL. Program Studi Teknik Informatika

13. KONSEP DAN PRINSIP PERANCANGAN (DESAIN)

MODEL DESAIN & DOKUMENTASI DESAIN

DESAIN PERANGKAT LUNAK. Ign.F.Bayu Andoro.S, M.Kom

PEMODELAN ANALISIS. Di Susun Oleh : Linda Liana Dosen Pengampu : Wahyu Hari Haji M.Kom

Object-Oriented Design

DESAIN DATA DAN ARSITEKTUR. Di Susun Oleh : Endro Hassrie Dosen Pengampu : Wahyu Hari Haji M.Kom

MODEL ANALISA. Untuk Memenuhi Tugas Mata Kuliah Rekayasa Perangkat Lunak. Dosen Pembimbing : Wachyu Hari Haji, S.Kom, MM.

Pengayaan Software/Hardware dan Pengantarmukaan

Pemrograman Web Berbasis Framework. Pertemuan 13 : Pengembangan Project (Bag. 1) Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD

Data & Architecural Design. Tim RPL Progdi Teknik Informatika

KONSEP DAN PRINSIP DESAIN. Oleh I Made Cipta Wahyudi

PEMROGRAMAN TERSTRUKTUR

Dibuat Oleh : 1. Andrey ( )

Pembetulan permasalahan yang timbul mencakup : pembenaran kesalahan yang timbul setelah produk perangkat lunak dipergunakan oleh user

III. METODE KONVENS IONAL 11. REKAYASA SISTEM BERBASIS KOMPUTER

DESAIN PERANGKAT LUNAK DAN REKAYASA PERANGKAT LUNAK PRINSIP DESAIN KONSEP DESAIN

Nama : Rendi Setiawan Nim :

Dibuat Oleh : 1. Andrey ( )

Desain arsitektur adalah untuk mengembangkan struktur program modular dan merepresentasikan hubungan kontrol antar modul. Metode desain yang

BAB 4 PELAKSANAAN PENGUJIAN

MAKALAH DESAIN TEST CASE. NAMA : RANI JUITA NIM : DOSEN : WACHYU HARI HAJI. S.Kom.MM

Tugas Rekayasa Perangkat Lunak

MAKALAH REKAYASA PERANGKAT LUNAK ( SIKLUS HIDUP PERANGKAT LUNAK )

BAB III OBJEK DAN METODE PENELITIAN. Dalam penelitian ini yang menjadi objek penelitian yaitu Apotek Cibatu

A. Spesifikasi Perangkat Lunak

Tugas 5 Rekayasa Perangkat Lunak. Artikel mengenai Modularity dalam perangkat Lunak

PROSES PERANCANGAN DATABASE

Metode Perancangan. Tahap Perancangan

BAB III LANDASAN TEORI

BAB III LANDASAN TEORI. Flippo (1984) mendefinisikan sebagai berikut: Penarikan calon pegawai

Testing dan Implementasi

Nama : Rendi Setiawan Nim :

BAB III LANDASAN TEORI

MAKALAH REKAYASA PERANGKAT LUNAK ( PEMODELAN DATA )

BAB I PENDAHULUAN. Suara merupakan salah satu media komunikasi yang paling sering dan

Testing dan Implementasi Sistem Informasi

pada masalah pengumpulan kebutuhan pengguna pada tingkatan sistem (system requirements) dengan mendefinisikan konsep sistem beserta interface yang

BAB II LANDASAN TEORI. yang sama untuk mencapai suatu tujuan RAY[6]. dan lebih berarti bagi yang menerimanya RAY[6].

BAB II LANDASAN TEORI. Teori teori yang digunakan sebagai landasan dalam desain dan. implementasi dari sistem ini adalah sebagai berikut :

REKAYASA ULANG (REENGINEERING)

BAB II DASAR TEORI. 2.2 Sistem Suku Bunga Secara umum terdapat dua metode dalam perhitungan bunga, yaitu metode Flat dan Efektif.

BAB V PERANCANGAN MOXIE

ABSTRAKSI DEKOMPOSISI PENGUJIAN Dalam REKAYASA PERANGKAT LUNAK

MAKALAH ELEMEN MODEL ANALISIS. NAMA : RANI JUITA NIM : DOSEN : WACHYU HARI HAJI. S.Kom.MM

BAB III OBJEK DAN METODE PENELITIAN. Dalam analisis sistem ini akan diuraikan sejarah singkat dari Apotek 55 yang

Menjelaskan maksud dari arsitektur PL dan kenapa sangat penting.

BAB I PENDAHULUAN. Kabupaten Ponorogo suatu daerah yang memiliki luas 1.371,78 km² yang

BAB III OBJEK DAN METODE PENELITIAN

PENGEMBANGAN BAGAN KENDALI MUTU UNTUK KOMPOSISI. simplex-lattice adalah (q+ m-1)!/(m!(q-1)!) (Cornell 1990).

Pertemuan 11 METODE DESAIN (2)

BAB I PENDAHULUAN. Pada era kemajuan teknologi seperti sekarang ini, manusia dapat melakukan

Arsitektur Sistem Informasi. Tantri Hidayati Sinaga, M.Kom.

: ENDRO HASSRIE NIM : MATKUL : REKAYASA PERANGKAT LUNAK PEMODELAN DATA

IMPLEMENTASI PERANGKAT LUNAK

BAB 1 PENDAHULUAN Latar Belakang

DESAIN DATA, DESAIN ARSITEKTUR & CODING

Analysis Modeling 4/10/2018. Focus on What not How. Kenapa Analisis Kebutuhan. Definisi Analisis Kebutuhan. Langkah-Langkah Analisis Kebutuhan

BAB III LANDASAN TEORI. ada berkaitan dengan sistem yang akan dibuat. Tujuannya adalah agar aplikasi ini

1. Konsep dan Prinsip Analisa

A. Model Desain Perangkat Lunak

Review Rekayasa Perangkat Lunak. Nisa ul Hafidhoh

BAB III LANDASAN TEORI. organisasi yang pada saat dilaksanakan akan memberikan informasi bagi pengambil

BAB II TINJAUAN PUSTAKA. skala menengah yang bergerak di bidang penjualan spare part mesin

SOFTWARE TESTING. Ratna Wardani

APLIKASI DATABASE SISWA DI BIMBEL METRO TUGAS AKHIR RUDIANSYAH

BAB 15 PROTOTIPE. Bekerja dengan Model Pertama

BAB 15 PROTOTIPE. Bekerja dengan Model Pertama

Transkripsi:

DESAIN PERANGKAT LUNAK Di Susun Oleh : Linda Liana 41813120100 Dosen Pengampu : Wahyu Hari Haji M.Kom FAKULTAS ILMU KOMPUTER PROGRAM STUDY SISTEM INFORMASI UNIVERSITAS MERCU BUANA JAKARTA 1 2015

KATA PENGANTAR Puji syukur penulis panjatkan ke hadirat Allah SWT, karena dengan Rahmat dan KaruniaNya saya dapat menyelesaikan tugas ini. Tujuan penulisan makalah ini adalah untuk menambah pengetahuan khususnya bagi saya tentang Desain Perangkat Lunak. Pada kesempatan ini saya ingin menyampaikan rasa terima kasih kepada Bapak Wahyu Hari Haji M. Kom selaku Dosen pada mata kuliah Rekayasa Perangkat Lunak yang telah mencurahkan ilmunya kepada kami. Saya menyadari bahwa dalam makalah ini masih jauh dari kata sempurna, oleh karena itu kritik dan saran yang bersifat membangun sangat saya harapkan demi kesempurnaan tugas selanjutnya. Semoga apa yang ada dalam makalah ini dapat bermanfaat bagi kita semua. Jakarta, Mei 2015 Penulis 2

A. DESAIN PERANGKAT LUNAK DAN REKAYASA PEANGKAT LUNAK Desain adalah langkah pertama dalam fase pengembangan bagi setiap produk atau sistem yang direkayasa. Desain dapat didefinisikan berbagai proses aplikasi berbagai teknik dan prinsip bagi tujuan pendefinisian suatu perangkat, suatu proses atau sistem dalam detail yang memadai untuk memungkinkan realisasi fisiknya [TAY59]. Tujuan desainer adalah untuk menghasilkan suatu model atau representasi dari entitas yang kemudian akan dibangun. Desain suatu perangkat lunak merupakan proses beberapa tahap yang difokuskan pada 4 atribut yang berbeda dari sebuah program yaitu: Struktur Data, Arsitektur software, Tampilan antarmuka, Algoritma (prosedur). Desain ini didokumentasikan dan menjadi bagian dari konfigurasi perangkat lunak. Desain perangkat lunak berada pada inti teknik dari proses rekayasa perangkat lunak dan diaplikasikan tanpa memperhatikan model proses perangkat lunak yang digunakan. Begitu persyaratan perangkat lunak telah mulai dianalisis dan ditentukan, maka desain perangkat lunak menjadi yang pertama dari tiga aktivitas teknik desain, pembuatan kode dan pengujian yang diperlukan untuk membangun dan menguji perangkat lunak. Persyaratan perangkat lunak, yang dimanifestasi oleh data, fungsional, dan model-model perilaku, mengisi langkah desain. Dengan menggunakan satu dari sejumlah metode desain, langkah desain menghasilkan : a. Desain Data (Data Design) : mentransformasi model domain informasi ke struktur data b. Desain Arsitektur (Architectural Design) : menggambarkan relasi antar elemen struktural utama program c. Desain Interface (Interface Design) : mendeskripsikan bagaimana software berkomunikasi with user d. Desain Prosedural (Procedural Design) : mentransformasikan elemen structural arsitektur program ke sebuah deskripsi prosedur dari komponen software. Selama desain, kita dapat membuat keputusan yang akan mempengaruhi kesuksesan konstruksi perangkat lunak dan kemudahan maintenance-nya. Desain sangat penting karena dapat menentukan kualitas dari suatu perangkat lunak. 3

1) Desain Data (Data Design) Desain data adalah aktivitas pertama dan terpentig dari empat aktivitas desain yang dilakukan selama rekayasa perangkat lunak. Proses pemilihan struktur dalam menentukan desain yang paling efisien sesuai kebutuhan. Tujuan: Untuk mendapatkan struktur data yang baik sehingga diperoleh program yang lebih modular dan mengurangi kompleksitas pengembangan software. Prinsip Mendesain Data Prinsip analisis sistematika yang diaplikasikan pada fungsi dan perilaku harusnya juga diaplikasikan pada data. Semua struktur data dan operasi yang akan dilakukan pada masing-masing struktur data harus didentifikasi. Kamus data harus dibangun dan digunakan untuk menentukan baik data maupun desain program. Keputusan desain data tingkat rendah harus ditunda sampai akhir proses desain. Representasi struktur data hanya boleh diketahui oleh modul-modul yang menggunakan secara langsung data yang diisikan didalam struktur tersebut. Pustaka struktur data dan operasi yang berguna yang dapat diaplikasikan pada struktur data tersebut harus dikembangkan. Desain perangkat lunak dan bahasa pemrograman harus mendukung spesifikasi dan realisasi dari tipe-tipe data abstrak. Disini kita mendifinisikan tentang mengubah objek data yang didefinisikan pada model analisis menjadi struktur data yang ada dalam perangkat lunak. Atribut yang dimiliki objek data, hubungan di antara objek data, dan penggunaannya dalam program, semuanya mempengaruhi pemilihan struktur data. Bagian yang dibahas di sini : a. Objek data dan struktur data resultan : menjelaskan tentang objek data dan struktur data yang kita buat b. Struktur file dan database : menjelaskan tentang struktur file dan database yang kita buat Bagian yang dibahas di sini: 1. Struktur file eksternal Mendefinisikan tentang struktur dari file external yang ada di sistem. Bagian yang dibahas: 4

Struktur logis Deskripsi Record Logis Metode Akses 2. Data global 3. File dan referensi lintas data 2) Desain Arsitektural (Architectural Design) Desain arsitektur adalah untuk mengembangkan struktur program modular dan merepresentasikan hubungan kontrol antar modul. Metode desain yang disajikan pada bagian ini mendorong prekayasa perangkat lunak untuk berkosentrasi pada desain arsitektur sebelum mencemaskan masalah perpipaan. Bagian ini mendefinisikan penggunaan karakteristik aliran informasi dalam model analisis untuk menghasilkan struktur program. Bagian yang dibahas di sini: Kajian data dan aliran control Struktur program yang diperoleh Faktor seleksi yang penting untuk suatu metode desain adalah luasnya aplikasi dimana aplikasi dapat diaplikasikan. Desain berorientasi pada aliran data dapat menyetujui rentang area aplikasi yang luas. Proses Desain Arsitektur Desain yang berorientasi pada aliran data merupakan suatu metode desain arsitektur yang mengijinkan transisi yang baik dari model analisis ke deskripsi desain dari struktur program. Transisi dari aliran informasi (yang ditujukan sebagai diagram aliran data) kestruktur dilakukan bagian dari proses 5 langkah: 1. Tipe aliran informasi dibangun. 2. Batas aliran diindikasikan. 3. DFD dipetakan didalam struktur program. 4. Hirarki kontrol ditentukan dengan pemfaktoran. 5. Struktur resultan disaring atau diperhalus dengan menggunakan pengukuran desain dan heuristik. 5

Pasca Pemrosesan Desain Aplikasi dari pemetaan transaksi dan transformasi yang berhasil kemudian ditambahkan pada dokumentasi tambahan yang dibutuhkan sebagai bagian dari desain arsitektur. Setelah struktur dikembangkan dan disaring, tugas-tugas berikut harus dilakukan: 1. Mengembangkan narasi pemerosesan untuk masing-masing modul. 2. Menyediakan deskripsi interface untuk masing-masing modul. 3. Menentukan struktur data local dan global. 4. Mencatat semua batasan desain. 5. Mengkaji desain. 6. Mempertimbangkan optimasi (bila perlu dan dibenarkan). 3) Desain Interface (Interface Design) Memberikan suatu gambaran mengenai struktur program kepada perekayasa perangkat lunak. Fokus Desain Interface : 1. Desain interface antar modul 2. Desain interface antara perangkat lunak dan entitas eksternal (produser & konsumen) 3. Desain interface manusia dengan computer Desain Interface mendifinisikan Transform mapping dan transaction mapping Transform mapping : diterapkan untuk sebuah aliran data yang menunjukkan batas yang jelas antara data yang masuk dan yang keluar Transaction mapping : diterapkan jika sebuah item informasi menyebabkan percabangan, yang disebut transaksi, yang memicu aliran data lain sepanjang salah satu dari beberapa jalur DFD dipetakan menjadi sebuah struktur yang mengalokasikan kontrol menjadi sebuah sub struktur yang mendapatkan dan mengevaluasi sebuah transaksi. Bagian yang dibahas di sini: Spesifikasi interface manusia mesin : membahas tentang spesifikasi interface dengan manusia Aturan interface manusia mesin : membahas tentang aturan interface dengan manusia Desain interface eksternal : mendifinisikan tentang desain interface eksternal. Terdiri dari Interface untuk data eksternal dan Interface untuk sistem atau peralatan eksternal 6

Desain Interface harus dibuat yang menarik, interaktif, mudah dipelajari, mudah digunakan dan mudah dipahami. Beberapa faktor yang perlu diperhatikan dalam desain antarmuka, yaitu : a. Ruang gerak mata b. Sarana komunikasi c. Mudah digunakan d. Ergonomic (kenyamana & keamanan), yang meliputi : Penentuan ukuran, jenis, warn & format font, Pemilihan warna, Menyajikan objek yang tipis / kecil dengan pilihan warna, Ruang gerak mata e. Cognitive Psychology, yang meliputi : Jumlah warna, Simbol standart & tata letak, Penggunaan kata yang tidak berkonotasi ganda. Mis. Masukkan nama anda, bisa dispesifikasikan menjadi masukkan nama user dll. f. Aneka ragam dialog, yang meliputi : Model menu datar, check box dll 4) Desain Prosedural (Procedural Design) Desain prosedural dilakukan setelah diselesaikannya perancangan desain data, arsitektur, dan antar muka software. Tujuannya untuk menetapkan detail algoritma yang akan dinyatakan dalam suatu bahasa tertentu. Desain Prosedural mendifinisikan Untuk masing-masing modul: a. Naratif pemprosesan b. Deskripsi interface c. Deskripsi bahasa (atau lainnya) desain d. Modul-modul yang digunakan e. Struktur data internal f. Keterangan/larangan/pembatasan Permasalahan yang ada pada desain perangkat lunak a. Waktu respon sistem, diukur mulai saat user melakukan beberapa aksi kontrol sampai dengan perangkat lunak merespon dengan menampilkan output / aksi yang diperlukan. b. Fasilitas help untuk pemakai. Ada 2 jenis fasilitas help yaitu : 7

- Help integrated, fasilitas help yang dimasukkan ke dalam perangkat lunak, yang memungkinkan user untuk memilih topik yang sesuai dengan kegiatan yang dilakukan. - Help Add-On, fasilitas help yang ditambahkan setelah aplikasi perangkat lunak selesai dikembangkan yang dapat berupa manual user-line dengan kemampuan query yang terbatas. Beberapa hal yang perlu dipertimbangkan dalam membuat desain help : Apakah help dapat diperoleh untuk semua fungsi sistem dan keseluruhan waktu selama interaksi sistem? Bagaimana user mengakses help? Pilihan meliputi : menu help, kunci fungsi khusu, perintah help Bagaimana help diprepresentasikan? Pilihan meliputi : sebuah jendela terpisah, refensi untuk dokumen yang tercetak serta satu atau dua baris usulan yang dibuat pada suatu lokasi layer yang tetap Bagaimana pemakai kembali ke interaksi normal?pilihan mencakup tombol return yang ditampilkan pada layer dan kunci fungsi atau urutan control Bagaimana informasi help distruktur? Pilihan mencakup struktur datar di mana semua informasi diakses melalui suatu kata kunci, hirarki informasi bertingkat, kegunaan hiperteks. c. Penanganan informasi kesalahan Sering kali pesan kesalahan tidak memberikan indikasi nyata mengenai apa yang salah atau dimana dapat memperoleh informasi tambahan. Karakteristik peringatan kesalahan adalah : Pesan harus menggambarkan masalah dalam istilah yang dapat dipahami oleh pemakai Pesan harus memberikan nasihat instruktif untuk membetulkan kesalahan Pesan harus mengindikasikan konsekuensi negatif dari kesalahan, cont. File data yang secara potensial dikorup) sehingga pemakai dapat mengecek untuk memastikan bahwa hal tersebut tidak terjadi (atau membetulkan bila memang terjadi) Pesan harus disertai oleh sebuah isyarat visual atau bunyi untuk mengiringi tampilan pesan Pesan tersebut harus tidak menghakimi yaitu penyusunan kata tidak boleh menyalahkan pemakai. 8

d. Pelabelan perintah Perintah yang diketik merupakan mode yang umum dari interaksi antara pemakai dan perangkat lunak sistem dan biasa dipakai untuk aplikasi setiap tipe. Dalam banyak keadaan, user dapat memilih fungsi-fungsi yang disediakan. Beberapa hal yang perlu diperhatikan dalam mendesain perintah : - Apakah setiap pilihan menu memiliki perintah yang sesuai? - Bagaimana pentuk yang akan diambil oleh perintah? - Pilihan meliputi : urutan kontrol (mis. ^P), tombol fungsi, kata yang diketikkan Rekayasa Perangkat Lunak adalah ilmu yang membahas semua aspek produksi Perangkat Lunak, dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikas dari kebutuhan pengguna, desain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Tujuan dari pembelajaran Rekayasa Perangkat Lunak adalah dimana kita bisa menekan Biaya (baik pembuatan dan perawatan) seminim dan serendah mungkin dan memanfaatkan Waktu yang diberikan secara efektif dan efisien sehingga menghasilkan Kinerja yang tinggi, andal dan tepat waktu. Lebih mudahnya dipahami lewat gambar dibawah ini tentang tujuan Rekayasa Perangkat Lunak. Sejarah masuknya mata kuliah Rekayasa Perangkat Lunak ke perguruan tinggi dikarenakan telah terjadinya krisis Perangkat Lunak pada tahun 1960-an. Hal ini dipicu oleh banyaknya kegagalan produksi Perangkat Lunak sehingga anggaran dana pun semakin menipis dan faktor lainnya. Selain itu, pada masa itu juga Rekayasa Perangkat Lunak hanya menjadi konsumsi bagi kalangan bisnis dan cuma berkembang di kalangan bisnis (jalan di tempat). Untuk itulah diadakan pertemuan dan akhirnya dimasukkanlah Rekayasa Perangkat Lunak di perguruan tinggi sebagai mata kuliah dengan harapan akan berkembang di masa mendatang. Bill Gates dengan Microsoft-nya dianggap sebagai intelektual muda yang lahir dari perguruan tinggi. Rekayasa Perangkat Lunak hanyalah sebuah teori, tetapi patut diketahui RPL berkaitan erat dengan semua bidang yang akan digeluti oleh lulusan komputer seperti, bisnis dan manajemen. Dan Bill Gates pun mengamalkan apa yang diketahuinya tentang Rekayasa Perangkat Lunak pada Microsoft. Rekayasa disini bukan berarti konotasi negatif terhadap Perangkat Lunak. Rekayasa diarahkan kepada positif Perangkat Lunaknya. Menghasilkan yang terbaik, bermanfaat dan kemaslahatan manusia. Perkembangan hardware (perangkat keras) yang cepat membuat software (Perangkat Lunak) harus ikut menyesuaikan. 9

B. PROSES DESAIN PERANGKAT LUNAK Desain perangkat lunak adalah suatu proses interaktif yang melaluinya persyaratan diterjemahkan ke dalam suatu cetak biru untuk membangun perangkat lunak. Cetak biru menggambarkan suatu pandangan menyeluruh perangkat lunak, yaitu bahwa desain dihadirkan pada tingkat abstraksi yang tinggi (dapat secara lanngsung ditelusuri sampai data spesifik, fungsional, dan persyaratan behavioral) 1. Desain dan kualitas perangkat lunak McGlaughlin mengusulkan 3 karakteristik yang berfungsi sebagai pedoman bagi evaluasi suatu desain yang baik : a. desain harus mengimplementasikan keseluruhan persyaratan eksplisit yang dibebankan dalam model analisis, dan harus mengakomodasikan semua persyaratan implisit yang diinginkan pelanggan. b. Desain harus menjadi panduan yang dapat dibaca, dapat dipahami bagi mereka yang menghasilkan kode dan yang menguji serta memelihara perangkat lunak. c. Desain harus memberikan suatu gambaran lengkap mengenai perangkat lunak, yang menekankan data, dan domain perilaku dari perspektif implementasi. Kriteria teknis untuk desain yang baik : a. Desain harus memperlihatkan suatu organisasi yang dengan baik menggunakan kontrol di antara elemen-elemen perangkat lunak. b. Desain harus modular : yaitu bahwa perangkat lunak harus dipartisi secara logika ke dalam elemen-elemen yang melakukan fungsi dan subfungsi khusus. c. Desain harus berisi data dan abstraksi prosedural. d. Desain harus membawa ke arah modul (misal subrutin atau prosedur) yang memperlihatkan karakteristik fungsional independent. e. Desain harus mengarah kepada interface yang mengurangi kompleksitas hubungan antara modul-modul dan dengan lingkunga eksternal. f. Desain harus didapat dengan menggunakan metode berulang yang dikendalikan oleh informasi yang diperoleh selama analisis persyaratan perangkat lunak. 2. Evolusi desain perangkat lunak Merupakan suatu proses kontinu yang terus berlangsung selama tiga dekade. Kerja desain awal dikonsentrasikan pada kriteria untuk pengembangan program moduler dan metode-metode untuk menyaring arsitektur perangkat lunak dengan cara top-down. 10

- Konstruksi program modular[den73] dan metode perbaikan top-down[wir71]. - Pemrograman terstruktur [DAH71, MIL72]. - Perpindahan data flow/data structure ke sebuah defenisi desain[jac75][war74]. - Pendekatan berorientasi object[jac92][gam95]. Aspek-aspek prosedural dari definisi desain yang tercakup dalam suatu filosofi disebut pemrograman terstruktur. Usaha selanjutnya mengusulkan metode-metode translasi aliran data atau struktur data ke dalam definisi desain. Pendekatan desain yang lebih baru mengusulkan suatu pendekatan orientasi obyek ke derivasi desain. Banyak metode desain yang tumbuh dari kerja tersebut, sedang diaplikasi pada industri. Setiap metode tersebut mempunyai sejumlah karakteristik umum : a. Mekanisme penerjemahan suatu model analisis ke dalam representasi desain. b. Notasi untuk merepresentasikan komponen-komponen fungsional dan interface-nya. c. Heuristik bagi penyaringan dan partisi d. Pedoman bagi penilaian kualitas C. PRINSIP DESAIN PERANGKAT LUNAK Desain perangkat lunak berupa model dan proses. Proses desain adalah serangkaian langkah iteratif yang memungkinkan desainer menggambarkan semua aspek perangkat lunak yang dibangun. Model desain adalah ekuivalen rencana arsitek untuk sebuah rumah, yang dimulai dengan menyajikan totalitas dari hal yang akan dibangun. Prinsip desain dasar memungkinkan perekayasa perangkat lunak untuk mengendalikan proses desain. Proses desain tidak boleh menderita karena tunnel vision Desain harus dapat ditelusuri sampai model analisis. Desain tidak boleh berulang. Desain harus meminimalkan kesenjangan intelektual di antara perangkat lunak dan masalah yang ada di dunia nyata. Desain harus mengungkap keseragaman dan integrasi. Desain harus terstruktur untuk mengakomodasi perubahan. Desain harus terstruktur untuk berdegradasi dengan baik, bahkan pada saat data dan event-event menyimpang, atau menghadapi kondisi operasi. Desain bukanlah pengkodean, dan pengkodean bukanlah desain. Desain harus dinilai kualitasnya pada saat desain dibuat, bukan setelah jadi. Desain harus dikaji untuk meminimalkan kesalahan-kesalahan konseptual (semantik). 11

D. KONSEP DESAIN PERANGKAT LUNAK 1) Abstraksi (Abstraction) Abstraction adalah gambaran dari fungsi suatu program. Gambaran ini bisa bertingkat-tingkat. Tingkat yang paling atas adalah gambaran suatu fungsi program dengan menggunakan bahasa alami. Pada tingkat terendah, menghasilkan abstraksi yang bersifat prosedural/ langkah perlangkah dengan menggunakan istilah yang teknis dan bisa diimplementasikan menjadi fungsi program. Abstraksi memungkinkan desainer menentukan prosedur dan data, dan masih menekan detail tingkat rendah. Pada saat beralih dari tingkat ke tingkat, kita menggunakan procedural dan data abstraction. Procedural abstraction adalah urutan instrasi yang mempunyai tujuan khusus,dan data abstraction adalah koleksi data yang digunakan pada fungsi tersebut. Terdapat 3 macam bentuk abstraksi, yaitu : 1. Abstraksi Prosedural : Merupakan urutan instruksi yang diberi nama yang mempunyai fungsi tertentu dan terbatas. 2. Abstraksi Data : Kumpulan data yang bernama yang menggambarkan obyek data. 3. Abstraksi Kontrol : Mengimplikasikan suatu mekanisme kontrol program tanpa menentukan detail-detail internal 2) Penyaringan (Refinement) Penyaringan stepwise (dengan serangkaian langkah) adalah strategi desain top-down yang diusulkan oleh Wiklaus Wirth. Kajian dari konsep tersebut adalah Pada setiap langkah (penyaringan), satu atau beberapa instruksi dari program yang diberikan didekomposisi ke dalam instruksi-instruksi yang lebih detail. Dekomposisi berurutan atau penyaringan spesifikasi berhenti bila semua instruksi diekspresikan dalam bentuk bahasa pemrograman atau komputer yang mendasar. Jika tugastugas disaring, maka data harus disaring juga, didekomposisi atau distruktur, dan adalah wajar untuk menyaring program dan spesifikasi data secara paralel. Abstraksi dan penyaringan adalah konsep kompementer. Kedua konsep tersebut membantu desainer dalam membantu designer untuk memperlihatkan detil dari lowest level dari abstraction. Abstraction dan refinement merupakan konsep yang saling melengkapi. 12

3) Modularitas (Membagi Software Menjadi Modul) Modularitas merupakan atribut tunggal dari perangkat lunak yang memungkinkan sebuah program untuk dikelola secara intelektual. Meyer menyebutkan 5 kriteria yang memungkinkan kita untuk mengevaluasi suatu metode desain dengan merujuk pada kemampuannya untuk menentukan sistem modular yang efektif. a. Dekomposisi modular. b. Komposabilitas modular. c. Kemampuan pemahaman modular. d. Kontinuitas modular. e. Proteksi modular. Software dibagi-bagi menjadi beberapa component yang disebut modul-modul. Modul-modul ini nantinya disatukan/diintegrasikan untuk memenuhi kebutuhan sistem. Dalam pembentukan modul-modul berlaku pernyataan-pernyataan berikut: Jika C(p1) > C(p2) dimana C adalah complexity dari suatu modul, maka E(p1) > E(p2) dimana E adalah waktu yang diperlukan. Artinya semakin rumit sebuah modul, maka waktu yang digunakan untuk menyelesaikan modul tersebut makin banyak. 4) Arsitektur perangkat lunak Arsitektur perangkat lunak mencakup struktur keseluruhan perangkat lunak dan cara dimana struktur memberikan integrasi konseptual bagi suatu sistem. Shaw dan Garlan menjelaskan sekumpulan properti yang seharusnya ditetapkan sebagai bagian dari desain arsitektural : a) Properti struktural. Menentukan komponen suatu sistem dan cara dimana komponen-komponen tersebut dikemas dan berinteraksi satu dengan yang lain. b) Properti ekstra-fungsional. Menekankan pada bagaimana arsitektur desain memenuhi persyaratan kinerja, kapasitas, reliabilitas, keamanan, adaptibilitas, dan karakteristik sistem yang lain. c) Keluarga dari sistem yang berhubungan. Desain harus memiliki kemampuan untuk memakai lagi blok bangunan arsitektural tersebut. 13 5) Hirarki Kontrol

Hirarki kontrol, disebut juga struktur program merepresentasikan organisasi komponen program serta mengimplikasikan suatu hirarki kontrol. Hirarki kontrol tidak mengimplikasikan aspek prosedural dari perangkat lunak, seperti urutan proses, kejadian/urutan dari keputusan, atau pengulangan operasi. 6) Partisi struktural Struktur progam harus dipartisi baik secara horizontal maupun vertikal. Partisi horizontal menentukan cabang-cabang terpisah dari hirarki modular untuk setiap fungsi program mayor. Keuntungannya : - menghasilkan perangkat lunak yang lebih mudah diuji. - Membawa kepada perangkat lunak yang lebih mudah dipelihara. - Menghasilkan penyebaran efek samping yang lebih sedikit. - Menghasilkan suatu perangkat lunak yang lebih mudah untuk diperluas. Kerugian: - Lebih banyak data dilewatkan melalui interface modul - menyulitkan kontrol keseluruhan dari aliran program Partisi vertikal menyatakan bahwa kontrol dan kerja harus didistribusikan secara top-down dalam arsitektur program. 7) Struktur data Struktur data adalah representasi dari hubungan logis antara elemen-elemen data individual. 8) Prosedur perangkat lunak (Software Prosedure) Prosedur perangkat lunak berfokus pada detail-detail pemrosesan dari masing-masing modul secara individual. Prosedur harus memberikan spesifikasi yang teliti terhadap pemrosesan, mencakup urutan event, poin-poin keputusan nyata, operasi repetitif, dan organisasi struktur data. Prosedur menjelaskan proses, urutan kejadian, proses perulangan, penentuan keputusan/arah. Ini bisa digambarkan dengan menggunakan Flow Chart yang bertingkat. 9) Penyembunyian informasi (Information Hiding) Ide dari information hiding (menyembunyikan informasi) adalah modul dirancang sedemikian rupa sehinga inforamsi (prosedur dan data) yang di dalamnya tidak dapat di akses oleh modul lain yang tidak memerlukannya. 14