Matakuliah : M0086/Analisis dan Perancangan Sistem Informasi Tahun : 2005 Versi : 5 Pertemuan 8 Structure
Mahasiswa dapat Menghubungkan Class (Structure) (C4) Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mahasiswa dapat Menghubungkan Class (Structure) (C4) Mahasiswa dapat Membuat diagram / skema Class (C4) Mahasiswa dapat Membagi Cluster (C4)
Outline Materi Cluster Explore Pattern
Clusters «cluster» Cars «cluster» People Car Owner Motor Passenger Car Clerk Cylinder Taxi
Menentukan Structures Coba temukan secara sistematis Clusters: Cluster biasanya dilakukan yang terakhir Kelompokan Class untuk memberikan kejelasan lebih baik Generalisation: Periksa setiap pasangan class untuk struktur generalisasi antar class, atau cari common class Periksa masing masing class untuk spesialisasi (inheritance) yang relevan
Menentukan Structures Aggregation: Periksa setiap pasangan class untuk (1) whole-part, container-content, atau association-member relationships antar class, dan untuk (2) a common whole yang menghubungkan mereka Periksa setiap class untuk (3) components yang relevan Association: Periksa setiap pasangan class untuk needed association(s) Tetapi, jangan hanya membuat structure karena anda dapat Apakah mereka relevan atau berguna? Apakah mereka dapat di representasikan dengan lebih sederhana ? Mungkin perlu melacak ulang ke class
Mencari Pola untuk Structures Pola memberikan sumber inspirasi dan patokan untuk bagaimana memodel situasi Pola yang umum termasuk … Role pattern: object dengan multiple roles Relation pattern: relationship dengan attributes Hierarchy pattern: Item-descriptor pattern:
The Role Pattern Person Person Customer Role Employee Employee Customer Shouldn’t dynamically change object from customer class or employee class to customer-employee class or vice versa Customer- Employee
The Role Pattern Person Role Employee Customer 1 1..* Person Role Rolen 1 0..* Role2 ... Generic Pattern
The Relation Pattern Person Car But … What if need attributes Owns 1..* 1 But … What if need attributes for the owns relationship? E.g., date_purchased Person Ownership 1 0..* Car 1..* Party1 Relation 1 0..* Party2 Generic Pattern
The Hierarchy Pattern University Division 1 1..* School Book Chapter 1 Section Leveln Leveln-1 1 1..* Level1 ... Generic Pattern ...
The Item-Descriptor Pattern Book Copy 1 0..* Descriptor Item 1 0..* Generic Pattern Logical Physical
Tetapi, bagaimana dengan student dari semester yang lama ? Contoh Unit Enrolment Student 0..* 0..* Unit Enrolls in Tetapi, bagaimana dengan student dari semester yang lama ? Bagaimana mendapatkan daftar student dari unit ? Tetapi masih dapat diketahui unit yang mana yang mempunyai syarat apa ?
Unit Enrolment Gunakan item-descriptor untuk mengembangkan unit class Unit title, number Prerequisites, etc. 1 0..* Student Unit Offering Enrolls in 0..* Semester, Year, Instructor, etc. Tetapi bagaimana kita dapat menyimpan nilai atau tanggal pendaftaran unit ?
Unit Enrolment Example Gunakan relation pattern untuk mengembangkan enroll dengan association dan student class Unit title, number Prerequisites, etc. Name, Student #, Address, etc. Student Unit Enrolment Enrolls in 0..* 1 Offering 1 0..* Enrol Date, Unit Mark, etc. 1 Semester, Year, Instructor, etc.
Evaluating Structures Evaluate systematically Structure types must be used correctly aggregation vs association Structures must be conceptually true Structures must be simple Another golden rule Structures must increase clarity
Summary of Principles for Determining Structures Study abstract, static relationships between classes Study concrete, dynamic relationships between objects Model only the necessary structural relationships focus on important aspects include only a minimal number
Tutorial: Structures Individually, identify a list of candidate structures from the case description. Remember to check each pair of classes, etc. Remember to check for all kinds of structures. Be sure that the “is a kind of” and “a part of” semantics are applied correctly
Terima Kasih