Software Arsitektur
Setiap sistem yang kompleks terdiri dari subsistem yang berinteraksi di bawah kendali desain sistem sehingga sistem menyediakan perilaku yang diharapkan.
5.1 Peran Software Arsitektur
Apa arsitektur? Secara umum, arsitektur sistem memberikan pandangan tingkat yang sangat tinggi dari bagian-bagian sistem dan bagaimana mereka berhubungan untuk membentuk seluruh sistem. Artinya, arsitektur partisi sistem di bagian logis sehingga setiap bagian dapat dipahami secara independen, dan kemudian menggambarkan sistem dalam hal bagian-bagian dan hubungan antara bagian-bagian tersebut.
Setiap sistem yang kompleks dapat dipartisi dalam banyak cara different, dan masing-masing memiliki jenis different bagian logis. Hal yang sama berlaku untuk sistem-tidak ada struktur yang unik dari sistem yang dapat dijelaskan oleh arsitektur perangkat lunak ada banyak kemungkinan struktur.
Setiap sistem yang kompleks terdiri dari subsistem yang berinteraksi di bawah kendali desain sistem sehingga sistem menyediakan perilaku yang diharapkan.
5.1 Peran Software Arsitektur
Apa arsitektur? Secara umum, arsitektur sistem memberikan pandangan tingkat yang sangat tinggi dari bagian-bagian sistem dan bagaimana mereka berhubungan untuk membentuk seluruh sistem. Artinya, arsitektur partisi sistem di bagian logis sehingga setiap bagian dapat dipahami secara independen, dan kemudian menggambarkan sistem dalam hal bagian-bagian dan hubungan antara bagian-bagian tersebut.
Setiap sistem yang kompleks dapat dipartisi dalam banyak cara different, dan masing-masing memiliki jenis different bagian logis. Hal yang sama berlaku untuk sistem-tidak ada struktur yang unik dari sistem yang dapat dijelaskan oleh arsitektur perangkat lunak ada banyak kemungkinan struktur.
Beberapa
penting menggunakan deskripsi
arsitektur perangkat lunak yaitu :
1. Memahami dan komunikasi. Untuk berkomunikasi arsitektur berbagai pemangku kepentingan, yang di include pengguna yang akan menggunakan sistem, klien yang ditugaskan membangun pembangunan sistem.
1. Memahami dan komunikasi. Untuk berkomunikasi arsitektur berbagai pemangku kepentingan, yang di include pengguna yang akan menggunakan sistem, klien yang ditugaskan membangun pembangunan sistem.
2. Reuse. Jika seseorang ingin membangun sebuah produk perangkat lunak di mana komponen yang ada dapat digunakan kembali, maka arsitektur menjadi titik kunci di mana menggunakan kembali pada tingkat tinggi diputuskan. Arsitektur harus dipilih sedemikian rupa bahwa komponen yang harus digunakan kembali dapat cocok dengan baik dan bersama-sama dengan komponen lain yang dapat dikembangkan.
3. Konstruksi
dan Evolution. Arsitektur partisi sistem menjadi bagian-bagian, beberapa
partisi arsitektur yang disediakan dapat digunakan secara alami untuk membangun
sistem, yang juga mensyaratkan bahwa sistem akan dipecah menjadi bagian-bagian
sehingga tim different (atau individu) secara terpisah dapat bekerja pada
bagian.
4. Analisis. Hal ini sangat diinginkan jika ditentukan beberapa sifat penting tentang be-havior dari sistem sebelum sistem ini benar-benar dibangun. Hal ini akan memungkinkan para desainer untuk mempertimbangkan alternatif dan memilih salah satu yang terbaik akan sesuai dengan kebutuhan.
5.2 Arsitektur Views
Ada pandangan umum yang muncul bahwa tidak ada arsitektur yang unik dari sistem.
Dalam perangkat lunak, gambar-gambar different disebut views. Dengan berfokus hanya pada beberapa aspek dari sistem, pandangan mengurangi kompleksitas dan pembaca harus berurusan dengan pada suatu waktu, sehingga membantu pemahaman sistem dan analisis.
Pandangan menjelaskan struktur sistem. Kami akan menggunakan dua pandangan konsep dan struktur bergantian. Kami juga akan menggunakan tampilan arsitektur istilah untuk merujuk ke tampilan. Sebagian besar dari pandangan diusulkan umumnya termasuk salah satu dari ketiga jenis:
- Modul
- Komponen dan konektor
- Alokasi
Dalam pandangan modul, sistem ini dipandang sebagai kumpulan unit kode, masing-masing menerapkan beberapa bagian dari fungsi sistem
Pandangan alokasi berfokus pada bagaimana unit software different dialokasikan ke sumber daya seperti perangkat keras, sistem file, dan orang-orang. Artinya, pandangan alokasi menentukan hubungan antara unsur-unsur perangkat lunak dan elemen lingkungan di mana sistem perangkat lunak dijalankan. Mereka mengekspos sifat struktural seperti dimana proses berjalan pada prosesor mana, dan bagaimana file sistem diatur pada sistem file.
Dalam arti pandangan memberikan struktur bangunan sebagai pandangan utama dan hampir selalu digunakan, dan tampilan lain bergantung pada pandangan ini secara substansial. Pandangan juga menangkap properti yang paling penting untuk dianalisis pada tahap awal, yaitu organisasi ruang.
5.3 Komponen dan Connector View
C & C lihat arsitektur sistem memiliki dua utama elemen-komponen dan konektor. Komponen biasanya elemen komputasi atau toko data yang memiliki beberapa kehadiran selama pelaksanaan sistem. Konektor menentukan sarana interaksi antara komponen-komponen ini. A C & C pandangan sistem denda komponen, dan komponen yang terhubung ke mana dan melalui konektor apa. A C & C lihat menggambarkan struktur runtime dari sistem-apa ada komponen ketika sistem mengeksekusi dan bagaimana mereka berinteraksi selama eksekusi. C & C struktur pada dasarnya adalah sebuah grafik, dengan compo-motivasional sebagai node dan konektor sebagai tepi.
5.3.1 Komponen
Komponen umumnya unit perhitungan atau menyimpan data dalam sistem. Sebuah komponen memiliki nama, yang umumnya dipilih untuk mewakili peran
komponen atau fungsi melakukan. Nama ini juga menyediakan identitas unik untuk komponen, yang diperlukan untuk referensi rincian tentang komponen dalam dokumen pendukung, sebagai C & C menggambar hanya akan menampilkan nama-nama komponen.
5.3.2 Konektor
Komponen perbedaan dari sistem cenderung berinteraksi sistem sementara dalam operasi untuk menyediakan layanan yang diharapkan dari sistem. Setelah semua, komponen yang ada untuk memberikan bagian dari layanan dan fitur dari sistem, dan ini harus dikombinasikan untuk memberikan fungsionalitas sistem secara keseluruhan. Untuk menyusun sistem dari komponen-komponennya, informasi tentang interaksi antar komponen yang diperlukan.
Interaksi antar komponen dapat melalui cara sederhana yang didukung oleh infrastruktur pelaksanaan proses yang mendasari sistem operasi. Misalnya, komponen dapat berinteraksi dengan yang lain menggunakan mekanisme panggilan prosedur (konektor), yang disediakan oleh lingkungan runtime untuk bahasa pemrograman. Namun, interaksi mungkin melibatkan mekanisme yang lebih kompleks juga. Contoh mekanisme seperti panggilan prosedur jauh, port TCP / IP, dan protokol seperti HTTP. Mekanisme ini memerlukan cukup infrastruktur runtime yang mendasari, serta pemrograman khusus.
5.4 Gaya Arsitektur untuk C & C View
Ini harus jelas bahwa sistem different akan memiliki arsitektur different. Ada beberapa arsitektur umum yang telah diamati di banyak sistem dan tampaknya mewakili struktur umum yang berguna untuk masalah arsitektur kelas. Ini disebut gaya arsitektur. Sebuah gaya mendefinisikan keluarga arsitektur yang memenuhi kendala gaya yang . Pada bagian ini kita membahas beberapa gaya umum untuk C & C tampilan yang dapat berguna untuk satu set besar masalah. Gaya ini dapat memberikan ide-ide untuk menciptakan tampilan arsitektur untuk masalah yang dihadapi. Gaya juga dapat dikombinasikan untuk membentuk tampilan yang lebih kaya.
5.4.1 Pipa dan Filter
Pipa-dan-filter bergaya arsitektur cocok untuk sistem yang terutama melakukan transformasi data dimana beberapa input data yang diterima dan tujuan dari sistem ini adalah untuk menghasilkan beberapa data output dengan sesuai mengubah input data. Sebuah sistem yang menggunakan arsitektur pipa-dan-filter mencapai transformasi yang diinginkan dengan menerapkan jaringan transformasi yang lebih kecil dan menyusun mereka dengan cara sedemikian rupa sehingga bersama-sama transformasi yang diinginkan secara keseluruhan tercapai.
5.4.2 Style Data Bersama
Dalam gaya ini, ada dua jenis repositori komponen-data dan accesor data. Komponen tipe data repositori yang mana toko-toko sistem data bersama-ini bisa menjadi sistem file atau database. Komponen-komponen ini pro-vide penyimpanan yang handal dan permanen, mengurus setiap kebutuhan sinkronisasi untuk akses bersamaan, dan memberikan dukungan akses data. Komponen accesor Data jenis akses data dari repositori, melakukan perhitungan pada data yang diperoleh, dan jika mereka ingin berbagi hasil dengan komponen lainnya, menempatkan hasil kembali penyimpanan tersebut. Dengan kata lain, accesor adalah elemen computa-nasional yang menerima data mereka dari repositori dan menyimpan data mereka dalam repositori juga. komponen ini tidak secara langsung berkomunikasi satu sama lain-repositori data yang komponen adalah sarana komunikasi dan transfer data antara mereka.
5.4.3 Client-Server Style
Dalam gaya ini, ada dua komponen jenis-klien dan server. A con-regangan dari gaya ini adalah bahwa klien hanya dapat berkomunikasi dengan server, dan tidak dapat berkomunikasi dengan klien lainnya. Komunikasi antara komponen klien dan komponen server diprakarsai oleh klien ketika klien mengirimkan permintaan untuk beberapa layanan yang server mendukung. server menerima permintaan di pelabuhan didefinisikan, melakukan layanan, dan kemudian mengembalikan hasil perhitungan untuk klien yang meminta layanan.
5.4.4 Beberapa Styles Lain
Publish-Subscribe Style Dalam gaya ini, ada dua jenis komponen. Salah satu jenis komponen berlangganan seperangkat peristiwa didefinisikan. Jenis lain dari compo-motivasional menghasilkan atau mempublikasikan acara. Menanggapi peristiwa ini, komponen yang telah menerbitkan niat mereka untuk memproses acara, dipanggil. jenis gaya yang paling alami dalam kerangka antarmuka pengguna, di mana banyak peristiwa didefinisikan (seperti klik mouse) dan komponen yang ditugaskan untuk peristiwa ini. Ketika peristiwa itu terjadi, komponen terkait dijalankan. Seperti halnya dengan kebanyakan konektor, itu adalah tugas dari infrastruktur runtime untuk memastikan bahwa jenis konektor (yaitu, mempublikasikan-berlangganan) didukung. Gaya ini dapat dilihat sebagai kasus khusus dari gaya papan, kecuali bahwa aspek repositori tidak digunakan.
Peer-to-peer gaya, atau gaya berorientasi objek Jika kita mengambil gaya client-server, dan generalisasi setiap komponen menjadi klien serta server, maka kita memiliki gaya ini. Dalam gaya ini, komponen yang rekan-rekan dan komponen dapat meminta layanan dari komponen lainnya. Model perhitungan berorientasi objek mewakili gaya ini dengan baik. Jika kita melihat komponen sebagai objek, dan konektor sebagai metode doa, maka kita memiliki gaya ini. Model ini adalah salah satu yang terutama didukung melalui konektor middleware seperti CORBA atau NET.
5.5 Mendokumentasikan Desain Arsitektur
Sebuah dokumen yang menjelaskan arsitektur harus berisi sebagai berikut:
- Sistem dan arsitektur konteks
- Deskripsi
views arsitektur
- Di dokumentasi views
Aspek pertama yang dokumen arsitektur adalah identifikasi pemangku kepentingan dan keprihatinan mereka. Diagram konteks yang menetapkan ruang lingkup sistem, batas-batasnya, aktor kunci yang berinteraksi dengan sistem, dan sumber dan tenggelam data juga bisa sangat berguna. Sebuah diagram konteks sering diwakili dengan menunjukkan sistem di tengah, dan menunjukkan hubungan dengan orang dan sistem, termasuk sumber dan tenggelam data.
Untuk mendukung dokumentasi, diperlukan untuk tampilan diagram. dokumen pendukung ini harus memiliki beberapa atau semua hal berikut:
- Elemen Katalog. Memberikan informasi lebih lanjut tentang unsur-unsur yang ditampilkan dalam representasi utama. Selain menjelaskan tujuan dari elemen, juga harus menjelaskan antarmuka elemen '(ingat bahwa semua elemen memiliki antarmuka di mana mereka berinteraksi dengan unsur-unsur lain).
- Di dokumentasi views
Aspek pertama yang dokumen arsitektur adalah identifikasi pemangku kepentingan dan keprihatinan mereka. Diagram konteks yang menetapkan ruang lingkup sistem, batas-batasnya, aktor kunci yang berinteraksi dengan sistem, dan sumber dan tenggelam data juga bisa sangat berguna. Sebuah diagram konteks sering diwakili dengan menunjukkan sistem di tengah, dan menunjukkan hubungan dengan orang dan sistem, termasuk sumber dan tenggelam data.
Untuk mendukung dokumentasi, diperlukan untuk tampilan diagram. dokumen pendukung ini harus memiliki beberapa atau semua hal berikut:
- Elemen Katalog. Memberikan informasi lebih lanjut tentang unsur-unsur yang ditampilkan dalam representasi utama. Selain menjelaskan tujuan dari elemen, juga harus menjelaskan antarmuka elemen '(ingat bahwa semua elemen memiliki antarmuka di mana mereka berinteraksi dengan unsur-unsur lain).
- Arsitektur Dasar Pemikiran. Arsitektur memberikan alasan untuk seleksi elemen different dan menyusun mereka. Bagian ini juga dapat memberikan beberapa diskusi tentang alternatif yang dipertimbangkan dan mengapa mereka ditolak.
- Perilaku. Pandangan memberikan informasi struktural. Tidak mewakili perilaku aktual atau eksekusi.
- Informasi lainnya. Ini mungkin termasuk keterangan tentang semua keputusan-keputusan yang belum diambil selama pembuatan arsitektur tetapi sengaja untuk masa depan.
5.6
Mengevaluasi Arsitektur
Arsitektur sistem perangkat lunak berdampak pada kunci nonfungsional quality atribut seperti modifiability, kinerja, kehandalan, mudah dibawa, dll. Pada beberapa sifat ini, arsitektur memiliki dampak yang jauh lebih signifikan dari desain dan pilihan coding. Jelas kemudian, mengevaluasi arsitektur yang diusulkan untuk sifat ini dapat memiliki dampak yang menguntungkan pada perubahan proyek-apa arsitektur yang diperlukan untuk memenuhi tujuan yang diinginkan untuk atribut ini dapat dilakukan selama desain arsitektur itu sendiri.
Ada banyak atribut kualitas nonfungsional. Tidak semua arsitektur secara signifikan. Beberapa atribut yang arsitektur memiliki dampak yang signifikan adalah kinerja, keandalan dan ketersediaan, keamanan (beberapa aspek itu), dapat dimodifikasi, usabilitas, dan portabilitas. Atribut seperti kegunaan yang hanya sedikit efektiv oleh arsitektur.
Bagaimana seharusnya arsitektur yang diusulkan dievaluasi untuk atribut ini? Untuk beberapa atribut seperti kinerja dan kehandalan, adalah menggunakan teknik untuk membangun model formal seperti jaringan antrian dan menggunakannya untuk menilai nilai atribut. Namun, model ini memerlukan informasi di luar deskripsi arsitektur, umumnya dalam bentuk eksekusi, dan keandalan masing-masing komponen.
Arsitektur sistem perangkat lunak berdampak pada kunci nonfungsional quality atribut seperti modifiability, kinerja, kehandalan, mudah dibawa, dll. Pada beberapa sifat ini, arsitektur memiliki dampak yang jauh lebih signifikan dari desain dan pilihan coding. Jelas kemudian, mengevaluasi arsitektur yang diusulkan untuk sifat ini dapat memiliki dampak yang menguntungkan pada perubahan proyek-apa arsitektur yang diperlukan untuk memenuhi tujuan yang diinginkan untuk atribut ini dapat dilakukan selama desain arsitektur itu sendiri.
Ada banyak atribut kualitas nonfungsional. Tidak semua arsitektur secara signifikan. Beberapa atribut yang arsitektur memiliki dampak yang signifikan adalah kinerja, keandalan dan ketersediaan, keamanan (beberapa aspek itu), dapat dimodifikasi, usabilitas, dan portabilitas. Atribut seperti kegunaan yang hanya sedikit efektiv oleh arsitektur.
Bagaimana seharusnya arsitektur yang diusulkan dievaluasi untuk atribut ini? Untuk beberapa atribut seperti kinerja dan kehandalan, adalah menggunakan teknik untuk membangun model formal seperti jaringan antrian dan menggunakannya untuk menilai nilai atribut. Namun, model ini memerlukan informasi di luar deskripsi arsitektur, umumnya dalam bentuk eksekusi, dan keandalan masing-masing komponen.
5.7 Ringkasan
- Arsitektur dari sistem perangkat lunak menyediakan tampilan tingkat tinggi dalam hal bagian dari sistem dan bagaimana mereka berhubungan untuk membentuk seluruh sistem.
- Tergantung pada bagaimana sistem dipartisi, lihat arsitektur sistem terdapat perbedaan. Akibatnya, arsitektur sistem perangkat lunak didefinisikan sebagai struktur dari sistem yang terdiri dari unsur perangkat lunak, sifat eksternal terlihat mereka, dan hubungan di antara mereka.
- Arsitektur memfasilitasi pengembangan sistem berkualitas tinggi. Hal ini juga memungkinkan analisis dari banyak sistem seperti kinerja yang tergantung sebagian besar pada arsitektur harus dilakukan di awal siklus hidup perangkat lunak.
- Ada tiga pandangan arsitektur utama dari sistem-modul, komponen dan konektor, dan alokasi. Dalam pandangan modul, sistem ini dipandang sebagai struktur modul pemrograman seperti paket, kelas, fungsi, dll dalam komponen dan konektor (C & C) lihat, sistem adalah kumpulan dari entitas runtime disebut komponen, yang saling berinteraksi melalui konektor. Pandangan alokasi menggambarkan bagaimana unit software dialokasikan ke sumber daya perangkat keras dalam sistem.
- C & C adalah yang paling umum, dan sering pusat dari deskripsi arsitektur. Pandangan ini sering digambarkan oleh diagram blok menentukan perbedaan komponen dan konektor antara komponen.
- Ada beberapa gaya umum untuk C & C tampilan yang telah ditemukan berguna untuk membuat arsitektur ini tampilan untuk sistem. Ini termasuk pipa dan filter, data bersama, client-server, mempublikasikan-berlangganan, peer to peer, dan proses gaya komunikasi. Masing-masing gaya ini menggambarkan jenis komponen dan konektor yang ada dan kendala pada bagaimana mereka digunakan.
- Pipa dan filter memiliki satu jenis komponen (filter) dan satu jenis konektor (pipa) dan komponen dapat dihubungkan melalui pipa.
- Gaya client-server memiliki dua jenis komponen (client dan server) dan ada satu konektor (permintaan / reply). Seorang klien hanya dapat berkomunikasi dengan server, dan interaksi yang diprakarsai oleh klien.
- Dalam gaya data bersama dua jenis komponen yang repositori dan data accesor. accesor Data membaca / menulis repositori dan berbagi informasi di antara mereka sendiri melalui repositori.
- Arsitektur membentuk dasar untuk sistem dan sisanya dari kegiatan desain dan pengembangan, dan perlu didokumentasikan dengan baik, dokumen arsitektur yang tepat harus menjelaskan konteks di mana arsitektur dirancang, pandangan arsitektur yang diciptakan, dan bagaimana pandangan berhubungan satu sama lain. Deskripsi arsitektur harus menentukan jenis different elemen dan perilaku eksternal mereka.
- Arsitektur harus dievaluasi untuk melihat bahwa itu memenuhi persyaratan. Pendekatan yang umum adalah untuk melakukan evaluasi subjektif sehubungan dengan sifat yang diinginkan.
- Arsitektur dari sistem perangkat lunak menyediakan tampilan tingkat tinggi dalam hal bagian dari sistem dan bagaimana mereka berhubungan untuk membentuk seluruh sistem.
- Tergantung pada bagaimana sistem dipartisi, lihat arsitektur sistem terdapat perbedaan. Akibatnya, arsitektur sistem perangkat lunak didefinisikan sebagai struktur dari sistem yang terdiri dari unsur perangkat lunak, sifat eksternal terlihat mereka, dan hubungan di antara mereka.
- Arsitektur memfasilitasi pengembangan sistem berkualitas tinggi. Hal ini juga memungkinkan analisis dari banyak sistem seperti kinerja yang tergantung sebagian besar pada arsitektur harus dilakukan di awal siklus hidup perangkat lunak.
- Ada tiga pandangan arsitektur utama dari sistem-modul, komponen dan konektor, dan alokasi. Dalam pandangan modul, sistem ini dipandang sebagai struktur modul pemrograman seperti paket, kelas, fungsi, dll dalam komponen dan konektor (C & C) lihat, sistem adalah kumpulan dari entitas runtime disebut komponen, yang saling berinteraksi melalui konektor. Pandangan alokasi menggambarkan bagaimana unit software dialokasikan ke sumber daya perangkat keras dalam sistem.
- C & C adalah yang paling umum, dan sering pusat dari deskripsi arsitektur. Pandangan ini sering digambarkan oleh diagram blok menentukan perbedaan komponen dan konektor antara komponen.
- Ada beberapa gaya umum untuk C & C tampilan yang telah ditemukan berguna untuk membuat arsitektur ini tampilan untuk sistem. Ini termasuk pipa dan filter, data bersama, client-server, mempublikasikan-berlangganan, peer to peer, dan proses gaya komunikasi. Masing-masing gaya ini menggambarkan jenis komponen dan konektor yang ada dan kendala pada bagaimana mereka digunakan.
- Pipa dan filter memiliki satu jenis komponen (filter) dan satu jenis konektor (pipa) dan komponen dapat dihubungkan melalui pipa.
- Gaya client-server memiliki dua jenis komponen (client dan server) dan ada satu konektor (permintaan / reply). Seorang klien hanya dapat berkomunikasi dengan server, dan interaksi yang diprakarsai oleh klien.
- Dalam gaya data bersama dua jenis komponen yang repositori dan data accesor. accesor Data membaca / menulis repositori dan berbagi informasi di antara mereka sendiri melalui repositori.
- Arsitektur membentuk dasar untuk sistem dan sisanya dari kegiatan desain dan pengembangan, dan perlu didokumentasikan dengan baik, dokumen arsitektur yang tepat harus menjelaskan konteks di mana arsitektur dirancang, pandangan arsitektur yang diciptakan, dan bagaimana pandangan berhubungan satu sama lain. Deskripsi arsitektur harus menentukan jenis different elemen dan perilaku eksternal mereka.
- Arsitektur harus dievaluasi untuk melihat bahwa itu memenuhi persyaratan. Pendekatan yang umum adalah untuk melakukan evaluasi subjektif sehubungan dengan sifat yang diinginkan.
Tidak ada komentar:
Posting Komentar