Chapter 8. Design Engineering

dokumen-dokumen yang mirip
Design Engineering. Tim RPL. Program Studi Teknik Informatika

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

REKAYASA PERANGKAT LUNAK MATERI TM 11

Prinsip dan Konsep Desain Perangkat Lunak

Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2

Minggu 6 Prinsip & Konsep Desain

Review Rekayasa Perangkat Lunak. Nisa ul Hafidhoh

DASAR REKAYASA PERANGKAT LUNAK

REKAYASA PERANGKAT LUNAK MATERI TM 10

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

Ratna Wardani. Department of Electronic Engineering Yogyakarta State University

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

Pertemuan 9 PRINSIP DAN KONSEP DESAIN

Teknik Informatika S1

KONSEP DAN PRINSIP DESAIN. Oleh I Made Cipta Wahyudi

(Source: Pressman, R. Software Engineering: A Practitioner s Approach. McGraw-Hill, 2010)

PRINSIP DAN KONSEP DESAIN

P10 Konsep & Prinsip Desain. A. Sidiq P.

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

Rekayasa Perangkat Lunak

Tujuan 04/07/ :01

MODEL DESAIN & DOKUMENTASI DESAIN

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

Teknik Informatika S1

BAB III OBJEK DAN METODE PENELITIAN. domain & Web Hosting. Untuk lebih jelas mengenai gambaran umum perusahaan,

Materi Kuliah 3 Pemodelan Perangkat Lunak

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

Pendahuluan Rekayasa Perangkat Lunak II. Alif Finandhita. Teknik Informatika UNIKOM

PENGANTAR RUP & UML. Pertemuan 2

REKAYASA PERANGKAT LUNAK II

Dibuat Oleh : 1. Andrey ( )

BAB I PENDAHULUAN. Dinas Pendidikan, Pemuda dan Olahraga Kota Tanjungpinang merupakan

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

MODUL 4 Unified Software Development Process (USDP)

RANCANGAN APLIKASI LATIHAN BELAJAR TENSES DENGAN METODE OBJECT ORIENTED DESIGN

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

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

Prinsip & Konsep Perancangan Sistem

Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2

Object Oriented Analysis and Design -Pendahuluan- Nisa ul Hafidhoh

Unified Modelling Language UML

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

2. BAB II LANDASAN TEORI. lanjut sehingga terbentuk suatu aplikasi yang sesuai dengan tujuan awal.

SOFTWARE TESTING. Ratna Wardani

Praktik Rekayasa Perangkat Lunak

PROSES MODEL DESAIN PERANGKAT LUNAK

LAMPIRAN A KERANGKA DOKUMEN ANALISIS

BAB I PENDAHULUAN. dalam suatu perusahaan, karena persediaan akan dijual secara terus menerus untuk

Rekayasa Perangkat Lunak (Software Engineering)

MAKALAH REKAYASA PERANGKAT LUNAK ( KONSEP DESAIN PERANGKAT LUNAK )

BAB IV ANALISIS DAN PERANCANGAN SISTEM. hasil analisis ini digambarkan dan didokumentasiakan dengan metodologi

Requirements Engineering. Materi 5

pada masalah pengumpulan kebutuhan pengguna pada tingkatan sistem (system requirements) dengan mendefinisikan konsep sistem beserta interface yang

BAB III. Metode Penelitian

Dibuat Oleh : 1. Andrey ( )

BAB III METODOLOGI PENELITIAN. dalam pengumpulan data atau informasi guna memecahkan permasalahan dan

BAB 1 PENDAHULUAN. tidak bisa dipisahkan dari proses bisnis, bahkan tidak jarang teknologi informasi menjadi

TEKNIK PENGUJIAN PERANGKAT LUNAK

BAB III LANDASAN TEORI

BAB III LANDASAN TEORI

Testing dan Implementasi Sistem

Software Architecture

Bab 9. Rekayasa Desain

BAB II LANDASAN TEORI. implementasi serta pasca implementasi.(rizky, 2011:21). performasi dan fungsi yang diinginkan.

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

BAB III METODOLOGI PENELITIAN

MAKALAH REKAYASA PERANGKAT LUNAK ( SIKLUS HIDUP PERANGKAT LUNAK )

DESAIN PERANGKAT LUNAK

BAB II LANDASAN TEORI

DAFTAR ISI. Abstraksi... Kata Pengantar... Daftar Isi... Daftar Tabel... Daftar Gambar... Daftar Lampiran... BAB I PENDAHULUAN...

Analisis dan Perancangan Sistem II T02 Use Case

DESAIN TEST CASE. Tugas ke 11 Rekayasa Perangkat Lunak

REKAYASA SISTEM. Konsep dan Prinsip Analisis

BAB III METODOLOGI PENELITIAN

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA SILABUS REKAYASA PERANGKAT LUNAK

UML UNIFIED MODELLING LANGUAGE

1 BAB III METODE PENELITIAN

Dasar-Dasar Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

IF2261 Software Analysis Part I

REKAYASA PERANGKAT LUNAK

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

BAB III METODOLOGI PENELITIAN. Desain penelitian disusun berdasarkan tahapan sebagai berikut:

Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2

RENCANA PEMBELAJARAN SEMESTER (RPS)

Analisis Model Perangkat Lunak

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Kegiatan analisis sistem yang berjalan dilakukan dengan analisis yang

SESI PERTAMA. 1.1 UML sebagai standarisasi. 1.2 UML, asal usul INFORMATION SYSTEM DESIGN USING UML YUDHO

BAB IV ANALISIS DAN PERANCANGAN SISTEM. mampu memperkirakan dan merincikan seluruh dokumen ataupun prosedur yang

BAB I PENDAHULUAN 1.1. Latar Belakang

12. Component Diagram

MATERI PEMODELAN PERANGKAT LUNAK KELAS XI RPL

Teknik Informatika S1

BAB I PENDAHULUAN. 1.1 Latar Belakang

SOFTWARE PROCESS MODEL

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

PERANCANGAN SISTEM INFORMASI MANAJEMEN PERPUSTAKAAN MENGGUNAKAN POLA MODEL-VIEW- CONTROLLER (MVC)

Analisis dan desain model

BAB 1 PENDAHULUAN Latar Belakang

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

Transkripsi:

Chapter 8 Design Engineering - Introduction - Design quality - Design concepts - The design model (Source: Pressman, R. Software Engineering: A Practitioner s Approach. McGraw-Hill, 2005)

Introduction

Five Notable Design Quotes "Pertanyaan tentang apakah diperlukan atau desain yang cukup terjangkau intinya; desain tidak bisa dihindari. Alternatif untuk desain yang baik adalah desain yang buruk, [bukan] tidak ada desain sama sekali." Douglas Martin "Anda dapat menggunakan penghapus di meja gambar atau palu di lokasi konstruksi." Frank Lloyd Wright "The public is more familiar with bad design than good design. If is, in effect, conditioned to prefer bad design, because that is what it lives with; the new [design] becomes threatening, the old reassuring." Paul Rand "A common mistake that people make when trying to design something completely foolproof was to underestimate the ingenuity of complete fools." Douglas Adams "Every now and then go away, have a little relaxation, for when you come back to your work your judgment will be surer. Go some distance away because then the work appears smaller and more of it can be taken in at a glance and a lack of harmony and proportion is more readily seen." Leonardo DaVinci 3

Tujuan Desain Desain adalah di mana kebutuhan pelanggan, kebutuhan bisnis, dan pertimbangan teknis semua datang bersama-sama dalam perumusan produk atau sistem. Model desain menyediakan detail tentang struktur data perangkat lunak, arsitektur, antarmuka, dan komponen. Model desain dapat dinilai untuk kualitas dan ditingkatkan sebelum kode yang dihasilkan dan tes dilakukan. Apakah desain mengandung kesalahan, inkonsistensi, atau kelalaian? Apakah ada alternatif desain yang lebih baik? Bisa desain diimplementasikan dalam batasan, jadwal, dan biaya yang telah ditetapkan? (More on next slide) 4

Tujuan Desain (cont...) Seorang desainer harus berlatih diversifikasi (dibedakan) dan konvergensi (dipusatkan) Perancang memilih dari komponen desain, solusi komponen, dan pengetahuan yang tersedia melalui katalog, buku pelajaran, dan pengalaman. Perancang kemudian memilih unsur-unsur dari koleksi ini yang memenuhi persyaratan yang ditetapkan oleh persyaratan teknik dan analisis pemodelan Konvergensi terjadi sebagai alternatif dipertimbangkan dan ditolak sampai satu konfigurasi tertentu komponen yang dipilih Software desain adalah sebuah proses iteratif dimana kebutuhan diterjemahkan ke dalam blueprint untuk membangun perangkat lunak. Desain dimulai pada tingkat tinggi abstraksi yang dapat langsung ditelusuri kembali ke data, fungsional, dan persyaratan perilaku. Sebagai desain iterasi terjadi, perbaikan berikutnya mengarah ke desain representasi pada tingkat yang jauh lebih rendah dari abstraksi. 5

Analisis Model > Desain Model sc e na r i o- ba se d e l e me nt s use-cases - text use-case diagrams activity diagrams swim lane diagrams Analy sis Model f l ow- or i e nt e d e l e me nt 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 e l e me nt s class diagrams analysis packages CRC models collaboration diagrams be ha v i or a l e l e me nt 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

Analisis Model > Desain Model (Cont...) Setiap elemen dari model analisis menyediakan informasi yang diperlukan untuk membuat empat model desain. Desain data / class mengubah kelas analisis ke dalam kelas desain bersama dengan struktur data yang diperlukan untuk mengimplementasikan perangkat lunak Desain arsitektur mendefinisikan hubungan antara elemen struktural utama dari perangkat lunak; gaya arsitektur dan pola desain membantu mencapai persyaratan yang ditetapkan untuk sistem Desain antarmuka menjelaskan bagaimana software berkomunikasi dengan sistem yang beroperasi dengan itu dan dengan manusia yang menggunakannya Desain Tingkat-komponen mengubah elemen struktural dari arsitektur perangkat lunak menjadi deskripsi prosedur dari komponen software. (More on next slide) 7

Analisis Model > Desain Model (Cont...) Component-level Design (Class-based model, Flow-oriented model Behavioral model) Interface Design (Scenario-based model, Flow-oriented model Behavioral model) Architectural Design (Class-based model, Flow-oriented model) Data/Class Design (Class-based model, Behavioral model) 8

Panduan Mengatur Desain Perangkat Lunak 1) Periksa model domain informasi dan desain struktur data yang sesuai untuk objek data dan atribut mereka 2) Menggunakan model analisis, pilih gaya arsitektur (dan pola desain) yang sesuai untuk perangkat lunak 3) Partisi model analisis ke dalam subsistem desain dan mengalokasikan subsistem ini dalam arsitektur a) Desain antarmuka subsistem b) Mengalokasikan kelas analisis atau fungsi masing-masing subsistem 4) Create satu set kelas desain atau komponen a) Menerjemahkan setiap analisis deskripsi kelas ke kelas desain b) Periksa setiap kelas desain terhadap kriteria desain; mempertimbangkan masalah warisan c) Menentukan metode yang terkait dengan masing-masing kelas desain d) Mengevaluasi dan memilih pola desain untuk kelas desain atau subsistem (More on next slide) 9

(continued) 5) Desain antarmuka yang diperlukan dengan sistem eksternal atau perangkat 6) Desain antarmuka pengguna 7) Melakukan desain komponen-tingkat a) Tentukan semua algoritma pada tingkat yang relatif rendah abstraksi b) Memperbaiki antarmuka masing-masing komponen c) Tentukan struktur data komponen-tingkat d) Tinjau masing-masing komponen dan memperbaiki semua kesalahan ditemukan 8) Mengembangkan Physical/Deployment model Tampilkan tata letak fisik dari sistem, mengungkapkan komponen yang akan berlokasi di mana dalam lingkungan komputasi fisik 10

Design Quality

Quality's Role Pentingnya desain adalah kualitas Desain adalah tempat di mana kualitas dibina Menyediakan representasi perangkat lunak yang dapat dinilai untuk kualitas Akurat menerjemahkan kebutuhan pelanggan menjadi produk jadi atau sistem perangkat lunak Berfungsi sebagai dasar untuk semua kegiatan rekayasa perangkat lunak yang berikutnya. Tanpa desain, kita berisiko membangun sebuah sistem yang tidak stabil yang Akan gagal jika perubahan kecil yang dibuat Mungkin sulit untuk menguji Tidak dapat dinilai untuk kualitas kemudian dalam proses perangkat lunak saat waktunya singkat dan sebagian besar anggaran yang telah dikeluarkan Kualitas desain yang dinilai melalui serangkaian tinjauan teknis formal 12

Goals of a Good Design Desain harus mengimplementasikan semua persyaratan eksplisit yang terkandung dalam model analisis Hal ini juga harus mengakomodasi semua kebutuhan implisit yang diinginkan oleh pelanggan Desain harus menjadi panduan yang dapat dibaca dan dimengerti bagi mereka yang menghasilkan kode, dan bagi mereka yang menguji dan mendukung perangkat lunak Desain harus menyediakan gambaran yang lengkap dari perangkat lunak, menangani data, fungsional, dan domain perilaku dari perspektif implementasi "Writing a clever piece of code that works is one thing; designing something that can support a long-lasting business is quite another." 13

Pedoman Desain Kualitas 1) Sebuah desain harus menampilkan arsitektur yang a) Telah dibuat dengan menggunakan gaya arsitektur dikenali atau pola b) Terdiri dari komponen-komponen yang menunjukkan karakteristik desain yang baik c) Dapat diimplementasikan dalam bentul yang evolusioner, sehingga memfasilitasi implementasi dan pengujian 2) Sebuah desain harus modular; yaitu, perangkat lunak harus secara logis dipartisi menjadi beberapa elemen subsistem 3) Sebuah desain harus berisi representasi yang berbeda dari data, arsitektur, antarmuka, dan komponen 4) Sebuah desain harus menuju struktur data yang sesuai untuk kelas yang akan diimplementasi dan digambar dari pola data yang dikenal (more on next slide) 14

Quality Guidelines (continued) 5) Sebuah desain harus menuju komponen-komponen yang menunjukkan karakteristik fungsional independen 6) Sebuah desain harus menuju antarmuka yang mengurangi kompleksitas hubungan antara komponen dan dengan lingkungan eksternal 7) Sebuah desain harus diturunkan menggunakan metode berulang yang diatur oleh informasi yang diperoleh selama analisis persyaratan perangkat lunak 8) Sebuah desain harus direpresentasikan menggunakan notasi yang secara efektif mengkomunikasikan maknanya 15

Design Concepts

Design Concepts Abstraction Procedural abstraction urutan instruksi yang memiliki fungsi tertentu dan terbatas Data abstraction Sekumpulan data yang menggambarkan objek data Architecture Struktur keseluruhan dari perangkat lunak dan cara-cara dimana struktur memberikan integritas konseptual untuk sistem Terdiri dari komponen, konektor, dan hubungan antara mereka Patterns Sebuah struktur desain yang memecahkan masalah desain tertentu dalam konteks tertentu Ini memberikan gambaran yang memungkinkan desainer untuk menentukan apakah pola yang berlaku, apakah pola dapat digunakan kembali, dan apakah pola dapat berfungsi sebagai panduan untuk mengembangkan pola serupa (more on next slide) 17

Design Concepts (continued) Modularity Secara terpisah dengan nama dan alamat komponen (yaitu, modul) yang terintegrasi untuk memenuhi persyaratan (membagi dan menaklukkan prinsip) Membuat perangkat lunak intelektual dikelola sehingga dapat memahami jalur kontrol, rentang referensi, jumlah variabel, dan kompleksitas keseluruhan Information hiding Perancangan modul sehingga algoritma dan data lokal yang terkandung di dalamnya tidak dapat diakses untuk modul lain Hal ini memaksa kendala akses ke kedua prosedural (yaitu, pelaksanaan) detail dan struktur data lokal Functional independence Modul yang memiliki "single-minded" fungsi dan penolakan terhadap interaksi yang berlebihan dengan modul lain High cohesion modul hanya melakukan satu tugas Low coupling modul memiliki jumlah terendah dari koneksi yang diperlukan dengan modul lain (more on next slide) 18

Design Concepts (continued) Stepwise Refinement Pengembangan program dengan tingkat sukses memperbaiki detail prosedur Melengkapi abstraksi, yang memungkinkan seorang desainer untuk menentukan prosedur dan data dan belum menekan tingkat rendah rincian Refactoring Sebuah teknik reorganisasi yang menyederhanakan desain (atau struktur kode internal) dari komponen tanpa mengubah fungsi atau perilaku eksternal Menghapus redundansi, unsur-unsur yang tidak terpakai desain, algoritma yang tidak efisien atau tidak perlu, konstruksi yang buruk atau tidak pantas struktur data, atau kegagalan desain lainnya Design classes Memurnikan kelas analisis dengan memberikan detail desain yang akan memungkinkan kelas yang akan dilaksanakan Membuat set baru kelas desain yang mengimplementasikan infrastruktur perangkat lunak untuk mendukung solusi bisnis 19

Types of Design Classes User interface classes dmendefinisikan semua abstraksi yang diperlukan untuk interaksi manusia-komputer (biasanya melalui metafora objek dunia nyata) Business domain classes diperbaiki dari kelas analisis; mengidentifikasi atribut dan jasa (metode) yang diperlukan untuk mengimplementasikan beberapa elemen dari domain bisnis Process classes mengimplementasikan abstraksi bisnis yang diperlukan untuk sepenuhnya mengelola kelas domain bisnis Persistent classes mewakili menyimpan data (misalnya, database) yang akan bertahan melampaui pelaksanaan perangkat lunak System classes menerapkan manajemen perangkat lunak dan fungsi kontrol yang memungkinkan sistem untuk beroperasi dan berkomunikasi dalam lingkungan komputasi dan dunia luar 20

Characteristics of a Well-Formed Design Class Complete and sufficient Berisi enkapsulasi lengkap semua atribut dan metode yang ada untuk kelas Hanya berisi metode-metode yang cukup untuk mencapai maksud dari kelas Primitiveness Setiap metode kelas berfokus pada mencapai satu layanan untuk kelas High cohesion Kelas ini memiliki kecil, terfokus set tanggung jawab dan single-mindedly berlaku atribut dan metode untuk melaksanakan tanggung jawab itu Low coupling Kolaborasi dari kelas dengan kelas lainnya disimpan ke minimum yang dapat diterima Setiap kelas harus memiliki pengetahuan yang terbatas dari kelas-kelas lain dalam subsistem lainnya 21

The Design Model Component-level Design Interface Design Architectural Design Data/Class Design

Abstraction Dimension Dimensions of the Design Model High Analysis model Design model Low Data/Class Elements Architectural Elements Interface Elements Component-level Elements Deployment-level Elements Process Dimension (Progression)

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 narrat ives 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 ref inement s t o: 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 ref inement s t o: 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 dimensio n

Introduction Model desain dapat dilihat dalam dua dimensi yang berbeda (Horizontally) Dimensi proses menunjukkan evolusi bagian dari model desain sebagai setiap tugas desain dieksekusi (Vertically) Dimensi abstraksi merupakan tingkat detail karena setiap elemen model analisis ditransformasikan ke dalam model desain dan kemudian perhalus Elemen model desain menggunakan banyak diagram UML yang sama digunakan dalam model analisis Diagram yang disempurnakan dan diuraikan sebagai bagian dari desain Lebih-detil implementasi khusus disediakan Penekanan ditempatkan pada Struktur arsitektur dan gaya Antarmuka antara komponen dan dunia luar Komponen yang berada dalam arsitektur (More on next slide) 25

Introduction (continued) Elemen model desain tidak selalu dikembangkan secara berurutan Desain arsitektur awal menetapkan tahap Hal ini diikuti oleh desain antarmuka dan desain tingkat-komponen, yang sering terjadi secara paralel Model desain memiliki elemen berlapis berikut Data/class design Architectural design Interface design Component-level Design Component-level design Unsur kelima yang mengikuti semua? Interface Design Yang lain adalah deployment-level design Architectural Design Data/Class Design 26

Elemen-Elemen Model Desain Data/class design Membuat model data dan objek yang direpresentasikan pada tingkat tinggi abstraksi Architectural design Menggambarkan tata letak keseluruhan dari perangkat lunak Interface design Menceritakan bagaimana informasi mengalir masuk dan keluar dari sistem dan bagaimana hal itu dikomunikasikan antara komponen-komponen didefinisikan sebagai bagian dari arsitektur Termasuk antarmuka pengguna, antarmuka eksternal, dan antarmuka internal Component-level design elements Menjelaskan detail internal masing-masing komponen perangkat lunak dengan cara definisi struktur data, algoritma, dan spesifikasi antarmuka Deployment-level design elements Menunjukkan bagaimana fungsi perangkat lunak dan subsistem akan dialokasikan dalam lingkungan komputasi fisik yang akan mendukung perangkat lunak 27

Pattern-based Software Design (Pola berbasis Software Desain) Perkembangan Disiplin ilmu teknik memanfaatkan ribuan pola desain untuk hal-hal seperti bangunan, jalan raya, sirkuit listrik, pabrik-pabrik, sistem senjata, kendaraan, dan komputer Design patterns juga melayani tujuan dalam rekayasa perangkat lunak Architectural patterns Menentukan struktur keseluruhan perangkat lunak Menunjukkan hubungan antara subsistem dan komponen software Tentukan aturan untuk menentukan hubungan antara unsur-unsur perangkat lunak Design patterns Menangani elemen tertentu dari desain seperti agregasi komponen atau memecahkan beberapa masalah desain, hubungan antar komponen, atau mekanisme untuk mempengaruhi komunikasi antar-komponen Terdiri dari penciptaan, struktural, dan perilaku pola Coding patterns Jelaskan pola bahasa tertentu yang menerapkan unsur algoritmik atau struktur data komponen, protokol interface tertentu, atau mekanisme untuk komunikasi antar komponen 28