Nama : Dahlia Safarinah No. Reg : 5235131577 Rangkuman Materi Kuliah. Chapter 8 (Design Concep). Mitch Kapor pembuat Lotus 1-2-3 menyatakan bahwa perangkat lunak harus bisa di examined melalui firmness, commodity dan delight. Design itu harus mengimplementasikan seluruh persyaratan eksplisit, dapat mudah dibaca dan mudah digunakan serta harus memberikan gambaran penuh perangkat lunak. Dalam design guidelines designnya harus memperlihatkan arsitektur yang telah digunakan, harus bias dimodular, berisi representasi yang berbeda, membimbing struktur data yang telah disesuaikan, membimbing komponen dan fungsi indepentnya, membimbing interface sehingga mengurangi kompleksitas, menggunakan metode-metode yang berulang dan direpresentasikan menggunakan notasi yang dapat dimengerti dengan efektif. Design Principle harus bisa dilacak analisis modelnya, tidak harus selalu memilih jalan sesuai putaran, harus meminimalisir jarak intelektual, harus terstruktur dalam pengakomodisian perubahan, harus terstruktur untuk mendeklarasi bukan coding dan harus dinilai kualitasnya. Fundamental Concepts Keseluruhan struktur perangkat lunak dan cara pembuatan dalam system. - Structural properties - Extra-functional properties - Families or related system - Pola yang membuktikan solusi design, Template pola design Nama pola - Intent - Also known as - Motivasi - Applicability - Struktur - Partisipan - Kolaborasi - Konsekuensi - Pola yang berhubungan Pemisah masalah dapat diselesaikan lebih mudah, masalahnya bisa berupa perilaku yang ditetapkan sebagai bagian persyaratan perangkat lunak.dengan cara ini lebih mudah diselesaikan. Modularitas adalah atribut tunggal dari perangkat lunak yang memungkinkan program untuk menjadi intelektual dikelola. Software monolitik (yaitu, sebuah program besar yang terdiri dari satu modul ) tidak dapat dengan mudah ditangkap oleh seorang insinyur perangkat lunak. Jumlah jalur kontrol, rentang referensi, jumlah variabel, dan kompleksitas keseluruhan akan membuat pemahaman hampir tidak mungkin. Dalam hampir semua kasus, harus istirahat desain ke dalam berbagai modul, berharap untuk membuat pemahaman lebih mudah dan sebagai konsekuensinya, mengurangi biaya yang diperlukan untuk membangun perangkat lunak. Hiding-kontrol interface - Mengurangi kemungkinan efek samping - Membatasi dampak global dari keputusan desain local - Menekankan komunikasi melalui interface - Kualitas hasil perangkat lunak lebih tinggi Kebebasan fungsi-funsgi satu arah Independensi fungsional dicapai dengan mengembangkan modul dengan " single- minded " fungsi dan " keengganan " untuk interaksi yang berlebihan dengan modul lain. Kohesi merupakan indikasi kekuatan fungsional relatif modul. Sebuah modul kohesif melakukan tugas tunggal , membutuhkan sedikit interaksi dengan komponen lain di bagian lain dari program . Lain sederhana, modul kohesif harus ( idealnya ) melakukan satu hal. Kopling merupakan indikasi saling ketergantungan relatif antara modul. Coupling tergantung pada kompleksitas antarmuka antara modul , titik di mana masuk atau referensi dibuat untuk sebuah modul , dan data apa lulus seluruh antarmuka. Perbaikan – elaborasi detail untuk seluruh ketidakjelasan Mempertimbangkan dua persyaratan, A dan B. Kebutuhan A crosscuts persyaratan B " jika dekomposisi software [penyempurnaan] telah terpilih di mana B tidak dapat dipenuhi tanpa ngambil A ke rekening. Sebuah aspek adalah representasi dari keprihatinan lintas sektoral. Aspek – mekanisme persyaratan global desain affect Pertimbangkan dua persyaratan untuk SafeHomeAssured.com webapp. Kebutuhan Sebuah dijelaskan melalui penggunaan - kasus kamera pengintai Akses melalui Internet. Sebuah perbaikan desain akan fokus pada modul tersebut yang akan memungkinkan pengguna terdaftar untuk mengakses video dari kamera ditempatkan di seluruh ruang. Persyaratan B merupakan persyaratan keamanan umum yang menyatakan bahwa pengguna terdaftar harus divalidasi sebelum menggunakan SafeHomeAssured.com. Persyaratan ini berlaku untuk semua fungsi yang tersedia untuk pengguna terdaftar SafeHome. Seperti desain perbaikan terjadi, A * merupakan representasi desain untuk kebutuhan A dan B * merupakan representasi desain untuk kebutuhan B. Oleh karena itu, A * dan B * adalah representasi dari keprihatinan, dan B * lintas - luka A *.Sebuah aspek adalah representasi dari keprihatinan lintas sektoral. Oleh karena itu, representasi desain, B *, dari kebutuhan, pengguna terdaftar harus divalidasi sebelum menggunakan SafeHomeAssured.com, merupakan aspek dari SafeHome webapp. Perbaikan (refactoring) – reorganisasi teknik Fowler mendefinisikan refactoring dengan cara sebagai berikut : " Refactoring adalah proses mengubah sistem perangkat lunak sedemikian rupa bahwa itu tidak mengubah perilaku eksternal dari kode [ desain ] menigkatkan struktur internal . " Ketika perangkat lunak refactored , desain yang ada diperiksa untuk Redundansi, elemen desain yang tidak terpakai algoritma yang tidak efisien atau tidak perlu konstruksi yang buruk atau tidak pantas struktur data atau kesalahan desain lain yang dapat diperiksa untuk menghasilkan desain yang lebih baik. OO konsep desain – appendix II - Kelas desain - Kelas entitas - Kelas batas - Kelas kontroler Warisan - semua tanggung jawab dari superclass akan diwarisi oleh semua subclass Pesan - stimulasi beberapa perilaku yang terjadi pada objek penerima Polimorfisme - karakteristik yang sangat mengurangi usaha yang dibutuhkan untuk memperluas desain Design Classes – detail desain untuk analisi Analisis class disempurnakan dalam desain untuk menjadi kelas entitas Kelas boundary dikembangkan selama desain untuk membuat interface (misalnya, layar interaktif atau laporan cetak) yang pengguna melihat dan berinteraksi dengan perangkat lunak yang digunakan. Kelas batas dirancang dengan tanggung jawab mengelola cara objek entitas ditampilkan kepada pengguna. Kelas kontroler dirancang untuk mengelola penciptaan atau update objek entitas, Instansiasi objek boundary dengan mengambil informasi dari objek entitas, komunikasi yang kompleks antara set objek. Validasi data yang dikomunikasikan antara objek atau antara pengguna dan aplikasi. Desain model elements Elemen data Model data - > struktur data Model data - > arsitektur database Elemen arsitektur Aplikasi domain Kelas analisis, relasinya, kolaborasi dan perilaku diubah menjadi realisasi desain Pola dan "gaya" Elemen antarmuka User interface ( UI ) Antarmuka eksternal ke sistem lain, perangkat, jaringan atau produsen maupun konsumen informasi antarmuka internal antara berbagai komponen desain. Arsitektur element Model arsitektur berasal dari tiga sumber : Informasi tentang domain aplikasi untuk perangkat lunak yang akan dibangun, spesifik unsur persyaratan Model seperti diagram aliran data atau kelas analisis, hubungan dan kolaborasi mereka untuk masalah di tangan, dan ketersediaan pola arsitektur Chapter 9 (Arsitektural Design) Arsitektur Arsitektur bukanlah software operasional. Sebaliknya, itu adalah representasi yang memungkinkan seorang insinyur perangkat lunak untuk : 1. Menganalisis efektivitas desain dalam memenuhi persyaratan yang dinyatakannya. 2. Mempertimbangkan alternatif arsitektur pada tahap ketika membuat perubahan desain masih relatif mudah. 3. Mengurangi risiko yang terkait dengan pembangunan perangkat lunak. Arsitektur desain IEEE Computer Society telah mengusulkan IEEE - Std - 1471-2000, Direkomendasikan Praktek untuk Deskripsi Arsitektur Software - Intensif Sistem, [ IEE00 ] untuk membangun kerangka kerja konseptual dan kosakata untuk digunakan selama desain arsitektur perangkat lunak, untuk memberikan pedoman rinci untuk mewakili deskripsi arsitektur, dan untuk mendorong praktek desain arsitektur suara. IEEE Standard mendefinisikan deskripsi arsitektur ( AD ) sebagai " kumpulan produk untuk mendokumentasikan arsitektur. " Deskripsi sendiri diwakili menggunakan beberapa pandangan, di mana masing-masing pandangan adalah " representasi dari seluruh sistem dari perspektif satu set terkait [ pemangku kepentingan ] kekhawatiran. " Arsitektur Genres Genre menyiratkan kategori tertentu dalam domain perangkat lunak secara keseluruhan . Dalam setiap kategori , kita menemukan sejumlah subkategori. Sebagai contoh , dalam genre bangunan, Anda akan menemukan gaya umum berikut : rumah, kondominium, gedung apartemen, gedung perkantoran, bangunan industri, gudang, dan sebagainya. Dalam setiap gaya umum, gaya yang lebih spesifik mungkin berlaku. Setiap gaya akan memiliki struktur yang dapat digambarkan dengan menggunakan satu set pola diprediksi. Arsitektur Style Setiap gaya menggambarkan kategori sistem yang meliputi : (1) Satu set komponen (misalnya , database , modul komputasi) yang melakukan fungsi yang dibutuhkan oleh sebuah sistem. (2) Satu set konektor yang memungkinkan " komunikasi , koordinasi dan kerjasama " antara komponen. (3) Kendala yang menentukan bagaimana komponen dapat diintegrasikan untuk membentuk sistem (4) Model semantik yang memungkinkan desainer untuk memahami sifat-sifat keseluruhan sistem dengan menganalisis sifat dikenal dari bagian-bagian penyusunnya. - Data-centered architectures - Data flow architectures - Call and return architectures - Object-oriented architectures - Layered architectures Arsitektur Pattern Concurrency - aplikasi harus menangani beberapa tugas dengan cara yang mensimulasikan paralelisme. Pola operasi manajemen proses sistem dan Pola scheduler tugas. Kegigihan Data berlanjut jika bertahan melewati pelaksanaan proses yang menciptakannya . Dua pola yang umum : - Pola sistem manajemen database yang menerapkan kemampuan penyimpanan dan pengambilan DBMS untuk arsitektur aplikasi. - Pola ketekunan tingkat aplikasi yang membangun kegigihan fitur ke dalam arsitektur aplikasi. Distribusi- cara di mana sistem atau komponen dalam sistem berkomunikasi dengan satu sama lain dalam lingkungan terdistribusi. Seorang broker bertindak sebagai ' - orang tengah ' antara komponen klien dan komponen server . Arsitektur Design Perangkat lunak ini harus ditempatkan dalam konteks desain harus menentukan entitas eksternal (sistem lain, perangkat, orang) bahwa perangkat lunak berinteraksi dengan dan sifat interaksi. Satu set arketipe arsitektur harus diidentifikasi. Pola dasar adalah abstraksi (mirip dengan kelas) yang merupakan salah satu unsur perilaku sistem Desainer menentukan struktur sistem dengan mendefinisikan dan software pemurnian komponen yang menerapkan pola dasar. Analyzing Arsitektur Design 1. Skenario Kumpulkan . 2. Menimbulkan persyaratan , kendala , dan deskripsi lingkungan. 3. Jelaskan gaya arsitektur / pola yang telah dipilih untuk mengatasi skenario dan persyaratan : - Tampilan modul - Melihat proses - Tampilan aliran data 4. Evaluasi atribut kualitas dengan mempertimbangkan setiap atribut dalam isolasi. 5. Mengidentifikasi sensitivitas atribut kualitas untuk berbagai atribut arsitektur untuk gaya arsitektur tertentu. 6. Arsitektur calon Kritik (dikembangkan pada langkah 3) menggunakan analisis sensitivitas yang dilakukan pada langkah 5. Arsitektur Complexity Kompleksitas keseluruhan arsitektur yang diusulkan dinilai dengan mempertimbangkan ketergantungan antara komponen dalam arsitektur. Berbagi dependensi mewakili hubungan ketergantungan antara konsumen yang menggunakan sumber daya yang sama atau produsen yang memproduksi untuk konsumen yang sama. Dependensi aliran mewakili hubungan ketergantungan antara produsen dan konsumen sumber daya. Dependensi dibatasi mewakili kendala pada aliran relatif kontrol di antara serangkaian kegiatan . ADL Arsitektur bahasa deskripsi ( ADL ) menyediakan semantik dan sintaksis untuk menggambarkan arsitektur perangkat lunak. Menyediakan desainer dengan kemampuan untuk : - Membusuk komponen arsitektur. - Menulis komponen individu menjadi blok arsitektur yang lebih besar. - Mewakili interface ( mekanisme koneksi) antara komponen. General Mapping Approach Isolat transformasi pusat dengan menetapkan batas-batas aliran masuk dan keluar Lakukan " tingkat pertama anjak piutang. "Arsitektur program diturunkan menggunakan ini hasil pemetaan dalam distribusi top-down kontrol. Anjak mengarah ke struktur program di mana komponen tingkat atas melakukan pengambilan keputusan dan tingkat rendah komponen melakukan sebagian input, perhitungan , dan bekerja output. Komponen tingkat menengah melakukan kontrol dan melakukan jumlah moderat pekerjaan.