Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.

Presentasi serupa


Presentasi berjudul: "These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by."— Transcript presentasi:

1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1 Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2 Catatan Kuliah Rekayasa Perangkat Lunak (Software Engineering) Bagian 2 copyright © 2006 R.S. Pressman & Associates, Inc M. Idham Ananta Timur, S.T., M.Kom. Hanya digunakan di lingkungan Universtias Hanya boleh digandakan untuk mahasiswa di lingkungan universitas yang menggunakan buku Software Engineering: A Practitioner's Approach. Selain itu dilarang keras menggandakan. Presentasi, slide atau hardcopy tidak boleh digunakan untuk short courses, seminar industri, atau kepentingan konsultasi.

2 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 2 Software Engineering: A Practitioner’s Approach, 6/e Bab 11 Desain Level Komponen Software Engineering: A Practitioner’s Approach, 6/e Bab 11 Desain Level Komponen 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.

3 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 3 Apakah Komponen ? OMG Unified Modeling Language Specification [OMG01] mendefinisikan komponen sebagai OMG Unified Modeling Language Specification [OMG01] mendefinisikan komponen sebagai “… a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.” “… a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.” Pandangan OO : Sebuah komponen terdiri dari sekumpulan class2x yang berkolaborasi Pandangan OO : Sebuah komponen terdiri dari sekumpulan class2x yang berkolaborasi Pandangan Konvensional: logika, struktur data internal yang dibutuhkan untuk mengimplementasi logika proses dan sebuah interface yang memungkinkan komponen untuk dipanggil sehingga data dapat dimasukkan ke dalamnya. Pandangan Konvensional: logika, struktur data internal yang dibutuhkan untuk mengimplementasi logika proses dan sebuah interface yang memungkinkan komponen untuk dipanggil sehingga data dapat dimasukkan ke dalamnya.

4 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 4 Komponen OO

5 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 5 Komponen Konvensional

6 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 6 Prinsip2x Desain Dasar The Open-Closed Principle (OCP). “sebuah modul[komponen] harus terbuka untuk ekstensi, namun tertutup untuk modifikasi. The Open-Closed Principle (OCP). “sebuah modul[komponen] harus terbuka untuk ekstensi, namun tertutup untuk modifikasi. The Liskov Substitution Principle (LSP). “Subclass harus dapat disubstitusi oleh basis class nya. The Liskov Substitution Principle (LSP). “Subclass harus dapat disubstitusi oleh basis class nya. Dependency Inversion Principle (DIP). “Tergantung pada abstraksi, tidak tergantung pada konkret.” Dependency Inversion Principle (DIP). “Tergantung pada abstraksi, tidak tergantung pada konkret.” The Interface Segregation Principle (ISP). “banyak interface spesifik client lebih baik daripada satu interface general purpose. The Interface Segregation Principle (ISP). “banyak interface spesifik client lebih baik daripada satu interface general purpose. The Release Reuse Equivalency Principle (REP). “Bagian-bagian kecil yang dapat digunakan kembali adalah bagian-bagian kecil yang akan direlease.” The Release Reuse Equivalency Principle (REP). “Bagian-bagian kecil yang dapat digunakan kembali adalah bagian-bagian kecil yang akan direlease.” The Common Closure Principle (CCP). “Class2x yang berubah bersama- sama adalah milik bersama.” The Common Closure Principle (CCP). “Class2x yang berubah bersama- sama adalah milik bersama.” The Common Reuse Principle (CRP). “Class2x yang tidak digunakan kembali bersama-sama tidak dikelompokkan bersama.” The Common Reuse Principle (CRP). “Class2x yang tidak digunakan kembali bersama-sama tidak dikelompokkan bersama.” Source: Martin, R., “Design Principles and Design Patterns,” downloaded from http:www.objectmentor.com, 2000.

7 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 7 Panduan Desain Komponen Komponen Konvensi penyebutan nama harus ditentukan untuk komponen2x yang menjadi bagian dari model arsitektur dan kemudian disempurnakan dan diuraikan sebagai bagian dari model level komponen Konvensi penyebutan nama harus ditentukan untuk komponen2x yang menjadi bagian dari model arsitektur dan kemudian disempurnakan dan diuraikan sebagai bagian dari model level komponen Interfaces Interfaces Interface menyediakan informasi penting mengenai komunikasi dan kolaborasi (yang akan membantuk kita mendapatkan OCP) Interface menyediakan informasi penting mengenai komunikasi dan kolaborasi (yang akan membantuk kita mendapatkan OCP) Dependencies dan Inheritance Dependencies dan Inheritance Adalah ide yang bagus untuk membuat model dependency dari kiri ke kanan dan intheritance dari bawah ke atas. Adalah ide yang bagus untuk membuat model dependency dari kiri ke kanan dan intheritance dari bawah ke atas.

8 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 8Kohesi Pandangan konvensional: Pandangan konvensional: Sebuah modul tunggal Sebuah modul tunggal OO view: OO view: cohesion menyatakan bahwa sebuah komponen atau class melakukan enkapsulasi hanya atribut2x dan operasi2x yang punya kaitan erat dengan yang satu yang lain dan dengan class atau komponen itu sendiri. cohesion menyatakan bahwa sebuah komponen atau class melakukan enkapsulasi hanya atribut2x dan operasi2x yang punya kaitan erat dengan yang satu yang lain dan dengan class atau komponen itu sendiri. Level kohesi Level kohesi Fungsional Fungsional Lapisan/Layer Lapisan/Layer Komunikasi Komunikasi Sekuensial Sekuensial Prosedural Prosedural Temporal Temporal utility utility

9 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 9Coupling Pandangan Konvensional: Pandangan Konvensional: Derajat dimana sebuah komponen terhubung dengan komponen lain dan dengan dunia eksternal Derajat dimana sebuah komponen terhubung dengan komponen lain dan dengan dunia eksternal Pandangan OO : Pandangan OO : Pengukuran kualitatif terhadap derajat dimana class2x saling terkait satu dengan yang lain Pengukuran kualitatif terhadap derajat dimana class2x saling terkait satu dengan yang lain Level coupling Level coupling Content Content Common Common Control Control Stamp Stamp Data Data Routine call Routine call Type use Type use Inclusion or import Inclusion or import External External

10 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 10 Component Level Design-I Langkah 1. Identifikasi semua class2x desain yang berkaitan dengan domain permasalahan. Langkah 1. Identifikasi semua class2x desain yang berkaitan dengan domain permasalahan. Langkah 2. Identifikasi semua class2x desain yang berkaitan dengan domain infrastruktur. Langkah 2. Identifikasi semua class2x desain yang berkaitan dengan domain infrastruktur. Langkah 3. teliti semua class2x desain yang tidak dikenali sebagai komponen yang dapat digunaka kembali. Langkah 3. teliti semua class2x desain yang tidak dikenali sebagai komponen yang dapat digunaka kembali. Langkah 3a. Tentukan detail pesan ketika class2x atau komponen berkolaborasi. Langkah 3a. Tentukan detail pesan ketika class2x atau komponen berkolaborasi. Step 3b. Identifikasi interface yang tepat untuk setiap komponen. Step 3b. Identifikasi interface yang tepat untuk setiap komponen.

11 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 11 Component-Level Design-II Langkah 3c. Teliti atribut2x dan tentukan tipe2x data dan struktur data yang dibutuhkan untuk mengimplementasi mereka. Langkah 3c. Teliti atribut2x dan tentukan tipe2x data dan struktur data yang dibutuhkan untuk mengimplementasi mereka. Langkah 3d. Gambarkan aliran proses di setiap operasi secara detail. Langkah 3d. Gambarkan aliran proses di setiap operasi secara detail. Langkah 4. Gambarkan sumber data persistence (database dan file) dan identifikasi class2x yang diminta untuk mengelolanya. Langkah 4. Gambarkan sumber data persistence (database dan file) dan identifikasi class2x yang diminta untuk mengelolanya. Langkah 5. Kembangkan dan perinci representasi perilaku untuk class atau komponen. Langkah 5. Kembangkan dan perinci representasi perilaku untuk class atau komponen. Langkah 6. Teliti diagram deployment untuk menyediakan detail implementasi tambahan. Langkah 6. Teliti diagram deployment untuk menyediakan detail implementasi tambahan. Step 7. Faktorkan setiap representasi desain level komponen dan selalu perhatikan alternatif2x. Step 7. Faktorkan setiap representasi desain level komponen dan selalu perhatikan alternatif2x.

12 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 12 Collaboration Diagram

13 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 13 Refactoring

14 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 14 Activity Diagram

15 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 15Statechart

16 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 16 Object Constraint Language (OCL) Melengkapi UML dengan memungkin software engineer menggunakan grammar dan syntax formal untuk membangun penyataan yang tidak ambigu tanpa elemen2x model desain Melengkapi UML dengan memungkin software engineer menggunakan grammar dan syntax formal untuk membangun penyataan yang tidak ambigu tanpa elemen2x model desain Pernyataan bahasa OCL yang paling sederhana dibangun dengan 4 bagian :: Pernyataan bahasa OCL yang paling sederhana dibangun dengan 4 bagian :: (1) sebuah context yang menyatakan situasi terbatas dimana statemen tersebut valid; (1) sebuah context yang menyatakan situasi terbatas dimana statemen tersebut valid; (2) sebuah property yang menampilkan beberapa karakterstik dari konteks(mis jika context adalah class, properti adalah atribut) (2) sebuah property yang menampilkan beberapa karakterstik dari konteks(mis jika context adalah class, properti adalah atribut) (3) sebuah operation (mis aritmetika) yang memanipulasi atau menentukan properti, dan (3) sebuah operation (mis aritmetika) yang memanipulasi atau menentukan properti, dan (4) keywords (mis if, then, else, and, or, not, implies) yang digunakan untuk ekspresi kondisional. (4) keywords (mis if, then, else, and, or, not, implies) yang digunakan untuk ekspresi kondisional.

17 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 17 Contoh OCL context PrintJob::validate(upperCostBound : Integer, custDeliveryReq : Integer) Integer) pre: upperCostBound > 0 pre: upperCostBound > 0 and custDeliveryReq > 0 and custDeliveryReq > 0 and self.jobAuthorization = 'no' and self.jobAuthorization = 'no' post: if self.totalJobCost <= upperCostBound post: if self.totalJobCost <= upperCostBound and self.deliveryDate <= custDeliveryReq and self.deliveryDate <= custDeliveryReq then then self.jobAuthorization = 'yes' self.jobAuthorization = 'yes' endif endif

18 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 18 Desain Algoritma Aktivitas desain paling dekat dengan coding Aktivitas desain paling dekat dengan coding pendekatan: pendekatan: review gambaran desain untuk komponen review gambaran desain untuk komponen Gunakan langkah-langkah penyempurnaan untuk mengembangkan algoritma Gunakan langkah-langkah penyempurnaan untuk mengembangkan algoritma Gunakan pemrograman terstruktur untuk implementasi logika prosedural Gunakan pemrograman terstruktur untuk implementasi logika prosedural Gunakan ‘formal methods’ untuk membuktikan logika Gunakan ‘formal methods’ untuk membuktikan logika

19 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 19 Langkah2x Penyempurnaan 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; take key out; find correct key; find correct key; insert in lock; insert in lock; endif pull/push door move out of way; end repeat

20 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 20 Model Desain Algoritma Menampilkan algoritma pada level detail yang dapat direview kualitasnya Menampilkan algoritma pada level detail yang dapat direview kualitasnya pilihan2x: pilihan2x: grafis (mis flowchart, box diagram) grafis (mis flowchart, box diagram) pseudocode (mis PDL)... choice of many pseudocode (mis PDL)... choice of many Bahasa pemrograman Bahasa pemrograman Tabel Keputusan Tabel Keputusan Lakukan penelusuran untuk menilai kualitas Lakukan penelusuran untuk menilai kualitas

21 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 21 Pemrograman Terstruktur untuk desain prosedural Gunakan sejumlah konstruksi logika sequence conditional — if-then-else, select-case — if-then-else, select-case loops — do-while, repeat until — do-while, repeat until Mengarah pada kode yang mudah dibaca dan diuji Penting untuk memperoleh kualitas tinggi Tapi tidak cukup Dapat digunakan untuk membantu koreksi

22 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 22 Desain prosedur terstruktur

23 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 23 Tabel Keputusan

24 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 24 Program Design Language (PDL)

25 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 25 Why Design Language?

26 Tugas Akhir Semester Buat Model Analisis dari SRS yang anda buat sebelumnya. Model analisis berisi diagram : Buat Model Analisis dari SRS yang anda buat sebelumnya. Model analisis berisi diagram : Use Case Diagram Use Case Diagram ERD (pendekatan konvensional) ERD (pendekatan konvensional) DFD (pendekatan konvensional) DFD (pendekatan konvensional) Activity/Sequence Diagram (Pendekatan OO) Activity/Sequence Diagram (Pendekatan OO) Class Diagram (Pendekatan OO) Class Diagram (Pendekatan OO) Buat Model Desain dari model analisis yang anda buat Buat Model Desain dari model analisis yang anda buat Rancangan User Interface Rancangan User Interface Dinilai dari keterpaduan, kelengkapan, dan alur logika Dinilai dari keterpaduan, kelengkapan, dan alur logika Dikumpulkan ketika ujian akhir semester Dikumpulkan ketika ujian akhir semester Kelas A disampul mika warna merah Kelas A disampul mika warna merah Kelas B disampul mika warna kuning Kelas B disampul mika warna kuning These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 26


Download ppt "These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by."

Presentasi serupa


Iklan oleh Google