Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2

dokumen-dokumen yang mirip
REKAYASA PERANGKAT LUNAK MATERI TM 11

Design Engineering. Tim RPL. Program Studi Teknik Informatika

KONSEP DAN PRINSIP DESAIN. Oleh I Made Cipta Wahyudi

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

Prinsip & Konsep Perancangan Sistem

Bab 9. Rekayasa Desain

Pertemuan 9 PRINSIP DAN KONSEP DESAIN

Chapter 8. Design Engineering

PRINSIP DAN KONSEP DESAIN

REKAYASA PERANGKAT LUNAK MATERI TM 10

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

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

Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2

Review Rekayasa Perangkat Lunak. Nisa ul Hafidhoh

DASAR REKAYASA PERANGKAT LUNAK

P10 Konsep & Prinsip Desain. A. Sidiq P.

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

REKAYASA PERANGKAT LUNAK II

Dibuat Oleh : 1. Andrey ( )

Prinsip dan Konsep Desain Perangkat Lunak

Minggu 6 Prinsip & Konsep Desain

SEJARAH UML DAN JENISNYA

PENGUJIAN BERORIENTASI OBJEK

Rekayasa Perangkat Lunak

Apakah yang dimaksud Tangguh?

MAKALAH REKAYASA PERANGKAT LUNAK ( KONSEP DESAIN PERANGKAT LUNAK )

Bab 6 PERANCANGAN PERANGKAT LUNAK

BAB II DASAR TEORI Pengertian Framework

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

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

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

BAB 2 LANDASAN TEORI

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

RANCANGAN APLIKASI LATIHAN BELAJAR TENSES DENGAN METODE OBJECT ORIENTED DESIGN

Sistem Informasi OOAD dengan UML (1) Teknik Informatika UNIKOM

Analisis Model Perangkat Lunak

Unified Modelling Language UML

Analisis dan Perancangan Sistem II T02 Use Case

Yuli Purwati, M.Kom USE CASE DIAGRAM

Teknik Informatika S1

Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2

RANCANGAN PEMBELAJARAN

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

Teknik Informatika S1

BAB III METODOLOGI PENELITIAN

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

PENGANTAR RUP & UML. Pertemuan 2

REKAYASA PERANGKAT LUNAK

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

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

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

Praktik Rekayasa Perangkat Lunak

BAB II LANDASAN TEORI

Tugas Mandiri Analisis dan Perancangan Sistem II ACTIVITY & SWIMLANE DIAGRAM

Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2

Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering)

DAFTAR ISTILAH. Activity Diagram

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

Pengenalan UML dan Diagram Use Case. Alif Finandhita. Teknik Informatika UNIKOM

BAB II TINJAUAN PUSTAKA

Ratna Wardani. Department of Electronic Engineering Yogyakarta State University

BAB III METODOLOGI PENELITIAN

Kebutuhan dan Spesifikasi Perangkat Lunak

Teknik Informatika S1

Pengenalan Obyek. Arna Fariza. Materi

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

Rekayasa Perangkat Lunak (Software Engineering)

BAB V PERANCANGAN MOXIE

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

UML UNIFIED MODELLING LANGUAGE

LAMPIRAN A KERANGKA DOKUMEN ANALISIS

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

Object-Oriented Design

REKAYASA PERANGKAT LUNAK MATERI TM 12

CLASS DIAGRAM. Jerri Agus W ( ) Gendra Budiarti ( )

RENCANA PEMBELAJARAN SEMESTER (RPS)

Gambar Use Case Diagram

UNIVERSITAS MERCU BUANA FAKULTAS : ILMU KOMPUTER PROGRAM STUDI : SISTEM INFORMASI

MODEL DESAIN & DOKUMENTASI DESAIN

BAB III BAB IV Class Diagram... II Sequence Diagram... II Colaboration Digram... II Activity Diagram... II S

Prinsip Fundamental dalam Desain Perangkat Lunak

Teknik Informatika S1

Mohamad Sidiq Teknik Informatika Fakultas Ilmu Komputer Universitas Dian Nuswantoro1

BAB II LANDASAN TEORI

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

PERANCANGAN BERORIENTASI OBJEK

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

5 Perancangan Perangkat Lunak

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

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

PEMBANGUNAN PERANGKAT LUNAK PENYIRAMAN TANAMAN SECARA OTOMATIS BERBASIS ANDROID

Data & Architecural Design. Tim RPL Progdi Teknik Informatika

Realisasi Use Case. Nisa ul Hafidhoh

Teknik Informatika S1

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

Teknik Informatika S1

BAB II LANDASAN TEORI

MAKALAH ANALISIS & PERANCANGAN SISTEM II USE CASE DIAGRAM

SURAT PERNYATAAN ABSTRACT ABSTRAK KATA PENGANTAR

Materi Kuliah 3 Pemodelan Perangkat Lunak

Transkripsi:

Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2 with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 1

Software Engineering: A Practitioner s Approach, 6/e Chapter 9 Rekayasa Desain copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited. with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 2

Analysis Model -> Design 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 Analysis 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 with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 3

Desain dan Kualitas 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 orang-orang 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. with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 4

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 karakteristik fungsional yang dindpeneden. 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. with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 5

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). From Davis [DAV95] with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 6

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 with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 7

Abstraksi Data door manufacturer model number type swing direction inserts lights type number weight opening mechanism implemented as a data structure with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 8

Abstraksi Prosedur open details of enter algorithm implemented with a "knowledge" of the object that is associated with enter with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 9

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 invokasi method 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 disain keluarga atau sistem yang mirip. Esensinya, desain harus mempunyai kemampuan untuk menggunakan kembali blok-blok bangunan arsitektur with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 10

Patterns/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 with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 11

Desain Modular easier to build, easier to change, easier to fix... with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 12

Modularitas: Permasalahan 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 with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 13

Penyembunyian Informasi clients module controlled interface "secret" algorithm data structure details of external interface resource allocation policy a specific design decision with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 14

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 with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 15

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 with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 16

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. with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 17

Mengukur modul: dua sudut pandang What's inside?? How big is it?? MODULE with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 18

Refactoring 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. with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 19

Desain Class Konsep Desain OO 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 with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 20

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. with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 21

Inheritance 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 operasi-operasi 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 operasi-operasi yang dibutuhkan dan diturunkan oleh class baru tersebut. Karakteristik dari class yang sudah ada dapat di override dan atributatribut dan operasi-operasi dengan versi berbeda dapat diimplementasikan untuk class baru tersebut. with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 22

Messages :SenderObject message (<parameters>) :ReceiverObject with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 23

Pendekatan konvensional Polymorphism case of graphtype: if graphtype = linegraph then DrawLineGraph (data); if graphtype = piechart then DrawPieChart (data); if graphtype = histogram then DrawHisto (data); if graphtype = kiviat then DrawKiviat (data); end case; 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 salahsatu subclassnya. Objek yang menerima message akan menjalankan operasi draw nya sendriri untuk membuat graph yang sesuai.. graphtype draw with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 24

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 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 dimension with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 25

Elemen-Elemen Model Desain Elemen-elemen Data Data model --> struktur data Data model --> arsitektur database Elemen-elemen arsitektur Domain aplikasi Class-class analisis, relasinya, kolaborasi dan perilaku diubah menjadi realisasi desain Patterns dam styles (Chapter 10) Elemen-elemen interface user interface (UI) Interface external pada sistem lain, piranti-piranti, jaringan-jaringan atau produsen maupun konsumen informasi lainnya Interface internal antara komponen-komponen desain. Elemen-elemen komponen Elemen-elemen deploy with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 26

Elemen-elemen Interface MobilePhone WirelessPDA Cont rolpanel LCDdisplay LEDindicat ors keypadcharact erist ics speaker wirelessint erf ace Key Pad readkeyst roke() decodekey () displayst at us() light LEDs() sendcont rolmsg() < < int erface> > Key Pad readkeyst roke() decodekey() Figure 9.6 UML int erfac e represent at ion for Co n t ro lpa n e l with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 27

Elemen-elemen Komponen SensorManagement Sensor with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 28

Elemen-elemen Deployment Cont rol Panel CPI server Security homeowneraccess Personal comput er externalaccess Security Surveillance homemanagement communication with permission by R.S. Pressman & Associates, Inc., copyright Figure 9.8 UML 1996, deploym 2001, ent 2005 diagram for SafeHom e 29

Design Patterns 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 atribut-atrobit desain yang harus diatur untuk memungkinkan pattern mengakomodasi permasalahan yang bervariasi. with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 30

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 with permission by R.S. Pressman & Associates, Inc., copyright 1996, 2001, 2005 31