Sabtu, 05 November 2016

Tugas 4 REKAYASA PERANGKAT LUNAK



SOFTWARE ARSITEKTUR

        Setiap sistem yang kompleks terdiri dari subsistem yang berinteraksi di bawah kendali desain sistem sehingga sistem menyediakan perilaku yang diharapkan. Sebagai sistem perangkat lunak yang semakin menjadi didistribusikan dan lebih kompleks, arsitektur menjadi langkah penting dalam membangun sistem.Arsitektur juga merupakan tempat awal ketika properti seperti keandalan dan kinerja dapat dievaluasi untuk sistem, sebuah kemampuan yang semakin menjadi penting.

5.1 Peran Software Arsitektur
        Secara umum, arsitektur sistem memberikan pandangan tingkat yang sangat tinggi dari bagian-bagian dari sistem dan bagaimana mereka berhubungan untuk membentuk seluruh sistem. Setiap sistem yang kompleks dapat dipartisi dalam banyak cara berbeda. Hal yang sama berlaku untuk sistem-tidak ada struktur yang unik dari sistem.
        Karena kemungkinan ini memiliki beberapa struktur, salah satu definisi yang paling banyak diterima dari arsitektur perangkat lunak adalah bahwa arsitektur perangkat lunak sistem adalah struktur dari sistem, yang terdiri software el-ements, sifat eksternal terlihat dari hubungan mereka.

Deskripsi arsitektur sistem karena itu akan menggambarkan di perubahan struktur dari sistem. Pertanyaan alami berikutnya adalah mengapa harus tim membangun sistem perangkat lunak untuk beberapa pelanggan tertarik dalam menciptakan struktur dari sistem yang diusulkan. beberapa penting kegunaan software arsitektur:

1.    Memahami dan komunikasi. Deskripsi arsitektur adalah utamanya untuk berkomunikasi arsitektur untuk berbagai pemangku kepentingan, yang di-clude pengguna yang akan menggunakan sistem, klien yang ditugaskan sistem, pembangun yang akan membangun sistem, dan, tentu saja. Melalui penjelasan ini para pemangku kepentingan memperoleh pemahaman tentang beberapa sifat makro dari sistem dan bagaimana sistem bermaksud untuk mengisi persyaratan fungsional dan kualitas.

2.    Jika seseorang ingin membangun sebuah produk perangkat lunak di mana komponen yang ada dapat digunakan kembali, maka arsitektur menjadi titik kunci. arsitektur harus mepilih sedemikian rupa bahwa komponen yang harus digunakan kembali dapat cocok dengan baik dan bersama-sama dengan komponen lain yang dapat dikembangkan. Arsitektur juga facili-tates menggunakan kembali antara produk-produk yang keluarga produk serupa dan bangunan sehingga bagian-bagian umum ini di berbeda tetapi produk serupa dapat digunakan kembali.
 




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 secara terpisah dapat bekerja pada bagian berbeda. bagian-bagian yang ditentukan dalam arsitektur relatif indepen-dent (ketergantungan antara bagian-bagian yang datang melalui hubungan mereka), mereka dapat dibangun secara mandiri.

4.    Analisis. Hal ini sangat diinginkan jika dapat ditentukan beberapa sifat penting tentang tingkahlaku 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.  Dalam beberapa proyek komunikasi mungkin sangat penting, tapi analisis kinerja rinci mungkin tidak diperlukan (karena sistem yang terlalu kecil atau dimaksudkan untuk hanya beberapa pengguna). Dalam beberapa sistem lain, analisis kinerja mungkin penggunaan utama arsitektur.
 

 
5.2  Arsitektur Views
        Dalam pandangan modul, sistem ini dipandang sebagai kumpulan unit kode, masing-masing menerapkan beberapa bagian dari fungsi sistem. Artinya, unsur-unsur utama dalam pandangan ini adalah modul. pandangan-pandangan ini adalah kode-based dan tidak secara eksplisit rep-membenci setiap struktur runtime dari sistem. Contoh modul paket, kelas, prosedur, metode, koleksi fungsi, dan koleksi kelas. Hubungan antara modul ini juga berbasis kode dan tentang bagaimana kode modul berinteraksi dengan modul lain. Contoh hubungan dalam pandangan ini (yaitu, modul B adalah bagian dari modul A) atau tergantung pada modul A menggunakan jasa dari modul B untuk melakukan fungsi dan kebenaran modul sendiri sebuah tergantung pada kebenaran modul B dan generalisasi atau spesialisasi (modul B adalah generalisasi dari modul A).


Dalam komponen dan konektor  sistem ini dipandang sebagai pembacaan entitas runtime Artinya, komponen adalah unit yang memiliki identitas dalam sistem mengeksekusi. Objects adalah sebuah kolektifitas benda, dan proses adalah contoh dari komponen. Sementara pelaksana adalah komponen yang harus berinteraksi dengan orang lain untuk mendukung layanan sistem. Konektor menyediakan sarana untuk interaksi ini. Contoh konektor pipa dan soket. Data juga dapat bertindak sebagai konektor. Jika komponen menggunakan beberapa middleware untuk berkomunikasi dan berkoordinasi, maka middleware adalah konektor. Oleh karena itu, unsur-unsur utama dari pandangan ini adalah komponen dan konektor.

Pandangan alokasi berfokus pada bagaimana unit software erent 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.

  Deskripsi arsitektur terdiri dari pandangan jenis dengan setiap tampilan mengekspos beberapa struktur dari sistem. views modul menunjukkan bagaimana peranti lunak ini disusun sebagai satu set unit implementasi, C & C views menunjukkan bagaimana perangkat lunak ini disusun sebagai berinteraksi elemen runtime, dan pandangan alokasi menunjukkan bagaimana perangkat lunak berhubungan dengan struktur nonsoftware. Ketiga jenis pandang sistem yang sama membentuk arsitektur sistem.

Perhatikan bahwa pandangan tersebut tidak berhubungan. Mereka semua merupakan sistem yang sama. Oleh karena itu, ada hubungan antara unsur-unsur dalam satu tampilan dan dalam pandangan lain. Hubungan ini mungkin sederhana atau mungkin rumit.
Misalnya, hubungan antara modul dan komponen mungkin menjadi satu dalam satu modul mengimplementasikan
dalam salah satu komponen. Di sisi lain, mungkin cukup kompleks dengan modul yang digunakan oleh beberapa komponen, dan komponen menggunakan beberapa modul. Sekaligus menciptakan tampilan dan para desainer harus menyadari hubungan ini.

   Pertanyaan berikutnya adalah apakah pandangan standar yang harus diungkapkan untuk menggambarkan arsitektur sistem? Untuk menjawab pertanyaan ini, analogi dengan bangunan dapat lagi membantu. Jika seseorang membangun sebuah rumah kecil yang sederhana, maka mungkin tidak ada kebutuhan untuk memiliki pandangan yang terpisah menjelaskan darurat dan sistem kebakaran. Demikian pula, jika tidak ada AC di gedung, ada perlu tidak pandangan untuk itu. Di sisi lain, sebuah bangunan  mungkin akan membutuhkan kedua pandangan ini, selain tampilan lain menggambarkan pipa, ruang, kabel, dll

Namun, meskipun fakta bahwa ada beberapa gambar yang menunjukkan tampila bangunan, ada satu pandangan yang mendominasi dalam konstruksi-yang struktur fisik. Pandangan ini membentuk dasar dari tampilan lain dalam bahwa pandangan lain dapat benar-benar diselesaikan kecuali pandangan ini bisa dilakukan. pandangan lain mungkin atau mungkin tidak diperlukan untuk membangun sebuah bangunan, tergantung pada sifat proyek. Oleh karena itu, dalam arti, pandangan memberikan struktur bangunan dapat dianggap sebagai pandangan utama dalam hal itu hampir selalu digunakan, dan tampilan lain bergantung pada pandangan ini secara substansial. Pandangan juga menangkap mungkin properti yang paling penting untuk dianalisis pada tahap awal, yaitu bahwa organisasi ruang. 
  
Situasi dengan arsitektur perangkat lunak juga agak mirip. Namun, pandangan ini telah menjadi pandangan de facto utama dan salah satu yang hampir selalu siap ketika arsitektur dirancang.

        Catatan tentang hubungan antara arsitektur dan desain adalah dalam rangka. Sebagai partisi sistem menjadi bagian-bagian yang lebih kecil dan menyusun sistem dari bagian-bagian ini juga merupakan tujuan dari desain.
Ini bertujuan untuk mencapai tujuan yang sama dan tampaknya fundamental mengandalkan membagi dan menaklukkan aturan. Pertama, harus jelas bahwa arsitektur adalah desain dalam hal itu adalah dalam domain solusi dan berbicara tentang struktur dari sistem yang diusulkan. Selanjutnya, pandangan arsitektur memberikan tampilan tingkat tinggi dari sistem.



5.3  Komponen dan Konektor view
        Batas-batas antara arsitektur dan desain tingkat tinggi tidak sepenuhnya jelas. Pada tingkat arsitektur, salah satu kebutuhan untuk hanya menampilkan bagian-bagian yang diperlukan untuk melakukan evaluasi yang diinginkan. Struktur internal bagian-bagian ini tidak penting. Di sisi lain selama desain merancang struktur bagian-bagian. Namun, bagian mana dari struktur harus diperiksa terlebih dahulu. Dan arsitektur,desain adalah masalah pilihan. Secara umum, detail yang tidak diperlukan untuk melakukan jenis analisis yang ingin kita lakukan pada saat arsitektur yang tidak perlu dan harus dibiarkan untuk desain.
        Arsitektur sistem memiliki dua elemen utama yaitu,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. pandangan sistem dan komponen yang terhubung ke mana dan melalui konektor apa.
Struktur pada dasarnya adalah sebuah grafik, dengan motivasional sebagai node dan konektor sebagai tepi.

  5.3.1 Komponen


                                                              
5.1 Contoh komponen


        Komponen adalah dari jenis komponen, di mana jenis merupakan komponen generik, mendefinisikan komputasi umum dan interface komponen dari jenis yang harus memiliki. Perhatikan bahwa meskipun komponen memiliki tipe, di C & C tampilan arsitektur, kita memiliki komponen (yaitu, contoh aktual) dan tidak jenis. Contoh jenis ini adalah klien, server, filter, dll Di ff domain erent mungkin memiliki jenis generik lainnya seperti kontroler, aktuator, dan sensor (untuk domain sistem kontrol).
       Dalam diagram mewakili C & C lihat arsitektur sistem, itu sangat diinginkan untuk memiliki di ff erent representasi untuk jenis komponen di ff erent, sehingga jenis erent di ff dapat diidentifikasi secara visual. Dalam diagram kotak-dan-line, sering semua komponen yang direpresentasikan sebagai kotak persegi panjang. Pendekatan seperti ini akan mengharuskan jenis komponen dijelaskan secara terpisah dan pembaca harus membaca deskripsi untuk mengetahui jenis-jenis komponen. Hal ini jauh lebih baik untuk menggunakan di ff erent simbol / notasi untuk setiap di ff jenis komponen erent. Beberapa simbol yang umum digunakan untuk mewakili jenis komponen umum ditemukan ditunjukkan pada Gambar 5.1

5.3.2 Konektor

                                                       
5.2 Contoh konektor


        Komponen erent di ff dari sistem cenderung berinteraksi sementara sistem dalam operasi untuk menyediakan layanan yang diharapkan dari sistem. 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. Beberapa simbol yang umum digunakan untuk mewakili jenis konektor yang biasa ditemukan ditunjukkan pada Gambar 5.2.
        Sebuah konektor juga memiliki nama yang harus menggambarkan sifat interaksi konektor mendukung. Perlu menunjukkan bahwa pelaksanaan konektor mungkin cukup kompleks. Jika konektor disediakan oleh sistem yang mendasari, maka komponen hanya perlu memastikan bahwa mereka menggunakan konektor sesuai spesifikasi mereka. Namun, jika sistem yang mendasarinya tidak menyediakan konektor yang digunakan dalam arsitektur, maka seperti disebutkan di atas, konektor harus dilaksanakan sebagai bagian dari proyek untuk membangun sistem. Artinya, selama pengembangan, tidak hanya akan komponen perlu dikembangkan, tetapi sumber daya harus ditugaskan untuk juga mengembangkan konektor. (Situasi ini mungkin timbul karena sistem khusus yang membutuhkan konektor yang khusus untuk masalah domain.) Secara umum, sekaligus menciptakan arsitektur, adalah bijaksana untuk arsitek untuk menggunakan konektor yang tersedia pada sistem di mana perangkat lunak akan dikerahkan.

5.4 Gaya Arsitektur untuk C & C View

5.4.1 Pipa dan Filter
        Pipa-dan-filter bergaya arsitektur cocok untuk sistem yang terutama melakukan transformasi data dan tujuan dari sistem ini adalah untuk menghasilkan beberapa data output dengan sesuai mengubah input data. Sebuah filter mungkin memiliki lebih dari satu input dan lebih dari satu output. Filter tidak perlu tahu identitas dari filter yang mengirim input data atau identitas filter yang akan mengkonsumsi data yang mereka hasilkan .
 

5.4.2 Data Bersama Style
        Ada dua variasi dari gaya ini. Dalam gaya papan, jika beberapa data yang diposting di repositori data, semua komponen accessor yang perlu tahu tentang hal itu diinformasikan. Dalam database, bentuk gaya sering didukung melalui pemicu. Yang lain adalah gaya repositori, dimana penyimpanan data hanya repositori pasif yang menyediakan penyimpanan permanen dan kontrol terkait untuk mengakses data.
        Banyak aplikasi database menggunakan gaya arsitektur ini. Banyak sistem Web sering mengikuti gaya ini di back end-dalam menanggapi permintaan pengguna, script erent di ff (accesor data) akses dan memperbarui beberapa data bersama.
       Sebagai contoh sistem yang menggunakan gaya arsitektur, mari kita perhatikan sistem pendaftaran mahasiswa di sebuah universitas. Sistem ini jelas memiliki repositori pusat yang berisi informasi tentang kursus, siswa, prasyarat, dll memiliki komponen Administrator yang menentukan repositori, hak untuk di ff erent orang, dll Komponen Pendaftaran memungkinkan siswa untuk reg-ister dan memperbarui informasi bagi siswa dan kursus. Komponen Persetujuan adalah untuk memberikan persetujuan bagi mereka program yang membutuhkan persetujuan instruktur. Komponen Laporan menghasilkan laporan mengenai siswa yang terdaftar di program erent di ff pada akhir pendaftaran. Komponen Course Feedback digunakan untuk mengambil umpan balik dari siswa pada akhir kursus. Arsitektur ini ditunjukkan pada Gambar 5.7.

                             




        Perhatikan diagram diatas, bahwa komponen perhitungan yang berbeda tidak perlu berkomunikasi dengan satu sama lain dan bahkan tidak perlu tahu tentang keberadaan masing-masing.


Misalnya, jika kemudian diputuskan bahwa penjadwalan kursus bisa otomatis berdasarkan data pada pendaftaran (dan informasi lain tentang ruang kelas dll), maka komponen lain yang disebut Penjadwalan hanya dapat menambahkan.
 Ada satu jenis konektor dalam gaya ini
, baca / tulis. Perhatikan bagaimana gaya konektor umum  dapat mengambil bentuk yang lebih tepat dalam arsitektur tertentu. Misalnya,database dapat dilihat sebagai pendukung membaca dan update untuk program berinteraksi. Namun, sistem database dapat pula memberikan transaksi layanan.

Perhatikan juga bahwa dalam banyak kasus lainnya, konektor melibatkan pertimbangan jumlah infrastruktur yang mendasarinya. Misalnya, membaca dan menulis ke sistem file melibatkan cukup banyak perangkat lunak sistem file yang melibatkan seperti direktori, buffering,penguncian, dan sinkronisasi. Demikian pula, banyak software masuk ke database untuk mendukung jenis koneksi, seperti menyediakanquery, update, dan transaksi.


 
5.4.3 Gaya Server Klien
       Gaya lain yang sangat umum digunakan untuk membangun sistem saat ini adalah gaya client-server. Server komputasi client adalah salah satu paradigma dasar komputasi terdistribusi.
Dalam gaya ini, ada dua komponen
, yaitu klien dan server. Kendala 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 dimana server mendukung. server menerima permintaan,mendefinisikan, melakukan layanan, dan kemudian mengembalikan hasil perhitungan kepada klien yang meminta layanan.

Ada satu jenis konektor dalam gaya ini. Sebuah konektor menghubungkan klien ke server. Jenis konektor asimetris akhir klien (end clien) konektor hanya dapat membuat permintaan (dan menerima balasan), sedangkan akhir server (end server) hanya dapat mengirim balasan dalam menanggapi permintaan itumelalui konektor ini. komunikasi sering sinkron, klien menunggu servermembawa hasil sebelum melanjutkan. Artinya, klien diblokir atas permintaan, sampai mendapatkan jawabannya. Sebuah bentuk umum dari gaya ini adalah struktur N-Tier. Dalam gaya ini, klien mengirimkan permintaan ke server, tetapi server hanya untuk melayani permintaan dan mengirim beberapa permintaan ke server lain. Server juga bertindak sebagai klien untuk tingkat berikutnya. Sebuah contoh umum ini adalah arsitektur 3-Tier. Dalam gaya ini, klien yang membuat permintaan dan menerima hasil akhir berada di tingkat client. Tingkat menengah yaitu tier bisnis, mengandung komponen yang memproses data yang diajukan oleh klien dan menerapkan aturan bisnis yang diperlukan. Tingkat ketiga adalah tingkat basis data di mana data berada.






0 comments:

Posting Komentar