COHESION
Cohesion adalah
ke eratan hubungan elemen-elemen di dalam suatu modul.
Jenis – jenis Cohesion dari yang
keeratannya lemah/buruk hingga yang keeratannya baik/kuat antara lain adalah :
1. Coincidental
Cohesion - merupakan elemen yang tidak mempunyai hubungan.
contoh :
File Processing
Open employee
updates file
read employee
record
print_page heading
open employee
master file
set page_count to
one
set error_flag to
false
2. Logical
Cohesion - merupakan elemen-elemen yang melakukan kegiatan dengan
kategori yang sama. Parameter yang di masukkan menentkan kegiatan yang
dilaksanakan. Tidak semua kegiatan akan dikerjakan.
contoh :
Read_all_files(file_code)
CASE
if file_code
1 : read customer_transaction record
IF not EOF THEN
increment cust_trans_count
2 : read customer_master record
IF not EOF THEN
increment cust_master_count
3
: read product_master record
IF not EOF THEN
increment product_master_count
ENDIF
ENDCASE
END
3. Temporal
Cohesion - merupakan elemen-elemen yang terlibat dalam berbagai
kegiatan yang mempunyai hubungan dalam waktu. Tidak memperhatikan urutan.
Contoh :
Initialisation
buka file
transaksi
total_transaksi
= 0
total_pen = 0
baris = 30
no = 0
hal = 0
END
4. Procedural
Cohesion - merupakan hubungan antara elemen yang satu dfengan yang
lainnya dikarenakan urutan statement. Satu kegiatan dengan kegiatan lain tidak
berhubungan. Elemennya dapat dipecahkan menjadi Functional.
Contoh :
Read_student_record_and_total_student_Ages
set number_record
to zero
set total_age to
zero
read
student_record
DO WHILE more
records exist
add
age to total_age
add
1 to number_records
read
student_record
ENDDO
print
number_record, total_age
END
5.
Communicational Cohesion -
ciri-cirinya adalah kegiatan yang dilakukan lebih dari satu, menggunakan data
yang sama, dan dapat dijadikan Functional.
Contoh :
Proses_perhitungan
C = A + B
D = A – 1
E = A * B
F = A / B
G = A mod B
END
6. Sequential
Cohesion – mempunyai pekerjaan yang beruntun. Kegiatan yang
dilakukan lebih dari satu, hasil dari kegiatan sebelumnya menjadi masukan bagi
kegiatan selanjutnya, dapat juga di pecah menjadi Functional.
Contoh :
Menghitung_penjualan
IF JB > 300
THEN
POT
= JB * HB * 0.15
ELSE
IF
JB > 200 THEN
POT = JB * HB * 0.1
ELSE
IF JB > 100 THEN
POT = JB * HB * 0.05
ELSE
POT = 0
ENDIF
ENDIF
ENDIF
P = JB * HB –
POT
TP = TP + P
END
7. Functional
Cohesion - hanya mempunyai satu tugas, menghasilkan satu hasil
atau satu parameter output, bisa satu atau lebih parameter input.
Contoh :
Menghitung_pajak_penjualan
IF harga > 5000
THEN
pajak = harga * 0.25
ELSE
IF
harga > 4000 THEN
pajak = harga * 0.2
ELSE
IF harga > 3000 THEN
pajak = harga * 0.15
ELSE
IF harga > 2000 THEN
pajak = harga * 0.1
ELSE
pajak = 0
ENDIF
ENDIF
ENDIF
ENDIF
END
COUPLING
Coupling adalah
ketergantungan antar modul satu dengan modul lainnya.Jadi Coupling adalah
sebuah ukuran untuk mengukur berapa kuatnya sebuah element terhubung dengan
element lain.Ukuran ini dipakai juga untuk mengetahui seberapa kuat informasi
yang dimilikinya,atau ketergantungan ke elemen lain.Bayangkan jika anda
mengubah 1 modul A tapi karena modul lain memiliki ketergatungan terhadap modul
A,maka efek perubahan ini mungkin saja punya impact terhadap modul lain.Karena
itu low coupling sangat penting dalam perencanaan software.
Jenis-jenis Coupling :
1.
No direct coupling
Modul 1 dan Modul2 adalah subordinate terhadap modul2
yang berbeda.Sehinnga masing2 tidak berhubungan dan tidak ada penggandengan
langsung yang terjadi antara keduanya.
2.
Data Coupling
Dua buah modul dari sistem mempunyai data coupling
jika komunikasi dari modul2 ini dilakukan lewat suatu data.Data dapat berupa
sebuah item data tunggal atau elemen dari suatu larik(array).atau
ketika modul berbagi data melalui, misalnya, parameter. Setiap datum adalah
bagian dasar, dan ini adalah data hanya bersama (misalnya, melewati sebuah
integer ke fungsi yang menghitung akar kuadrat).
3.
Stamp
coupling
Dua buah modul dikatakan stamp coupling jika kedua
modul ini berkomunikasi lewat suatuukelompok item data. Kelompok item
data dapattberupa suatu record yang terdiri dari beberapa field atau larik yang
terdiri dari beberapa elemen.uah modul
dikatakan stamp coupling modul ini berkomunikasi lewat item data.
Kelompok item data suatu record yang terdiri dari field atau larik yang terdiri
dari beberapa elemen.
4.
Control coupling
Control
coupling ditandai dengan adanya jalur kendali antara modul. Modul satu
mengendalikan aliran
data di modul yang lain, kendali dilakukananmelalui
flag yang mengontrol logika intern modullyang
lain.
5.
External coupling
Tingakt
coupling yang terjadi bila modul-modul terikat pada lingjkungan luar (external)
dari perangkat lunak.
6.
Common coupling
Modul-modul
dikatakan common coupling jika modul-modul tersebut menggunakan data yang di
simpan di area memori yang sama.
7.
Content coupling
Content
coupling terjadi jika suatu modul mengguankan data atau mengendalikan informasi
dari modul yang lain tanpa berhubungan lewat suatu parameter. Contet coupling
dapat juga terjadi jika percabangan di lakukan ke tengah-tengah suatu modul
yang lain.
Content coupling (tinggi)
Konten
kopling (juga dikenal sebagai kopling patologis) adalah ketika satu
modul memodifikasi atau bergantung pada kerja internal modul lain (misalnya,
mengakses data lokal dari modul lain).
Oleh
karena itu mengubah cara modul kedua menghasilkan data (lokasi, jenis, waktu)
akan menyebabkan perubahan modul tergantung.
Kopling
umum (juga dikenal sebagai kopling Global) adalah ketika dua modul
berbagi data global yang sama (misalnya, variabel global).
Mengubah
sumber daya bersama berarti mengubah semua modul menggunakannya.
8.
Eksternal kopling
Kopling
Eksternal terjadi ketika dua modul berbagi format data eksternal dikenakan,
protokol komunikasi, atau interface.This perangkat pada dasarnya terkait dengan
komunikasi ke alat eksternal dan perangkat.
9.
Pengendalian kopling
Kopling
Control adalah satu modul mengendalikan aliran lain, dengan melewatkan
informasi tentang apa yang harus dilakukan (misalnya, lewat bendera apa-to-do).
Subclass
Coupling
Menggambarkan
hubungan antara anak dan induknya. Anak terhubung ke induknya, tetapi orangtua
tidak terhubung ke anak.
Temporal
kopling
Ketika
tindakan dua yang digabungkan bersama menjadi satu modul hanya karena mereka
kebetulan terjadi pada saat yang sama.
Dalam karya terbaru berbagai
konsep kopling lainnya telah diselidiki dan digunakan sebagai indikator untuk
prinsip-prinsip modularisasi berbeda yang digunakan dalam praktek [2] .
Kekurangan
Sistem erat cenderung
menunjukkan karakteristik perkembangan berikut, yang sering dianggap sebagai
kelemahan:
- Perubahan dalam satu modul biasanya memaksa efek riak perubahan modul lainnya.
- Perakitan modul mungkin memerlukan lebih banyak usaha dan / atau waktu karena ketergantungan antar modul meningkat.
- Sebuah modul tertentu mungkin lebih sulit untuk menggunakan kembali dan / atau tes karena modul tergantung harus disertakan.
Masalah kinerja
Apakah longgar atau ketat
ditambah, kinerja sistem sering dikurangi dengan penciptaan pesan dan
parameter, transmisi, terjemahan (misalnya marshaling) dan overhead
interpretasi. Lihat -event pemrograman
.
Pesan
Penciptaan Overhead dan Kinerja
Karena
semua pesan dan parameter harus memiliki makna tertentu untuk dikonsumsi
(yaitu, menghasilkan alur logis dimaksudkan dalam penerima), mereka harus
diciptakan dengan makna tertentu. Menciptakan apapun pesan membutuhkan overhead
baik CPU atau penggunaan memori. Membuat pesan nilai tunggal integer (yang
mungkin menjadi acuan untuk struktur string, array atau data) memerlukan
overhead kurang dari membuat pesan yang cukup rumit seperti SOAP pesan. Pesan
yang lebih panjang memerlukan lebih CPU dan memori untuk menghasilkan. Untuk
mengoptimalkan kinerja runtime, panjang pesan harus diminimalkan dan makna
pesan harus dimaksimalkan.
Pesan Transmisi
Overhead dan Kinerja
Karena
pesan harus dikirimkan secara penuh untuk mempertahankan arti lengkap,
transmisi pesan harus dioptimalkan. Pesan yang lebih panjang memerlukan lebih
CPU dan memori untuk mengirim dan menerima. Juga, ketika diperlukan, penerima
harus memasang kembali pesan ke keadaan semula untuk benar-benar menerimanya.
Oleh karena itu, untuk mengoptimalkan kinerja runtime, panjang pesan harus
diminimalkan dan makna pesan harus dimaksimalkan.
Pesan
Terjemahan Overhead dan Kinerja
Pesan
protokol dan pesan sendiri sering mengandung informasi tambahan (yaitu, paket,
struktur, definisi dan informasi bahasa). Oleh karena itu, penerima sering
perlu menerjemahkan pesan ke dalam bentuk yang lebih halus dengan menghapus
karakter tambahan dan informasi struktur dan / atau dengan mengubah nilai dari
satu jenis yang lain. Apapun terjemahan meningkatkan CPU dan / atau overhead
memori. Untuk mengoptimalkan kinerja runtime, bentuk pesan dan isi harus
dikurangi dan disempurnakan untuk memaksimalkan arti dan mengurangi
penerjemahan.
Pesan
Interpretasi Overhead dan Kinerja
Semua
pesan harus ditafsirkan oleh penerima. Pesan sederhana seperti bilangan bulat
mungkin tidak membutuhkan proses tambahan untuk ditafsirkan. Namun, pesan yang
kompleks seperti SOAP pesan
membutuhkan parser dan sebuah transformator string untuk mereka untuk
menunjukkan makna yang dimaksud. Untuk mengoptimalkan kinerja runtime, pesan
harus disempurnakan dan dikurangi untuk meminimalkan overhead interpretasi.
Solusi
Salah satu pendekatan untuk
kopling penurunan adalah desain fungsional
, yang berusaha untuk membatasi tanggung jawab bersama modul fungsi, kopling
meningkat antara dua kelas A dan B jika:
- A memiliki atribut yang mengacu pada (adalah tipe) B.
- Sebuah panggilan pada jasa dari B objek.
- A memiliki sebuah metode yang merujuk B (melalui tipe kembali atau parameter).
- Adalah subclass dari (atau menerapkan) B kelas.
Kopling rendah mengacu pada
hubungan di mana satu modul berinteraksi dengan modul lain melalui antarmuka
yang sederhana dan stabil dan tidak perlu khawatir dengan pelaksanaan internal
modul lain (lihat Menyembunyikan
Informasi ).
Sistem seperti CORBA atau COM
memungkinkan objek untuk berkomunikasi satu sama lain tanpa harus mengetahui
apapun tentang implementasi obyek lain. Kedua sistem ini bahkan memungkinkan
untuk objek berkomunikasi dengan objek ditulis dalam bahasa lain.
Coupling dibandingkan Kohesi
Coupling dan Kohesi
adalah dua istilah yang sangat sering terjadi bersamaan. Bersama-sama mereka
berbicara tentang kualitas modul seharusnya. Coupling berbicara tentang saling
ketergantungan antara berbagai modul sementara kohesi menggambarkan bagaimana
fungsi-fungsi terkait dalam sebuah modul berada. Kohesi yang rendah menunjukkan
bahwa modul melakukan tugas-tugas yang tidak sangat terkait satu sama lain dan
karenanya dapat menciptakan masalah sebagai modul menjadi besar. ang data di modul yang
lain, ke
Dikutip dari berbagai sumber yang mengontrol logika intern la
0 komentar:
Posting Komentar
hi..All..
thanks for reading my post.
i would be glad if you give me a
comment about this post