Memahami teknik Object Oriented Design Konsep dan Prinsip Dasar Berorientasi Obyek Analisis dan modelling Metodologi desain Class dan object Operasi dan Penggunaan Ulang Perangkat Lunak Komponen program dan interface Unified Modelling Language (UML) Dapat menjelaskan dan menerapkan metode ObjectOriented pada Perancangan Perangkat Lunak
Pentingnya Perancangan
Encapsulation: menggabungkan data dan fungsi/program secara bersama-sama Reuse: tidak perlu ada penulisan kembali kode.
Reuseable Assets
architecture -- most important but just a fraction of what is reusable use cases, analysis, design, implementation and test user interface models, business models, etc. process with tools projects guidelines
Reuse of technology
Pertanyaan
Jelaskan perbedaan antara perangkat lunak fungsional dengan perangkat lunak berorientasi obyek ?
Fungsi dalam struktur terhirarki Proses dan Prosedur Obyek-obyek dalam dunia nyata yang bekerja sama (tidak terhirarki). Model dari obyek-obyek di dunia nyata tersebut (skenario). Peranan obyek-obyek ini dalam penggambaran sistem perangkat lunak (task).
Penggambaran Fungsional
Menggambarkan dunia sebagai sejumlah fungsi-fungsi yang saling berhubungan
Angka-angka Pengurutan Angka-angka terurut dari kecil ke besar
Umumnya dekomposisi Top-Down (dari abstraksi sampai tingkat rendah). Memanipulasi (mengfungsikan) data utama berarti memahami permasalahan.
Sistem perangkat lunak digambarkan sebagai sekumpulan obyek-obyek yang saling berinteraksi. Obyek-obyek dapat digunakan kembali dengan suatu standar karakteristik.
1. Object-Oriented Analysis Definisikan kebutuhan-kebutuhan sistem melalui skenario atau penggunaan kasus-kasus. Kemudian, buat suatu model obyek dengan kemampuan memuaskan kebutuhan-kebutuhan. Output: Model kebutuhan-kebutuhan Biasanya menggunakan CRC Cards.
ObjectObject-Oriented Analysis
Memberikan gambaran rinci dari suatu sistem. Mengidentifikasi WHAT kebutuhan fungsional (Use Cases)
Object-Oriented Design Model kebutuhan-kebutuhan yang dibuat pada fase analisis diperkaya dalan fase perancangan. Kadang-kadang ditambahkan lebih banyak lagi atribut dan pelayanan. Ditambahkan antarmuka obyek-obyek. Object-Oriented Implementation Dikembangkan penggunaan sistem. Menggunakan bahasa pemrograman yang berorientasi obyek. Jika dibutuhkan, memberikan kaitan pada suatu sistem manajemen basisdata yang terpisah.
ObjectObject-Oriented Design
What is Object-Oriented Programming ? ObjectGaya pemrograman yang terberhubungan dengan notasi object, class dan inheritance.
Peter Wegner pada Dimensions of OOPLs
Object
Class
Inheritance
Object-Oriented Programming
19
Orientasi obyek cocok untuk proses evolusioner dengan pendekatan penggunaan kembali komponenkomponen sistem. Rekayasa perangkat lunak OO menekankan penggunaan ulang kelas-kelas dalam pustaka. Bila suatu kelas tidak ada pada pustaka, maka perekayasa perangkat lunak meangaplikasikan analisis berorientasi obyek (OOA), perancangan berorientasi obyek (OOD), pemrograman berorientasi obyek (OOP) dan pengujian berorientasi obyek (OOT).
Karena komunikasi antara obyek dilakukan melalui pegerakan pesan maka data yang digunakan bersama oleh beberapa obyek akan kecil sehingga mengurangi ketergantungan (minimum coupling). Obyek adalah terpadu (cohesive) dan tak tembus dari luar, sehingga seluruh informasi dalam obyek terlindungi terhadap akses dari luar obyek yang tidak dikehendaki. Obyek dapat dimodifikasi tanpa mempengaruhi operasi dari obyek-obyek yang lain, sehingga dapat meningkatkan kemampuan pemeliharaan sistem.
Pertanyaan
Mengapa walaupun sudah ada Perancangan Berorientasi Object (OOD), Perancangan Fungsional masih tetap digunakan ?
Perancangan Fungsional tetap digunakan karena: Beberapa domain permasalahan lebih baik digambarkan dalam bentuk fungsional dari pada obyek. Sudah banyak metoda dan standard yang dikembangkan untuk mendukung perancangan berorientasi kepada fungsi ini. Sudah banyak pengalaman yang dilakukan dengan perancangan berorientasi fungsi. Perancangan berorientasi fungsi menjadi komplemen (pelengkap) dari perancangan berorientasi obyek.
Pertanyaan
Bagaimana keunggulan dari perancangan berorietasi-obyek dalam memecahkan masalah perancangan perangkat lunak ?
Kelebihan OOD
Obyek-obyek yang dirancang baik dapat digunakan dan ditambahkan ke proyek-proyek lain. Obyek dapat ditambah dengan inheritance. Penggunaan obyek-obyek yang sudah teruji. Encapsulation mencegah kesalahan penggunaan data oleh modul yang lain dan membantu melokalisasi kesalahan (bugs) yang terjadi. Obyek-obyek dapat digunakan kembali dengan karakteristik standar.
Produktivitas
Meningkatkan kecepatan pengembangan perangkat lunak. Pengalaman: OOD meningkatkan kecepatan pengembangan sekitar faktor 10 kali.
Conventional
Effort: Labor-Months
OO Technology
Effort: Labor-Months
Size or Functionality
Size or Functionality
ObjectObject-Oriented Software
Dapat memodelkan masalah dengan baik Lebih mudah dimengerti. Lebih mudah untuk diperbaiki. Lebih mudah untuk digunakan kembali.
Produktivitas ! Kualitas !
SNU OOPSLA Lab. 30
Pertanyaan
Apa yang dimaksud dengan obyek dan bagaimana anatomi (bagian dalam) dari suatu obyek ? Bagaimana obyek dapat berinteraksi dengan dunia luar ?
OBJECT
Biasanya berupa benda atau sesuatu kejadian Benda konkrit : pesawat Konseptual : terbang
Data Metoda
Obyek adalah sekumpulan data (atribut) bersama dengan gabungan fungsi (metoda) yang digunakan untuk mengoperasikan data tersebut. Obyek = Data + Metoda Dunia luar berkomunikasi ke obyek dengan mengirimkan pesan (message).
ConsoleWindow
DialogBox
Control
Sifat Obyek
Suatu obyek dikenal dengan apa itu dan apa yang dapat dilakukannya (pelayanan). Obyek-obyek memiliki ciri-ciri atau sifat-sifat tertentu yang disebut atribut (abstraksi data). Obyek menunjukkan perilaku (behaviour) atau dapat melakukan suatu pelayanan (methods).
OBJECT ATTRIBUTES
ATRIBUT: Adalah data yang menunjukan Ciri-ciri atau sifat-sifat dari obyek Penggambaran obyek
Warna Tipe mesin
Panjang
Behaviour mengacu kepada apa-apa yang dapat dilakukan oleh suatu obyek dan berhubungan dengan fungsi diterapkan pada suatu atribut. Behaviour obyek-obyek biasanya methode atau operasi pelayanan.
Berenang Ikan
Penyelam
OBJECT DIAGRAM
Pertanyaan
Apa yang dimaksud dengan kelas dan sebutkan komponen-komponen dari suatu kelas ?
KELAS (CLASS)
Seperti di dunia nyata, obyek-obyek dapat dikelompokkan atau diklasifikasikan kedalam suatu kelas. Kelas adalah koleksi dari obyek-obyek yang memiliki anggota-anggota yang sama (ciri-ciri, struktur dan perilakunya). Obyek-obyek dibuat berdasarkan sebuah kelas (type declaration), atau obyek adalah wujud (instance) dari sebuah kelas. Suatu Kelas adalah kategori umum dan suatu obyek adalah kejadian spesifik dari suatu kelas.
Desi
Abdurahman
Widodo
Obyek-obyek dikelompokkan ke dalam suatu jenis yang disebut kelas Record Mahasiswa . Obyek Desi, Abdurahman dan Widodo dibuat (instance) berdasarkan tipe kelas Record Mahasiswa Kelas adalah template yang menghasilkan obyekobyek dengan perilaku yang sejenis.
Kelas Person menggabarkan atribut dari suatu obyek orang. Setiap orang mempunyai atribut: nama, tanggal lahir, dan alamat dalam himpunan data instance-nya dengan empat metode ('getName', 'getAge', 'setAddress', 'getAddress ). Metode ini memungkinkan akses dari luar ke atributatribut tersebut. Dua obyek berikut (Mike, Neil) diciptakan dari Kelas Person.
message 2
M4 Object 1 M1 M2 M3 M2 Object 2 M1 M4 M3
message 1 message 3
M3 M2 Object 3 M1
M4
Koleksi dari anggota-anggota data atau atributatribut. Kolekasi dari deklarasi fungsi-fungsi anggota, pelayanan-pelayanan, metoda-metoda. Tingkat akses: private, protected, atau public. Nama tag sekutu : tipe data yang didefinisikan pemakai.
{method,method, .}
Anggota Kelas
class A { public:
Variabel-variabel anggota biasanya private Variabel-variabel anggota dideklarasikan dengan cara stardar: m_notasi.
A(); private: char m_char; int m_int; float m_float; UINT m_uint; };
Pertanyaan
Jelaskan bedanya antara instance dan inheritance (penurunan/pewarisan) ?
Modeling Class
Instance by
Is Inherited by
INSTANCE
Object didefinisikan oleh Class Setiap Object adalah instance dari suatu Class
class
instances
instantiations
object
object
OBJECT INSTANCE
Rumah jadi
Object instance
OBJECT
Instances
Class Methods Class variables Instance variables paragraph justify font = arial text = 3 Instances
Four score and seven years ago our forefathers brought forth on this continent, a new nation .. When in the course of human events it become necessary for one people .. We the people of the United States, in order to form a more perfect union, ensure ..
INHERITANCE (PEWARISAN)
Hirarki klasifikasi memungkinkan kelas-kelas obyek mewarisi atribut-atribut dari kelas-kelas yang lebih umum. Pewarisan adalah suatu mekanisme menciptakan kelas-kelas baru (sub-kelas) dari kelas-kelas yang sudah ada. Kelas turunannya adalah sebuah subkelas atau subtype dari kelas sebelumnya. Sub-kelas tersebut dapat diperluas perilakunya dengan menambah metode-metode baru atau struktur-sturktur data baru. Misalnya obyek Ford Escorts dapat diwariskan berdasarkan kelas mobil.
Khusus
specialization
Mustang LX:
better interior v6 or v8 engine
Base Model +
luxury interior
Mustang GT:
sport suspension sport v8 engine special body work
Contoh Inheritance
Masalah
Kuda
diturunkan + strip-strip
Zebra
Examples of generalization, inheritance, and constraints Employee superclass with three subclasses
Rectangle
add resize method
Window
Class Window inherit Rectangle add operation resize(int h1, w1); { h=h1; w=w1; display(); }
Rectangle
Window
ScrolledWindow
MenuWindow
ENCAPSULATION (Pengkapsulan)
Pengkapsulan berarti mengemas beberapa item bersama-sama menjadi satu unit yang tertutup dalam rangka menyembunyikan struktur internal suatu obyek dari lingkungan/dunia luar. Pengapsulan seringkali dianggap sebagai penyembunyian informasi . Setiap kelas hanya menampakkan interface yang diperlukan untuk berkomunikasi dengan dunia luar (methode) dan menyembunyikan (encapsulating) implementasi aktual didalam kelas. Kita hanya membutuhkan pemahamam tentang interface (methode), tidak perlu paham tentang internalnya (implementation).
Pengapsulan merupakan kemampuan sebuah obyek kelas untuk membatasi akses client ke representasi internal obyek (data dan fungsi). Ada tiga metode enkaspulasi: - Private - Protected - Public
Component Interfaces
POLYMORPHISM
Polymorphism memungkinkan memiliki koleksi elemenelemen dengan bentuk berbeda dari item-item yang berhubungan. Disini obyek-obyek atau kelas-kelas yang berbeda dapat melakukan implementasi suatu metode yang sama. Contoh: suatu kelas segi-empat dan kelas segi-tiga dapat melakukan suatu metode hitungLuas tetapi dengan menggunakan rumus perhitungan luas yang berbeda.
Soal
1.
Ada adalah bahasa pemrograman yang mendukung obyek-obyek dan encapsulation, tetapi tidak mendukung inheritance, dynamic behavior, atau aturan-aturan. Ada dapat dikelompokkan pada bahasa pemrograman jenis apa ? (a) Object oriented language; (b) Class-based language; (c) Object-based language; (d) Object procedure language.
2. Ketika seseorang menambahkan suatu kelas yang diambil dari suatu kelas dasar dengan meningkatkan kemampuan kelas dasar tersebut, maka disebut: (a) Data encapsulation (b) Inheritance (c) Polymorphism (d) Instant 3. Suatu metoda yang hanya dapat digunakan oleh metoda lain dalam satu kelas, mempunyai jenis akses: (a) Public (b) Protected
(c) Private
(d) Indeterminate.
4. Kelas A adalah kelas dasar. Kelas B diturunkan dari kelas A. Kelas C diturunkan dari kelas B. Maka jenis dari turunan disini adalah: (a) Multiple inheritance. (b) Composition (c) Abstract inheritance (d) Serial Inheritance
Class hierarchy
Emplo y ee Name Address Salar y Manager ...
Multiple inheritance
Emplo y ee Name Address Salar y Manager
PERKEMBANGAN BAHASA PEMROGRAMAN Generasi Awal (Pemrograman Prosedural) Bahasa prosedural seperti Assembler, FORTRAN dan COBOL. Pemrograman merupakan suatu karya seni yang kreatif. Kode rumit seperti spaghetti karena penuh dengan perintah-perintah GOTO yang sulit untuk dipertahankan.
Prosedural
DIM N(100), M(500) ------------------------------------------10 ---------------------IF -----c THEN GOTO 5000 c ELSE GOTO 10 ------------------------------------------100 ---------------------------------------------------------------5000 ---------------------------------------------------------------6500 ---------------------GOTO 100
Generasi Kedua (Pemrograman Terstruktur) Perangkat lunak meniru struktur dari suatu model bisnis. GOTO diganti dengan suatu putaran (loop) seperti while, do-while, dan if-then-else. Deretan yang sangat cocok untuk aplikasiaplikasi ilmiah (matematika adalah suatu prosedur alamiah).
Terstruktur
while -------- do
Generasi Dewasa ini (Pemrograman Berorientasi Obyek) Data dan kode dikemas kedalam suatu obyek. Penggunaan kembali dan pemekaran melalui kerjasama antara obyek-obyek. Memungkinkan kombinasi kode struktural dan prosedural dalam obyek. Memungkinkan pemakai mendefiniskan tipe data sebagai sejumlah obyek yang memberikan model sistem yang lebih alamiah dari pada tipe-tipe standard.
Penggunaan bahasa pemrograman berorientasi obyek memungkinkan implementasi langsung perancangan berorientasi obyek, tetapi membutuhkan ruang dan sumber-sumber yang lebih besar. Efektivitas perancangan berorientasi obyek tidak tergantung pada penggunaan bahasa pemrograman tertentu.
Soal
Pemrograman berorientasi obyek mengarah kepada hasil berupa: (a) Reuse of code (Kode yang digunakan kembali ) (b) Sphagetti code (c) Building code (d) Structured code
DEFINISI
Perancangan Berorientasi Obyek
Mendefinisikan sebuah hubungan antara antarmuka (interface), kelas-kelas (classes), dan obyek-obyek (objects) yang masing-masing saling bekerjasama dengan aturan tertentu yang unik untuk menyelesaikan suatu masalah.
Menurut Meyer: Perancangan berorientasi obyek adalah metoda yang membawa kita ke arsitektur perangkat lunak berbasis obyek-obyek yang dimanipulasi (difungsikan) oleh setiap sistem atau subsistem.
Merancang sistem berorientasi obyek adalah bagaimana memecah sistem kedalam obyek-obyek berdasarkan pada informasi yang diperoleh terutama pada tahap analisis. Membuat suatu generalisasi dari obyek-obyek untuk mendefinisikan kelas-kelas bagi setiap obyek dalam sistem. Menghasilkan sebuah diagram kelas (struktur dari sistem) menggunakan berbagai notasi standar seperti: OMT (Object Modelling Technique), UML (Unified Modelling Language).
Sejarah UML
Revisi n Task F rce (RTF) report, Apr 1999 OMG Acceptance, OMG vi i OMG v 1997
Industrialization
, Sep 97 ,J 97
b i i
Standardization
UML partners
W b-J
96
Microsoft, Unification Oracle, OOPSLA 95 Uni ied Method 0.8 IBM, HP, & other industry leaders OOSE & Booch ethod OMT Fragmentation Other ethods
UML singkatan dari Unified Modeling Language UML mengkombinasikan / koleksi dari:
Data Modeling concepts (Entity Relationship Diagrams) Business Modeling (work flow) Object Modeling Component Modeling
UML adalah bahasa standarpemodelan untuk menggambarkan, menspesifikasikan, membangun, dan mendokumenkan sistem perangkat lunak.
UML adalah:
Bahasa pemodelan standard. Mendefinisikan suatu metamodel semantik Tidak tergantung pada proses.
Bahasa pemrograman Visual. Suatu perangkat antarmuka, penyimpan, atau model run-time. Suatu proses standard.
AGGREGATION
Aggregation adalah bentuk khusus dari Association dimana suatu obyek dari Kelas X berisi atau mempunyai obyek dari Kelas Y
Notasi intan terbuka menunjukkan bahwa instance Kelas X mempunyai lebih banyak intance Kelas Y atau Kelas Nol. * menandakan dapat diganti oleh suatu nilai integer.
Contoh
has School 1 .. * member * Student * 1 .. * attends * Course * teaches 1 .. * 1 1 .. * Department 1 .. * 1 .. * assignedTo 1 .. * 0 .. 1 chairperson 0 .. 1
Instructor
COMPOSITION
Composition adalah bentuk khusus dari Aggregation dimana kandungan obyek tidak dapat di-share oleh containers yang lain dan obyek harus dihapus jika container-nya dihilangkan.
Memberikan pemakai bahasa pemodelan visual yang siap pakai sehingga mereka dapat mengembangkan dan mempertukarkan modelmodel yang berguna. Tidak tergantung kepada bahasa pemrograman tertentu dan proses-proses pengembangan. Memberikan basis formal untuk memahami bahasa pemodelan. Mendukung pengembangan konsep-konsep tingkat tinggi, seperti: kolaborasi, framework, pola-pola dan komponen-komponen.
Models
Activity Diagrams
Diagrams
Scope UML
Object-Oriented Analysis
Use Case diagram Object interaction diagram Class diagram State diagram Activity diagram
Object-Oriented Design
Process diagram Architecture diagram Deployment diagram
UML Diagrams
DIAGRAM UML
Requirement specification
4. Test
Pengembangan perangkat lunak adalah suatu proses yang dilakukan secara bertahap. Proses ini harus mengikuti suatu metodologi. Setiap tahapan didukung dengan grafik dan diagram. UML adalah bahasa khusus untuk membuat diagramdiagram.
Metode Booch
Metode Booch adalah metoda umum digunakan dalam analisis dan perancangan berorientasi obyek yang dikembangkan dalam empat model dasar yaitu: 1. 2. 3. 4. Logical Model Physical Model Static Model Dynamic Model
Komponen-komponen dokumennya terdiri dari : class, kategori-kategori class, objects, operations, modules, processes, processors, devices, dan hubunganhubungan antara mereka.
Kelas (Class Diagram) Obyek (Object Diagram) Modul (Module Diagram) Keadaan (State Diagram) Interaksi (Interaction Diagram) Proses (Process Diagram)
Beberapa diagram dapat mengandung informasi dari beberapa model berbeda, dan beberapa model dapat memuat informasi yang berakhir pada sejumlah diagram-diagram yang berbeda.
Contoh Soal
Masalah yang akan kita pecahkan adalah masalah perpustakaan universitas. Aplikasi yang ingin dikembangkan harus dapat mendukung pencarian bahan-bahan pustaka yang meliputi: buku, video dan CD ROM. Users akan memasukan Identitas (ID) anggota perpustakaan untuk menggunakan sistem pencarian melalui katalog pustaka. Persyaratan Setiap peminjaman dibatasi maksimum 5 item dimana waktu peminjamannya buku 14 hari, video 2 hari dan CD ROM 7 hari. Jika terlambat dikenakan denda untuk buku $0,5/hari, video $1,5/hari dan CD ROM $2,5/hari. Denda maksimum adalah $25 (tidak boleh pinjam lagi yang baru kalau belum dilunasi).
Spesifikasi Masalah
Perpustakaan universitas minta dibuatkan sistem yang mendukung kegiatan perpustakaan. Pustakawan memperbolehkan mahasiswa meminjam beberapa bahan pustaka, mengembalikan bahan pustaka yang dipinjam, dan membayar denda. Jenis Buku: Video: CD Roms Denda per hari $ 0.50 $ 1.5 $ 2.50 Lama peminjaman 14 hari 2 hari 7 hari
Tanggal peminjaman dimulai ketika bahan pustaka yang dipinjam dikeluarkan. Mahasiswa yang sudah meminjam 5 jenis bahan pustaka atau denda lebih dari 25.00 tidak diperkenankan mendapat pinjaman bahan pustaka yang baru.
Abstraksi kunci dari pelaku-pelaku (obyek) yang memberikan model solusi adalah: Librarian (Pustakawan) User (Pemakai/Mahasiswa) Book (Buku) Video (Video) CD Rom 5 bahan pustaka
Diagram Kelas
Diagram kelas memperlihatkan keberadaan dari kelas-kelas dan hubungan diantara mereka dalam pandangan logis dari sistem. Pertama mengidentifikasi kelompok awal dari kelas-kelas: pemakai (user), pustakawan (librarian), koleksi (collection), peminjam (borrower) , bahan pustaka (lendable), buku (book), video, CD ROM, dan tanggal (date). Kita dapat menarik garis-garis antara kelas untuk menggambarkan suatu hubungan. Dua kelas yang terhubung dapat memanggil suatu metoda atau menukar pesan-pesan.
Inheritance Hierarchy
lendable is the abstract class never instantiated
lendable
book
cdRom
video
Perhitungan lama peminjaman Perhitungan denda keterlambatan Buku memiliki ISBN Video dapat diberi identifikasi studio
Data berbeda
Panah ditarik dari subkelas ke super kelas. Panah dari tiga kelas-kelas bahan pustaka ke kelas lendable menunjukkan inheritance dalam notasi blooch, artinya buku, video dan CD ROM adalah obyek-obyek untuk dipinjamkan. Pada gambar berikutnya titik hitam pada akhir garis menunjukkan adanya hubungan dimana kelas dengan titik hitam menunjukkan sisi pemilik (owner) atau pengguna fasilitas.
Diagram Obyek
Diagram obyek tujuannya untuk memperlihatkan keberadaan obyek-obyek, hubungan antara obyek dalam pandangan logis dari sistem, dan bagaimana mereka melaksanakan suatu skenario tertentu atau kasus. Dalam suatu skenario, kita mengidentifikasi setiap tugas (task) yang harus ditangani sistem dan memberikan tugas tersebut ke kelas yang menangani ini. Metode Blooch kadang kala mengacu pada suatu teknik perancangan disebut metoda responsibilitydriven design.
users
librarian
oordinates activities
borrowerList
Stores valid borrowers
borrower lendableList
Stores all books, D OMs, videos
lendable
lendables
date
book
CDROM
video
Diagram Modul
Diagram modul memperlihatkan alokasi dari kelaskelas dan obyek-obyek ke modul-modul dalam tampilan fisik suatu sistem.
Contoh
class book : public lendable { public:
//--constructor
book(string initID, string initAuthor, string initTitle); Date computeDueDate() const; double computeLateFee() const; string author(); string title();
//--additional accessors
UML Diagrams
Component Class
Konsep UML
Use case diagrams untuk memperlihatkan batasbatas dari suatu sistem dan fungsi-fungsi utama. Interaction diagrams untuk merealisasikan kasus yang digunakan. Class diagrams untuk menggambarkan struktur statis dari suatu sistem. State transition diagrams untuk memodelkan perilaku dari obyek-obyek. Component & deployment diagrams untuk mengungkapkan arsitektur dari implementasi fisik.
Memesan buku
Meminjam buku
MengembaliMengembalikan buku
CRC Cards
UML Modeling
Contoh UML
Universitas ingin komputerisasi sistem registrasi Pencatat membuat kurikulum untuk satu semester. Mahasiswa memilih 4 kuliah utama/wajib dan 2 kuliah pilihan. Setelah melakukan registrasi, sistem pembayaran dicatat sehingga mahasiswa dapat melakukan pembayaran untuk semester tsb. Mahasiswa dapat menggunakan sistem untuk menambah atau membatalkan kuliah yang telah dipilih dalam jangka waktu tertentu setelah registrasi.
Dosen menggunakan sistem ini untuk menawarkan jadwal kuliah mereka. Pemakai dari sistem registrasi ini diberikan password untuk validasi masuk ke logon sistem.
Diperkenalkan oleh Jacobson(1994) Use Case modeling berdasarkan user requirement Hubungan antara actors dan Use Cases Use Case adalah suatu interaksi khusus antara user dan sistem komputer. Use Case is a typical interaction between a user and a computer system
Actors
Aktor adalah seseorang atau sesuatu yang harus berinteraksi dengan sistem yang akan dikembangkan.
Use Cases
Setiap use case adalah suatu urutan transaksi yang berkaitan yang dilakukan oleh seorang aktor dan sistem dalam suatu dialog.
Registrar menyusun dan mengawasi kurrikulum Professor meminta daftar roster Student memilih jadwal Billing System menerima informasi pembayaran dari registrasi.
Chain of responsibility
Maintain Curriculum
Maintain Curriculum
Interaction
Penggambaran dari proses bisnis, obyek-obyek bisnis dan peranan Tim dalam UML.
Sequence Diagram
Sequence Diagram
Collaboration Diagram
Collaboration Diagram menggambarkan interaksi dan relasi antara proses-proses bisnis dan aktor.
Pola Perancangan
Tingkat Abstraksi: 1. Tingkat Organisasi 2. Tingkat Sistem 3. Tingkat Arsitektur 4. Tingkat Kelas 5. Tingkat Prosedur
Update Accounts
Accounting System
Analyze Risk
Actor
Trader
Price eal
Capture eal
Use Case
Salesperson
Class Refinement
Class Diagrams
Suatu class diagram memperlihatkan keberadaan kelas-kelas dan hubungannya dari pandangan logis suatu sistem. UML memodelkan elemen-elemen dalam class diagrams
Struktur kelas-kelas dan perilakunya. Hubungan-hubungan: association, aggregation, dependency, dan inheritance Indilkator pelipatan dan navigasi Nama-nama peran.
Classes
Class
RegistrationForm RegistrationManager
ScheduleAlgorithm
Attribute Methods
Course Student
Professor
CourseOffering
Attribute
Methods
Operations
Perilaku suatu kelas dinyatakan dengan operasioperasinya. Operasi-operasi dapat ditemukan dengan memeriksa diaram-diagram interaksi.
registration manager RegistrationManager 3: add course (joe, math 01)
registration form
addCourse(Student,Course)
Attributes
Struktur suatu kelas dinyatakan oleh atributatributnya. Atribut-atribut dapat ditemukan dengan memeriksa definisi kelas, kebutuhan masalah dan dengan menerapkan domain pengetahuan.
CourseOffering
Untuk setiap class, tentukan objects, dan buat object interaction diagram Sequence Diagram Collaboration Diagram Tentukan messages pada objects
Object Diagram
Memperlihatkan instances dan hubungan (links) Dibangun pada tahap analisis dan perancangan Tujuan
Object Diagram
Sequence Diagram
Menunjukkan prilaku dinamik (berorientasi pada waktu) Tujuan Model alur kendali Mengambarkan skenario tertetu. Suatu sequence diagran memperlihatkan interaksi antara obyek-obyek yang diatur dalam suatu urutan waktu.
Sequence Diagram
Objects
: Student
registration form
registration manager
math 101
math 101
section 1
1: fill in info 2: submit 3: add course (joe, math 01) 4: are you open? 5: are you open? 6: add (joe) 7: add (joe)
Method Invocation
Messages
Sequence Diagram
Collaboration Diagram
Collaboration diagram memperlihatkan interkasi obyek yang diorganisasikan sekitar obyekobyek dan kaitannya antara satu dengan yang lain.
Relationship
: Registrar
3: add course
theManager : CurriculumManager
Relationships
Relationships memberikan jalur tapak untuk komunikasi antara obyek-obyek. Sequence diagram dan/atau collaboration diagram diperiksa untuk menentukan keterhubungan apa yang dibutuhkan antara obyekobyek untuk memenuhi perilakunya. Tiga jenis relationships yaitu:
Association adalah koneksi dua arah antara kelas yang digambarkan berupa garis yang menghubungkan kelas-kelas tersebut. Aggregation adalah bentuk relationship yang sangat kuat yang digambarkan berupa garis yang menghubungkan kelas-kelas dengan intan pada kelas yang menggambarkan keseluruhan. Dependency adalah bentuk paling lemah dari relationship memperlihatkan suatu relationship antara client dan supplier dimana client tidak memiliki pengetahuan semantik dari supplier. Digambarkan berupa garis putus-putus dari client ke supplier.
Menentukan Relationships
Jika dua obyek harus berbicara maka harus ada suatu jalur tapak untuk komunikasi.
RegistrationManager
Registration Manager
3: add student(joe)
Course
Relationships
Association Dependencies
RegistrationForm RegistrationManager
addStudent (Course, StudentInfo)
ScheduleAlgorithm
Course
name numberCredits open() addStudent(StudentInfo)
Aggregation
Student
name major
Professor
name tenureStatus
CourseOffering
location open() addStudent(StudentInfo)
Multiplicity adalah jumlah instances dari satu kelas berhubungan dengan SATU instance kelas yang lain. Untuk setiap association dan aggregation, ada dua putusan multiplicity : satu untuk setiap akhir dari relationship
Walaupun associations dan aggregations secara default adalah dua arah, sering diinginkan navigasi dibatasi hanya pada satu arah. Jika navigasi dibatasi maka ditambahkan satu kepala panah untuk menunjukkan arah dari navigasi.
RegistrationManager 1
addStudent(Course, StudentInfo)
1 0..*
Course
name numberCredits open() addStudent(StudentInfo)
Student
major
3..10
1 4 1..*
Professor
tenureStatus 1
CourseOffering
0..4
location open() addStudent(StudentInfo)
Inheritance
Inheritance adalah suatu relationships antara superclass dan subclasses-nya. Ada dua cara menentukan inheritance:
Generalization Specialization
Attribut-atribut bersama, operasi, dan/atau relationships diperlihatkan pada tingkat aplikasi tertinggi dalam hirarki
Inheritance
RegistrationForm RegistrationManager
addStudent(Course, StudentInfo)
ScheduleAlgorithm
Course RegistrationUser
name name numberCredits
Student
major
open() addStudent(StudentInfo)
Professor
tenureStatus
CourseOffering
location open() addStudent(StudentInfo)
Sejarah hidup suatu kelas Kejadian-kejadian yang menyebabkan perubahan dari suatu keadaan ke keadaan yang lain. Aksi-aksi yang menghasilkan suatu perubahan keadaan.
State transition diagrams dibuat untuk obyekobyek dengan perilaku dinamis yang menonjol. Menunjukkan perilaku dinamis (berorientasi pada kejadian.) Tujuan
Model siklus hidup obyek Model reactive objects (user interfaces, devices, dll.)
Statechart Diagram
Add student[ count < 10 ] Initialization
do: Initialize course
Open
entry: Register student exit: Increment count
[ count = 10 ]
Cancel
Closed
do: Finalize course
Final State
Component Diagrams
Component diagrams memperlihatkan organisasi dan ketergantungan antara komponenkomponen perangkat lunak. Komponen dapat berupa:
Component Diagram
Billing.exe Billing System Register.exe Dependencies
Professor
Component Diagram
Components Dependencies
Deploying Diagram
Deployment diagram menunjukkan konfigurasi dari elemen-elemen pengolahan run-time dan proses-proses perangkat lunak yang ada padanya. Deployment diagram memperlihatkan distribusi dari komponen-komponen yang melintasi perusahaan.
Deployment Diagram
Registration Database
Library Dorm
Main Building
Deployment Diagram
Deployment Diagram
Components
Activity Diagram
Activity Diagram
Component Diagram
Object Base
User Interface Initiate Request Result
DBMS
Query Data
Sistem Manajemen Basisdata Berorientasi-Obyek BerorientasiSistem basisdata harus: 1. Mendukung obyek-obyek yang kompleks, 2. Mendukung identitas obyek. 3. Memungkinkan obyek-obyek untuk dikapsulkan. 4. Mendukung Types atau classes. 5. Mendukung inheritance. 6. Menghindari peningkatan prematur. 7. Dilakukan perhitungan lengkap. 8. Dapat dikembangkan 9. Dapat pulih dari kerusakan hardware/software. 10. Mendukung query data dengan cara sederhana