6.1 Penguraian

Walaupun terdapat pelbagai kriteria, tugas utama dalam pembangunan sistem besar ialah tugas mengurangkan kerumitan sistem . Untuk mengurangkan kerumitan, tiada apa-apa selain pembahagian kepada bahagian yang belum dicipta.

Kadang-kadang, untuk kesederhanaan, ini dipanggil prinsip "bahagi dan takluk", tetapi, dari sudut pandangan arkitek perisian, kita bercakap tentang penguraian hierarki .

Sistem yang kompleks mesti dibina daripada sebilangan kecil subsistem yang lebih ringkas, setiap satunya, dibina daripada bahagian yang lebih kecil, dan seterusnya sehingga bahagian terkecil cukup mudah untuk difahami dan dicipta secara langsung.

Penguraian

Berita baiknya ialah penyelesaian ini bukan sahaja satu-satunya yang diketahui, tetapi juga universal. Selain mengurangkan kerumitan, ia pada masa yang sama menyediakan fleksibiliti sistem , kebolehskalaan yang baik dan peningkatan daya tahan dengan menduplikasi bahagian kritikal.

Sehubungan itu, apabila ia datang untuk membina seni bina program, mencipta strukturnya, ini bermakna menguraikan program kepada subsistem, perkhidmatan, lapisan, subrutin dan modul berfungsi dan mengatur interaksi mereka antara satu sama lain dan dunia luar.

Dan perkara yang paling berharga di sini ialah: lebih bebas subsistem, lebih selamat untuk menumpukan pada pembangunan setiap daripadanya secara berasingan pada satu masa tertentu dan tidak bimbang tentang semua bahagian lain.

6.2 Faedah seni bina modular

Menggunakan prinsip penguraian hierarki membolehkan anda menyingkirkan huru-hara dalam beribu-ribu kelas kod anda. Ingat bahawa kod anda dipecahkan kepada pakej (pakej) dan subpakej? Ini adalah salah satu ungkapan untuk penguraian hierarki.

Program anda bertukar daripada sekumpulan kelas kepada satu set perpustakaan dan modul yang berinteraksi antara satu sama lain mengikut peraturan yang jelas dan mudah. Ini, seterusnya, membolehkan anda mengawal kerumitannya, dan juga memberi anda peluang untuk mendapatkan semua faedah yang biasanya dikaitkan dengan konsep seni bina yang baik.

Berikut adalah yang paling asas:

  • Skalabiliti - keupayaan untuk mengembangkan sistem dan meningkatkan prestasinya dengan menambah modul baharu.
  • Kebolehselenggaraan - menukar satu modul tidak memerlukan menukar modul lain.
  • Kebolehtukaran modul (Swappability) - modul boleh diganti dengan mudah dengan yang lain.
  • Pengujian Unit – Unit boleh ditanggalkan daripada semua yang lain dan diuji/dibaiki .
  • Kebolehgunaan semula - modul boleh digunakan semula dalam program lain dan persekitaran lain.
  • Penyelenggaraan - program yang dibahagikan kepada modul lebih mudah difahami dan diselenggara.

Boleh dikatakan bahawa memecahkan masalah kompleks kepada serpihan mudah adalah matlamat semua teknik reka bentuk . Dan istilah "seni bina" dalam kebanyakan kes hanya merujuk kepada hasil bahagian sedemikian ditambah "beberapa keputusan reka bentuk yang, setelah diterima pakai, sukar untuk diubah" (Martin Fowler "Seni Bina Aplikasi Perisian Perusahaan").

Oleh itu, kebanyakan definisi dalam satu bentuk atau yang lain bermuara kepada yang berikut:

" Seni bina mengenal pasti komponen utama sistem dan cara ia berinteraksi. Ia juga merupakan pilihan keputusan sedemikian yang ditafsirkan sebagai asas dan tidak tertakluk kepada perubahan pada masa hadapan ."

" Seni bina ialah organisasi sistem, yang terkandung dalam komponennya, hubungannya antara satu sama lain dan dengan persekitaran. Sistem ialah satu set komponen yang digabungkan untuk melaksanakan fungsi tertentu ."

Oleh itu, seni bina yang baik adalah, pertama sekali, seni bina modular / blok . Untuk mendapatkan seni bina yang baik, anda perlu tahu cara menguraikan sistem dengan betul. Ini bermakna adalah perlu untuk memahami penguraian yang dianggap "betul" dan cara terbaik untuk melaksanakannya.