Arsitektur perangkat lunak vs Arsitektur sistem vs diagram Kelas?

11

Saya cukup bingung tentang ketentuan berikut:

Arsitektur perangkat lunak

Arsitektur aplikasi perangkat lunak adalah proses mendefinisikan solusi terstruktur yang memenuhi semua persyaratan teknis dan operasional, sambil mengoptimalkan atribut kualitas umum seperti kinerja, keamanan, dan pengelolaan. Ini melibatkan serangkaian keputusan berdasarkan berbagai faktor, dan masing-masing keputusan ini dapat memiliki dampak yang besar pada kualitas, kinerja, pemeliharaan, dan keberhasilan aplikasi secara keseluruhan. ( microsoft )

Sistem arsitektur

Arsitektur sistem adalah model konseptual yang mendefinisikan struktur, perilaku, dan lebih banyak pandangan dari suatu sistem. 1 Deskripsi arsitektur adalah deskripsi formal dan representasi sistem, diorganisasikan sedemikian rupa sehingga mendukung penalaran tentang struktur dan perilaku sistem ( wiki )

Diagram kelas

Dalam rekayasa perangkat lunak, diagram kelas dalam Unified Modeling Language (UML) adalah jenis diagram struktur statis yang menggambarkan struktur suatu sistem dengan menunjukkan kelas sistem, atributnya, operasi (atau metode), dan hubungan antar objek. ( wiki )

Jika saya membaca deskripsi ini, semuanya menggambarkan interaksi antara berbagai modul aplikasi. Namun apa perbedaan di antara ini?
Apa yang saya pikirkan / coba bandingkan istilah-istilah ini :

  • Class diagram bukan bentuk arsitektur sistem, karena deskripsi di atas ( structure, behavior, and more views of a system) menyiratkan bahwa tidak ada detail implementasi yang hadir dalam arsitektur sedangkan diagram kelas menggambarkan implementasi dan mungkin lebih ke arah desain daripada arsitektur?
  • Saya pikir arsitektur sistem adalah arsitektur yang juga mencakup interaksi eksternal (seperti database) sedangkan arsitektur perangkat lunak berfokus pada aplikasi itu sendiri?
KingBoomie
sumber
1
Mungkin Class Diagram adalah hasil dari kegiatan Arsitektur Perangkat Lunak, dengan cara yang sama seperti cetak biru bangunan adalah hasil dari arsitek bangunan ...
FrustratedWithFormsDesigner

Jawaban:

7

Arsitektur sistem menggambarkan komponen-komponen sistem. Misalnya, Anda mungkin memiliki sistem entri pesanan yang terdiri dari:

Ujung Depan Web, Layanan Lapisan Bisnis, dan Penyimpanan Data.

Jadi, Anda harus menampilkan diagram tingkat tinggi ini.

Arsitektur aplikasi perangkat lunak menggambarkan arsitektur komponen tertentu. Misalnya, salah satu komponen sistem entri pesanan adalah ujung depan web. Arsitektur aplikasi akan menunjukkan berbagai lapisan dan interaksi komponen itu. UI yang responsif, Pengendali Tampilan Model, info layanan web, cara penebangan akan dilakukan, dll. Ini memberi dan gagasan tentang masing-masing komponen yang akan dibangun dan lapisan dalam komponen yang merupakan bagian dari sistem yang lebih besar.

biasanya diagram yang lebih rinci menunjukkan bagaimana komponen itu akan dibuat dibuat.

Akhirnya, Class Diagram menyelam lebih dalam ke arsitektur aplikasi perangkat lunak. Misalnya, seperti apa kontrak untuk tampilan antarmuka logging? Bagaimana View akan berinteraksi dengan Controller ... dan sebagainya. Ini lebih lanjut akan merinci arsitektur aplikasi perangkat lunak untuk komponen tertentu dari sistem.

Seharusnya banyak dari ini jika komponen tertentu besar dan kompleks.

Jon Raynor
sumber
2

Beberapa poin tambahan:

  • Sistem adalah istilah yang paling luas dan biasanya tingkat tertinggi, paling tidak terperinci.
  • Bagian dari sistem dapat diklasifikasikan sebagai perangkat lunak.
  • Bagian dari perangkat lunak dapat dijelaskan menggunakan diagram kelas.

Last but not least: arsitektur adalah tentang pilihan satu kali yang sulit atau tidak mungkin untuk kembali nanti tanpa membangun kembali semuanya. Definisi terbaik arsitektur, yang membedakannya dari desain, adalah "segala sesuatu yang benar-benar mahal untuk diubah". Jadi dalam arsitektur, Anda biasanya akan menemukan pilihan untuk bahasa pemrograman, sistem operasi, merek basis data relasional, apa pun yang mengunci Anda ke jenis solusi. Jadi apa yang diklasifikasikan sebagai arsitektur juga tergantung pada sistem itu sendiri dan bagaimana fleksibel dalam hal aspek.

Martin Maat
sumber
0

Diagram kelas sangat berbeda dari dua istilah lainnya - mereka menunjukkan apa yang ditawarkan kelas ke kelas lain dan bagaimana mereka berinteraksi satu sama lain. Namun, istilah 'arsitektur sistem' dan 'arsitektur perangkat lunak' menimbulkan kebingungan dan memerlukan klarifikasi lebih lanjut.

Penting untuk disadari bahwa 'sistem' tidak hanya mengacu pada komponen perangkat lunak tetapi juga komponen lain seperti komponen perangkat keras. Jika suatu sistem hanya berisi sistem perangkat lunak, maka tidak ada perbedaan antara kedua istilah tersebut. Namun, jelas, jika suatu sistem mengandung komponen non-perangkat lunak lain maka arsitektur perangkat lunak akan sangat berbeda dari arsitektur sistem sistem.

Tushar
sumber
Haruskah arsitektur sistem juga mengandung sesuatu seperti modul GUI? @Tushar
KingBoomie
Ya, mungkin dan tidak perlu komponen perangkat lunak. @RickBeeloo
Tushar
Tetapi Anda membutuhkan kelas dalam perangkat lunak untuk menerima input pengguna dan menampilkan sesuatu kepada pengguna? Jadi itu harus menjadi komponen perangkat lunak juga?
KingBoomie
Ya dan Tidak. Tidak semua konsumen sistem perangkat lunak adalah manusia :)
Tushar