Dalam konteks software engineering, desain berfokus pada empat area: data, arsitektur, interface, dan komponen. Desain tingkat komponen terjadi setelah iterasi pertama dari desain arsitektural. Tujuan dari desain tingkat komponen adalah untuk membuat desain model dari analisis dan model arsitektural. Hal ini berguna untuk menemukan errors yang sulit ditemukan dan diperbaiki nantinya (mengurangi waktu yang terbuang untuk debugging). Desain tingkat komponen dapat direpresentasikan menggunakan grafik, tabel, atau tulisan (gambar 2 & 3) yang dapat diterjemahkan ke dalam source code. Desain struktur data, interface, dan algoritma harus mematuhi panduan (guidelines) yang ada untuk membantu menghindari kesalahan (errors).

  1. Design Model di Software Engineering
  2. Notasi Design Grafik
  3. Notasi Design Tabel
  4. Perbedaan Cohession dan Coupling
  5. Coupling ( Good Software  >> Low Coupling )
  6. Cohession ( Good Software >> High Cohession )

SOFTWARE COMPONENT

Komponen software adalah sebuah modular building block untuk software komputer. Komponen software adalah bagian yang modular, deployable (dapat di-deploy), dan replaceable (dapat diganti) dari suatu sistem yang mengenkapsulasi implementasi dan mengekspos sekumpulan interface. Suatu komponen berkomunikasi dan berkolaborasi dengan komponen lainnya serta entities yang ada di luar batasan sistem.

Ada 3 view yang berbeda dari suatu komponen:

1. Object Oriented View
Komponen dilihat sebagai suatu kumpulan dari satu atau lebih class yang saling berkolaborasi. Setiap kelas problem domain (contoh: analisis) dan kelas infrastruktur (contoh: desain) dijelaskan (elaborate) untuk mengidentifikasi semua atribut dan operasi yang diterapkan pada implementasinya. Hal ini juga termasuk mendefinisikan interface yang mengijinkan kelas-kelas untuk berkomunikasi dan berkolaborasi. Aktivitas elaboration ini diterapkan pada setiap komponen yang didefinisikan sebgai bagian dari desain arsitektural. Setelah selesai, langkah-langkah berikut ini dilakukan:

  1. Memberi penjelasan lebih jauh tentang setiap atribut, operasi dan interface
  2. Menspesifikasi struktur data yang cocok untuk setiap atribut
  3. Mendesain detail algoritma yang dibutuhkan untuk mengimplementasi processing logic yang berhubungan dengan setiap operasi
  4. Mendesain mekanisme yang dibutuhkan untuk mengimplementasi interface untuk memasukkan messaging yang terjadi antara

2. Conventional VIew
Komponen dilihat sebagai elemen fungsional (contoh: modul) dari suatu program yang menggabungkan processing logic, struktur data internal yang dibutuhkan untuk mengimplementasi processing logic, dan interface yang mengijinkan komponen untuk dipanggil dan dikirimkan data. Suatu komponen berfungsi sebagai salah satu dari peranan berikut:

  1. Control component:    mengkoordinasi    panggilan                semua            problem                 domain component
  2. Problem domain component: mengimplementasi fungsi lengkap atau parsial yang dibutuhkan oleh customer
  3. Infrastructure component: bertanggung jawab untuk fungsi yang mendukung processing yang dibutuhkan di problem domain

Conventional software component diturunkan dari data flow diagram (DFD) pada model analisis:

  1. Setiap transform bubble (modul) yang direpresentasikan di tingkat terendah pada DFD dipetakan ke dalam hierarki
  2. Control component ditempatkan dekat di bagian atas
  3. Problem domain component dan infrastructure component berpindah ke bawah
  4. Ketergantungan fungsional diupayakan diantara transform

Setelah hal ini selesai, beberapa langkah berikut ini dilakukan untuk setiap transform:

  1. Definisikan interface untuk transform (urutan, jumlah, dan tipe parameter)
  2. Definisikan struktur data yang digunakan secara internal oleh transform
  3. Desain algoritma yang digunakan oleh transform (menggunakan pendekatan stepwise refinement)

3. Process-Related VIew
Fokusnya terletak pada pembuatan sistem dari komponen yang sudah ada dan di- maintain dalam library, daripada membuat setiap komponen dari awal. Setelah arsitektur software dibuat, komponen kemudian dipilih dari library dan digunakan untuk mengisi arsitektur. Karena komponen dalam library telah dibuat untuk digunakan kembali, setiap komponen mengandung deskripsi lengkap interface-nya, fungsi yang dilakukan, komunikasi dan kolaborasi yang dibutuhkan.

To be continued ke Software Engineering : Design Engineeing- Component Level Design ( Part 2 )

REFERENCES

Pressman, R. 2001. Software Engineering: A Practitioner’s Approach 5th Edition. McGraw-Hill Pressman, R. 2005. Software Engineering: A Practitioner’s Approach 6th Edition. McGraw-Hill Puntambekar, A.A. 2008. Software Engineering 1st Edition. Technical Publications Pune Mishra, Jibitesh. 2012. Software Engineering. Pearson

Author : Yuliana Muksin, Kevin Yatshen, Maurice M. Tin, Leonardo A. Wijanto, Gary R. L. Tobing
Supervised By : Irma Kartika W, S.Kom., M.T.I