1. 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.
Abstraksi dan penyembunyian
informasi dipakai untuk mendefinisikan modul-modul di dalam
lingkungan software architecture
Di dalam structure software, suatu modul mungkin
dikategorikan sebagai
berikut :
1. Sequential module dieksekusi tanpa interupsi yang
dilakukan software
aplikasi
2. Incremental module dapat diinterupsi oleh program
aplikasi dan
kemudian kembali ke titik semula setelah interupsi
selesai
3. Parallel module dieksekusi secara simultan dengan
modul lain dalam
lingkungan Concurrent multiprocessor
Output desain software : Model desain dan dokumentasi spesifikasi desain
Modularitas Konsep
modularitas dalam perangkat lunak komputer telah didukung selama hampir empat
dekade. Arsitektur perangkat lunak memasukkan modularitas, dimana perangkat
lunak dibagi ke dalam komponen-komponen bernama dan dapat dipanggil terpisah.
Lima kriteria yang memungkinkan kita mengevaluasi suatu metode desain dengan
merujuk pada kemampuannya untuk menentukan sistem modular yang efektif.
Dekomposibilitas modular. Bila metode desain memberikan suatu mekanisme
sistematis untuk melakukan dekomposisi terhadap masalah menjadi
submasalah-submasalah, maka metode desain akan mengurangi kompleksitas
keseluruhan masalah, sehingga dapat mencapai solusi modular efektif.
Komposabilitas modular, bila suatu metode desain memungkinkan komponen-komponen
desain (reusable) yang ada untuk dipasang ke dalam sebuah sistem baru, maka
metode desain akan menghasilkan suatu solusi modular yang tidak berulang.
Kemampuan pemahaman modular, jika sebuah modul dapat dipahami sebagai unit yang
berdiri sendiri (tanpa referensi dari modul lain), maka modul akan lebih mudah
dibangun dan diubah. Kontinuitas modular, Bila perubahan kecil pada persyaratan
sistem menyebabkan perubahan kecil pada modul individual dan bukan perubahan
sistem secara luas, maka pengaruh dari efek samping yang disebabkan oleh
kesalahan oleh perubahan dapat diminimalkan. Proteksi modular, Bila terjadi
kondisi yang menyimpang pada modul tersebut, pengaruh dari efek samping yang
disebabkan oleh kesalahan akan diminimalkan. Akhirnya penting untuk dicatat
bahwa suatu sistem dapat di desain secara modular, bahkan juga bila
implementasinya harus “monolistik”. Ada situasi (misalnya perangkat lunak real
time, perangkat lunak embedded) di mana kecepatan dan subrutin, prosedur) tidak
dapat diterima. Dalam situasi seperti itu, perangkat lunak dapat dan harus
dirancang dengan modularitas sebagai sebuah filosofi yang diprogram tidak
kelihatan modular pada saat pertamanya, filosofi harus dijaga, dan program
tersebut akan memberikan manfaat sistem modular.
Desain Modular, atau
" modularitas dalam desain", adalah pendekatan (teori dan
praktik desain) yang membagi sistem menjadi bagian-bagian yang lebih kecil yang
disebut modul atau tergelincir , yang dapat dibuat secara independen
dan kemudian digunakan dalam sistem yang berbeda. Desain modular dapat dikarakteristikkan dengan partisi fungsional
ke dalam diskrit, modul yang dapat digunakan kembali;penggunaan yang ketat dari
antarmuka modular yang terdefinisi dengan baik; dan memanfaatkan standar industri untuk antarmuka. Dalam konteks ini, modularitas berada pada level komponen, dan
memiliki dimensi tunggal, slottability komponen. Sistem modular dengan modularitas terbatas ini umumnya dikenal
sebagai sistem platform yang menggunakan komponen modular. Contohnya adalah platform Otomatis atau port USB di platform CE.
Dalam
teori desain, ini berbeda dari sistem modular yang memiliki modularitas dimensi
dan derajat kebebasan yang lebih tinggi. Desain sistem modular tidak
memiliki masa pakai yang berbeda dan menunjukkan fleksibilitas setidaknya dalam
tiga dimensi. Dalam hal ini sistem modular sangat jarang di
pasar. Sistem arsitektur Mero adalah contoh terdekat
dari sistem modular dalam hal produk keras di pasar.Platform senjata, terutama
di Aerospace, cenderung merupakan sistem modular, di mana badan pesawat
dirancang untuk ditingkatkan berkali-kali selama masa pakainya, tanpa membeli
sistem yang sama sekali baru. Modularitas paling baik
ditentukan oleh dimensi yang dipengaruhi atau derajat kebebasan dalam bentuk,
biaya, atau operasi.
Modularitas menawarkan
manfaat seperti pengurangan biaya (karena kurang kustomisasi),
interoperabilitas, waktu belajar lebih pendek, fleksibilitas dalam desain,
augmentasi atau pembaruan yang dibatasi secara non-generasi (menambahkan solusi
baru dengan hanya memasukkan modul baru), dan pengecualian. Modularitas dalam sistem platform, menawarkan manfaat dalam
mengembalikan margin ke skala, mengurangi biaya pengembangan produk, mengurangi
biaya O&M, dan waktu ke pasar. Sistem platform telah
memungkinkan penggunaan luas desain sistem di pasar dan kemampuan bagi
perusahaan produk untuk memisahkan tingkat siklus produk dari jalur
R&D.Kelemahan terbesar dengan sistem modular adalah desainer atau insinyur. Sebagian besar desainer kurang terlatih dalam analisis sistem dan
sebagian besar insinyur kurang terlatih dalam desain. Kompleksitas desain sistem modular secara signifikan lebih tinggi
daripada sistem platform dan membutuhkan ahli dalam desain dan strategi produk
selama fase konsepsi pengembangan sistem. Fase itu harus mengantisipasi
arah dan tingkat fleksibilitas yang diperlukan dalam sistem untuk memberikan
manfaat modular. Sistem modular dapat dipandang
sebagai desain yang lebih lengkap atau holistik sedangkan sistem platform lebih
reduksionis, membatasi modularitas komponen.Desain modular yang lengkap atau
holistik membutuhkan tingkat keterampilan dan kecanggihan desain yang jauh
lebih tinggi daripada sistem platform yang lebih umum.
2. Konsep Desain – Modularity
Konsep modularity telah dipakai selama hampir
empat dekade. Software dibagi komponen dengan nama dan alamat yang berbeda,
disebut modul.
Meyer [MEY88] mendefenisikan lima kriteria yang memungkinkan kita mengevaluasi sebuah metode desain dengan bergantung kepada kemampuannya mendefenisikanfive sebuah sistem modular efektif:
Modular decomposability: sebuah metode desain menyediakan sebuah mekanisme sistematik untuk men- decompose atau membagi masalah ke sub-masalahΓ mengurangi kompleksitas dan mendapatkan modularity
Modular composability: sebuah metode desain memungkinkan komponen desain yang telah ada dirakit ke sebuah sistem baru.
Meyer [MEY88] mendefenisikan lima kriteria yang memungkinkan kita mengevaluasi sebuah metode desain dengan bergantung kepada kemampuannya mendefenisikanfive sebuah sistem modular efektif:
Modular decomposability: sebuah metode desain menyediakan sebuah mekanisme sistematik untuk men- decompose atau membagi masalah ke sub-masalahΓ mengurangi kompleksitas dan mendapatkan modularity
Modular composability: sebuah metode desain memungkinkan komponen desain yang telah ada dirakit ke sebuah sistem baru.
Modular understandability: sebuah modul dapat dimengerti
sebagai sebuah unit yang berdiri sendiri dan akan lebih mudah membangun dan
mengubahnya.
Modular continuity: perubahan kecil terhadap kebutuhan sistem
menghasilkan perubahan pada tiap modul, dibanding perubahan system-wide.
Modular protection: sebuah kondisi aberrant terjadi dalam sebuah modul dan efeknya di-constrain dalam modul.
Modular protection: sebuah kondisi aberrant terjadi dalam sebuah modul dan efeknya di-constrain dalam modul.
3. Dokumen Desain
Data desain mengubah
informasi menjadi struktur data untuk mengimplemntasikan software. Data desain
di buat berdasarkan data dictionary dan ERD. Architectural desain
mengidentifikasikan relasi antara elemen-elemen struktural utama, pola desain
yang digunakan untuk mencapai kebutuhan yang ditentukan untuk sistem dan
batasan batasan yang mempengaruhi bagaimana desain arsitektural ini diterapkan.
Desain ini berdasarkan spesifikasi sistem, model analis (bagian DFD) dan
interksi antara subsistem. Interface desain menjelaskan bagaimana software
berkomunikasi dalam dirinya, dengan sistem yang bertukar informasi denganya,
dan dengan manusia yang menggunakannya.
Dalam software engginering, dapat dibuat 2 kelas model yaitu:
yaitu model persyaratan dan model desain
Model Persyaratan
mempresentasikan persyaratan konsumen dengan menggambarkan software dalam 3 domain yang berbeda yaitu domain informasi, domain fungsional, domain perilaku
elemen model persyaratan
yaitu model persyaratan dan model desain
Model Persyaratan
mempresentasikan persyaratan konsumen dengan menggambarkan software dalam 3 domain yang berbeda yaitu domain informasi, domain fungsional, domain perilaku
elemen model persyaratan
a.) Elemen Scenario-based
Sistem ini dijelaskan dari sudut pandang pengguna
menggunakan pendekatan berbasis scenario
Elemen Scenario-based dari model persyaratan seringkali
menjadi bagian pertama dari model yang dikembangkan. Dengan demikian, mereka berfungsi sebagai input untuk pembuatan
elemen pemodelan lainnya.
b.) Elemen Class-based.
Setiap penggunaan skenario menyiratkan satu set objek
yang dimanipulasi sebagai aktor yang berinteraksi dengan system. Obyek ini dikategorikan ke dalam kelas- yaitu sekumpulan
hal-hal yang memiliki atribut yang sama dan perilaku yg umum. Kelas perlu berkolaborasi dengansatu sama lain dan
hubungan dan interaksi antara kelas.
c.) Elemen Perilaku
Perilaku sistem berbasis komputer dapat dapat memiliki
efek mendalam pada desain yang dipilih dan pendekatan implementasi yang
diterapkan. Oleh karena itu, model persyaratan harus menyediakan
unsur-unsur pemodelan yang menggambarkan perilaku.
d) Elemen Flow-oriented.
Informasi berubah karena mengalir melalui sebuah sistem
berbasis komputer. Sistem ini menerima masukan dalam berbagai bentuk,
menggunakan fungsi untuk mengubahnya, dan menghasilkan output dalam berbagai
bentuk.
Model Desain
Merepresentasikan karakteristik
software yang membantu praktisi membangun dengan efektif: arsitektur, user
interface dan detail component-level. Model desain perangkat lunak dianalog dengan rencana
arsitek untuk rumah. Dimulai dengan mewakili keseluruhan yang akan dibangun
(misalnya, render tiga dimensi dari rumah) dan perlahan-lahan menyempurnakan
hal untuk memberikan bimbingan untuk membangun setiap detail (misalnya, tata
letak pipa). Demikian pula, model desain yang dibuat untuk perangkat
lunak menyediakan berbagai pandangan yang berbeda dari sistem.
Desain adalah apa yang engineer ingin lakukan. Adalah tempat di mana kreativitas aturan
pemangku kepentingan persyaratan, persyaratan bisnis, dan pertimbangan teknis
semua menjadi perumusan suatu produk atau sistem.