Strategi Desain

Strategi Top-Down

Strategi top-down menggunakan pendekatan modular untuk mengembangkan desain sistem. Disebut demikian karena dimulai dari modul tingkat atas atau tingkat tertinggi dan bergerak menuju modul tingkat terendah.

Dalam teknik ini, modul tingkat tertinggi atau modul utama untuk pengembangan perangkat lunak diidentifikasi. Modul utama dibagi menjadi beberapa submodul atau segmen yang lebih kecil dan lebih sederhana berdasarkan tugas yang dilakukan oleh masing-masing modul. Kemudian, setiap submodul dibagi lagi menjadi beberapa submodul dari tingkat yang lebih rendah. Proses membagi setiap modul menjadi beberapa submodul berlanjut hingga modul tingkat terendah, yang tidak dapat dibagi lagi, tidak diidentifikasi.

Strategi Bottom-Up

Strategi Bottom-Up mengikuti pendekatan modular untuk mengembangkan desain sistem. Disebut demikian karena dimulai dari modul tingkat paling bawah atau paling dasar dan bergerak menuju modul tingkat tertinggi.

Dalam teknik ini,

  • Modul di tingkat paling dasar atau paling bawah diidentifikasi.

  • Modul-modul ini kemudian dikelompokkan berdasarkan fungsi yang dilakukan oleh masing-masing modul untuk membentuk modul tingkat yang lebih tinggi berikutnya.

  • Kemudian, modul-modul ini selanjutnya digabungkan untuk membentuk modul tingkat yang lebih tinggi berikutnya.

  • Proses pengelompokan beberapa modul yang lebih sederhana menjadi modul tingkat yang lebih tinggi berlanjut hingga modul utama proses pengembangan sistem tercapai.

Desain Terstruktur

Desain terstruktur adalah metodologi berbasis aliran data yang membantu dalam mengidentifikasi masukan dan keluaran dari sistem yang berkembang. Tujuan utama dari desain terstruktur adalah untuk meminimalkan kompleksitas dan meningkatkan modularitas suatu program. Desain terstruktur juga membantu dalam mendeskripsikan aspek fungsional dari sistem.

Dalam perancangan terstruktur, spesifikasi sistem bertindak sebagai dasar untuk secara grafis mewakili aliran data dan urutan proses yang terlibat dalam pengembangan perangkat lunak dengan bantuan DFD. Setelah mengembangkan DFD untuk sistem perangkat lunak, langkah selanjutnya adalah mengembangkan bagan struktur.

Modularisasi

Desain terstruktur membagi program menjadi modul kecil dan independen. Ini diatur secara top down dengan detail yang ditampilkan di bawah.

Jadi, desain terstruktur menggunakan pendekatan yang disebut modularisasi atau dekomposisi untuk meminimalkan kompleksitas dan mengelola masalah dengan membaginya menjadi segmen-segmen yang lebih kecil.

Advantages

  • Antarmuka kritis diuji terlebih dahulu.
  • Ini memberikan abstraksi.
  • Ini memungkinkan banyak programmer untuk bekerja secara bersamaan.
  • Ini memungkinkan kode digunakan kembali.
  • Ini memberikan kendali dan meningkatkan moral.
  • Itu membuat identifikasi struktur lebih mudah.

Bagan Terstruktur

Bagan terstruktur adalah alat yang direkomendasikan untuk merancang sistem modular, top down yang menentukan berbagai modul pengembangan sistem dan hubungan antara setiap modul. Ini menunjukkan modul sistem dan hubungan mereka di antara mereka.

Ini terdiri dari diagram yang terdiri dari kotak persegi panjang yang mewakili modul, panah penghubung, atau garis.

  • Control Module - Ini adalah modul tingkat tinggi yang mengarahkan modul tingkat rendah, disebut subordinate modules.

  • Library Module - Ini adalah modul yang dapat digunakan kembali dan dapat dipanggil dari lebih dari satu titik di bagan.

Kami memiliki dua pendekatan berbeda untuk merancang bagan terstruktur -

  • Transform-Centered Structured Charts - Mereka digunakan ketika semua transaksi mengikuti jalur yang sama.

  • Transaction–Centered Structured Charts - Mereka digunakan ketika semua transaksi tidak mengikuti jalur yang sama.

Tujuan Menggunakan Diagram Alir Struktur

  • Untuk mendorong desain top-down.

  • Untuk mendukung konsep modul dan mengidentifikasi modul yang sesuai.

  • Untuk menunjukkan ukuran dan kompleksitas sistem.

  • Untuk mengidentifikasi jumlah fungsi dan modul yang siap diidentifikasi dalam setiap fungsi.

  • Untuk menggambarkan apakah setiap fungsi yang dapat diidentifikasi adalah entitas yang dapat dikelola atau harus dipecah menjadi komponen yang lebih kecil.

Faktor yang Mempengaruhi Kompleksitas Sistem

Untuk mengembangkan kualitas perangkat lunak sistem yang baik, perlu dikembangkan desain yang baik. Oleh karena itu, fokus utama dalam mengembangkan desain sistem adalah kualitas desain perangkat lunak. Desain perangkat lunak yang berkualitas baik adalah yang meminimalkan kerumitan dan pengeluaran biaya dalam pengembangan perangkat lunak.

Dua konsep penting terkait pengembangan sistem yang membantu dalam menentukan kompleksitas sistem adalah coupling dan cohesion.

Kopel

Kopling adalah ukuran kemandirian komponen. Ini mendefinisikan tingkat ketergantungan setiap modul pengembangan sistem di satu sama lain. Dalam praktiknya, ini berarti semakin kuat kopling antar modul dalam suatu sistem, semakin sulit pula untuk mengimplementasikan dan memelihara sistem tersebut.

Setiap modul harus memiliki antarmuka yang sederhana dan bersih dengan modul lain, dan jumlah minimum elemen data harus dibagi antar modul.

Kopling Tinggi

Jenis sistem ini memiliki interkoneksi dengan unit program yang bergantung satu sama lain. Perubahan pada satu subsistem menyebabkan dampak tinggi pada subsistem lainnya.

Kopling Rendah

Jenis sistem ini terdiri dari komponen yang independen atau hampir independen. Perubahan dalam satu subsistem tidak mempengaruhi subsistem lainnya.

Ukuran Kopling

  • Content Coupling - Jika satu komponen benar-benar memodifikasi komponen lain, maka komponen yang dimodifikasi sepenuhnya bergantung pada modifikasi satu.

  • Common Coupling - Ketika jumlah kopling dikurangi dengan mengatur desain sistem sehingga data dapat diakses dari penyimpanan data umum.

  • Control Coupling - Ketika satu komponen melewati parameter untuk mengontrol aktivitas komponen lain.

  • Stamp Coupling - Ketika struktur data digunakan untuk meneruskan informasi dari satu komponen ke komponen lainnya.

  • Data Coupling - Ketika hanya data yang dilewatkan maka komponen dihubungkan dengan kopling ini.

Kohesi

Kohesi adalah ukuran kedekatan hubungan antar komponennya. Ini mendefinisikan jumlah ketergantungan komponen modul satu sama lain. Dalam praktiknya, ini berarti perancang sistem harus memastikan bahwa -

  • Mereka tidak membagi proses penting menjadi modul yang terfragmentasi.

  • Mereka tidak mengumpulkan bersama proses yang tidak terkait yang direpresentasikan sebagai proses di DFD menjadi modul yang tidak berarti.

Modul terbaik adalah modul yang kohesif secara fungsional. Modul terburuk adalah modul yang secara kebetulan kohesif.

Derajat keterpaduan yang paling buruk

Kohesi kebetulan ditemukan dalam komponen yang bagian-bagiannya tidak terkait dengan yang lain.

  • Logical Cohesion - Di sinilah beberapa fungsi atau elemen data yang terkait secara logis ditempatkan dalam komponen yang sama.

  • Temporal Cohesion - Ini adalah ketika komponen yang digunakan untuk menginisialisasi sistem atau mengatur variabel melakukan beberapa fungsi secara berurutan, tetapi fungsi tersebut terkait dengan waktu yang terlibat.

  • Procedurally Cohesion - Ini adalah saat fungsi dikelompokkan bersama dalam sebuah komponen hanya untuk memastikan urutan ini.

  • Sequential Cohesion - Ini adalah ketika keluaran dari satu bagian komponen adalah masukan ke bagian berikutnya.