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 Class
Class 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
|
Object
|
name: string
address: string 3
dateOfBirth: date
employeeNo: integer
socialecurityNo: string
department: string
manager: string
salary: real
status: {current, left,
retired}
taxCode: integer
|
name: John
address: M Street No.23
dateOfBirth: 02/10/65
employeeNo: 324
socialecurityNo:E342545
department: Sale
manager: Employee1
salary: 2340
status:current
taxCode: 3432
|
Join( )
Retire( )
ChnageDetail( )
|
Eployee16.join(02/05/1997)
Eployee16.retire(03/08/2005)
Eployee16.changeDetail(“X
Street No. 12”)
|
Inheritance
§
Object
classes dapat menurunkan atribut dan services dari object class yang lain,
§
Inheritance
menyatakan suatu generalisasi suatu class,
Generalisasi
Library Class Hierarchy
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
§
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 Agregasi
Model agregasi menunjukkan
bagaimana class-class dibentuk dari class yang lainnya
Similar dengan relasi: part-of
dalam model data semantic
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
|
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 pesan
o 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 Coupling
Cohesion 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.
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 class
class 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 class
class 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 class
public 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
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,
Class Fitting
Object Relations
Package
Unified Modelling Language
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
Things
Relationships
Diagrams
Things:
Structural
things
nclasses, interfaces,
collaborations, use cases, active classes, components, nodes.
Behavioral
things
n interactions, state machines.
Grouping
things
n packages.
Annotational
things
n notes.
Class Inheritance
Class - Dependencies
A change in specification of one thing
may effect another thing that uses it
Class – Association
A structural relationship that
specifies that objects of one thing are connected to objects of another.
Name:
name of association
Role:
a specific role of class in an association
Multiplicity,
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 Case
Specifies 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.
Use Case Diagram
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
Statechart Diagram
A
statechart diagram shows a state machine, consisting of states, transitions,
events, and activities.
Activity Diagram
An activity diagram is a special kind
of a statechart diagram that shows the flow from activity to activity within a
system.
Sequence Diagram
A sequence diagram is an interaction
diagram that emphasizes the timeordering of messages.
Component Diagram
Component diagram shows an
organization and dependencies of a group of components.
Deployment Diagram
Deployment diagram shows the configuration of run-time
node processing and its components.
0 komentar:
Posting Komentar