§ 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.