Dalam bidang Software Development, istilah “software architecture” dan “software design” sering digunakan secara bergantian, sehingga menimbulkan kebingungan di kalangan praktisi dan stakeholder. Namun, terlepas dari kesamaannya, kedua konsep ini mencakup aspek berbeda dalam proses software development.

Arsitektur dan desin software dalam software engineering dapat disamakan dengan arsitektur dan desain bangunan konvensional. Saat merancang struktur fisik, arsitek menciptakan konsep sementara perancang (atau insinyur) mengerjakan detail spesifik yang diperlukan untuk mewujudkan proyek tersebut.

Software Architecture:

Software architecture mengacu pada proses penerjemahan karakteristik software, seperti keamanan (security), fleksibilitas (flexibility), skalabilitas (scalability), dan reusability, ke dalam solusi terstruktur yang selaras dengan kebutuhan bisnis. Hal ini berfokus pada pembuatan struktur dasar dan infrastruktur tingkat tinggi dari software.

Software Design

Software design adalah tentang bagaimana software architecture dapat diimplementasikan ke dalam sistem secara keseluruhan. Software design mempelajari perencanaan coding yang mendetail, menangani masalah seperti interfaces, module, function, dan class scope.

Singkatnya seorang software architect berkepentingan dengan pertanyaan-pertanyaan ‘gambaran besar’ mengenai apa proyek tersebut, bagaimana tampilannya, apa fungsinya, dan sebagainya, sedangkan seorang software designer berkaitan dengan bagaimana membuat ide-ide dari software architect berhasil dieksekusi. Seluruh software architecture selesai sebelum proses pengcodingan sebenarnya dimulai.

 

Referensi