Menurut Mathiassen, et. al. (2000, p4), ”Objek adalah suatu entitas dengan identitas, keadaan (tingkatan hidup) dan tingkah laku”. Objek merupakan dasar dalam Object Oriented Analysis and Design (OOA&D). Setiap objek digambarkan secara terkelompok (kumpulan) karena ada beberapa objek yang memiliki sifat atau fungsi yang sama yang dikenal dengan istilah class. Sedangkan class adalah suatu deskripsi atas kumpulan objek yang saling menggunakan struktur, pola tingkah laku, dan atribut secara bersama-sama.”
- Pengertian Object Oriented
Object Oriented merupakan suatu cara untuk melakukan permodelan sistem dengan berorientasikan pada objek yang terlibat dalam sistem tersebut. Beberapa keuntungan dari object oriented adalah: 1. Merupakan konsep umum yang dapat digunakan untuk memodelkan
hampir semua fenomena yang ada di dunia dan dapat dinyatakan dalam bahasa umum (natural language).
3. Mengurangi biaya maintenance atau development. - Pengertian Object Oriented Analysis
Menurut Mathiassen, et. al. (2000, p13), analisis melihat sistem dari sisi luarnya. Analisis merupakan suatu kegiatan di mana beberapa hal dipisahkan dan kemudian dijelaskan.
- Pengertian Object Oriented Design
Menurut Mathiassen, et. al. (2000, p13), desain melihat sistem dari sisi dalamnya. Desain adalah aktivitas yang membangun bagian yang telah dikenal dan disatukan dengan cara yang baru.
- Pengertian Object Oriented Analysis and Design
Menurut Mathiassen, et. al. (2000, p4), ”Objek adalah kesatuan dengan identity, state dan behaviour”. Dari definisi diatas dapat disimpulkan bahwa object oriented analysis and design merupakan kegiatan untuk menentukan problem domain dan kemudian mencari pemecahan masalah yang logis yang berbasiskan pada objek.
Gambar 2.2 Kegiatan Utama dan Hasilnya dalam OOAD Sumber: Mathiassen, et. al. (2000, p15)
Component Design Architectural Design Application Domain Analysis Problem Domain Analysis Specifications of Components Model Requirements for Use Specifications of Architecture
- System Definition
Menurut Mathiassen, et. al. (2000, p24), ‘System definition is a conscise description of a computerized system expressed in natural language.’ Definisi sistem merupakan suatu gambaran secara umum bagaimana suatu sistem berjalan dalam perusahaan tersebut.
• Rich Picture
Menurut Mathiassen, et. al. (2000, p26), rich picture adalah sebuah gambaran informal yang digunakan oleh pengembang sistem untuk menyatakan pemahaman mereka terhadap situasi dari sistem yang sedang berlangsung. ‘Rich picture is an informal drawing that presents the illustrator’s understanding of a situation. Contoh rich picture:
Gambar 2.3 Contoh Rich Picture Sumber: Mathiassen, et. al. (2000, p28)
Dispatch Reception Call taskk Emergency 50 Hospital Where is When They Custom
• The FACTOR Criterion
Menurut Mathiassen, et. al. (2000, p.39), kriteria FACTOR terdiri dari enam elemen, sebagai berikut:
- Functionality: Fungsi sistem yang mendukung tugas-tugas application domain.
- Application Domain: Bagian organisasi yang mengadministrasi, memonitor, dan mengontrol problem domain.
- Condition: Kondisi dimana sistem akan dikembangkan dan digunakan.
- Technology: Mencakup teknologi yang akan digunakan untuk mengembangkan sistem dan teknologi dimana sistem akan dijalankan.
- Objects: Objek utama dari problem domain.
- Responsibility: Tanggung jawab keseluruhan dari sistem dalam hubungannya dengan konteks.
- Problem Domain Analysis
Mengacu pada Mathiassen, et. al. (2000, p45), problem domain adalah bagian dari konteks yang diadministrasi, dimonitor dan dikendalikan oleh sebuah sistem. Tujuan dari aktivitas ini adalah mengidentifikasi dan memodelkan problem domain. Model merupakan deskripsi dari class, structure dan behavior di problem domain.
Problem domain merupakan aktivitas yang sangat penting dalam membangun sebuah sistem karena model yang dihasilkan dalam probelm
domain analysis memberikan sebuah pemahaman mengenai kebutuhan sistem. Sumber dari aktivitas problem domain adalah system definition.
Gambar 2.4 Aktivitas–Aktivitas dalam Problem Domain Modelling Sumber: Mathiassen, et. al. (2000, p46)
• Classes
Menurut Mathiassen, et. al. (2000, p53), ‘Class is description of collection of objects sharing structure, behavioural pattern, and attribute.’ Class adalah gambaran atau definisi kumpulan objek yang mempunyai structure, behaviour pattern, dan attribute yang bersamaan. Class merupakan kegiatan yang pertama dilakukan di dalam analisis problem-domain.
Kriteria evaluasi untuk class, antara lain:
1. Mengidentifikasi objek – objek dari class. 2. Class harus mempunyai informasi yang unik. 3. Class mempunyai banyak objek.
4. Class harus mempunyai sejumlah event yang cocok dan dapat diatur.
Aktivitas–aktivitas dari class menghasilkan event table, yaitu tabel sederhana yang terdiri dari class–class dan event–event yang saling
System Definitio Classe Behavior Structur Mode Iterate
terkait. Berikut ini adalah langkah–langkah yang harus dilakukan untuk menghasilkan suatu event table:
Gambar 2.5 Urutan Aktivitas untuk Menghasilkan Event Table Sumber: Mathiassen, et. al. (2000, p55)
Contoh event table : Tabel 2.1 Event Table
Sumber: Mathiassen, et. al. (2000, p50)
• Structure
Menurut Mathiassen, et. al. (2000, p336), “structure adalah hubungan antara class dengan object pada problem domain secara keseluruhan”. Structure bertujuan untuk menggambarkan hubungan
Cari Candidate
untuk Class Cari Candidate untuk Event
Evaluasi dan Pilih Secara Sistematis
Event Table
Class Events
reserved cancelled treated employed resigned graduated agreed
Customer X X X
Assistant X X X X X
Apprentice X X X X
Reservation X X X
terstruktur antara classes dan object dalam problem domain. Berikut ini adalah cara untuk menentukan structure:
• Dimulai dengan class dan event yang ada pada event table. • Tentukan struktur object dan struktur class.
• Hubungkan antar class.
• Hasilnya adalah class diagram.
• Behaviour
Mengacu pada pendapat Mathiassen, et. al. (2000, p89), kegiatan behaviour bertujuan untuk memodelkan apa yang terjadi (perilaku dinamis) dalam problem-domain sistem sepanjang waktu. Tugas utama dari kegiatan ini adalah menggambarkan pola perilaku (behavioural pattern) dan atribut dari setiap kelas. Hasil dari kegiatan ini adalah:
• Statechart Diagram
Statechart diagram mendeskripsikan perilaku (behavior) umum dari semua objek dalam class tertentu dan transisi antar mereka. Statechart diagram juga dapat mendeskripsikan sebuah usecase, dimana transisi menyimbolkan aksi (actions).
Gambar 2.6 Notasi Dasar Statechart Diagram Sumber: Mathiassen, et. al. (2000, p90)
- Application Domain Analysis
Mengacu pada Mathiassen, et. al. (2000, p117), ”application domain adalah suatu organisasi yang mengatur, memonitor, atau mengendalikan problem-domain. Application domain analysis memfokuskan pada bagaimana target sistem akan digunakan dengan menentukan kebutuhan function dan interface.”
• Usage
Mengacu pada pendapat Mathiassen, et. al. (2000), tujuan dari kegiatan usage adalah untuk menentukan bagaimana aktor-aktor yang merupakan pengguna atau sistem lain berinteraksi dengan sistem yang dituju. Hasil dari kegiatan ini adalah:
• Use-case Diagram
Use-case diagram menunjukkan hubungan antar actors dan use-case. Semua use-case yang didukung oleh sistem dapat diorganisasikan ke dalam kelompok dengan nama sistem. Setiap use-case menentukan beberapa urutan interaksi yang mungkin antara actor dengan sistem. Detail ini sering disebut statechart diagram.
Gambar 2.7 Notasi Dasar Use-case Diagram Sumber: Mathiassen, et. al. (2000, p122)
• Navigation Diagram
Navigation diagram adalah bagian dari statechart diagram yang berfokus pada dinamika atau pergerakan secara keseluruhan dari user interface. Navigation diagram menunjukkan keikutsertaan atau partisipasi window dan transisi antar window tersebut.
• Window Diagram
Window Diagram mendeskripsikan layout dari single window dan melibatkan detailed outline dari elemen window.
• Function
Mengacu pada Mathiassen, et. al. (2000), kegiatan function memfokuskan pada bagaimana cara sebuah sistem dapat membantu actor dalam melaksanakan pekerjaan mereka. Mathiassen, et. al. (2000, p138) menyatakan ‘function is a facility for making a model useful for actor.’
• Interface
Interface digunakan oleh aktor untuk berinteraksi dengan sistem. Mathiassen, et. al. (2000, p151) menyatakan, ‘Interface is a facilities that make a system’s model and functions available to actor’ yang dapat diartikan sebagai berikut: interface adalah suatu fasilitas untuk membuat suatu sistem model dan fungsi-fungsi yang tersedia bagi aktor.
• Sequence Diagram
Sequence diagram mendeskripsikan interaksi antara beberapa objek sepanjang waktu. Tanda panah horisontal menunjukkan keikutsertaan suatu objek, sedangkan tanda panah vertikal merepresentasikan urutan dari waktu. Sequence diagram dapat mendeskripsikan interaksi spesifik atau beberapa interaksi berurutan yang mungkin terjadi yang melibatkan perulangan (loops) atau kondisi tertentu (conditional messages).
- Architectural Design
Mengacu pada Mathiassen, et. al. (2000), keberhasilan suatu sistem ditentukan dari kekuatan desain arsitekturalnya. Arsitektur membentuk sistem yang sesuai dengan sistem tersebut dengan memenuhi kriteria desain tertentu. Arsitektur berfungsi sebagai kerangka untuk pengembangan selanjutnya.
Gambar 2.9 Kegiatan dalam Architectural Design Sumber: Mathiassen, et. al. (2000, p176)
• Criteria
Mathiassen, et. al. (2000), menyatakan bahwa tujuan dari sebuah criteria adalah untuk mempersiapkan prioritas dari sebuah perancangan.
Tabel 2.2 Criteria Klasik Untuk Mengukur Kualitas Software
Criteria Pengukuran Dari
Usable Kemampuan adaptasi sistem terhadap konteks organisasi, hubungan kerja dan teknikal.
Secure Suatu pencegahan melawan akses yang tidak terotorisasi terhadap fasilitas–fasilitas yang ada.
Efficient Eksploitasi secara ekonomis dari fasilitas technical platform.
Correct Pemenuhan terhadap persyaratan–persyaratan.
Reliable Pemenuhan terrhadap eksekusi function yang benar– benar tepat.
Maitainable Besarnya usaha untuk melokasikan dan memperbaiki kecacatan sistem.
Testable Besarnya usaha untuk memastikan bahwa sistem menampilkan fungsi–fungsi yang telah ditentukan. Flexible Besarnya usaha untuk memodifikasi sistem.
Comprehensible Usaha yang dibutuhkan untuk mendapatkan pengertian yang masuk akal terhadap sistem.
Reusable Potensi penggunaan bagian–bagian sistem dalam sistem lain yang terhubung.
Portable Besarnya usaha untuk memindahkan sistem ke technical platform.
Interoperable Besarnya usaha untuk menggabungkan suatu sistem ke sistem yang lain.
• Component Architecture
Component architecture adalah struktur sistem yang terdiri dari komponen yang saling berhubungan. Menurut pendapat Mathiassen, et. al. (2000, p191), suatu arsitektur komponen yang baik menunjukkan beberapa prinsip, yaitu mengurangi kompleksitas dengan membagi menjadi beberapa tugas, menggambarkan stabilitas dari konteks sistem, dan memungkinkan suatu komponen dapat digunakan pada bagian lain.
• Process Architecture
Process architecture adalah struktur eksekusi sistem yang terdiri atau tersusun dari proses yang saling bergantungan. Tujuan dari aktivitas ini adalah mendefinisikan struktur sistem. Hasil yang diperoleh berupa sebuah deployment diagram.
- Component Design
Menurut Mathiassen, et. al. (2000, p231), tujuan dari component design adalah untuk menentukan implementasi dari kebutuhan dalam kerangka kerja arsitektural.
• Model Component
Menurut Mathiassen, et. al. (2000, p235), model component merupakan bagian dari sistem yang mengiplementasikan model dalam problem domain. Hasil dari aktivitas ini adalah class diagram yang telah direvisi karena adanya aktivitas analisis.
• Function Component
Menurut Mathiassen, et. al. (2000, p251), function component adalah bagian dari sistem yang mengimplementasikan kebutuhan fungsional. Tujuan dari function component adalah agar user interface dan komponen sistem yang lain dapat melakukan akses ke model dengan usage.
• Connecting Component
Menurut Mathiassen, et. al. (2000, p271), tujuan dari aktivitas ini adalah untuk menghubungkan komponen–komponen sistem yang akan menghasilkan class diagram dari komponen–komponen yang terlibat. Dalam aktivitas ini, akan dirancang hubungan antar komponen untuk mendapatkan rancangan yang fleksibel dan dapat dimengerti.