Buku Referensi :
Pressman, RS., 2008, Software
Engineering: A Practitioners Approach,
New York: McGraw-Hill
Sommerville, I, 2007, Software
Engineering, Addsion Wesley
PROSES DESAIN
Desain dan Kualitas
Desain
harus
mengimplementasikan
semua
kebutuhan eksplisit yang ada dalam model analisis,
dan dia harus mengakomodasi semua kebutuhan
implisit yang diinginkan oleh konsumen.
Desain harus dapat berupa panduan yang dapat
dibaca dan dipahami oleh orang-orang yang akan
membuat kode, dan mereka yang menguji serta
nantinya mendukung PL tersebut.
Desain harus menyediakan gambaran utuh dari PL,
menggambarkan domain data, fungsional, dan
perilaku dari perspektif implementasi.
Panduan Kualitas
Sebuah desain harus menampilkan arsitektur yang
1. Dibuat menggunakan pola atau style arsitektural yang sudah
dikenal,
2. Terdiri dari komponen-komponen yang menunjukkan karakteristik
desain yang baik dan
3. Dapat diimplementasi dalam bentul yang evolusioner.
Untuk sistem yang lebih kecil, desain kadang dapat
dikembangkan secara linear.
Sebuah desain harus berbentuk modular; oleh karena itu PL harus
secara logis dipartisi menjadi beberapa elemen subsistem
Sebuah desain harus berisi representasi yang berbeda dari data
,arsitektur, antarmuka, dan komponen.
Evolusi Desain PL
Karakteristik Umuj :
1. Mekanisme penerjemahan suatu model analisis ke
dalam representasi desain.
2. Notasi untuk merepresentasikan komponen-komponen
fungsional dan interfacenya.
3. Heuristik bagi penyaringan dan partisi.
4. Pedoman bagi penilaian kualitas.
PRINSIP DESAIN
Menurut Davis :
Proses desain tidak boleh berjalan dengan kacamata
kuda
Proses desain harus bisa dirujuk dari model analisis.
Proses desain tidak boleh mengulang penemuanpenemuan dasar.
Desain harus dapat meminimalkan jarak intelektual
antara PL dan permasalah yang ada di dunia nyata.
Desain harus menampakkan keseragaman dan
integrasi.
Abstraksi Data
Abstraksi Prosedur
Penyaringan
Penyaringan Stepwise adalah strategi desain top down yang
diusulkan ole Wiklaus Wirth.
Penyaringan sebenarnya adalah proses elaborasi . Dimulai
dengan suatu statemen fungsi pada suatu tingkat abstraksi
tinggi.
Statemen fungsi adalah statemen yang menggambarkan
fungsi atau informasi secara konseptual.
Penyaringan membantu desainer untuk mengungkapkan
detail tingkat rendah ketika desain berjalan.
Modularitas
Meyer : 5 kriteria mengevaluasi metode
desain
1. Dekomposabilitas Modular
2. Komposabilitas Modular
3. Kemampuan Pemahaman Modular
4. Kontinuitas Modular
5. Ptoreksi Modular
Arsitektur PL
Shaw dan Garlan : sekumpulan properti sebagai bagian dari
desain arsitektural :
1. Properti Struktural
spek representasi desain arsitektur ini menentukan
komponen-komponen sebuah sistem (mis: modul, objek,
filter), dan pola komponen-komponen tersebut dipaket dan
berinteraksi satu dengan yang lain. Sebagai contoh: objek
dipaket untuk enkapsulasi baik data dan proses yang
memanipulasi data dan berinteraksi dengan invokasi method
Arsitektur PL (lanjutan)
2. Properti Ekstra Fungsional
Deskripsi desain arsitektur harus menggambarkan
bagaimana arsitektur mencapai kebutuhan kinerja,
kapasitas, reliabilitas, keamanan, adaptabilitas, dan
karakteristik sistem yang lain.
3. Keluarga dari sistem yang berhubungan
Desain arsitektur harus dapat menggambar pola-pola yang
diulang, yang secara umum ditemukan dalam disain keluarga
atau sistem yang mirip. Esensinya, desain harus mempunyai
kemampuan untuk menggunakan kembali blok-blok
bangunan arsitektur.
Patern / Pola
Design Pattern Template
Nama Patternmenggambarkan esensi pattern dalam nama yang
singkat tapi ekspresif Intent/Tujuanmenjelaskan pattern dan apa
yang dilakukan
Juga dikenal sebagai/Also-known-asDaftar sinonim untuk pattern
terkait
Motivation/Motivasimenyediakan contoh masalah
Aplikabilitasmenjelaskan situasi desain spesifik dimana pattern
dapat diterapkan
Strukturmenggambarkan class yang dibutuhkan untuk implementasi
pattern
Participantsmenggambarkan tanggungjawab class-class yang
diperlukan untuk mengimplementasikan pattern
Collaborationsmenggambarkan bagaimana participan berkolaborasi
untuk memikul tanggung jwabanya.
Konsekuensimenggambarkan pengaruh desain terhadap pattern
dan potensi masalah yang harus diperhatikan ketika pattern
diimplementasi.
Related patternsrelasi referensi silang design patterns
Hierarki Kontrol
Disebut juga struktur program.
Yang paling umum digunakan adalah diagram pohon
Depth dan width mengindikasikan jumlah modul yang dikontrol dan
rentang keseluruan kontrol
Fan-out pengukuran jumlah modul yang dikontrol secara langsung
oleh modul yang lain.
Fan-in mengindikasikan berapa banyak modul yang secara langsung
mengontrol sebuah modul yang diberikan.
Hubnugan kontrol diantara kontrol :
Superordinat (modul yang mengontrol modul lain).
Subordinat (modul yang dikontrol modul lain
Visibilitas (komponen program yang dapat dipakai sebagai data oleh
komponen lainnya)
Konektivitas (Komponen yang dipakai secara tidak langsung oleh
sebuah modul yang ditetapkan)
Partisi Struktural
Partisi Vertikal
Didesain sehingga pengambilan keputusan dan pekerjaan
distratifikasi
Modul pengambilan keputusan tetap ada di puncak arsitektur
decision--makers
decision
workers
function 1
function 2
Struktur Data
Modularitas
Berapakah jumlah modul yang pas untuk desainPL tertentu?
Penyembunyian Informasi
Langkah-langkah Refinement
Indepedensi Fungsi
Kohesi
Suatu ekstensi natural dari konsep penyembunyian informasi
Kohesif Koisidental
Modul yang melakukan serangkaian tugas yang saling
berhubungan secara lepas.
Kohesif secara Logis
Modul yang melakukan tugas-tugas yang berhubungan secara
logis.
Kohesif Temporal
Modul berisi tugas-tugas yang berhubungan dengan kenyataan
bahwa semua harus dieksekusi dalam jangkauan waktu yang
sama.
Perangkaian
Perangkaian :
Pengukuran interkoneksi diantara modul-modul pada sebuah
struktur program
Heuristik Desain
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 bertambah.
3. Jaga lingkup efek dari suatu modul ada dalam lingkup kontrol
dari modul itu.
4. Evaluasi interface modul untuk mengurangi kompleksitas
dan redudansi dan meningkatkan konsistensi
Perangkaian (lanjutan)
5. Tetapkan modul-modul yang fungsinya dapat diprediksi,
tetapi hindari modul yang terlalu restriktif.
6. Usahakan modulmodul entri terkontrol menghindari
hubungan patologisdengan
7. Kemaslah PL berdasarkan batasan desain dan persyaratan.
MODEL DESAIN
Direpresentasikan sebagai sebuah piramid.
Konsep Desain OO
Desain Class
Entity classes
Boundary classes
Controller classes
Inheritancesemua tanggung jawab superclass akan diwarisi
oleh semua subclassnya
Messagesstimulasi beberapa perilaku yang dapat terjadi
pada objek penerima pesan
Polymorphismsebuah karakteristik yang mengurangi usaha
yang dibutuhkan untuk memperluas desain
DESAIN CLASS
Analisis class disempurnakan dalam desain untuk menjadi
class-class entitas
Class-class boundary dikembangkan selama desain untuk
membuat interface(mis. Layar interaktif atau laporan cetak)
yang dilihat pengguna dan berinteraksi.
- Class-class boundary didesain dengan tanggungjawab untuk
mengelola cara objek entitas ditampilkan kepada user.
Class-class control didesain untuk mengelola :
- Pembuatan atau perubahan objek entitas;
- nstansiasi object boundary dengan mengambil informasi
dari objek entitas;
- Komunikasi kompleks antara sekelompok objek;
- Validasi data yang dikomunikasikan antar objek atau antar
pengguna dan aplikasi.
Inheritance
Pilihan-pilihan desain :
- Class dapat didesain dan dibangun dari nol. Jika demikian,
inheritance tidak digunakan.
- Hierarki class dapat dicari untuk mencari kemungkinan jika
sebuah class yang lebih tinggi pada hierarki (superclass)
memiliki atribut-atribut dan operasi-operasi yang paling
banyak dibutuhkan. Class baru ini diturunkan dari superclass
dan beberapa tambahan dapat diberikan jika dibutuhkan.
- Hierarki class dapat di restrukturisasi sehingga atributatribut dan operasi-operasi yang dibutuhkan dan diturunkan
oleh class baru tersebut.
- Karakteristik dari class yang sudah ada dapat di override dan
atribut-atribut dan operasi-operasi dengan versi berbeda
dapat diimplementasikan untuk class baru tersebut.
Message
Polymorphism
Pendekatan konvensional
case of graphtype:
if graphtype = linegraph then DrawLineGraph (data);
if graphtype = piechart then DrawPieChart (data);
if graphtype = histogram then DrawHisto (data);
if graphtype = kiviat then DrawKiviat (data);
end case;
Semua graphs menjadi subclass dari class umum yang disebut
graph. Menggunakan konsep over loading, setiap subclass
mendefinisikan operasi yang disebut draw. Sebuah object
dapat mengirim pesan draw pada salah satu instansiasi objek
dari salah satu subclassnya. Objek yang menerima message
akan menjalankan operasi draw nya sendriri untuk membuat
graph yang sesuai..
Model Desain
Elemen Interface
Elemen Komponen
Elemen Deployment
Design Pattern
Desainer terbaik di segala bidang tetap mempunyai keterbatasan
untuk melihat pola yang mencirikan sebuah masalah dan
menghubungkannya dengan pola yang dapat dikombinasikan untuk
membuat solusi
Sebuah deskripsi dari design pattern dapat juga dilihat sebagai
sekumpulan design forces.
Design forcesmenjelaskan kebutuhan non fungsional (misalkan
:
kemudahan perawatan, portabilitas) yang dihubungkan
dengan PL
dimana pattern akan diaplikasikan.
Karakteristik pattern (class, tanggungjawab, dan kolaborasi)
mengindikasikan atribut-atrobit desain yang harus diatur untuk
memungkinkan pattern mengakomodasi permasalahan yang
bervariasi
Frameworks
Sebuah framework bukan merupakan pattern
arsitektur, namun lebih merupakan kerangka dengan
sekumpulan plug points (yang juga disebut
hooksdan slots) yang memungkinkannya untuk
beradaptasi dengan domain permasalahan tertentu.
Gamma et al mencatat bahwa:
Design patterns lebih abstrak dari frameworks.
Design patterns adalah elemen-elemen
arsitektural yang
lebih kecil daripada frameworks
Design patterns lebih umum daripada
frameworks
DOKUMENTASI DESAIN
Ruang lingkup
a. sasaran sistem
b. persyaratan utama PL
c. batasan dan pembatasan desain
Desain Data
a. Obyek dan struktur data resultan
b. Struktur file dan database
1. struktur file eksternal
2. data global
a. struktur logis
b. deskripsi record logis
c. metode akses
3. file dan referensi lintas data
Catatan Khusus
Lampiran
Pertemuan 10
METODE DESAIN (1)
Buku Referensi :
Pressman, RS., 2008, Software
Engineering: A Practitioners Approach,
New York: McGraw-Hill
Sommerville, I, 2007, Software
Engineering, Addsion Wesley
DESAIN DATA
1.
2.
3.
4.
5.
6.
7.
DESAIN ARSITEKTUR
Untuk mengembangkan struktur program modular dan
merepresentasikan hubungan kontrol antar modul.
Membentuk struktur program dan struktur data dengan
menentukan interface yang memungkinkan data mengalir
melalui program.
Kontributor
Perintis desain PL yang didasarkan pada aliran data melalui
sebuah sistem.
Area Aplikasi
luasnya aplikasi dimana aplikasi dapat diaplikasikan.
Karakteristik Aliran
PEMETAAN TRANSFORMASI
Serangkaian langkah desain yang mengijinkan sebuah DFD dengan
karakteristik aliran transformasi untuk dipetakan ke dalam tempalte yang
telah ditentukan untuk struktur program.
Langkah-langkah :
1. Kaji model sistem fundamental.
2. Kaji dan saring diagram aliran data untuk PL.
3. Tentukan apakah DFD memiliki karakteristik aliran transformasi atau
transaksi.
4. Isolasi pusat transformasi dengan mengkhususkan batas aliran masuk
dan keluar.
5. Lakukan pemfaktoran tingkat pertama.
6. Lakukan pemfaktoran tingkat kedua.
7. Saringlah struktur program iterasi pertama dengan menggunakan
heuristik desain bagi kualitas perangkat lunak yang telah ditingkatkan.
b
d
x4
x3
c
"Transform" mapping
PEMETAAN TRANSAKSI
Langkah-langkah desain :
1. Kaji model sistem fundamental.
2. Kaji dan saring diagram aliran data untuk PL.
3. Tentukan apakah DFD memiliki karakteristik aliran
transformasi atau transaksi.
4. Identifikasi pusat transaksi dan karakteristik aliran sepanjang
masing-masing jalur aksi.
5. Petakan DFD pada sebuah struktur program yang sesuai
dengan pemrosesan transaksi.
6. Faktorkan dan saringkan struktur transaksi dan struktur
masing-masing jalur aksi.
7. Saring struktur program iterasi pertama dengan menggunakan
heuristik desian untuk kualitas PL yng dikembangkan.
Program
Architecture
Pertemuan 11
METODE DESAIN (2)
Buku Referensi :
Pressman, RS., 2008, Software
Engineering: A Practitioners Approach,
New York: McGraw-Hill
Sommerville, I, 2007, Software
Engineering, Addsion Wesley
DESAIN INTERFACE
Memfokuskan diri pada 3 area perhatian :
1. Desain interface antara modul-modul PL.
2. Desain interface antara PL dan prosedur dan konsumen informasi, bukan
manusia lainnya (yakni entitas eksternal lainnya).
3. Desain interface antara seorang manusia (user) dan komputer.
Desain interface pemakai internal
(desain interface inter-modular) dikendalikan oleh data yang harus
mengalir diantara modul-modul dan karakteristik bahasa pemrograman
dimana PL akan diimplementasikan.
Desain interface pemakai eksternal
Dimulai dengan evaluasi terhadap masing-masing entitas eksternal yang
direpresentasikan pada DFD model analisis.
Desain Interface Pemakai
Berkaitan dengan studi terhadap manusia juga terhadap isu-isu teknologi
Desain
Permulaaan
Membuat
Prototipe
Interface #n
Pemakai
mengevaluasi
interface
Modifikasi
desain
dilakukan
Membuat
Prototipe
Interface #1
Evaluasi
dipelajari oleh
desainer
DESAIN PROSEDURAL
Terjadi setelah data, desain arsitektur dan interface
dibangun.
Pemrograman Terstruktur
Urutan
(langkah pemrosesan yang penting dalam spesifikasi
sembarang algoritma).
Kondisi
(fasilitas bagi pemrosesan yang dipilih berdasarkan beberapa
kejadian logis).
Pengulangan
(menyediakan looping)
CODING
Pertemuan 12
IMPLEMENTASI
POKOK BAHASAN
Makna & Tujuan Implementasi
Perencanaan Implementasi
Hal Penting Dalam Implementasi
Persiapan Dokumentasi
Pemasangan Atau Konversi Sistem Baru Ke Sistem Lama
Evaluasi Sistem Baru
Lingkungan Pemrograman
Programming Style
Prinsip Portability & Reusable (Kemudahan & Penggunaan
Ulang Komponen)
CASE Tools
Penjelasan
Tanpa dokumentasi yang jelas dan akurat
Pengembangan sistem
Tahapan Implementasi
Struktur dekomposisi, struktur data, dan identitas dipilih
dan di kerjakan sampai prosedur desain mudah untuk
ditata ulang dalam sebuah implementasi
Level abstraksi pada desain, misal class, modul,
algoritma, struktur data, dan tipe data harus diwujudkan
dalam implementasi
Antarmuka antara komponen sistem perangkat lunak
harus diwujudkan secara jelas pada tahap implementasi
Kode program tersebut harus dapat di cek
konsistensinya pada setiap objek dan operasinya
secara langsung menggunakan kompilator.
yang
bervariasi
untuk
oleh
Programming Style
Menulis sebuah program adalah seni dan merupakan
proses yang kreatif
Gaya pemrograman pada programmer mempengaruhi
tingkat kemudahan pembacaan program yang dibuatnya
Buku Code Complete
Mengulas tuntas suatu gaya pemrograman bahkan di
dalamnya diberkan contoh variasi yang cukup banyak.
Gaya pemrograman yang baik sangat didukung dari tahap
desain dan perencanaan implementasi yang baik
PERTEMUAN 13
STRATEGI PENGUJIAN
PERANGKAT LUNAK
Proses Testing
Unit
Testing
Module
Testing
Component Testing
Sub-system
Testing
Integration Testing
System
Testing
Acceptance
Testing
User
Testing
Proses Testing
Unit testing
Pengujian masing-masing unit komponen program
untuk meyakinkan bahwa sudah beroperasi secara
benar
Module Testing
Pengujian terhadap koleksi unit-unit komponen yang
saling berhubungan.
Sub-system Testing
Pengujian terhadap koleksi module-module
membentuk suatu sub-system (aplikasi)
yang
Proses Testing
System Testing
Pengujian terhadap integrasi sub-system,
keterhubungan antar sub-system
yaitu
Acceptance Testing
Pengujian terakhirs sebelum sistem dipakai oleh
user.
Melibatkan pengujian dengan data dari pengguna
sistem.
Biasa dikenal sebagai alpha test (beta test
untuk software komersial, dimana pengujian
dilakukan oleh potensial customer)
Rencana Pengujian
Proses testing
Deskripsi fase-fase utama dalam pengujian
Pelacakan Kebutuhan
Semua kebutuhan user diuji secara individu
Item yg diuji
Menspesifikasi komponen sistem yang diuji
Jadual Testing
Prosedur Pencatatan Hasil dan Prosedur
Kebutuhan akan Hardware dan Software
Kendala-kendala
Mis: kekuranga staff, alat, waktu dll.
Prioritas Testing
Hanya test yang lengkap yang dapat meyakinkan
sistem terbebas dari kesalahan, tetapi hal ini sangat
sulit dilakukan.
Prioritas dilakukan terhadap pengujian kemampuan
sistem, bukan masing-masing komponennya.
Pengujian untuk situasi yang tipikal lebih penting
dibandingkan pengujian terhadap nilai batas.
Pengujian Unit
Pengujian Integrasi
Pengujian Validasi
Pengujian Sistem
Pengujian Unit
Berfokus pada inti terkecil dari desain perangkat
lunak yaitu modul
Uji coba unit selalu berorientasi pada white box
testing
Dapat dikerjakan paralel atau beruntun dengan modul
lainnya.
Integration Testing
Pengujian keseluruhan system atau sub-system yang
terdiri dari komponen yang terintegrasi.
Test integrasi menggunakan black-box dengan test
case ditentukan dari spesifikasi.
Kesulitannya adalah menemukan/melokasikan
Penggunaan Incremental integration testing dapat
mengurangi masalah tersebut.
T1
T1
A
T1
T2
T2
T2
T3
T3
C
T4
T3
C
T4
T5
D
Test sequence
1
Test sequence
2
Test sequence
3
Testing
sequence
Level 2
Level 2
stubs
Level 3
stubs
Level 1
Level 2
Level 2
...
Level 2
Bottom Up Testing
Test
drivers
Level N
Test
drivers
Level N
Level N1
Level N
Level N1
Level N
Level N
Level N1
Testing
sequence
Pendekatan Testing
Architectural Validation
Top-down integration testing lebih baik digunakan
dalam menemukan error dalam sistem arsitektur.
System Demonstration
Top-down integration testing hanya membatasi
pengujian pada awal tahap pengembangan system.
Test Implementation
Seringkali lebih mudah dengan menggunakan bottomup integration testing
Interface Testing
Dilakukan kalau module-module dan sub-system
terintegrasi dan membentuk sistem yang lebih besar
Tujuannya untuk medeteksi fault terhadap kesalahan
interface atau asumsi yang tidak valid tentang interface
tersebut.
Sangat
penting
untuk
pengujian
terhadap
pengembangan
sistem
dengan
menggunakan
pendekatan object-oriented yang didefinisikan oleh
object-objectnya
Pengujian Validasi
Kajian Konfigurasi (audit)
Elemen dari proses validasi
Memastikan apakah semua elemen konfigurasi
perangkat lunak telah dikembangkan dengan tepat
Pengujian Alpha dan Beta
Pengujian Alpha
Usability labs
Usability factors checklist
Pengujian Beta
Pengujian Sistem
Pengujian Perbaikan
Pengujian Keamanan
Pengujian Stress
Pengujian Kinerja
Volume Testing
Stress Testing
Performance Testing
Data Recovery Testing
Data Backup and Restore Testing
Data Security Testing
Volume Testing
Menemukan kelemahan sistem selama melakukan
pemrosesan data dalam jumlah yang besar dalam
periode waktu yang singkat.
Tujuan: meyakinkan bahwa sistem tetap melakukan
pemrosesan data antar batasan fisik dan batasan logik.
Contoh:
Mengujikan proses antar server dan antar partisi hardisk
pada satu server.
Stress Testing
Tujuan: mengetahui kemampuan sistem dalam
melakukan transaksi selama periode waktu puncak
proses.
Contoh periode puncak: ketika penolakan proses login
on-line setelah sistem down atau pada kasus batch,
pengiriman batch proses dalam jumlah yang besar
dilakukan setelah sistem down.
Contoh: Melakukan login ke server ketika sejumlah
besar workstation melakukan proses menjalankan
perintah sql database.
Performance Testing
Dilakukan secara paralel dengan Volume dan Stress
testing untuk mengetahui unjuk kerja sistem (waktu
respon, throughput rate) pada beberapa kondisi proses
dan konfigurasi.
Dilakukan pada semua konfigurasi sistem perangkat
keras dan lunak. Misal : pada aplikasi Client-Server
diujikan pada kondisi korporate ataupun lingkungan
sendiri (LAN vs. WAN, Laptop vs. Desktop)
Menguji sistem dengan hubungannya ke sistem yang
lain pada server yang sama.
Load Balancing Monitor
Network Monitor
Debugging
PERTEMUAN 14
TEKNIK PENGUJIAN
PERANGKAT LUNAK
TESTING
Pengujian perangkat lunak adalah proses menjalankan
dan mengevaluasi sebuah perangkat lunak secara manual
maupun otomatis untuk menguji apakah perangkat lunak
sudah memenuhi persyaratan atau belum, atau untuk
menentukan perbedaan antara hasil yang diharapkan
dengan hasil sebenarnya.
Pengujian merupakan suatu tahapan pengerjaan yang
bertujuan mencari kesalahan program. Kesalahan yang
terjadi selama proses pengembangan perangkat lunak
akan mengakibatkan bertambahnya waktu untuk
menyelesaikan pekerjaan tersebut.
Pengujian hendaknya dilakukan pada setiap tahap
pengembangan yaitu mulai dari tahap analisis kebutuhan
sampai dengan tahap perawatan.
merupakan
suatu
perizinan
terhadap
PRINSIP PENGUJIAN
Beberapa prinsip pengujian yang harus diperhatikan
(diusulkan oleh Davis):
1. Semua pengujian harus dapat ditelusuri sampai ke
persyaratan pelanggan.
2. Pengujian harus direncanakan lama sebelum
pengujian itu dimulai.
3. Prinsip Pareto berlaku untuk pengujian PL. Prinsip
Pareto mengimplikasikan 80% dari semua kesalahan
yang ditemukan selama pengujian sepertinya akan
dapat ditelusuri sampai 20% dari semua modul
program.
SASARAN PENGUJIAN
TUJUAN PENGUJIAN
Tujuan
yang diinginkan dari pelaksanaan pengujian
perangkat lunak adalah :
Menilai apakah perangkat lunak yang dikembangkan
telah memenuhi kebutuhan pemakai.
Menilai apakah tahap pengembangan perangkat lunak
telah sesuai dengan metodologi yang digunakan.
Membuat
dokumentasi
hasil
pengujian
yang
menginformasikan kesesuaian perangkat lunak yang
diuji dengan spesifikasi yang telah ditentukan.
TEST ABILITAS
Testabilitas Perangkat Lunak adalah seberapa
mudah sebuah program komputer dapat diuji.
Karena pengujian sangat sulit, perlu diketahui apa
yang dapat dilakukan untuk membuatnya menjadi
mudah.
11
16
17
19
23
Lingkaran/node :
Menggambarkan satu/lebih perintah prosedural. Urutan
proses dan keputusan dapat dipetakan dalam satu node.
Tanda panah/edge :
Menggambarkan aliran kontrol. Setiap node harus
mempunyai tujuan node
Region :
Adalah daerah yg dibatasi oleh edge dan node.
Termasuk daerah diluar grafik alir.
8
5
9
7
Independent Paths
1, 2, 3, 8, 9
1, 2, 3, 4, 6, 7, 2
1, 2, 3, 4, 5, 7, 2
1, 2, 3, 4, 6, 7, 2, 8, 9
Test cases harus ditentukan sehingga
semua path tersebut tereksekusi.
30
31
34
PERTEMUAN 6
COMPONENT DIAGRAM
Component Diagram
Component Diagram
Menggambarkan alokasi semua class dan object kedalam komponen dalam
desain fisik system software, termasuk pengaturan dan kebergantungan
antar komponen software
Component dapat terdiri dari
logical component, seperti business component, process component, dll
Physical component (software arsitektur) , seperti Com+, dot
NET,CORBA, dll
Component digambarkan
dengan bentuk pada UML versi 1.*:
Pada UML versi 2 digambarkan dengan bentuk
atau
atau
atau
Component Diagram
Dependencies
dimodelkan dengan garis terputus dengan panah terbuka
gambarkan dependencies dari kiri ke kanan
Contoh:
<<ASP>> Source Code bergantung pada
<<database>> MySQL
Dimungkinkan sebuah component dependencies pada interfaces
component lainnya
Contoh:
Inheritance
inheriting/child component diletakkan dibawah parent component, dengan
arah panah menuju ke parent component
dimodelkan dengan garis dengan panah tertutup
Contoh:
Menu Utama
<<UI>>
Penjualan
<<application>>
Pembelian
<<application>>
Penggambaran
interfaces dapat juga
dilakukan dengan
menambah bagian
component seperti
contoh dibawah ini
Bentuk grafik
Component Diagram
port
adalah bentuk object yang menjelaskan interaksi antara object dan
lingkungannya
digambarkan sebagai kotak kecil di pinggiran component
Assembly connector
Penghubung antara
2/lebih component
dimana
sebuah/beberapa
component provides
interfaces dan
component lain required
interfaces
Digambarkan dengan
gabungan bentuk
interfaces
contoh:
Simpan database
server
Kirim
Isi data
Browsing
Deployment Diagram
Deployment Diagram
Deployment/physical
diagram
menggambarkan
detail
bagaimana komponen di-deploy dalam infrastruktur sistem, di
mana komponen akan terletak (pada mesin, server atau piranti
keras apa), bagaimana kemampuan jaringan pada lokasi
tersebut, spesifikasi server, dan hal-hal lain yang bersifat
fisikal
Sebuah node adalah server, workstation, atau piranti keras
lain yang digunakan untuk men-deploy komponen dalam
lingkungan sebenarnya. Hubungan antar node (misalnya
TCP/IP) dan requirement dapat juga didefinisikan dalam
diagram ini
Deployment diagram digunakan untuk melayani pemodelan
hardware yang digunakan dalam implementasi sistem dan
asosiasinya antara komponen-komponen tersebut. Elemen
yang digunakan dalam deployment diagram adalah nodes
(ditunjukkan sebagai sebuah cube), komponen (ditunjukkan
sebagai sebuah kotak bujursangkar) dan juga asosiasi.
Deployment Diagram
Menggambarkan arsitektur system
Pemetaan software(component pada component diagram) yang jalan di
sebuah hardware (node pada deployment diagram)
Software component tidak selalu menggambarkan setiap software
component yang ada pada sebuah Komputer(system operasi/Microsoft
Office, dll), akan tetapi software component tersebut akan digambarkan
ketika ada hubungan dengan pengimplementasian sebuah system
Menggambarkan bagaimana s/w dan h/w bekerja sama
Menggambarkan topologi jaringan
Artifact
Spesifikasi dari bentuk physic informasi yang digunakan atau dihasilkan
Contoh : source file, script, executable file, table di database, document
word/excel, e-mail, dll
Digambarkan dengan bentuk
Dapat dihubungkan dengan component pada component diagram
Hanya digambarkan dalam sebuah node
perhatikan potongan program dibawah ini yang sesuai dengan artifact yang ada:
<! order.ASp>
<!-- #include file=buka.asp -->
<!-- #include file=uler.txt -->
<!-- #include file=data.css -->//code style sheet
<script src="tgl.js">
//javascript
</script>
Istilah
Asychronous
Hubungan asynchronous
HTTP
JOBC
ODBC
RMI
RPC
Synchronous
Komunikasi synchronous
Web Services
Ethernet
Ethernet Card
Client
<<asynchronous>>
1 Server
atau
Sd = sequence diagram
Timing Diagram
Memperlihatkan interaksi ketika tujuan utama diagram adalah waktu
Menggambarkan perubahan dalam state atau kondisi dari pengelompokkan
instance atau tugas berlebihan
Biasanya dipakai untuk memperlihatkan perubahan dalam state object
berlebihan dalam merespon ke external events
Dipakai untuk memperlihatkan perilaku dari sebuah/beberapa object melalui
periode waktu
Ada 2 jenis
Timing diagram yaitu
Concise/
simple notation
keterangan gambar :
object
states
Lifeline
Timing Constrant
:seminar
proposed, scheduled, enrolling students,
Being Taught, Final Exams, Closed
| {Nov 1 .. Des 31} | {jan 1 .. July 31}
Timing Diagram
Robust notation
State
/condition
Object
Lifeline
Messag
e
atau
Client Browser
Client Browser
Client Browser
Package Diagram
Sebuah bentuk pengelompokkan yang memungkinkan untuk
mengambil sebuah bentuk di UML dan mengelompokkan
elemen-elemennya dalam tingkatan unit yang lebih tinggi.
Kegunaan package yang paling umum adalah untuk
mengelompokkan class.
Package Diagram
Menggambarkan pengelompokan dari suatu class-class
tunggakan
guestbook
keluhan
pelanggan
kwitansi
i_01
master_pelangg
an
perintah_kerja
index/home
pelanggan_reg
master_status
mutasi
user.
modul
Master_tarif
2.
Simbol
Keterangan
Entity Type
Suatu yang ada (secara eksplisit
keberadaannya dapat nyata dapat
perbedaan antar entity harus jelas.
Ex. Pegawai, Departemen
ada) namun
virtual, serta
Departemen
Salary
3.
Attribute
Keterangan yang dimilikientity / sifat-sifat yang melekat
pada entity yang perlu dicatat.
Ex. Pegawai: Nopeg, Nama, Alamat, Jenis Kel, tgl. Masuk
4.
Key Attribute
Bila didalam attribute terdapat nilai sama, maka kita perlu
membuat Key attribute sehingga dipastikan tidak akan
terjadi nilai/record sama.
Ex. Pegawai : sebagai key adalah NoPeg
NoPeg
Nama
Alamat
P01
Bella
Malang
P02
Bella
Batu
5.
Multivalued Attribute
Satu entity yang memiliki 2 attribute sama
Ex. Departemen yang memiliki 2 lokasi pabrik
Departemen
Departemen
Lokasi
Composite Attribute
Attribute yang mempunyai nilai attribute lebih dari Satu
Ex. Nama :
Nama Depan
Alamat :
Jalan
Nama Tengah
Nomer
Nama Belakang
Kota
7.
Derived Attribute
Merupakan kombinasi dari attribute-attribute dimana
keberadaannya tidak perlu disimpan.
Ex.
Mata Kuliah
MHS
E1
E2
8.
E2
9.
Relationship Type
Menyatakan hubungan antar attribute sehingga
terjadi pemetaan.
Ex.
M
Mahasiswa
Bisa
Ambi
l
*
*
Range
Domain
N
Mat. Kul
#
#
#
#
Kodomain
Derajat Relationship
UNARY RELATIONSHIP
BINARY RELATIONSHIP
N-ARY RELATIONSHIP
ENTITY-RELATIONSHIP DIAGRAM
PEGAWAI
PUNYA
JABATAN
PEGAWAI
MEMPUNYAI
JABATAN
PEGAWAI
DIPUNYAI OLEH
JABATAN
PROYEK
KERJA
PEGAWAI
PROYEK
DIKERJAKAN OLEH
PEGAWAI
PROYEK
MENGERJAKAN
PEGAWAI
ENTITY-RELATIONSHIP DIAGRAM
PEGAWAI
PUNYA
JABATAN
PROYEK
KERJA
PEGAWAI
MHSISWA
IKUT
MT-KULIAH
ENTITY-RELATIONSHIP DIAGRAM
PEGAWAI
NO-PEG
NAMA
ALAMAT
PROYEK
NIM
NAMA
ALAMAT
NO-PEG
KD-JAB
KD-PROY
NM-PROY
ANGGARAN
MHSISWA
PUNYA
KERJA
KD-JAB
URAIAN
TUNJANGAN
IKUT
NIM
KD-MATKUL
NILAI
PEGAWAI
NO-PEG
NAMA
HONOR
KD-PROY
NO-PEG
JABATAN
MT-KULIAH
KD-MATKUL
NM-MATKUL
SKS
ENTITY-RELATIONSHIP DIAGRAM
JENIS ENTITY
PEGAWAI
ISI
ABSEN
STRONG ENTITY
WEAK ENTITY
PEGAWAI
NO-PEG
NAMA
ALAMAT
ISI
NO-PEG
ABSEN
TANGGAL
JAM-MASUK
JAM-PULANG
ENTITY-RELATIONSHIP DIAGRAM
NO-PEG
NO-PROY
NO-PEG
NAMA
PEGAWAI
GAPOK
LAMA-KERJA
JABATAN
M
NO-PEG
KD-BAG
PUNYA
KD-BAG
NAMA-BAG
BAGIAN
1
M
KERJA
PROYEK
NO-PROY
NAMA-PROY
BIAYA
PAKAI
N
BARANG
NO-PROY
KD-BAR
JUMLAH
KD-BAR
HARGA-BAR
NAMA-BAR
Latihan
1. Suatu network yang menggambarkan suatu sistem
automatic/ komputerisasi , manual dan gabungan dari
keduanya dalam susunan berbentuk komponen sistem
yang saling berhubungan sesuai dengan aturan mainnya
a. DFD
d. entity
b. proses
e. jaringan
c. entitas
2. Simbol relationship pada ERD biasanya menggunakan
keterangan berupa
a. kata benda
d. kata sifat
b. kata kerja
e. kata perintah
c. kata pengganti
3. Dibawah ini adalah pernyataan yang benar dari aturan main DFD ,
kecuali
a. Dlm DFD tidak boleh menghubungkan antara EXTERNAL
ENTITY dgn EXTERNAL ENTITY secara langsung
b. Dlm DFD tidak boleh menghubungkan antara DATA STORE dgn
DATA STORE secara langsung
c. Dlm DFD tidak boleh menghubungkan antara DATA STORE
dgnEXTERNAL ENTITY secara langsung (atau sebaliknya)
d. Setiap PROSES harus ada DATA FLOW yg masuk dan tidak
ada DATA FLOW yg keluar.
e. Salah semua
4. Tahapan proses pembuatan DFD yang menggambarkan sistem
secara global
a. Diagram konteks
d. Diagram Nol
b. Diagram Detail
e. diagram Top Down
c. Diagram Objek
d. binary relationship
e. ternary relationship
d. binary relationship
e. ternary relationship
Latihan
1. Untuk menggambarkan struktur dan hubungan antara
komponen piranti lunak termasuk ketergantungan
diantaranya menggunakan
a. package diagram
b. class diagram
c. collaboration diagram
d. deployment diagram
e. component diagram
2. Dependencies dimodelkan dengan
a. garis panah tertutup
d. lingkaran
b. garis panah terputus
e. garis
c. kotak persegi