Unified Modeling Language
Unified Modeling Language Merupakan bahasa standard untuk membuat blueprint suatu software. UML bisa digunakan sebagai visualisasi, spesifikasi, konstruksi dan dokumentasi suat software. Grady Booch James Rumbaugh (OMT) Ivar Jacobson (OOSE)
Unified Modeling Lanugage Merupakan standard bahasa pemodelan untuk pembuatan object-oriented software. Merupakan kombinasi dari: Konsep Pemodelan Data (Entity Relationship Diagrams) Pemodelan Bisinis (Work Flow), Pemodelan Object, Pemodelan Komponen,
Unified Modeling Language Spesifikasi UML mendefinisikan sekumpulan diagram grafis sebagai tampilan dari beberapa level abstraksi. Dapat digunakan bersama oleh semua proses pada keseluruhan tahap siklus-hidup (life-cycle) pengembangan software serta pada implementasi ke beberapa teknologi yang berbeda.
Apa itu Visual Modeling? Business Process Order Item Ship via “Modeling captures essential parts of the system.” Dr. James Rumbaugh Computer System Visual Modeling adalah modeling yang menggunakan Notasi standard grafis
Visual Modeling Captures Business Process Use Case Analysis adalah suatu teknik untuk menangkap perspektif user terhadap proses bisnis
Kegunaan UML Merepresentaasikan Element suatu sistem atau suatu domain dan Relationship-nya pada suatu Static Structure menggunakan class dan diagram object. Memodelkan Behavior object dengan state transition diagrams Menampilkan Arsitektur Implementasi Fisik (Physical Implementation Architecture) dengan Diagram Komponen dan Diagram Penyebaran (Deployment) Menampilkan Batas suatu sistem dan Fungsi utamanya menggunakan use cases dan actors Mengilustrasikan Realisasi Use Case dengan interaction diagrams
Block Pembentuk UML Things Relationships Diagrams
Things Structural things Behavioral things Grouping things classes, interfaces, collaborations, use cases, active classes, components, nodes. Behavioral things interactions, state machines. Grouping things packages. Annotational things notes.
Structural Things Structural things adalah “kata benda” dari UML models. Kebanyakan terdiri dari bagian-bagian model yang statik Merepresentasikan elemen-elemen secara fisik ataupun konseptual.
Structure Things: Classes dan Instances Spesifikasi untuk satu atau lebih object yang berbeda dengan bentuk yang sama (Structure dan Behavior) instance phone1:Telephone busy = true offHook() onHook () ring() class Telephone busy : boolean offHook() onHook () ring() phone2:Telephone busy = false offHook() onHook () ring()
Attributes Merepresentasikan Aspek data/struktur statik dari suatu class Attribut bisa diperoleh melalui pemeriksaan definisi class, problem requirements, dan juga melalui domain knowledge CourseOffering Setiap course offering memiliki number, location dan time number location time
Operations Merepresentasikan Behavior suatu class Operations bisa diperoleh dari pemeriksaan diagram interaksi registration registration form manager RegistrationManager addCourse(joe, math 01) addCourse(Student,Course)
Different Levels of Specifying Classes Hak akses: ‘+’= public, ‘ - ’= private, ‘#’ = protected
Structural Things (lanjutan) Use case menspesifikasikan behavior suatu sistem atau bagian sistem merupakan deskripsi dari himpunan barisan aksi, termasuk variannya untuk memperoleh hasil yang bisa diobservasi oleh actor contoh: Place Order
Structural Things Actor Actor merepresentasikan peranan pemakai use case ketika berinteraksi dengan use case tersebut. Contoh: Student Maintain Schedule
Structural Things Interface <<interface>> Interface adalah koleksi operation yang menspesifikasikan service suatu class atau component. Tidak menspesifikasikan struktur (artinya tidak memiliki attribute) Contoh: <<interface>> URL_StreamHandler openConnection() Parse URL() setURL() toExternalForm() operation ISpelling
Structural Things Collaboration Chain of Responsibility Collaboration adalah sekumpulan class, interface, dan elemen lain yang saling bekerja sama untuk menghasilkan behavior yang lebih besar dari keseluruhan part-nya. Contoh: Chain of Responsibility
Structural Things Active class BlackboardController attributes Active class adalah class dari object-object yang memiliki satu atau lebih proses atau thread yang bisa memulai aktivitas control. Contoh: BlackboardController currentKnowledgeSource Signals BlackboardIsSolved hasAHint attributes name operation signals
Structural Things Component component adalah bagian fisik sistem yang bisa diganti dan menyedikan sekumpulan realization sebagai interface.
Structural Things Node Node adalah elemen fisik yang ada pada saat run-time yang mereperesentasikan suatu sumber komputasi.
Behavioral Things Behavioral things adalah bagian UML model yang dinamis dan merupakan bagian ‘kata kerja’ pada model yang merepresentasikan behavior waktu dan ruang.
Behavioral Things (cont’d) Interaction Interaction adalah behavior yang terdiri dari pertukaran pesan (message) antar object pada konteks tertentu untuk memperoleh suatu tujuan. State machine State machine adalah behavior yang menspesifikasikan barisan aliran state suatu object atau interaksi selama proses berlangsung
Grouping dan Annotational Things Grouping things adalah bagian organisasi model UML. Package A package adalah mekanisme yang bertujuan umum untuk mengorganisasikan elemen ke dalam group. Package Business rules name Extra compartment may be used to show contents
Annotational things (Note) note adalah penjelasan dari bagian UML model untuk memberikan keterangan, ilustrasi dan catatan tentang elemen suatu model. Note note Consider the use of the broker design pattern here.
Relationships Association Association adalah hubungan dua arah antar class. Hubungan tersebut digambarkan sebagai garis yang menghubungakan class-class tersebut.
Relationships Aggregation Adalah bentuk hubungan yang lebih kuat antara whole dan part. Dinyatakan dengan garis yang menghubungkan class-class tersebut dimana pada ujung (whole) terdapat gambar diamond. Part Aggregate has School Department 1 1..*
Relationship Dependency Dependency adalah relationship yang menyatakan ketergantungan yaitu perubahan yang terjadi pada suatu ‘thing’ akan mempengaruhi yang lainnya (yang memakai thing tsb.), tetapi tidak perlu untuk sebaliknya Supplier Client name
Relationships Generalization Subclass Superclass Generalization adalah suatu hubungan antara general thing (superclass atau parent) dan thing lainnya yang lebih spesifik. Kadang disebut sebagai hubungan ''isakindof''. Subclass Superclass
Relationship Realization AccountBusinessRule Realization Realization adalah hubangan semantic antar classifiers, dimana satu classifier menspesifikasikan suatu kontrak dengan classifier lainnya agar classifier tersebut menjamin untuk melaksanakan tugas interface. Terdapat antar Interface dan Class; serta antara use cases dan collaboation yang merealisasikannya. Realization << Interface>> IRuleAgent AccountBusinessRule AddRule() changeRule() explainAction()
Financial Institution Class Diagram Menampilkan entitas suatu sistem dan general relationship-nya Financial Institution Person client creditor 0..* 0..* owner 0..* generalization association Bank Trust Company residence 0..* House
Object Diagram Captures instances dan links
Use Case Diagram Use case diagram menunjukkan suatu kelompok use case dan actors serta relationships-nya.
Sequence Diagram Captures dynamic behavior (time-oriented)
Collaboration Diagram Captures dynamic behavior (message-oriented)
Statechart Diagram Statechart diagram menampilkan suatu state machine, yang terdiri dari states, transitions, events, dan activities.
Activity Diagram Captures dynamic behavior (activity-oriented)
Component Diagram Component diagram menunjukkan organisasi dan dependencies pada sekumpulan component.
Deployment Diagram Deployment diagram menunjukkan konfigurasi node pemroses run-time dan komponen yang ada.
Contoh The ESU University wants to computerize their registration system The Registrar sets up the curriculum for a semester One course may have multiple course offerings Students select 4 primary courses and 2 alternate courses Once a student registers for a semester, the billing system is notified so the student may be billed for the semester Students may use the system to add/drop courses for a period of time after registration Professors use the system to receive their course offering rosters Users of the registration system are assigned passwords which are used at logon validation
Actors Actor pada sistem: Registrar Professor Student Billing System
Use Cases Actors are examined to determine their needs Registrar -- maintain the curriculum Professor -- request roster Student -- maintain schedule Billing System -- receive billing information from registration Maintain Schedule Maintain Curriculum Request Course Roster
Copyright © 1997 by Rational Software Corporation Use Case Diagram Use case diagrams are created to visualize the relationships between actors and use cases Request Course Roster Professor Student Maintain Schedule Billing System Maintain Curriculum Registrar Copyright © 1997 by Rational Software Corporation
Sequence Diagram
Collaboration Diagram : Registrar course form : CourseForm theManager : CurriculumManager aCourse : Course 1: set course info 2: process 3: add course 4: new course
Classes ScheduleAlgorithm RegistrationForm RegistrationManager Course Student Professor CourseOffering
Classes ScheduleAlgorithm RegistrationForm RegistrationManager Course addStudent(Course, StudentInfo) Course name numberCredits Student open() name addStudent(StudentInfo) major Professor name CourseOffering tenureStatus location open() addStudent(StudentInfo)
Relationships ScheduleAlgorithm RegistrationForm RegistrationManager Course Student CourseOffering Professor addStudent(Course, StudentInfo) name numberCredits open() addStudent(StudentInfo) major location tenureStatus ScheduleAlgorithm
Multiplicity and Navigation ScheduleAlgorithm RegistrationForm 0..* RegistrationManager 1 addStudent(Course, StudentInfo) name numberCredits open() addStudent(StudentInfo) major location tenureStatus 1 Course 0..* Student 1 3..10 Professor 1..* 4 CourseOffering 1 0..4
Inheritance ScheduleAlgorithm RegistrationForm RegistrationManager addStudent(Course, StudentInfo) Course name RegistrationUser numberCredits name Student open() addStudent(StudentInfo) major Professor CourseOffering tenureStatus location open() addStudent(StudentInfo)
State Transition Diagram Add student[ count < 10 ] Add Student / Initialization Set count = 0 Open do: Initialize course entry: Register student exit: Increment count Cancel Cancel [ count = 10 ] Canceled do: Notify registered students Closed Cancel do: Finalize course
Component Diagram People.dll Course.dll Professor Student Course Register.exe Billing.exe Billing System Course.dll People.dll User Course Professor Student Course Course Offering
Deployment Diagram Registration Database Main Library Building Dorm