53
10 BAB Perancangan pada Perangkat Komponen

rekayasa perangkat lunak bab 10

Embed Size (px)

DESCRIPTION

membahas tentang perancangan pada komponen perangkat lunak dimana setiap perancangan mempunyai step masing-masing.

Citation preview

Page 1: rekayasa perangkat lunak bab 10

10BAB

Perancangan pada Perangkat Komponen

Page 2: rekayasa perangkat lunak bab 10

Tujuan perangcangan pada perangkat komponen adalah untuk menerjemah model

perancangan menjadi perangkat lunak operasional

Tujuan

10.1.1. Pandangan Berorientasi Objek

10.1.2. Pandangan Tradisional

10.1.3. Pandangan yang berhubungan dengan Proses

10.1. Apa Itu Kompnen

Tujuan

Aswar Ahmad D421 11 266

Page 3: rekayasa perangkat lunak bab 10

Bangunan pembentuk perangkat lunak komputer yang bersiafat modular.

AtauBagian sistem yang bersifat modular, dapat di-

deploy, dan dapat digantikan, yang membungkus implementasi dan

memperlihatkan sejumlah antarmuka

10.1. Apa Itu Komponen

10.1.1. Pandangan Berorientasi Objek

10.1.2. Pandangan Tradisional

10.1.3. Pandangan yang berhubungan dengan Proses

10.1. Apa Itu Kompnen

Tujuan

Aswar Ahmad D421 11 266

Page 4: rekayasa perangkat lunak bab 10

10.1.1. Pandangan Berorintasi Objek

Suatu komponen memuat di dalam sejumlah kelas yang saling berkolaborasi. Masing-masing

kelas di dalam suatu komponen telah dielaborasi dengan lengkap untuk melibatkan di dalamnya semua atribut dan operasi yang

relevan untuk implementasinya.

10.1.1. Pandangan Berorientasi Objek

10.1.2. Pandangan Tradisional

10.1.3. Pandangan yang berhubungan dengan Proses

10.1. Apa Itu Kompnen

Tujuan

Aswar Ahmad D421 11 266

Page 5: rekayasa perangkat lunak bab 10

Atribut kelas Analisis

PrintJob didefinisikan Sebagai komponen yang ada di dalam arsitektur perangkat lunak dan ia

dipresentasikan menggunakan notasi komponen UML2 seperti yang terlihat pada

gambar

Klik

10.1.1. Pandangan Berorientasi Objek

10.1.2. Pandangan Tradisional

10.1.3. Pandangan yang berhubungan dengan Proses

10.1. Apa Itu Kompnen

Tujuan

Aswar Ahmad D421 11 266

Page 6: rekayasa perangkat lunak bab 10

Elaborasi Sebuah Komponen RancanganAnalisis Class

Printjob

NumberOfPageNumberOfSidePapertypeMagnificationProductionFreaturesComputeJobCost()PassJobPrinter()

Printjob

ComputeJob

InitiateJob

Designcomponent

Elaborated design class

Printjob

NumberOfPageNumberOfSidePapertype PapeWeight PaperSize PaperColorMagnificationColorrequermentsProductionFreatures CollationOptions bindingOptions CoverStock Bleed PriorityTotalJobCostWOnumber

ComputePageCost()ComputePaperCost()ComputeProdCost()ComputeTotalJobCost()BuildWorkOrder()checkPriority()PassJobto Production()

<<Interface>>ComputeJob

ComputePageCost()ComputePaperCost()ComputeProdCost()ComputeTotalJob()

<<Interface>>ComputeJob

ComputePageCost()ComputePaperCost()ComputeProdCost()ComputeTotalJobCost()

10.1.1. Pandangan Berorientasi Objek

10.1.2. Pandangan Tradisional

10.1.3. Pandangan yang berhubungan dengan Proses

10.1. Apa Itu Kompnen

Tujuan

Aswar Ahmad D421 11 266

Page 7: rekayasa perangkat lunak bab 10

PrintJob

PrintJob memiliki 2 antarmuka1. computeJob : yang menyediakan

kemampuan perhitungan biaya pekerjaan pengecetakan

2. initiateJob : yang akan melewatkan pekerjaanpencetakan ke fasilitas produksi

10.1.1. Pandangan Berorientasi Objek

10.1.2. Pandangan Tradisional

10.1.3. Pandangan yang berhubungan dengan Proses

10.1. Apa Itu Kompnen

Tujuan

Aswar Ahmad D421 11 266

Page 8: rekayasa perangkat lunak bab 10

Sebuah komponen tradisional, juga sering disebut sebagai modul, berada dalam

arsitektur perangkat lunak

10.1.2. Pandangan Tradisional

10.1.1. Pandangan Berorientasi Objek

10.1.2. Pandangan Tradisional

10.1.3. Pandangan yang berhubungan dengan Proses

10.1. Apa Itu Kompnen

Tujuan

Aswar Ahmad D421 11 266

Page 9: rekayasa perangkat lunak bab 10

1. Sebagai komponen kendali yang mengkordinasi pemanggilan semua komponen ranah permasalahan yang lain

2. Sebuah komponen ranah permasalahan yang mengimplementasikan secara lengkap atau secara bagian fungsi yang diperlukan untuk pelanggan

3. sebuah komponen infrastuktur yang bertanggung jawab untuk fungsi-fungsi yang mendukung pemrosesan yang diperlukan dalam ranah permasalahan

Peran penting

10.1.1. Pandangan Berorientasi Objek

10.1.2. Pandangan Tradisional

10.1.3. Pandangan yang berhubungan dengan Proses

10.1. Apa Itu Kompnen

Tujuan

Aswar Ahmad D421 11 266

Page 10: rekayasa perangkat lunak bab 10

Diagram Struktur untuk Sistem TradisionalJob

management system

ReadPrint Job

data

SelectJobmgmtfungtion

DevelovJob cost

ComputeProd cost

Send JobTo

Production

BuildWork cover

Checkpriority

Pass job toProduction

ComputePaper cost

Compute Poge cost

10.1.1. Pandangan Berorientasi Objek

10.1.2. Pandangan Tradisional

10.1.3. Pandangan yang berhubungan dengan Proses

10.1. Apa Itu Kompnen

Tujuan

Page 11: rekayasa perangkat lunak bab 10

Perancangan pada Peringkat komponen untuk ComputePageCost

CompatePageCost

GetJobData

accessCostDB

Design component

PageCost

In: NumberPagesIn: NumberDocsIn: sides = 1, 2In: color = 1, 2, 3, 4In : page size = A, B, C, DOut : page costIn : job sizeIn : color = 1, 2, 3, 4In : page size = A, B, C, DOut : BPCOut : SF

GetJobData (numberpages, NumberDocs, Sides, color, pageSize, pageCost)accessCostDB(jobSize, color, pageSize. BPC,SF)ComputePageCost()

Job size (JS) = Numberpages * numberDocs;Lookup base page cost (BRP) -> AccessCostsDB (JS, color);Lookup size factor (SF) -> AccessCostsDB (JS, color, size)Job complexity factor (JCF) = 1 + [(sides-1)*sideCost + SF]pageCost = BPC * JCP

10.1.1. Pandangan Berorientasi Objek

10.1.2. Pandangan Tradisional

10.1.3. Pandangan yang berhubungan dengan Proses

10.1. Apa Itu Kompnen

Tujuan

Page 12: rekayasa perangkat lunak bab 10

Suatu katalog dari perencanaan yang sudah terbukti dari komponen-komponen pada

peringkat kode telah tersedia bagi kita pada saat pekerjaan perancangan berlangsung

10.1.3. Pandangan yang Berhubungan dengan Proses

10.1.1. Pandangan Berorientasi Objek

10.1.2. Pandangan Tradisional

10.1.3. Pandangan yang berhubungan dengan Proses

10.1. Apa Itu Kompnen

Tujuan

Aswar Ahmad D421 11 266

Page 13: rekayasa perangkat lunak bab 10

Perancangan Komponen-komponen

berbasis kelas

Page 14: rekayasa perangkat lunak bab 10

Perancangan komponen berbasis kelas

Pada perancangan peringkat komponen berbasis kelas berbasis elaborasi pada kelas yang bersifat spesifik terhadap rana permasalahan dan pada defenisi pengahalusan kelas infrastruktur yang ada pada model kebutuhan.

Niar khadijah D421 11 258

Page 15: rekayasa perangkat lunak bab 10

Prinsip-prinsip Perancangan Dasar

• OCP (Open-Closed Principle)

Niar khadijah D421 11 258

Page 16: rekayasa perangkat lunak bab 10

• Liskov Substitution Principle (LSP) ini menyarankan bahwa komponen-komponen yang menggunakan kelas dasar seharusnya dapat berfungsi dengan baik jika suatu kelas dari kelas dasar dimasukkan pada komponen itu.

• Dependency Inversion Principle (DIP) apabila suatu komponen semakin bergantung dengan komponen lainnya maka komponen tersebut semakin sukar untuk diperluas.

• Interface Segregation Principle (ISP) prinsip ISP menyarankan agar kita membuat antarmuka yang bersifat khusus untuk melayani setiap kategori utama klien, hanya operasi yang relevan pada suatu kategori klien tertentu yang harus dispesifikasi untuk klien yang bersangkutan.Niar khadijah D421 11 258

Page 17: rekayasa perangkat lunak bab 10

Prinsip pengemasan pada perancangan peringkat komponen yang disarankan oleh

Martin [Mar00] :

• Release Reuse Equevalency Principle ( REP )• Common Closure Principle ( CCP )• Common Reuse Principle ( CRP )

Niar khadijah D421 11 258

Page 18: rekayasa perangkat lunak bab 10

Panduan Perancangan pada yang disarankan oleh Ambler [Amb02b] :

• Komponen• Perancangan lantai dasar• Antarmuka• Kebergantungan dan pewarisan

Niar khadijah D421 11 258

Page 19: rekayasa perangkat lunak bab 10

Kohesi Lapisan

Niar khadijah D421 11 258

Page 20: rekayasa perangkat lunak bab 10

Kohesi adalah komponen-komponen yang berpikiran tunggal.

Kohesi perancangan komponen sistem berorientasi objek mengaplikasikan kelas hanya membungkus atribut dan operasi yang berhubungan satu sama lain kemudian membungkus atribut dan operasi yang dekat dengan kelas itu sendiri.

Niar khadijah D421 11 258

Page 21: rekayasa perangkat lunak bab 10

Jenis Kohesi yang didefenisikan Lethbridge & Laganiere [Let01] :

Fungsional operasi peringkat kohesi ini terjadi saat komponen melakukan komputasi sesuai dengan diharapkan, kemudian kembali dengan hasil tertentu.

Lapisan (layer) jenis kohesi ini terjadi ketika lapisan lebih tinggi mengakses layanan lapisan lebih awal, tetapi lapisan bawah tidak mengakses lapisan yang lebih tinggi.

Komunikasional semua operasi yang mengakses data yang sama didefenisikan dalam satu kelas, kelas yang berfokus pada kegiatan untuk melayani pertanyaan yang berkaitan dengan data tersebut.

Niar khadijah D421 11 258

Page 22: rekayasa perangkat lunak bab 10

Derajat Keterhubungan AntarKomponen

adalah pengurangan kualitatif tentang derajat bagaimana kelas-kelas saling terhubung satu sama lain. Saat kelas (komponen) lebih saling terhubung, derajat keterhubungan antar komponen juga bertambah.

Niar khadijah D421 11 258

Page 23: rekayasa perangkat lunak bab 10

Kategori derajat keterhubungan antarkelas/komponen didefinisikan

Lethbridge & Laganiere [Let01] sebagai berikut :

Keterhubungan isi Keterhubungan kendali Keterhubungan data Keterhubungan pemanggilan rutin Keterhungan penggunaan tipe data Keterhubungan inklusi atau impor Keterhubungan eksternal

Niar khadijah D421 11 258

Page 24: rekayasa perangkat lunak bab 10

MELAKUKAN PERANCANGAN PADA PERINGKAT KOMPONEN

Page 25: rekayasa perangkat lunak bab 10

MELAKUKAN PERANCANGAN PADA PERINGKAT KOMPONEN

Langkah-langkah merepresentasikan pekerjaan yang dilakukan pada perancangan pada peringkat komponen :

1. Mengidentifikasi semua Kelas-kelas perancangan yang berhubungan dengan ranah permasalahan.

2. Mengelaborasi semua kelas-kelas perancangan yang berhubungan dengan infrastruktur.

3. Mengelaborasi semua kelas-kelas yang tidak di perlukan sebagai kelas yang dapat digunakan ulang.

Muh. Imam Mirza D421 11 276

Page 26: rekayasa perangkat lunak bab 10

Langkah 3 terbagi menjadi empat langkah yaitu :

• Spesifikasi rincian pesan saat kelas-kelas atau komponen-komponen berkolaborasi.

Gambar 10.6 memperlihatkan bagaimana suatu diagram kolaborasi sederhana untuk sistem pencetakan.

Muh. Imam Mirza D421 11 276

Page 27: rekayasa perangkat lunak bab 10

• Mengidentifikasi antarmuka-antarmuka yang sesuai untuk masing-masing komponen.

• Elaborasi atribut-atribut dan definisikan tipe data dan struktur data yang di perlukan untuk mengimplementasikan.

Gambar 10.7 memperlihatkan proses faktorisasi dan defenisi kelas-kelas untuk Printjob

Muh. Imam Mirza D421 11 276

Page 28: rekayasa perangkat lunak bab 10

• Deskripsikan aliran pemrosesan di dalam masing-masing operasi secara rinci.

Gambar 10.8 Diagram aktivitas UML untuk compute Papercost

Muh. Imam Mirza D421 11 276

Page 29: rekayasa perangkat lunak bab 10

4. Mendeskripsikan sumber-sumber data persisten dan mengidentifikasi kelas-kelas yang dibutuhkan untuk mengelolanya.

5. Mengembangkan dan mengelaborasi representasi perilaku untuk kelas komponen.

Gambar 10.9 mengindikasi bahwa kelas printjob pada dasarnya bergantung pada du persetujuan pelanggan atas biaya dan jadwal untu.k pekerjaan percetakan.

Muh. Imam Mirza D421 11 276

Page 30: rekayasa perangkat lunak bab 10

6. Elaborasi diagram penebaran komponen untuk menyediakan rincian implementasi tambahan.

7. Lakukan refaktorisasi setiap representasi perancangan pada peringkat komponen dan pertimbangkanlah selalu alternatif yang mungkin.

Selain itu, kita tidak cukup hanya dengan satu model itu, kembangkan alternatif model pencangan yang lainnya.

Muh. Imam Mirza D421 11 276

Page 31: rekayasa perangkat lunak bab 10

zul

Page 32: rekayasa perangkat lunak bab 10

PERANCANGAN KOMPONEN-KOMPONEN TRADISIONAL

Page 33: rekayasa perangkat lunak bab 10

“ Setiap konstruksi memiliki struktur logika yang dapat diperkirakan hasilnya dan akan dijalankan mulai dari atas dan akan diakhiri dibagian bawah, hal ini memungkinkan para

pembaca program komputeryang dibuat dapat mengikuti aliran-aliran program dengan

cara yang relatif lebih mudah”

Tonny Christian P.PD D421 11 277

Page 34: rekayasa perangkat lunak bab 10

10.5.1 NOTASI PERANCANGAN SECARA GRAFIS

“ Gambar seringkali lebih berarti dari ribuan kata”, meski demikan penting untuk mengetahui yang mana yang harus berupa gambar dan yang mana harus dituliskan dalam bentuk 1000 kata. Tidak ada keraguan sedikit pun bahwa perkakas grafik, seperti diagram aktivitas UML atau diagram alir (flowchart) bisa menyediakan pola gambar yang sangat bermanfaat, yang secara mudah memperlihatkan rincian-rincian yang sifatnya prosudural.

Tonny Christian P.PD D421 11 277

Page 35: rekayasa perangkat lunak bab 10

KONSTRUKSI DIAGRAM ALIR

Tonny Christian P.PD D421 11 277

Page 36: rekayasa perangkat lunak bab 10

10.5.2 NOTASI PERANCANGAN TABULAR

“Pada banyak perangkat lunak aplikasi, suatu modul tertentu mungkin diperlukan untuk melakukan evaluasi-evaluasi atas kombinasi kondisi-kondisi yang kompleks dan kemudian memilih tindakan-tindakan yang sesuai berdasarkan kondisi-kondisi tersebut”.

Tonny Christian P.PD D421 11 277

Page 37: rekayasa perangkat lunak bab 10

TATA NAMA TABEL KEPUTUSAN

Tonny Christian P.PD D421 11 277

Page 38: rekayasa perangkat lunak bab 10

10.5.3 BAHASA PERANCANGAN PROGRAM

“Bahasa perancangan program (program design lenguage [PDL]) yang seringkali juga dinamakan sebagai bahasa inggris terstruktur atau pseudocode, pada dasarnya menggabungkan struktur logika bahasa pemograman dengan kemampuan bahasa alamiah (bahasa inggris) untuk membentuk pernyataan ekspresif yang berbentuk bebas”.

Tonny Christian P.PD D421 11 277

Page 39: rekayasa perangkat lunak bab 10

TATA NAMA TABEL KEPUTUSAN

Tonny Christian P.PD D421 11 277

Page 40: rekayasa perangkat lunak bab 10

Pengembangan Berbasis Komponen

10.6

Rahmat Ramadhan D421 11 278

Page 41: rekayasa perangkat lunak bab 10

• Penggunaan ulang komponen merupakan ide yang

baru sekaligus Lama.

• Menggunakan ide-ide, abstraksi, serta proses-proses

sejak awal komputasi dilakukan. Pendekatan baru

adalah pada penggunaan ulang komponen

Rahmat Ramadhan D421 11 278

Page 42: rekayasa perangkat lunak bab 10

Computer Based Software Engineering (CBSE)

• Menekankan pada perancangan dan konstruksi sistem.

• Menggunakan komponen perangkat lunak yang dapat digunakan ulang.

• Integrasi komponen yang digunakan ulang sehingga membentuk sistem yang lengkap . [Clement]

Rahmat Ramadhan D421 11 278

Page 43: rekayasa perangkat lunak bab 10

Rekayasa Ranah10.6.1

Sasaran :

Mengidentifikasi, mengontruksi, pembuatan katalog dan

menyebarkan sejumlah komponen pada perangkat lunak dalam

ranah aplikasi.

Rahmat Ramadhan D421 11 278

Page 44: rekayasa perangkat lunak bab 10

Langkah-langkah :

1. Mendefinisikan ranah yang akan diteliti.

2. Melakukan penggolongan item.

3. Mengumpulkan contoh aplikasi.

4. Melakukan analisis aplikasi.

5. Mengembangkan Model kebutuhan untuk kelas analisis.

Rahmat Ramadhan D421 11 278

Page 45: rekayasa perangkat lunak bab 10

Kualifikasi Komponen, Adaptasi, dan Komposisi

10.6.2

1. Kualifikasi Komponen.

Memastikan komponen-komponen dapat melaksanakan

Fungsi yang diperlukan, Sesuai dengan gaya arsitektur yang

telah ditentukan, dan memperlihatkan karakteristik kualitas.

Rahmat Ramadhan D421 11 278

Page 46: rekayasa perangkat lunak bab 10

Faktor-faktor yang perlu diperhatikan :

• Application Programming Interface (API)

• Pengembangan dan perkakas integrasi.

• Lingkungan saat komponen dijalankan.

• Kebutuhan-kebutuhan layanan.

• Fitur-fitur keamanan.

• Asumsi tentang Perancangan.

• exception handling

Rahmat Ramadhan D421 11 278

Page 47: rekayasa perangkat lunak bab 10

2. Adaptasi Komponen.

Implikasi dari “kemudahan diintegrasikan” adalah:

1. Metode yang konsisten diimplementasikan untuk semua komponen

yang dapat digunakan ulang,

2. Aktivitas-aktivitas yang bersifat umum,

3. Interface di dalam arsitektur sistem dan interface untuk lingkungan

eksternal diimplementasikan dengan cara yang konsisten

Rahmat Ramadhan D421 11 278

Page 48: rekayasa perangkat lunak bab 10

3. Komposisi Komponen

Pekerjaan Komposisi Komponen yang dapat digunakan ulang :

• Perakitan komponen.

• Komponen yang mampu beradaptasi dengan lingkungan aplikasi

• Mengisi arsitektur yang diterapkan pada aplikasi yang dikembangkan

Rahmat Ramadhan D421 11 278

Page 49: rekayasa perangkat lunak bab 10

• OMG/COBRA

(Object Management Group/Common Requets Broker Architecture)

• Microsoft COM dan .NET.

• Komponen JavaBeans dari Sun

Rahmat Ramadhan D421 11 278

Page 50: rekayasa perangkat lunak bab 10

ANALISIS DAN PERANCANGAN UNTUK PENGGUNAAN ULANG

10.6.3

Hal yang perlu dalam perancangan komponen :

1. Data Standar

• Ranah aplikasi harus diivestigasi,

• Struktur data global yang bersifat baku diidentifikasi

secara saksama.

Rahmat Ramadhan D421 11 278

Page 51: rekayasa perangkat lunak bab 10

2. Protokol antar muka yang bersifat baku

• Antarmuka-antarmuka antarmodul,

• Perancangan antarmuka eksternal secara teknis,

• Antarmuka antar manusia-komputer.

3. Pola-pola Program

• Pemilihan gaya arsitektural sebagai pola dasar sangat

berpengaruh pada perancangan sistem baru yang dapat

digunakan ulang.

Rahmat Ramadhan D421 11 278

Page 52: rekayasa perangkat lunak bab 10

KLASIFIKASI DAN PEMANGGILAN KOMPONEN-KOMPONEN

10.6.4

Klasifikasi memungkinkan untuk menemukan dan memanggil

kandidat komponen yang akan digunakan ulang.

Rahmat Ramadhan D421 11 278

Page 53: rekayasa perangkat lunak bab 10

untuk efektifnya, lingkungan penggunaan-ulang harus berkarakteristik:

1. Suatu Basis data Komponen yang memungkinkan pemanggilan

2. Sistem pengolaan pustaka komponen yang menyediakan akses

basisdata

3. Suatu sistem pemanggilan komponen perangkat lunak.

4. Perkakas CBSE yang mendukung integrasi komponen

Rahmat Ramadhan D421 11 278