Orthogonality
Dalam kejuruteraan perisian, sistem dianggap ortogonal jika mengubah salah satu komponennya mengubah keadaan komponen itu sahaja.
Sebagai contoh, pertimbangkan program dengan tiga pemboleh ubah: a, b, dan c. Mengubah nilai a tidak boleh mengubah nilai b atau c, dengan syarat mereka bebas.
Properti ini sangat penting dalam proses penyahpepijatan program kerana seseorang bergantung pada pengurangan jumlah bahagian program yang bergerak untuk mengenal pasti punca masalah.
Lihat petikan berikut dari "Seni pengaturcaraan UNIX" Eric S. Raymond:
Orthogonality adalah salah satu sifat terpenting yang dapat membantu menjadikan reka bentuk yang ringkas menjadi padat. Dalam reka bentuk ortogonal semata-mata, operasi tidak mempunyai kesan sampingan; setiap tindakan (sama ada panggilan API, permintaan makro, atau operasi bahasa) mengubah satu perkara tanpa mempengaruhi yang lain. Terdapat satu dan satu cara untuk mengubah setiap harta sistem apa pun yang anda kendalikan.Orthogonality adalah prinsip reka bentuk perisian untuk menulis komponen dengan cara mengubah satu komponen tidak mempengaruhi komponen lain. Ini adalah gabungan dua prinsip lain, iaitu kohesi kuat dan gandingan longgar.
Ia sebenarnya adalah istilah yang dipinjam dari matematik. Contohnya, dua garis adalah ortogonal jika berserenjang. Dalam reka bentuk perisian, dua komponen adalah ortogonal jika perubahan pada satu tidak mempengaruhi yang lain.
Mengaplikasikan konsep ini ke kelas atau bahagian kod yang lain akan menyebabkan gandingan kurang. Untuk menjadi dua kelas ortogonal tidak boleh bergantung pada pelaksanaan satu sama lain. Mereka juga tidak dapat berkongsi data global. Mengubah dalaman satu kelas tidak mempengaruhi kelas yang lain. Komponen harus bebas dan hanya mempunyai satu tanggungjawab.
Pertimbangkan kaedah yang membaca senarai nombor dari fail dan mengembalikannya mengikut urutan. Sekarang keperluan berubah dan nombor ada dalam pangkalan data. Mengubah kaedah ini untuk mengakses pangkalan data akan menyebabkan kod pelanggan berubah. Sekiranya ini adalah dua kaedah yang berbeza, maka sumber baru tidak akan mempengaruhi kaedah penyortiran. Hanya kod pelanggan yang perlu mengetahui sumber nombor.
Kesatuan yang kuat
Di dalam komponen perisian, kod harus dihubungkan dengan kuat. Ini adalah petunjuk bahawa kod dibahagikan dengan betul.
Sekiranya komponen mempunyai dua atau lebih bahagian yang agak terputus, itu mungkin menunjukkan bahawa bahagian tersebut mestilah dalam komponen yang berbeza, atau dengan sendirinya.
Gandingan longgar
Antara komponen perisian, mesti ada sedikit sambungan. Sekiranya dua komponen digabungkan dengan kuat, ini mungkin menunjukkan bahawa mereka harus menjadi satu komponen, atau mereka perlu dibahagikan secara berbeza menjadi lebih banyak komponen.