Follow Us @soratemplates

Sabtu, 09 Maret 2013

Metode Desain

15.23 0 Comments



Desain Data

Tujuan : Untuk mendapatkan struktur data yang baik sehingga diperoleh program yang lebih modular dan mengurangi kompleksitas pengembangan software.
 
Prinsip Menentukan dan Mendesain Data Wasserman [WAS80] :
-    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 Arsitektur

Desain arsitektur adalah untuk mengembangkan struktur program modular dan merepresentasikan hubungan control antar modul.

Proses Desain Arsitektur
  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.

Aliran transformasi
Informasi memasuki system bersama dengan jalur yang mentransformasikan data eksternal kedalam bentuk internal dan akan didefinisikan sebagai aliran masuk. Pada inti perangkat lunak terjadi transisi. Data yang masuk dilewatkan melalui pusat transformasi dan mulai bergerak sepanjang jalur yang sekarang mengarah keluar dari perangkat lunak. Data yang mengalir disepanjang jalur – jalur disebut aliran keluar. Keseluruhan aliran data  terjadi dalam cara yang berurutan dan mengikuti satu atau hanya beberapa jalur”garis lurus”. Bil segmen dari diagram aliran data menunjukkan karakteristik tersebut, maka disitu ada aliran transformasi.

Aliran transaksi
Aliran transaksi ditandai dengan pergerakan data sepanjang jalur masuk yang mengkonversi informasi dunia eksternal kedalam suatu transaksi. Transaksi tersebut dievaluasi, dan berdasarkan nilai, aliran sepanjang satu daribeberapa jalur aksi diinisiasi. 

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).
 Optimasi Desain Arsitektur

Desainer perangkat lunak harus memperhatikan perkembangan representasi perangkat lunak yang akan memenuhi semua fungsi dan persyaratan kinerja dan penerimaan jasa berdasarkan pengukuran desain kualitas. Oleh karena itu cukup beralasan untuk mengusulkan pendekatan berikut ini untuk perangkat lunak kinerja – kritis.
  1. Kembangkan dan saringlah struktur program tanpa memperhatikan optimasi kinerja – kritis.
  2. Gunakan peranti CASE yang mensimulasi kinerja run – time untuk menisolasi area inesifiensi.
  3. Selama iterasi desain selanjutnya, pilihlah modul yang dicurigai “time hot” dan dengan hati – hati kembangkanlah prosedur(algoritma – algoritma) untuk efisiensi waktu.
  4. Kodekan sebuah bahasa pemerograman yang sesuai.
  5. Instrumentasikan perangkat lunak untuk mengisolasi modul yang menjelaskan utilisasi proses yang berat.
  6. Bila perlu, Desain ulang atau kodekan kembali bahasa yang tergantung pada mesin untuk meningkatkan efisiensi.
Desain Interface

Tujuan : memberikan suatu gambaran mengenai struktur program kepada perekayasa perangkat lunak
3 area perhatian:
1.                  Desain interface antara modul – modul perangkat lunak.
2.                  Desain interface antara perangkat lunak dan produser dan konsumen informasi bukan manusia lainnya (yakni entitas eksternal lainnya).
3.                  Desain interface antara pemakai dan komputer.

Desain interface pemakai internal dan eksternal
Desain interface program internal, yang kadang disebut desain interface intermodular, dikendalikn oleh data yang harus mengalir diantara modul – modul dan karakteristik bahasa pemerograman dimana perangkat lunak akan diimplementasikan. Secara umum, model analisis berisi banyak informasi yang dibutuhkan bagi desain interface intermodular. Desain interface eksternal dimulai dengan evaluasi terhadap masing – masing entitas eksternal yang di representasikan pada DFD model analisis. Persayaratan data dan kontrol dari entitas eksternal ditentukan, dan dirancang interface eksternal yang sesuai. Desain interface eksternal bagi masing-masing sensor didasarkan item kontrol dan data spesifik yang dibutuhkan untuk sensor tersebut.

Desain interface pemakai
Desain interface pemakai berkaitan dengan study terhadap manusia, juga terhadap isu – isu teknologi. Siapakah para pemakainya? Bagaimana pemakai belajar berinteraksi dengan sistem berbasis komputer yang baru? Bagaimana pemakai menginterpresentasikan  informasi yang dihasilkanoleh sistem? Apakah yang diharapkan dari sistem tersebut? Itu hanya sebagian kecil dari banyak pernyataan yang harus diajukan dan dijawab sebagai bagian dari desain interface pemakai.

Desain Interface Manusia-Mesin

Model-model desain interface
Ada empat model yang berbeda pada saat manusia-komputer/ human-komputer interface (HCL) akan didesain. Perekayasa perangkat lunak menciptakan sebuah model desain, perekayasa manusia ( atau perekayasa perangkat lunak) membangun model pemakai, pemakai akhir mengembangkan citra mental yang sering disebut user’s model atau perception, dan implementer sistem menciptakan system image [RUB88]. 

Pemodelan dan analisis tugas
Pemodelan dan analisis tugas dapat diaplikasikan untuk memahami tugas – tugas yang sedang dilakukan oleh banyak orang (jika menggunakan pendekatan manual atau semi-otomatis) dan kemudian memetakannya kedalam serangkaian tugas yang mirip (tetapi tidak bener – benar identik) yang diimplementasikan dalam konteks HCI.
Langkah pertama dalam proses desain interface [NOR86] dapat dilaksanakan dengan menggunakan pendekatan berikut:
  1. Tentukan tujuan untuk tugas itu.
  2. Petakan masing – masing tujuan untuk serangkaian aksi khusus.
  3. Tentukan urusan aksi saat tindakan akan dieksekusi pada tingkat interface.
  4. Indikasi keadaan sistem
  5. Tentukan mekanisme kontrol.
  6. Perlihatkan bagaimana mekanisme kontrolmempengaruhi keadaan sistem.
  7. Indikasi bagaimana pemakai menginterpretasi keadaan sistem dari informasi yang diberikan melalui interface.

Masalah-masalah desain
Pada saat interface pemakai berkembang, hampir muncul empat masalah desain umum, yaitu: waktu respon sistem, fasilitas help pemakai, penanganan informasi kesalahan, dan pelabelan perintah.

Piranti Implementasi
Proses desain interface pemakai adalah iteratif; yaitu, sebuah model desain dibuat,diimplementasikan sebagai sebuah prototipe, diuji oleh pemakai dan dimodifikasi berdasarkan pendapat mereka.
           
Evaluasi Desain
Sekali prototipe interface pemakai operasional diciptakan, maka prototipe itu harus dievaluasi untuk menentukan apakah memenuhi kebutuhan pemakai.evaluasi dapat memenuhi spektrum formalitas yang terentang dari “ test drive” informal dimana seorang pemakai memberi umpan balik mendadak sampai study yang dirancang secara formal yang menggunakan metode statistik untuk mengevaluasi kuesioner yang dikerjakan oleh populasi pemakai akhir.

Desain Prosedural

Tujuan : untuk menetapkan detail algoritma yang akan dinyatakan dalam suatu bahasa tertentu
Desain prosedural dilakukan setelah diselesaikannya perancangan desain data, arsitektur, dan antar muka software.

Pemrograman Terstruktur
Spesifikasi algoritma ini akan dibuat dalam bentuk notasi terstruktur berupa sequence, condition, dan repetition.
  1. Sequence akan merupakan urutan langkah-langkah proses yang diperlukan untuk suatu operasi tertentu
  2. Condition memberikan pilihan untuk melakukan proses-proses tertentu berdasarkan kondisi yang terjadi dalam program
  3. Repetition diperlukan untuk melakukan pengulangan proses (looping)
Coding          
                                
Program Design Language (PDL)
  1. Bahasa inggris terstruktur / pseudocode
  2. Bahasa pasar yang menggunakan kosakata dari suatu bahasa (ex. inggris) dan keseluruhan sintaks dari bhs tertentu (pemrograman terstruktur).

Prinsip dan Konsep Desain

15.11 0 Comments



Desain Perangkat Lunak dan RPL

Proses desain
 Suatu proses yang melawati serangkaian kebutuhan yang membentuk sebuah perangkat lunak dibagi dalam 2 tahap :
  1.  Preliminary Design : pada tahap ini difokuskan dengan transformasi dari keperluan / kebutuhan ke dalam data dan arsitektur software.
  2.  Detail Design : difokuskan pada penghalusan representasi arsitektur yang berisi struktur data detail dan algoritma untuk software.
Kualitas desain dan software
Agar dihasilkan desain yang baik suatu desain haruslah :
  1. Memperlihatkan organisasi hirarki yang mengontrol elemen-elemen software.
  2. Software secara logika terbagi dalam elemen-elemen yang membentuk fungsi dan sub fungsi.
  3. Berisi representasi yang berbeda dan terpisah dari data dan prosedur.
  4. Membentuk modul ( contoh subroutine dan procedure ) yang memperlihatkan karakteristik fungsi yang tidak saling bergantung.
  5. Diturunkan dengan menggunakan metode perulangan yang didukung oleh informasi yang ada selama analisa kebutuhan software
Program structure
Program structure menampilkan / menyajikan organisasi ( seringkali organisasi hirarki ) dari komponen-komponen program ( modul-modul ) dan mengandung arti hirarki dari kontrol program. Notasi yang digunakan adalah diagram tree. Biasanya dinamakan structure chart.

Data structure
Menggambarkan relasi logikal antara sejumlah elemen.contoh :

type G = array [1..100] of integer;

...

...

Procedure S ( var T : G ; n : integer ; sum : integer );

Var

I : integer;

begin

sum := 0;

for I:=1 to n do

sum := sum + t[i];

end;

Software procedure
Difokuskan pada detail pemrosesan dari setiap modul secara individu.Prosedur harus mengandung spesifikasi yang benar / tepat dari pemrosesan,termasuk : sequence of events, decision points, repetitive operations, dan struktur data.

Modularitas

Software dibagi kedalam nama-nama yang terpisah dan elemen-elemen yang dapat dipanggil, yang disebut dengan modul, yang termasuk kedalam memenuhi syarat-syarat permasalahan
Misalkan :

C(x) = fungsi kompleksitas dari suatu masalah

E(x) = fungsi usaha/waktu yang diperlukan untuk memecahkan suat masalah

Prinsip Desain
David [DAV95] memaparkan sekumpulan prinsip untuk desain software:

  1.     Proses desain seharusnya tidak bertahan dari “tunnel vision”.
  2.     Desain harus dapat di trace ke model analisa.
  3.     Desain seharusnya tidak menemukan/invent wheel.
  4.     Desain harus “memperkecil jarak intellectual” antara software dan masalah-masalah pada dunia nyata.
  5.     Desain harus mengeluarkan uniformity dan integrasi.
  6.     Desain harus terstruktur untuk mengakomodasi perubahan.
  7.     Desain harus terstruktur untuk mendegradasi secara halus(degrade gently).
  8.     Desain bukan coding.
  9.     Desain harus di-assessed untuk kualitas.
  10.     Desain harus diulang untuk meminimalis kesalahan konsep.

  Konsep Desain

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. contoh :
Program : Iklan Part-time Job
Fungsi: Pendaftaran calon part-timer
Abstraction 1 (highest level): Calon part-timer dalam melakukan upload syarat-syarat yang diperlukan untuk melamar: surat lamaran, CV, foto, transkrip, data diri.
Abstraction 2 (lower level):
Procedural abstraction :
  1.     Tampilkan pilihan part-time job
  2.     Input data
  3.     Verifikasi format
Refinement
Penjelasan detil dari abstraction refinement membantu designer untuk memperlihatkan detil dari lowest level dari abstraction. Abstraction dan refinement merupakan konsep yang saling melengkapi.

Konsep Desain – Modularity
Software dibagi komponen dengan nama dan alamat yang berbeda, disebut modul. Meyer [MEY88] mendefenisikan lima kriteria yang memungkinkan kita mengevaluasi sebuah metode desain
  1. Modular composability: sebuah metode desain memungkinkan komponen desain yang telah ada dirakit ke sebuah sistem baru.
  2. Modular understandability: sebuah modul dapat dimengerti sebagai sebuah unit yang berdiri sendiri dan akan lebih mudah membangun dan mengubahnya.
  3. Modular continuity: perubahan kecil terhadap kebutuhan sistem menghasilkan perubahan pada tiap modul, dibanding perubahan system-wide.
  4. Modular protection: sebuah kondisi aberrant terjadi dalam sebuah modul dan efeknya di-constrain dalam modul.
Software architecture
-       Struktur software secara keseluruhan

-        Struktur hirarki/berjenjang dari modul-modul program. Untuk menggambarkan

-        Struktur modul-modul tersebut beberapa model yang ada adalah :

1.      framework model : identifikasi pola yang berulang-ulang

2.      dynamic model : identifikasi bagaimana konfigurasi sistem berubah karena kejadian-kejadian tertentu

3.      process model: fokus pada proses teknis yang harus dikerjakan sistem

4.      functional model : menggambarkan hirarki sistem berdasarkan fungsinya

Software procedure
Fokus pada detil proses pada tiap modul. Prosedur menjelaskan proses, urutan kejadian, proses perulangan, penentuan keputusan/arah. Ini bisa digambarkan dengan menggunakan Flow Chart yang bertingkat.

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.

Desain Modular Efektif

Modular design   mereduksi komplesitas masalah, menyediakan fasilitas untuk melakukan perubahan ( dalam hal pemeliharaan ), dan memudahkan implementasi dengan pengembangan paralel dari bagian-bagian yang berbeda dalam suatu sistem.

  1. Module types : abstraksi dan penyembunyian informasi dipakai untuk mendefinisikan modul-modul di dalam lingkungan software architecture. Suatu modul mungkin dikategorikan sebagai berikut:  Sequential module   dieksekusi tanpa interupsi yang dilakukan software aplikasi, Incremental module   dapat diinterupsi oleh program aplikasi dan kemudian kembali ke titik semula setelah interupsi selesai,Parallel module   dieksekusi secara simultan dengan modul lain dalam lingkungan Concurrent multiprocessor
  2. Independensi Fungsional : konsep functional independence berkembang dari modularitas dan konsep abstraksi serta information hiding. Independence diukur dengan menggunakan 2 kriteria kualitatif, yaitu : cohesion, coupling.
  3. Cohesion ( keterpautan ) : suatu modul kohesif membentuk sebuah tugas tunggal di dalam suatu software prosedur dan memerlukan sedikit interaksi dengan prosedur yang dibuat dalam bagian lain dari suatu program.
  • Coincidental cohesion : sebuah modul yang membentuk sejumlah tugas yang berhubungan satu sama lain dengan longgar
  • Logically cohesion : sebuah modul yang membentuk tugas-tugas yang dihubungkan secara logical
  • Temporal cohesion : jika sebuah modul berisi sejumlah tugas yang dihubungkan dengan segala yang harus dieksekusi di dalam waktu yang bersamaan.
  • Procedural cohesion : jika pemrosesan elemen-elemen dari suatu modul dihubungkan dan harus dieksekusi dalam urutan spesifik
  • Communication cohesion : jika pemrosesan elemen-elemen dikonsentrasikan pada satu area dari suatu struktur data.
    4.   Coupling ( bergandengan ) : merupakan suatu pengukuran dari keterkaitan / keterhubungan antara sejumlah modul dalam struktur program.

Heuristik desain bagi modularitas yang efektif :
  1. Evaluasi “iterasi pertama” dari struktur program untuk mengurangi  perangkaian dan meningkatkan kohesi.
  2. Usahakan meminimalkan struktur dengan fan-out yang tinggi; usahakan untuk melakukan fan-in pada saat kedalaman (depth) bertambah.
  3. Jagalah supaya lingkup efek dari suatu model ada dalam lingkup control.
  4. Evaluasi interface modul untuk mengurangi kompleksitas dan redundansi.
  5. Tetapkan modul-modul yang fungsinya dapat diprediksi, tetapi hindari modul yang terlalu restriktif.
  6. Usahakan modul-modul “entri kontrol" dengan menghindari “hubungan patalogis”
  7. Kemaslah software berdasarkan batasan desain dan persyaratan probabilitas.
Model Desain
Prinsip dan konsep desain yang dibicarakan pada bab ini membangun sebuah fondasi untuk pembuatan model desain yang mencakup representasi data, arsitektur, interface dan prosedur.

Dokumentasi Desain
Outline spesifikasi desain :

I. Ruang Lingkup
A. Sasaran Sistem

B. Persyaratan utama software

C. Batasan-batasan dan pembatasan desain
II. Desain Data

A. Obyek data dan struktur data resultan

B. Struktur file dan database
1. Struktur file eksternal
a. struktur logis

b. deskripsi record logis

c. metode akses
2. data global

3. file dan referensi lintas data

III. Desain Arsitektural
A. Kajian data dan aliran control

B. Struktur program yang diperoleh
IV. Desain Interface
A. Spesifikasi interface manusia-mesin

B. Aturan desain interface manusia-mesin
C. Desain interface eksternal
1. Interface untuk data eksternal

2. Interface untuk sistem atau peralatan eksternal
V. Desain Prosedural

       Untuk masing-masing modul :
A. Naratif pemrosesan

B. Deskripsi Interface

C. Deskripsi bahasa (atau lainnya) desain

D. Modul-modul yang digunakan

E. Struktur data internal

F. Keterangan/larangan/pembatasan

VI. Persyaratan Lintas-Referensi

VII. Ketetentuan pengujian
1. Panduan pengujian

2. Strategi integrasi

3. Pertimbangan Khusus
VIII. Catatan Khusus

IX. Lampiran