pemodelan perangkat lunak uml
TRANSCRIPT
Pemodelan Perangkat Lunak
Merupakan diagram statis (yang menggambarkan struktur dari sistem)
Berupa kombinasi dari beberapa elemen, yaitu : Kelas Attribut Operasi (method) Asosiasi (Association) Agregasi (aggregation) Komposisi (composition) Generalisasi (generalisation)
Nama
Attribut
Operasi
Properti dari diagram kelas yaitu- Model statis :- Memodelkan struktur dan perilaku- Digunakan sebagai dasar dari diagram
lainnya- Mudah untuk diubah ke dalam diagram obyek
● Apakah terdapat data yang membutuhkan penyimpanan, transformasi atau analisa?
● Apakah terdapat sistem luar yang berinteraksi dengan data pada pertanyaan sebelumnya?
● Apakah ada pustaka kelas atau komponen lain yang digunakan (misal dari pustaka project sebelumnya)?
● Apakah sistem tersebut menangani suatu perangkat?
● Analisa keseluruhan dari tugas/peran aktor pada use case
Analisa Tekstual (based on Dennis, 2002)
Kata benda umum (common noun) menunjukkan sebuah kelas.
Kata benda yang mengacu langsung (direct reference noun) menunjukkan sebuah obyek (instan dari sebuah kelas)
Kumpulan kata benda (collective noun) menunjukkan sebuah kelas yg tercipta dari grup obyek kelas lain.
Kata sifat (adjective) menunjukkan sebuah atribut Kata kerja “doing” (melakukan) menunjukkan operasi Kata kerja “being” (menjadi) menunjukkan klasifikasi
hubungan (relasi) antara objek dan kelasnya Kata kerja “having” (memiliki) menunjukkan relasi
agregasi dan asosiasi. Kata kerja transitive menunjukkan operasi Kata kerja intransitive menunjukkan pengecualian
(exception) Kata keterangan menunjukkan atribut dari relasi atau
operasi
Sangat bergantung pada sistem Menggambarkan karakteristik dari obyek yang
dimiliki kelas tersebut. Dapat menjadi informatif atau mungkin
membingunkan Memiliki tipe tertentu, yaitu :
Primitif (boolean, integer, real, dll) Bahasa tertentu Kelas lain Tipe data yang didefinisikan sendiri
Memiliki visibility yang berbeda, yaitu public private
Sintak atribut :
Visibility name:type=init_value{property_string}
Dapat diberikan suatu nilai defaultDapat diberikan nilai dalam range tertentu
(enumerasi)Dapat langsung diimplementasikan pada
bahasa pemrograman yang mendukung object-oriented (java, c++)
UNIXaccount+ username : string+ groupname : string+ filesystem_size : integer+ creation_date : date- password : string
UNIXaccount+ username : string+ groupname : string = “staff"+ filesystem_size : integer+ creation_date : date- password : string
Invoice+ amount : real+ date : date = current date+ customer : string+ specification : string- administrator : string = "unspecified"- number_of_invoices : integer
Invoice+ amount : real+ date : date = current date+ customer : string+ specification : string- administrator : string = "unspecified"- number_of_invoices : integer+ status : status = unpaid { unpaid, paid }
Public class UNIXaccount{ public string username; public string groupname = "csai"; public int filesystem_size; public date creation_date; private string password; static private integer no_of_accounts = 0 public UNIXaccount() { //Other initialisation no_of_accounts++; } //Methods go here};
UNIXaccount+ username : string
+ groupname : string = “staff"+ filesystem_size : integer+ creation_date : date- password : string
- no_of_accounts : integer = 0
Figure
- x : integer = 0- y : integer = 0
+ draw()
Public class Figure{ private int x = 0; private int y = 0; public void draw() { //Java code for drawing figure }};Figure fig1 = new Figure();Figure fig2 = new Figure();fig1.draw();fig2.draw();
report ()
BurglarAlarm
isTripped: Boolean = false
PoliceStation
1 station
*
{ if isTrippedthen station.alert(self)}
alert (Alarm)
Person CarDrives **
Driver Companycar
Person Car**Adult Company
car
EmployeeDrives 1 1
DriverDriver
Person PersonMarried to
Husband Wife
Domesticappliance
Familymember
· Turns onHeater
· Cleans
Toaster Dad · Tunes
ChildRadio
Mum
Person Car*Plates
User PID Process HostIP-addr* *
Item ofclothing
Maleperson
0..*
Femaleperson
0..*{or}
1
1
Library Books*1..*{ordered by date}
Member
{ordered by surname}*
1..*
Person EstablishmentBank card
Client0..*
No qualified or aggregation associations allowed in ternary.
1..*Credit card Shop1..*
PlayerTeam
Year
Record
goals forgoals againstwinslosses
goalkeeper
season
team
ties
Host
Printer1..*
Network
Network adapter
1
*
1
QueueAdapterPrint spooler
Notary
Client Contract
Purchaser Real-estate
Computer
Car
Wheels
Body
Engine
Wiring
*
*
*
* Note that association multiplicity is shown within the classes
Zoo
Mammal Bird
Falcon
Monkey
Gira
ffe0..* 0..* 0..*
ZooMonkey[0..*]: MammalGiraffe[0..*]: MammalHuman[1..*]: MammalFalcon[0..*]: BirdCage[1..*]: Equipment
Equipment
Hum
an 1..* Cage 1..*
My family
Familymember
Ern
est
Fio
na
My familyErnest: Family memberFiona: Family member
Aircraft{abstract}
MakeSeatsEngine type
Start() {abstract}land() {abstract}
Jet plane
MakeSeatsEngine type
Start()land()
Helicopter
MakeSeatsEngine type
Start()land()
Start jet engines
Lower flaps& landing gear
Start blades
Decreaseprop speed
Figure{abstract}
Position: Pos
Draw() {abstract}
Group
Draw()
Polygon
Draw()
CanvasConsists of*Electronic
*Consists of
Line
Draw()
Circle
Draw()
Consists of *
abstract public class Figure{ abstract public void Draw(); Pos position;}public class Group extends Figure{ private FigureVector consist_of; public void Draw() { for (int i = 0; i < consist_of.size(), i++) { consist_of[i].draw(); } }}public class Polygon extends Figure{ public void Draw() { /* something similar to group only using lines instead */ }}
public class Line extends Figure{ public void Draw() { /* code to draw line */ }}public class circle extends Figure{ public void Draw() { /* code to draw circle */ }}
«friend»ClassA ClassB
ClassC
«instantiate»
«call»
ClassD
operationZ()«friend»
ClassD ClassE
«refine»ClassC combines
two logical classes
Element
Carbon Hydrogen
<<covalent>>
<<covalent>>C
C
C H
:C arbon :C arbon
:H ydrogen
:H ydrogen
:H ydrogen
:H ydrogen
:H ydrogen:H ydrogen
+getOrderStatus+setOrderStatus+getLineItems+setLineItems+getCreditApproved+setCreditApproved
...
OrderBean{abstract}
LineItem{abstract}
Product
1
*
1
*
<<interface>>EntityBean
CreditCard{abstract}
Customer
MyOrder
MyLineItem
MyCreditCard
*
1
*
buyer
order
order
item
item
commodity
Buat kelas diagram untuk menggambarkan interkoneksi sebenarnya dalam jaringan
Buat kelas diagram untuk menggambarkan sistem hirarki direktori dari OS
Menggambarkan penggunaan aplikasi pengolah kata :
Seorang user dapat membuka (open) dokumen baru atau yang sudah ada. Teks dapat dimasukkan (entered) melalui keyboard. Dokumen dibentuk dari beberapa halaman(pages) dan setiap halaman dibentuk dari header, body dan footer.
Tanggal, waktu dan no halaman dapat ditambahkan (be added) ke header atau footer. Body dokumen dibentuk dari kalimat(sentences), dimana kalimat tersebut terdiri dari kata(word) dan karakter tanda baca (punctuation character). Kata dibentuk dari huruf, digit dan/atau karakter khusus. Gambar dan tabel bisa disisipkan (insert) ke dalam body dokumen.
Tabel dibentuk dari baris dan kolom dan setiap sel nya dapat berisi teks dan gambar. User dapat menyimpan (save) atau mencetak (print) dokumen.
Kata benda (bergaris bawah) bisa berupa kelas atau atributnya. Kata kerja (huruf miring) merupakan operasi dari kelas. Entitas utama yang ditangani :dokumen