Selasa, 09 Juli 2019

Desain Modular Efektif, Model Desain, Dan Dokumen Desain

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






Input desain software : Model analisa kebutuhan dan dokumentasi spesifikasi
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.
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.


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


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 dikembangkanDengan 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 systemObyek ini dikategorikan ke dalam kelas- yaitu sekumpulan hal-hal yang memiliki atribut yang sama dan perilaku yg umumKelas 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 diterapkanOleh karena itu, model persyaratan harus menyediakan unsur-unsur pemodelan yang menggambarkan perilaku.

d) Elemen Flow-oriented.
Informasi berubah karena mengalir melalui sebuah sistem berbasis komputerSistem 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-levelModel desain perangkat lunak dianalog dengan rencana arsitek untuk rumahDimulai 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 lakukanAdalah tempat di mana kreativitas aturan pemangku kepentingan persyaratan, persyaratan bisnis, dan pertimbangan teknis semua menjadi perumusan suatu produk atau sistem.

Tidak ada komentar:

Posting Komentar