Object Oriented Analysis and Design€¦ · Web viewObject Oriented Analysis and Design. Fokus...
Transcript of Object Oriented Analysis and Design€¦ · Web viewObject Oriented Analysis and Design. Fokus...
Object Oriented Analysis and Design
Fokus pada object dimana sistem dibagi ke dalam beberapa object yang ada di dalamnya.
Function (behavior) dan data (state) yang berhubungan ke suatu object tunggal adalah self-contained atau encapsulated pada satu tempat.
Keuntungan object-oriented: Reusability Modularity Maintainability
Object adalah suatu abstraksi dari sesuatu dalam suatu domain masalah, menyatakan kemampuan sistem untuk :
menyimpan informasi tentang object tsb, berinteraksi dengan object tsb, atau keduanya
Object adalah entitas suatu sistem software yang menyatakan kejadian (instances) dari real-world an entitas sistem
Object ClassClass adalah deskripsi dari sekumpulan object yang membagi (share) attributes, methods, relationship dan semantic yang sama;Object class adalah template untuk object, yang dapat digunakan untuk membuat object,Object menyatakan suatu kejadian khusus tertentu dari suatu class
Contoh:Class Objectname: stringaddress: string 3dateOfBirth: dateemployeeNo: integersocialecurityNo: stringdepartment: stringmanager: stringsalary: realstatus: {current, left, retired}taxCode: integer
name: Johnaddress: M Street No.23dateOfBirth: 02/10/65employeeNo: 324socialecurityNo:E342545department: Salemanager: Employee1salary: 2340status:currenttaxCode: 3432
Join( )Retire( )ChnageDetail( )
Eployee16.join(02/05/1997)Eployee16.retire(03/08/2005)Eployee16.changeDetail(“X Street No. 12”)
1
Inheritance Object classes dapat menurunkan atribut dan services dari object
class yang lain, Inheritance menyatakan suatu generalisasi suatu class,
Generalisasi
Employee
Programmer
projectprogLanguage
Manager
ProjectManager
budgetsControlleddateAppointed
projects
Dept.Manager
StrategicManager
dept responsibilities
Library Class Hierarchy
Catalogue numberAcquisition dateCostTypeStatusNumber of copies
Library item
Acquire ()Catalogue ()Dispose ()Issue ()Return ()
AuthorEditionPublication dateISBN
Book
YearIssue
MagazineDirectorDate of releaseDistributor
Film
VersionPlatform
Computerprogram
TitlePublisher
Published itemTitleMedium
Recorded item
2
Keuntungan Inheritance:
Merupakan mekanisme abstraksi yang dapat digunakan untuk mengklasifikasikan entitas
Merupakan mekanisme re-use pada tahap perancangan dan pemrograman
Grafik Inheritance adalah suatu bentuk gambaran tetang organisasi pada suatu domain dan sistem
Multiple Inheritance
# Tapes
Talking book
AuthorEditionPublication dateISBN
Book
SpeakerDurationRecording date
Voice recording
Suatu object class dapat pula dibentuk dari turunan beberapa super-class,
Akan memberikan dampak konflik semantic dimana atribut/service dengan nama yang sama pada super-class yang berbeda memiliki semantic yang berbeda
Membentuk hierarchy yang lebih kompleks
Masalah dengan Inheritance
Object class tidak self-contain, sehingga tidak dapat diketahui tanpa referensi ke super-classnya
Perancang memiliki tendensi untuk melakukan reuse terhadap graph inheritance yang sudah dibuat sehingga dapat menimbulkan ketidak efisiensian yang signifikan
Object AgregasiModel agregasi menunjukkan bagaimana class-class dibentuk dari class yang lainnyaSimilar dengan relasi: part-of dalam model data semantic
3
Encapsulation
Private: attributes dan methods dienkapsulasi dalam class sehingga dapat diakses oleh clien akses tersebut -> hanya dapat diakses oleh member class tersebut.
Public: metode mendefinisikan inteface sebagai sarana mengakses class dari clint-nya.Dapat diakses oleh object manapun.
Protected: hanya dapat diakses oleh object-class turunannya
4
Videotape
Tape ids.
Lecturenotes
Text
OHP slides
Slides
Assignment
Credits
SolutionsTextDiagrams
Exercises
#Problems Description
Course titleNumberYearInstructor
Study pack
1 ..*
1 1 1 1
0 ..*1 ..*1 ..*
1 1
1 ..* 1 ..*
- numCustomers = 0- MIN_BUDGET = 200
- name: String- address: String
- budget: int
+ placeOrder( ): void
Customer
public methods + printNumCustomer( ): void
private attributes
Customer class
Komunikasi dalam object
Object berkomunikasi dengan object lain melalui pengiriman pesan (messages)o Suatu pesan adalah suatu metode call dari suatu object
pengirim-pesan ke suatu object penerima pesano Suatu pesan terdiri dari: Object referensi yang
mengindikasikan penerima pesan, nama method dan parameter (argumen dari method)
Object penerima pesan disebut server ke object pengirim pesan, dan objek pengirim pesan adalah client dari server.
Object Cohesion dan CouplingCohesion suatu komponen adalah ukuran tentang hubungan antara komponen suatu object class. Setiap operasi menyediakan fungsi untuk mengubah, melihat, atau menggunakan atribut object sebagai layanan dasar,
Coupling adalah suatu indikasi kekuatan interkoneksi antara program units. Sistem dengan coupling yg kuat memiliki interkoneksi yang kuat sehingga setiap program unit sangat ketergantungan dengan yang lainnya (mis.: shared variables, interchange control function). Sistem dengan couple yang lemah tidak memiliki ketergantungan yang kuat antar program units.
5
name = “Alex”address =
“1 Robinson Rd”budget = 2000
placeOrder( ): void
name = “Lawrence”employeeNo =15commission = 200
takeOrder( ): int
takeOrder(“sofa”, name, address, “120799”)
199
message
return valuealex lawrence
lawrence.takeOrder(“sofa”, “Alex”,“1 Robinson Rd”, “120799”)
parametersmethod nameobject reference
message
Polymorphism Kemampuan object yang berbeda untuk menjalankan method yang
sesuai untuk merespon ke pesan yg sama Pemilihan method yang sesuai tergantung pada class yg digunakan
untuk membuat object
Contoh:
class Shape { private String name; public Shape(String aName) { name=aName; } public String getName( ) { return name; } public float calculateArea( ) { return 0.0f; } } // End Shape classclass Circle extends Shape { private float radius; public Circle(String aName) { super(aName); radius = 1.0f; } public Circle(String aName, float radius) { super(aName); this.radius = radius; } public float calculateArea() { return (float)3.14f*radius*radius; }} // End Circle classclass Square extends Shape { private float side; public Square(String aName) { super(aName); side = 1.0f; } public Square(String aName, float side) { super(aName); this.side = side; } public float calculateArea() { return (float) side*side; }} // End Square classpublic class ShapeDemoClient { public static void main(String argv[ ]) { Shape c1 = new Circle("Circle C1"); Shape c2 = new Circle("Circle C2", 3.0f); Shape s1 = new Square("Square S1"); Shape s2 = new Square("Square S2", 3.0f); Shape shapeArray[ ] = {c1, s1, c2, s2}; for (int i = 0; i < shapeArray.length; i++) { System.out.println("The area of " + shapeArray[i].getName( ) + " is " + shapeArray[i].calculateArea( ) + " sq. cm."); } } // End main} // End ShapeDemoClient1 class
6
Shape
SquareCircle
namegetName( )calculateArea( )
sidecalculateArea( )
radiuscalculateArea( )
Student to Library
Got to Staff
Got to Catalog
Return Book
Check Book Return Expired
Give List of Loaned Book
Late ReturnedCharge
Pay the charge Approved
Staff Catalog
Book Student
Loaned Book Charge
Check ID
Process the Loan Book
Check Loaned Book by ID
Warned to return book first
Get the Book
Magazine
Journal
OO Analysis: mencari kebutuhan dari perpektif class dan object yang ditemukan dalam suatu vocabulary dari domain masalah. Dengan kata lain, world (system) dimodelkan dalam bentuk object dan class,OO Design: Dekomposisi OO dan suatu notasi untuk menggambarkan model system pada tahap pengembangan. Struktur dibentuk setelah object yang berhubungan dengan system sudah didefinisikan.
OO-Analisis:
Menganalisa domain masalah Menggambarkan proses system Identifikasi object Spesifikasi atribut Mendefinisikan Operation Inter-object Communication
Identifikasi Suatu Object Entitas luar (mis.: system lain, alat, orang) yang menghasilkan /
menggunakan informasi yang digunakan system Benda (mis.: laporan, tampilan, surat, signal) yang merupakan bagian
informasi Peran (mis: manager, engineer, salesperson) yang dimainka oleh orang yang
berinteraksi dengan system, Tempat(mis.: ruangan) yang menyediakan konteks permasalah dan fungsi
keseluruhan system, Unit organisasi (mis.: divisi, group, team) yang relevan ke aplikasi,
7
Class Fitting
Object Relations
Package
Unified Modelling Language
8
Student
IDNamedateOfBirth….
Register( )ChangItems( )….
Staff
IDNamedateOfBirthDepartment:
Join ( )AssignDept( )….
Student Bookloan
Staff
Checked / served byloanedBook
BookIDloanDatestudentID
LoanProcess
Student Book
loanedBook
search
addLoanedBook
The Unified Modeling Language (UML) is a standard language for writing software blueprints.
The UML may be used to visualize, specify, construct, and document the artifacts of a softwareintensive system.Building Blocks
ThingsRelationshipsDiagrams
Things:Structural things
classes, interfaces, collaborations, use cases, active classes, components, nodes.
Behavioral things interactions, state machines.
Grouping things packages.
Annotational things notes.
Shape
origin
mov e()resize()display ()
Class Inheritance
Shapeorigin : Variant
move()resize()display()
<<Class Module>>
Rectanglecorner : Point
Circleradius : Double
Polygonpoint : List
Square
Class - DependenciesA change in specification of one thing may effect another thing that uses it
9
FilpClipname
playOn()start()stop()reset()
Channel
Class – AssociationA structural relationship that specifies that objects of one thing are connected to objects of another.Name: name of associationRole: a specific role of class in an associationMultiplicity, an association represent a structural relationship among objects: zero to one(0..1), many(0..*) or one or more (1..*)Aggregation: a plain association between two classes represents a structural relationship “whole-a-part”Association, Multiplicity, Aggregation and Role
Structural Things – Use CaseSpecifies the behavior of a system or a part of a system and is a description of a set of sequences of actions, including variants, that a system performs to yield an observable result of value to an actor.
LoanOfficerProcess Loan
Use Case Diagram
10
One of the five diagrams (activity diag., statechart diag., sequence diag., collaboration diag.) in the UML for modeling the dynamic aspects of systems.
Central to modeling the behavior of a system, a subsystem, or a class,Use Case Diagram
Reconcile Transaction
Customer
Perform Card T ransaction
Retail Institution
Process Customer Bil l
Manage Customer Account
Sponsoring Financial
Statechart DiagramA statechart diagram shows a state machine, consisting of states, transitions, events, and activities.
Start
Meminta Informasi
Melengkapi Persyaratan
Memberi Informasi
Mencatat Pendaftaran
Cek Persyaratan
End
Menyerahkan Persyarat
[Tidak Lengkap]
[Lengkap]
Activity DiagramAn activity diagram is a special kind of a statechart diagram that shows the flow from activity to activity within a system.
11
Prepare Text TO Visaul
Generate Gesture
Read Text
Generate Phoneme
Generate Speech Generate Lip
Articulation
Sync Mouth and Gesture Stream Audio
Clean Buffer
Sequence DiagramA sequence diagram is an interaction diagram that emphasizes the timeordering of messages.
: Petugas Loket
: Layar Utama Sis tem Pendaftaran
: Membuat Pendaftaran Baru
: Formulir Pendaftaran : Pendaftaran Baru1: Pendaftaran Baru( )
2: Pendaftaran Baru( )
3: Jalankan Formulir Pendaftaran( )
4: Tampilkan Form Pendaftaran( )
5: Masukan Pendaftaran( )
6: Buat Pendaftaran( )
7: Tambahkan Pendaftaran( )
Component DiagramComponent diagram shows an organization and dependencies of a group of components.
12