MODEL DRIVEN SOFTWARE DEVELOPMENT
Oleh: Adam Mukharil Bachtiar
MODEL
Artifak yang digunakan untuk mendeskripsikan
domain dari sistem yang akan dibangun,
representasi abstrak dari sistem yang akan
dibangun, sebagai bentuk dokumentasi, dan
spesifikasi untuk proses pengujian.
Inspirasi: IBM Research
MODEL
Domain
Modelling
Static Analysis
Code
Generation
Documentation
Refactoring or
Transformation
Automated
Testing
MODEL DRIVEN
SOFTWARE DEVELOPMENT
REQUIREMENTS
Contoh Code Generation
dari Class Diagram
Memodelkan perangkat lunak itu sejatinya
adalah bercerita perihal perangkat lunak
macam apa yang mau kita bangun.
Ruang:
Bangunkan rumah dengan dua
kamar tidur, 1 kamar mandi, 1
ruang keluarga, 1 ruang makan, 1
dapur, 1 garasi dan taman depan
serta belakang.
Posisi:
.....
Dimensi:
.....
Dan segala hal lainnya.
By Descriptive Story
By Diagram Model
KEBUTUHAN
PERANGKAT LUNAK
KEBUTUHAN
FUNGSIONAL
KEBUTUHAN NON
FUNGSIONAL
Fokus bercerita:
“Perangkat lunak harus bisa melayani apa?”
Fokus bercerita:
“Batasan apa dari layanan yang disediakan?”
Inspirasi: Ian Sommerville, Software Engineering 7th edition
Untuk memodelkan kebutuhan
perangkat lunak menggunakan
OOAD, terdapat alat bantu
yaitu UML*
*Singkatan dari Unified Modelling Language
Logical View Process View
Physical
View
Development
View
Use Case
View
Apa yang digambarkan UML?
Russ Miles, Learning UML 2.0
Use Case
View*
Mendeskripsikan fungsional sistem
yang dimodelkan dari perspektif
dunia luar sistem
* Diagram UML: Use case diagram dan Use case scenario
Mendeskripsikan proses-proses
yang ada di dalam sistem. Membantu
memvisualkan apa yang terjadi di
sistem kita.
Process
View*
* Diagram UML: Activity Diagram
Logical View*
Mendeskripsikan deskripsi abstrak
dari bagian-bagian sistem. Biasanya
digunakan untuk memodelkan
terbuat dari apa saja sistem yang
kita bangun dan bagaimana bagian-
bagian tersebut berinteraksi.
* Diagram UML: Class Diagram, Object Diagram, State Machine, dan Interaction Diagram
Development
View*
Mendeskripsikan bagaimana bagian-
bagian dari sistem diorganisasikan
dalam bentuk modul dan komponen.
Biasanya digunakan untuk visualisasi
layer arsitektur sistem
* Diagram UML: Package Diagram dan Component Diagram
Physical
View*
Mendeskripsikan bagaimana desain
dari sistem untuk kemudian dibawa
sebagai entitas dunia nyata.
* Diagram UML: Deployment Diagram
Urutan
Penggambaran
Model pada UML
Setiap diagram akan mempunyai
notation, semantic, dan stereotype
Russ Miles, Learning UML 2.0
Stereotype
Notation
Elemen yang membentuk modeling language
Kelas Mahasiswa memiliki dua atribut yaitu nim dan nama
serta dua method yaitu kumpulkan tugas dan lihat nilai
Semantic
Deskripsi yang menjelaskan notasi
Deskripsi yang menjelaskan
penggunaan special dari suatu notasi
FOKUS
PEMODELAN
PADA OOAD
Dalam UML, terdapat beberapa
Diagram yang secara exchangeable
dapat digunakan pada tahap Analisis
dan Perancangan Perangkat Lunak.
TIPS 1:
Gunakan standar baku dari
model yang digunakan
(contoh: UML 2.0)
https://www.omg.org/spec/UML/
Recommended Book for
learning UML 2.0
Learning UML 2.0 by Russ Miles and Kim Hamilton
Apa makna relasi <<include>>?
Apakah penggunaan <<include>>
seperti ini?
Digunakan untuk konsep reusable use case.
Use case yang di-include wajib dieksekusi
secara eksplisit oleh pengguna sistem.
RELASI INCLUDE
Sumber: Learning UML 2.0, Russ Miles and Kim Hamilton
Kasus Relasi Include
Karena ada langkah-langkah yang sama antara
dua use case di use case description yaitu
“Check Identity” maka use case diperbaiki
Russ Miles, Learning UML 2.0
Perubahan Use Case Description
Russ Miles, Learning UML 2.0
TIPS 2:
Bedakan fokus pemodelan
ketika menganalisis dan
merancang perangkat lunak
FOKUS PEMODELAN
Pada tahap analisis, fokus pemodelan adalah
perihal ”WHAT” sementara pada tahap
perancangan berkisar perihal “HOW”
Inspirasi: Software Engineering for Practitioner Approach, Roger S. Pressman
CLASS DIAGRAM ANALYSIS
Berfokus pada WHAT dan
PROBLEM SPACE CLASS DIAGRAM DESAIN
Berfokus pada HOW dan
SOLUTION SPACE
TIPS 3:
Breakdown kebutuhan
fungsional agar mudah
dimodelkan
Cara menyampaikan
kebutuhan fungsional ada
berbagai macam, salah
satunya menggunakan
User Story
As a < type of users >
I want < some goals >
So that < some reason/benefit >
Priority: < Jenis Prioritas >
Estimate: < Time needed >
USER STORY
Sumber: Vitality Chicago
Calon Use Case
TIPS 4:
Gunakan Tools spesifik untuk
menggambar model
Terdapat beberapa tools
spesifik untuk
menggambar diagram
pada UML seperti Visual
Paradigm dan Star UML.
TIPS 5:
Baca model dengan Mind Eyes
TIPS 5:
Sebuah cerita atau alur harus
mengandung alternative flow
Use Case Description Details Keterangan
Related Requirements Diisi dengan nomor atau kode dari kebutuhan pengguna yang dipenuhi.
Goal in Context Diisi dengan tujuan dari use case dibuat dan kenapa use case ini penting.
Preconditions Hal apa yang harus terjadi sebelum use case dieksekusi.
Successful End Condition Kondisi sistem yang harus terpenuhi jika use case berhasil dieksekusi.
Failed End Condition Kondisi sistem yang harus terpenuhi jika use case gagal dieksekusi.
Primary Actors
Aktor utama yang berpartisipasi di dalam use case. Seringkali berupa aktor yang men-trigger
atau menerima informasi secara langsing dari eksekusi use case.
Secondary Actors Aktor yang berpartisipasi tapi bukan pemain utama di dalam eksekusi use case.
Trigger Event yang di-trigger oleh aktor dalam rangka mengeksekusi use case.
Main Flow Mendeskripsikan setiap langkah penting ketika eksekusi use case secara normal.
Extensions Desripsi dari langkah-langkah alternatif yang mungkin terjadi pada langkah di main flow.
Overview Use Case Description
Russ Miles, Learning UML 2.0
Use case “Record Application
Failure” hanya dijalankan ketika ada
kegagalan di eksekusi use case
“Create a new Personal Wiki” atau
”Create a new Blog Account”
Russ Miles, Learning UML 2.0
Kasus Relasi Include
Kasus Relasi Extend
Di dalam use case “Create a
new Personal Wiki” juga terjadi
Russ Miles, Learning UML 2.0
REVIEW 1:
Sebelum use case diagram
dimodelkan, jangan bahas desain
interaksi dengan detail
REVIEW 2:
Terdapat beberapa kekeliruan
penggunaan notasi dan semantic
pada model
REVIEW 3:
Pola pikir pemodelan untuk
analisis dan desain belum
dibedakan dengan jelas
REVIEW 4:
Bedakan use case untuk
modelling proses bisnis manual
dengan kebutuhan fungsional
REVIEW 5:
Alternative flow dalam suatu
cerita di fungsional kurang
diperhatikan
REVIEW 6:
Bedakan model data dengan
model perangkat lunak
REVIEW 7:
Use case diagram itu digunakan
untuk memodelkan kebutuhan
fungsional dan bukan alur cerita
TERIMA KASIH
Adam Mukharil Bachtiar
https://www.linkedin.com/in/adammbachtiar/
Email: adammbachtiar@gmail.com

Model Driven Software Development