Bab 9. Rekayasa Desain

dokumen-dokumen yang mirip
Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2

Design Engineering. Tim RPL. Program Studi Teknik Informatika

KONSEP DAN PRINSIP DESAIN. Oleh I Made Cipta Wahyudi

Prinsip & Konsep Perancangan Sistem

Pemrograman Web Berbasis Framework. Pertemuan 13 : Pengembangan Project (Bag. 1) Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD

Mohamad Sidiq Teknik Informatika Fakultas Ilmu Komputer Universitas Dian Nuswantoro1

Pertemuan 9 PRINSIP DAN KONSEP DESAIN

Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2

PRINSIP DAN KONSEP DESAIN

Kenapa Arsitektur? Tim RPL 1 2

Chapter 8. Design Engineering

Software Design. Konsep dan Prinsip Desain Struktur Desain. Mira/Rpl/Design

REKAYASA PERANGKAT LUNAK MATERI TM 11

Metode Perancangan. Tahap Perancangan

Review Rekayasa Perangkat Lunak. Nisa ul Hafidhoh

MAKALAH DESAIN PERANGKAT LUNAK. NAMA : RANI JUITA NIM : DOSEN : WACHYU HARI HAJI. S.Kom.MM

P10 Konsep & Prinsip Desain. A. Sidiq P.

Minggu 6 Prinsip & Konsep Desain

Data & Architecural Design. Tim RPL Progdi Teknik Informatika

REKAYASA PERANGKAT LUNAK MATERI TM 10

DASAR REKAYASA PERANGKAT LUNAK

REKAYASA PERANGKAT LUNAK LANJUT DESIGN ENGINEERING. Defri Kurniawan M.Kom

Bab 6 PERANCANGAN PERANGKAT LUNAK

REKAYASA PERANGKAT LUNAK

PROSES MODEL DESAIN PERANGKAT LUNAK

Analysis Modeling 4/10/2018. Focus on What not How. Kenapa Analisis Kebutuhan. Definisi Analisis Kebutuhan. Langkah-Langkah Analisis Kebutuhan

MAKALAH REKAYASA PERANGKAT LUNAK ( KONSEP DESAIN PERANGKAT LUNAK )

BAB V PERANCANGAN MOXIE

ANALISA DAN PERANCANGAN SISTEM INFORMASI. Pendekatan Terstruktur dan alat-alat pemodelan Sistem

Analisis Model Perangkat Lunak

PENGUJIAN BERORIENTASI OBJEK

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

Unified Modelling Language UML

Dibuat Oleh : 1. Andrey ( )

REKAYASA PERANGKAT LUNAK MATERI TM 12

Tujuan 04/07/ :01

BAB II DASAR TEORI Pengertian Framework

Rekayasa Perangkat Lunak

Object Oriented Analysis (OOA) dan Object Oriented Design (OOD)

Prinsip dan Konsep Desain Perangkat Lunak

BAB II TINJAUAN PUSTAKA. yang ditandai dengan saling berhubungan dan mempunyai satu fungsi atau tujuan

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

OOAD (Object Oriented Analysis and Design) UML part 2 (Activity diagram, Class diagram, Sequence diagram)

Tugas Mandiri Analisis dan Perancangan Sistem II ACTIVITY & SWIMLANE DIAGRAM

REKAYASA PERANGKAT LUNAK. 3 sks Sri Rezeki Candra Nursari reezeki2011.wordpress.com

PEMANFAATAN ARDUINO DALAM PENGEMBANGAN SISTEM RUMAH PINTAR BERBASIS MOBILE DAN WEB (Studi Kasus : Penjadwalan Lampu Rumah)

Kegunaan tahap ini adalah untuk memobilisasi dan mengorganisir g SDM yang akan melakukan Reengineering

REKAYASA PERANGKAT LUNAK. 3 sks Sri Rezeki Candra Nursari reezeki2011.wordpress.com

Yuli Purwati, M.Kom USE CASE DIAGRAM

PENGANTAR RUP & UML. Pertemuan 2

Object-Oriented Design

Teknik Informatika S1

RANCANGAN APLIKASI LATIHAN BELAJAR TENSES DENGAN METODE OBJECT ORIENTED DESIGN

Ratna Wardani. Department of Electronic Engineering Yogyakarta State University

BAB II LANDASAN TEORI

Teknik Informatika S1

BAB II TINJAUAN PUSTAKA

SEJARAH UML DAN JENISNYA

Adam Hendra Brata Teknik Informatika FILKOM UB Semester Genap 2015/2016

Tujuan. entitas yang kemudian akan dibangun. ó Menghasilkan suatu model atau representasi dari. Tim RPL 1 2

Kuliah#3 TSK-612 Sistem Embedded Terdistribusi - TA 2011/2012. Eko Didik Widianto

Analisis dan Perancangan Sistem II T02 Use Case

MODEL DESAIN & DOKUMENTASI DESAIN

BAB II. 2.1 Model Data High Level Data Model (Conceptual Data Model)

BAB III ANALISA DAN DESAIN SISTEM

Tujuan. Menghasilkan suatu model atau representasi dari entitas yang kemudian akan dibangun. Tim RPL 1 2

Pertemuan 10 METODE DESAIN (1)

ABSTRAK. Kata kunci : voucher elektronik SMS (Short Message Service)

DAFTAR ISI. KATA PENGANTAR... i. DAFTAR ISI... iii. DAFTAR GAMBAR... xi. DAFTAR TABEL... xvii. DAFTAR SIMBOL... xx BAB I PENDAHULUAN...

Rekayasa Perangkat Lunak (Software Engineering)

Pertemuan 5 Konsep dan Prinsip Desain TIK : Menjelaskan konsep, prinsip dan tahapan dalam perancangan software

BAB III ANALISA DAN DESAIN SISTEM

BAB III OBJEK DAN METODE PENELITIAN. deskripsi dari PT. Prima Krista Sejahtera Jl. Taman Sari No.25 C kota

BAB III ANALISA DAN DESAIN SISTEM

DAFTAR ISTILAH. Activity Diagram

13. KONSEP DAN PRINSIP PERANCANGAN (DESAIN)

BAB III ANALISIS DAN PERANCANGAN APLIKASI. Aplikasi chatting mobile phone yang menggunakan NetBeans IDE 6.0 yang di

Nama : Rendi Setiawan Nim :

LAMPIRAN A KERANGKA DOKUMEN ANALISIS

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Analisis sistem merupakan suatu kegiatan penguraian dari suatu sistem yang

DESAIN PERANGKAT LUNAK. Ign.F.Bayu Andoro.S, M.Kom

BAB II LANDASAN TEORI

MAKALAH MODEL DESAIN DAN DOKUMENTASI DESAIN. NAMA : RANI JUITA NIM : DOSEN : WACHYU HARI HAJI. S.Kom.MM

BAB 2 LANDASAN TEORI

Teknik Informatika S1

Teknik Informatika S1

BAB II LANDASAN TEORI

1. Konsep dan Prinsip Analisa

BAB III OBJEK DAN METODE PENELITIAN. No.30 yang pengembangnnya awalnya dipelopori oleh satu orang dengan bantuan

BAB IV ANALISIS DAN PERANCANGAN SISTEM

PEMODELAN ANALISIS. Di Susun Oleh : Linda Liana Dosen Pengampu : Wahyu Hari Haji M.Kom

Gambar Window Transaksi Pengeluaran Barang Gudang

BAB III ANALISA DAN DESAIN SISTEM

Perancangan Sistem Informasi Penjualan dan Inventori pada PT. Oriental Chitra International

DAFTAR ISI... LEMBAR JUDUL LEMBAR PENGESAHAN... SURAT PERNYATAAN... ABSTRAK... ABSTRACT... KATA PENGANTAR... DAFTAR TABEL... DAFTAR GAMBAR...

SOFTWARE TESTING. Ratna Wardani

STUDI DAN IMPLEMENTASI PEMBAYARAN PPOB (PAYMENT POINT ONLINE BANK) STUDI KASUS REKENING PDAM TIRTAWENING KOTA BANDUNG

SI402 Arsitektur Enterprise Pertemuan #4 Suryo Widiantoro, ST, MMSI, M.Com(IS)

Unified Modelling Language (UML)

Transkripsi:

Bab 9 Rekayasa Desain Tujuan Pembelajaran Umum Mendeskripsikan perangkat lunak praktis Tujuan Pembelajaran Khusus Mampu Mengidentifikasikan rekayasa desain scenar io- based element s use-cases - text use-case diagrams activity diagrams swim lane diagrams Analysis Model f l ow- or i e nt e d element s data flow diagrams control-flow diagrams processing narratives In t e rf a c e D e sig n Co m p o n e n t - L e v e l D e sig n c l a ss- ba se d element s class diagrams analysis packages CRC models collaboration diagrams behavior al element s state diagrams sequence diagrams A rc h it e c t u ra l D e sig n D a t a / Cla ss D e sig n Design Model Desain dan kualitas Gambar : Rekayasa Desain Desain harus mengimplementasikan semua kebutuhan eksplisit yang ada dalam model analisis, dan dia harus mengakomodasi semua kebutuhan implisit yang diinginkan oleh konsumen. Desain harus dapat berupa panduan yang dapat dibaca dan dipahami oleh orangorang yang akan membuat kode, dan mereka yang menguji serta nantinya mendukung PL tersebut. Desain harus menyediakan gambaran utuh dari PL, menggambarkan domain data, fungsional, dan perilaku dari perspektif implementasi.

Panduan kualitas Sebuah desain harus menampilkan arsitektur yang (1) dibuat menggunakan pola atau style arsitektural yang sudah dikenal, (2) terdiri dari komponen-komponen yang menunjukkan karakteristik desain yang baik dan (3) dapat diimplementasi dalam bentul yang evolusioner. Untuk sistem yang lebih kecil, desain kadang dapat dikembangkan secara linear. Sebuah desain harus berbentuk modular; oleh karena itu PL harus secara logis dipartisi menjadi beberapa elemen subsistem Sebuah desain harus berisi representasi yang berbeda dari data,arsitektur, antarmuka, dan komponen. Sebuah desain harus menuju struktur data yang tepat untuk class-class yang akan diimplementasi dan digambar dari pola data yang dikenal. Sebuah desain harus menuju komponen-komponen yang menunjukkan fungsional karakteristik yang independen. Sebuah desain harus menuju antarmuka yang mengurangi kompleksitas koneksi antara kompoenen-komponen dan dengan lingkungan eksternal. Sebuah desain harus diturunkan menggunakan method berulang yang diatur oleh informasi yang disebut selama analisis kebutuhan PL. Desain harus direpresentasikan menggunakan notasi yang secara efektif mengkomunikasikan maknanya. Prinsip-prinsip desain Proses desain tidak boleh berjalan dengan kacamata kuda Proses desain harus bisa dirujuk dari model analisis. Proses desain tidak boleh mengulang penemuan-penemuan dasar. Desain harus dapat meminimalkan jarak intelektual antara PL dan permasalah yang ada di dunia nyata. Desain harus menampakkan keseragaman dan integrasi. Desain harus terstruktur untuk mengakomodasi perubahan. Desain harus terstruktur untuk turun secara bertahap, walaupun ketika data, event, atau kondisi operasi yang menyimpang ditemui. Desain bukan coding dan coding bukan desain. Desain harus dapat dipantau kualitasnya mulai dari dia dibuat, bukan setelah jadi. Desain harus direview untuk meminimalkan kesalahan semantik (konseptual).

Konsep Dasar abstraksi data, prosedur, kontrol arsitektur Struktur keseluruhan PL Patterns/pola memuat esensi dari solusi desain yang sudah terbukti modularitas Pembagian data dan fungsi menyembunyikan interface terkendali Independensi fungsi single-minded function dan low coupling refinement elaborasi detail dari semua abstraksi Refactoring sebuah teknik reorganisasi yang menyederhanakan desain Abstraksi data door manufacturer model number type swing direction inserts lights type number weight opening mechanism implemented as a data structure Gambar 9.1. : Abstraksi Data Abstraksi prosedur open details of enter algorithm implemented with a "knowledge" of the object that is associated with enter Gambar 9.2.: Abstraksi prosedur

Arsitektur Struktur keseluruhan dari PL dan cara dimana struktur menyediakan integritas konseptual bagi sebuah sistem [SHA95a] Properti Struktural. Aspek representasi desain arsitektur ini menentukan komponen-komponen sebuah sistem(mis : modul, objek, filter), dan pola komponen-komponen tersebut dipaket dan berinteraksi satu dengan yang lain. Sebagai contoh : objek dipaket untuk enkapsulasi baik data dan proses yang memanipulasi data dan berinteraksi dengan metode invokasi. Properti extra-fungsional. Deskripsi desain arsitektur harus menggambarkan bagaimana arsitektur mencapai kebutuhan kinerja, kapasitas, reliabilitas, keamanan, adaptabilitas, dan karakteristik sistem yang lain. Keluarga atau sistem-sistem yang berhubungan. Desain arsitektur harus dapat menggambar pola-pola yang diulang, yang secara umum ditemukan dalam keluarga desain atau sistem yang mirip. Esensinya, desain harus mempunyai kemampuan untuk menggunakan kembali blok-blok arsitektur bangunan Patern/Pola Design Pattern Template Nama Pattern menggambarkan esensi pattern dalam nama yang singkat tapi ekspresif Intent/Tujuan menjelaskan pattern dan apa yang dilakukan Juga dikenal sebagai/also-known-as Daftar sinonim untuk pattern terkait Motivation/Motivasi menyediakan contoh masalah Aplikabilitas menjelaskan situasi desain spesifik dimana pattern dapat diterapkan Struktur menggambarkan class yang dibutuhkan untuk implementasi pattern Participants menggambarkan tanggungjawab class-class yang diperlukan untuk mengimplementasikan pattern Collaborations menggambarkan bagaimana participan berkolaborasi untuk memikul tanggung jwabanya. Konsekuensi menggambarkan pengaruh desain terhadap pattern dan potensi masalah yang harus diperhatikan ketika pattern diimplementasi. Related patterns relasi referensi silang design patterns Desain Modular

easier to build, easier to change, easier to fix... Memodularitas permasalahan Gambar :9.3. : Desain Modular Berapakah jumlah modul yang pas Untuk desain PL tertentu? cost of software module development cost module integration cost optimal number of modules number of modules Gambar 9.4. : Modularitas permasalhan Penyembunyian informasi clients module controlled interface "secret" algorithm data structure details of external interface resource allocation policy a specific design decision Gambar 9.5. : Penyembunyian informasi

Mengapa informasi disembunyikan Mengurangi efek samping Membatasi pengaruh global dari keputusan desain lokal Menekankan komunikasi melalui interface yang terkendali Mengurangi penggunaan data global Merujuk pada enkapsulasi sebuah atribut dari desain kualitas tinggi Menghasilkan PL dengan kualitas tinggi

Langkah-langkah refinement open walk to door; reach for knob; open door; walk through; close door. repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat Gambar 9.6. : Langkah-langkah refinement Independensi fungsi COHESION - the degree to which a module performs one and only one function. COUPLING - the degree to which a module is "connected" to other modules in the system. Gambar 9.7. : Independensi Fungi pada Sistem Mengukur modul dari dua sudut pandang What's inside?? How big is it?? MODULE Gambar 9.8. : Pengukuran Modul dari dua sudut pandang

Refaktoring Fowler [FOW99] mendefinisikan refactoring sbb : "Refactoring adalah proses mengubah sistem PL dimana dia tidak mengubah perilaku eksternal dari kode (desain) sehingga menigkatkan struktur internal. Ketika PL refactored, desain akan diperiksa terhadap : redundancy Elemen desain yang tidak berguna Algoritma yang tidak efisien atau tidak perlu Struktur data dengan konstruksi yang buruk atau tidak tepat Atau kesalahan desain lain yang dapat diperiksa untuk menghasilkan desain yang lebih baik. Konsep Desain OO Desain Class Entity classes Boundary classes Controller classes Inheritance semua tanggung jawab superclass akan diwarisi oleh semua subclassnya Messages stimulasi beberapa perilaku yang dapat terjadi pada objek penerima pesan Polymorphism sebuah karakteristik yang mengurangi usaha yang dibutuhkan untuk memperluas desain Desain Class Analisis class disempurnakan dalam desain untuk menjadi class-class entitas Class-class boundary dikembangkan selama desain untuk membuat interface(mis. Layar interaktif atau laporan cetak) yang dilihat pengguna dan berinteraksi. Class-class boundary didesain dengan tanggungjawab untuk mengelola cara objek entitas ditampilkan kepada user. Class-class control didesain untuk mengelola : Pembuatan atau perubahan objek entitas; Instansiasi object boundary dengan mengambil informasi dari objek entitas; Komunikasi kompleks antara sekelompok objek; Validasi data yang dikomunikasikan antar objek atau antar pengguna dan aplikasi.

Inheretance Pilihan-pilihan desain : Class dapat didesain dan dibangun dari nol. Jika demikian, inheritance tidak digunakan. Hierarki class dapat dicari untuk mencari kemungkinan jika sebuah class yang lebih tinggi pada hierarki (superclass) memiliki atribut-atribut dan operasioperasi yang paling banyak dibutuhkan. Class baru ini diturunkan dari superclass dan beberapa tambahan dapat diberikan jika dibutuhkan. Hierarki class dapat di restrukturisasi sehingga atribut-atribut dan operasioperasi yang dibutuhkan dan diturunkan oleh class baru tersebut. Karakteristik dari class yang sudah ada dapat di override dan atribut-atribut dan operasi-operasi dengan versi berbeda dapat diimplementasikan untuk class baru tersebut Message :SenderObject message (<parameters>) :ReceiverObject Gambar 9.9. : Message Polymorphis

Pendekatan konvensional case of graphtype: end case; if graphtype = linegraph then DrawLineGraph (data); if graphtype = piechart then DrawPieChart (data); if graphtype = histogram then DrawHisto (data); if graphtype = kiviat then DrawKiviat (data); Semua graphs menjadi subclass dari class umum yang disebut graph. Menggunakan konsep overloading, setiap subclass mendefinisikan operasi yang disebut draw. Sebuah object dapat mengirim pesan draw pada salah satu instansiasi objek dari salah satu subclassnya. Objek yang menerima message akan menjalankan operasi draw nya sendri untuk membuat graph yang sesuai.. graphtype draw Model Desain

high a na ly sis mode l class diagrams analysis packages CRC models collaborat ion diagrams dat a f low diagrams cont rol-f low diagrams processing narratives use-cases - t ext use-case diagrams act ivit y diagrams sw im lane diagrams collaborat ion diagrams st at e diagrams sequence diagrams class diagrams analysis packages CRC models collaborat ion diagrams dat a f low diagrams cont rol-f low diagrams processing narrat ives st at e diagrams sequence diagrams Requirement s: const raint s int eroperabilit y t arget s and conf igurat ion de sign mode l low design class realizat ions subsyst ems collaborat ion diagrams refinement s to: design class realizat ions subsyst ems collaborat ion diagrams t echnical int erf ace design Navigat ion design GUI design component diagrams design classes act ivit y diagrams sequence diagrams refinement s to: component diagrams design classes act ivit y diagrams sequence diagrams design class realizat ions subsyst ems collaborat ion diagrams component diagrams design classes act ivit y diagrams sequence diagrams deployment diagrams archit ect ure element s int erface element s component -level element s deployment -level element s process dimension Gambar : 9.10 Dimensi proses desain Elemen-elemen model desain Elemen-elemen Data o Data model --> struktur data o Data model --> arsitektur database Elemen-elemen arsitektur o Domain aplikasi o Class-class analisis, relasinya, kolaborasi dan perilaku diubah menjadi realisasi desain o Patterns dam styles (Chapter 10) Elemen-elemen interface o user interface (UI) o Interface external pada sistem lain, piranti-piranti, jaringan-jaringan atau produsen maupun konsumen informasi lainnya Interface internal antara komponen-komponen desain. o Elemen-elemen komponen o Elemen-elemen deploy

Elemen-elemen komponen SensorManagement Sensor Elemen-elemen deployment Gambar : 9.11. UML Component Diagram for SafeHome Cont rol Panel CPI server Security homeowneraccess Personal computer externalaccess Security Surveillance homemanagement communication Figure 9.8 UML deploym ent diagram for SafeHom e Gambar 9.12. : UML Deployment Diagram for SafeHome Design Patern Desainer terbaik di segala bidang tetap mempunyai keterbatasan untuk melihat pola yang mencirikan sebuah masalah dan menghubungkannya dengan pola yang dapat dikombinasikan untuk membuat solusi Sebuah deskripsi dari design pattern dapat juga dilihat sebagai sekumpulan design forces. Design forces menjelaskan kebutuhan non fungsional (misalkan : kemudahan perawatan, portabilitas) yang dihubungkan dengan PL dimana pattern akan diaplikasikan.

Karakteristik pattern (class, tanggungjawab, dan kolaborasi) mengindikasikan atributatrobit desain yang harus diatur untuk memungkinkan pattern mengakomodasi permasalahan yang bervariasi. Frameworks Sebuah framework bukan merupakan pattern arsitektur, namun lebih merupakan kerangka dengan sekumpulan plug points (yang juga disebut hooks dan slots) yang memungkinkannya untuk beradaptasi dengan domain permasalahan tertentu. Gamma et al mencatat bahwa: Design patterns lebih abstrak dari frameworks. Design patterns adalah elemen-elemen arsitektural yang lebih kecil daripada frameworks Design patterns lebih umum daripada frameworks

Bab 10 Desain Arsitektur Tujuan Pembelajaran Umum Mendeskripsikan Perangkat Lunak Praktis Tujuan Pembelajaran Khusus Mampu Mengidentifikasikan desain arsitektur Arsitektur Software (Software Architecture) Arsitektur perangkat lunak dari sebuah program atau sistem komputasi adalah struktur atau struktur dari sistem, yang terdiri dari komponen-komponen perangkat lunak, sifat eksternal terlihat dari komponen-komponen, dan hubungan di antara mereka. Mengapa arsitektur penting Representasi dari arsitektur PL adalah enabler bagi komunikasi antar pihak (stakeholder) yang tertarik dengan pengembangan sistem berbasis komputer. Arsitketur menyoroti keputusan desain awal yang akan mempunyai pengaruh yang sangat besar pada pekerjaan RPL yang mengikutinya, dan keberhasilan pada entitas sistem operasional. Arsitektur membangun model yang relatif kecil dan mudah digenggam secara intelektual tentang bagaimana sistem distrukturkan dan bagaimana komponen2x bekerja sama [BAS03]. Desain data terbagi 2 antara lain : Tingkat Arsitektur (Architectural level) desain database o data mining o data warehousing Tingkat Komponen (Component level) desain struktur data Pada level arsitektur Desain satu atau lebih database untuk mendukung arsitektur aplikasi Desain method untuk mining isi dari berbagai database

Navigasi melalui database-database yang ada dalam usaha untuk mengambil informasi level bisnis yang sesuai Desain sebuah data warehouse sebuah database besar, independen yang mempunyai akses pada data yang disipan dalam database yang melayani sekelompok aplikasi yang dibutuhkan bisnis Data-data levcl komponen 1. Prinsip-prinsip analisis semantik yang diterapkan pada fungsi dan perilaku harus juga dapat berjalan pada data. 2. Seluruh struktur data dan operasi yang akan dilakukan harus dapat diidentifikasi. 3. Sebuah data dictionary harus dibuat dan digunakan untuk menentukan desain program dan data. 4. Keputusan desain data level rendah harus ditunda hingga akhir proses desain. 5. Representasi struktur dara harus diketahui oleh modul yang menggunakannya langsung dalam struktur tersebut (enkapsulasi). 6. Sebuah pustaka struktur data dan operasi yang memungkinkan untuk diterapkan harus dikembangkan. 7. Desain PL dan bahasa pemrograman harus mendukung spesifikasi dan realisasi dari tipe data abstrak. Tingkat Arsitektur Setiap gaya menggambarkan kategori sistem yang meliputi: 1. Satu set komponen (misalnya, database, modul komputasi) yang melakukan fungsi yang dibutuhkan oleh sistem, 2. Satu set konektor yang memungkinkan "komunikasi, koordinasi, dan kerjasama" antara komponen-komponen, 3. Kendala yang menentukan bagaimana komponen dapat diintegrasikan untuk membentuk sistem, dan 4. Model semantik yang memungkinkan seorang desainer untuk memahami sifat-sifat keseluruhan sistem. Gaya-gaya spesifik pada arsitektur, yaitu : 1. Arsitektur data-terpusat (data-centered architecture) 2. Arsitektur aliran data (data flow architecture) 3. Panggilan dan kembali arsitektur (call and return architecture) 4. Arsitektur berorientasi objek (object oriented architecture) 5. arsitektur berlapis Berbagai gambar ini menjelaskan arsitektur-arsitektur pada perangkat lunak

Gambar 10.1. : Arsitektur data terpusat Gambar : Arsitektur aliran data Gambar 10.2. : Arsitektur call and return

Gambar 10.3. : Arsitektur Orientasi Objek Arsitektur Pola (Patern Architecture) Gambar 10.4. : Arsitektur Layer Concurrency aplikasi harus menangani banyak tugas dalam pola yang mensimulasikan paralelisasi o operating system process management pattern o task scheduler pattern Persistence Data ada jika dia bertahan setelah eksekusi proses yang membuatnya. Ada dua pattern umum :: o database management system pattern yang menerapkan penyimpanan dan pengambilan dari DBMS kepada arsitektur aplikasi

o application level persistence pattern yang membangun fitur persistence pada aristektur aplikasi Distribution pola dimana sistem atau komponen2x di antaranya berkomunkasi dalam lingkungan terdistribusi Broker bertindak sebagai orang di tengah antara komponen klient dan komponen server. Desain Arsitektur (design architecture) Arsitektur diagram konteks adalah model bagaimana perangkat lunak berinteraksi dengan entitas eksternal Arketipe (archetype) adalah kelas atau pola yang mewakili abstraksi penting untuk system Komponen arsitektur yang berasal dari domain aplikasi, infrastruktur, dan antarmuka. Diag am Konteks Arketipe (Arch. Context Diagram) Contoh : Safe Home ACD Gambar 10.5. : Diagram Konteks Arketipe

Gambar 10.6. : Diagram Konteks Arketipe Safe Home ACD

Safe Home Archtype Gambar 10.7. : Safe Home ACD Archetype Struktur Komponen Gambar 10.8. : Struktur Komponen

Komponen Elaboration Gambar 10.9. : Komponen Elaboration Analisis Desain Arsitektur 1. Kumpulkan semua skenario. 2. Dapatkan kebutuhan2x, batasan2x, dan gambaran lingkungan. 3. Gambarkan pola/gaya arsitektur yang telah dipilih untuk menangani skenario2x dan kebutuhan2x :: module view process view data flow view 4. Evaluasi kualitas atribut2x dengan melihat setiap atribut dalam isolasi. 5. Kenali kualitas atribut untuk setiap atribut arsitektural untuk masing-masik gaya arsitektur yang spesifik. 6. Lakukkan kritik pada arsitektur2x kandidat (yg dikembangkan pada langkah 3) menggunakan analisis pada langkah 5.

Memperoleh arsitektur program Program Architecture Gambar 10.10 : Memperoleh arsitektur program Partisi Arsitektur Partisi arsitektur secara vertical dan horizontal dibutuhkan dalam pengembangan perangkat lunak Partisi Horisontal Gambar 10.11. : Partisi Arsitektur Tentukan cabang yang terpisah pada hierarki modul untuk setiap fungsi utama Gunakan modul kontrol untuk koodinasi komunikasi antar fungsi2x

function 1 function 3 function 2 Partisi vertical melalui proses refactoring Gambar 10.12 : Partisi Horisontal Didesain sehingga pengambilan keputusan dan pekerjaan distratifikasi Modul pengambilan keputusan tetap ada di puncak arsitektur decision-makers workers Gambar 10.13. : Partisi Vertikal : Refactoring Mengapa di dalam desain arsitektur diperlukan proses refactoring Hasilnya adalah PL yang mudah diuji Membawa kepada PL yang lebih mudah dikelola Hasilnya efek samping yang semakin sedikit Hasilnya adalah PL yang lebih mudah dikembangkan Desain terstruktur adalah : Tujuan : untuk mendapatkan arsitektur program yang terpartisi pendekatan: o DFD dipetakan ke arsitektur program o PSPEC dan STD digunakan untuk mengindikasikan setiap modul notasi: diagram struktur Karakteristik aliran

Aliran Transformasi Aliran Transaksi Gambar 10.14. : Karakteristik Aliran

Pendekatan Pemetaan Umum Isolisasi aliran ke dalam dan keluar batasan : untuk aliran transaksi, isolasi pusat transaksi Bekerja dari batasan luar, petakan transformasi DFD ke modul terkait Tambahkan modul control jika dibutuhkan Sempurnakan struktur program menggunakan konsep modularitas efektif Pemetaan tranformasi a b c d e f data flow model i g j h x1 "Transform" mapping x2 x3 x4 b c d e f g i a h j Gambar 10.15. : Pemetaan tranformasi Factoring direction of increasing decision making typical "decision making" modules typical "worker" modules Gambar 10.16 : Factoring First Level Factoring

direction of increasing decision making typical "decision making" modules typical "worker" modules Gambar 10.17 : First Level Factoring Second level mapping D B C A A C control main B mapping from the flow boundary outward D Gambar 10.18 : Second level mapping Transaction Flow

incoming flow action path T Gambar 10.19 : Transaction Flow Contoh Transaction fixture setting fixture servos operator commands process operator commands report display screen robot control assembly record robot control software in reality, other commands would also be shown Gambar 10.20 : Contoh Transaksi Menyempurnakan analisis model 1. Tuliskan narasi proses bahasa inggris atau model flow level 0 2. Mengaplikasikan kata kerja/benda untuk mengisolasi proses, item data, penyimpan dan entitas 3. Membangun model floe level 02 dan 03 4. Membuat data entri kamus yang sesuai

5. Memperbaiki model aliran yang sesuai Transaction Mapping data flow model x1 b a x2 d e f e a f d b t i g h k l j m n t x3 g h x3.1 i j k x4 l m n Gambar 10.21 Maping Transaksi Isolate Flow Paths Mapping command error msg produce error msg read command command inv alid command v alidate command determine ty pe status read f ixture status combined status determine setting raw setting f ormat setting fixture setting robot control send control v alue read record record calculate output v alues v alues f ormat report report assembly record start /stop Gambar : 10.22. Isolasi Arah Jalur

Map the flow model process operator commands command input controller determine type read command validate command produce error message fixture status controller report generation controller send control value each of the action paths must be expanded further Gambar 10.23 : Peta pada model flow Refining Strcutre Chart process operator commands command input controller determine type read command validate command produce error message fixture status controller report generation controller send control value read fixture status determine setting format setting read record calculate output values format report Gambar 10.24 : Refining Structure Chart