Pemodelan Perangkat Lunak
SISTEM PEMODELAN PERANGKAT LUNAK
Pemodelan Perangkat Lunak System models –> Merupakan gambaran
abstrak dari sebuah sistem dimana persyaratan sistem tersebut akan / sedang dianalisa. Metode Formal (Formal methods) –> merupakan teknik dan notasi dari persyaratan perangkat lunak yang tidak ambigu.
Tujuan Menjelaskan mengapa konteks dari sistem
harus dimodelkan sebagai bagian dari proses Requirement Engineering Menggambarkan konsep pemodelan perilaku, pemodelan data dan pemodelan obyek Memperkenalkan beberapa notasi yang digunakan pada UML (Unified Modelling Language) Memperkenalkan pendekatan metode formal dan pemodelan formal
Requirement Engineering (Short Review) Merupakan suatu cara agar perekayasa
perangkat lunak memahami permasalahan yang akan dipecahkan Task yang terlibat yaitu : inception, elicitation, elaboration, negotiation, specification, validation dan management
The Unified Modeling Language Disarankan untuk para perekayasa yang
menggunakan analisa dan desain berorientasi obyek dalam metodenya. Menjadi sebuah standar yang efektif dalam pemodelan perangkat lunak Memiliki 9 notasi yang berbeda
The Unified Modeling Language Use Case Use Case Diagrams Sequence Diagrams Diagrams Scenario Scenario Diagrams Collaboration Diagrams Diagrams Scenario Scenario Diagrams Statechart Diagrams Diagrams
Use Case Use Case Diagrams Use Case Diagrams Diagrams
State State Diagrams Class Diagrams Diagrams
Models
State State Diagrams Object Diagrams Diagrams
State State Diagrams Component Diagrams Diagrams Component Component Diagrams Deployment Diagrams
Activity Diagrams
Diagrams
Pemodelan Perangkat Lunak dan Modelnya Pemodelan perangkat lunak membantu para
perekayasa untuk memahami fungsionalitas dari sistem Model digunakan untuk berkomunikasi dengan para stakeholder Model yang yang berbeda – beda akan menampilkan suatu sistem dari sudut pandang yang berbeda pula. Sudut pandang luar (eksternal) akan menampilkan
lingkungan atau konteks dari sistem Model proses / aktifitas menampilkan proses pembangunan dari sistem sama halnya dengan menggambarkan segala aktifitas yang didukung oleh sistem Sudut pandang perilaku memperlihatkan perilaku dari sistem tersebut Sudut pandang struktural memperlihatkan arsitektur dari sistem atau data.
Model Konteks Model ini menggambarkan sistem dengan
lingkungan diluarnya tetapi tidak menggambarkan relasi antara sistem luar dalam lingkungan dengan sistem Lingkungan luar mungkin mengirim data ke sistem, terhubung langsung ke sistem dan membagi datanya ke sistem. Untuk itu ada detail proses yang harus disediakan seperti dalam model proses.
Model Konteks
Arsitektur model sederhana Security system Branch accounting system
Account database Auto-teller system
Branch counter system
Usage database Maintenance system
Model Proses / Aktifitas
Procuring equipment case Delivery note
Specify equipment required
Equipment spec.
Checked spec.
Validate specification
Spec. + supplier + estimate
Equipment spec. Supplier database
Accept delivery of equipment
Get cost estimates
Supplier list Find suppliers
Choose supplier
Order notification
Order details + Blank order form
Place equipment order
Checked and signed order form
Delivery note
Check delivered items Installation instructions
Install equipment Installation acceptance Accept delivered equipment Equipment details Equipment database
Model Perilaku Ada dua macam Model aliran data, dimana memodelkan proses
data dalam sistem Model state machine, memodelkan bagaimana sistem bereaksi terhadap kejadian
Model - model ini dapat digunakan secara
bersama –sama atau sendiri
Model Aliran Data
Proses data dari aktifitas place equipment order
Completed order form
Order Detail Blank Form Complete Order Form
Signed order form
Signed order form Validate order
Send to supplier
Checked & signed order
Record order Signed order form Order Details
Adjust avail budget Order amount + acount detail
Orders File
Budget File
Model Perilaku – Pemrosesan Data CASE toolset data flow diagram (DFD) Input design
Valid design Design editor Referenced designs Design database
Checked design Design cross checker
and
Design analysis Design analyser
Checked design Code skeleton generator
User report Report generator
Output code
Design database
Model State Machine Contoh sederhana pada microwave
Model Data Kebanyakan sistem perangkat lunak besar
menggunakan database yang juga cukup besar. Bagian terpenting dari pemodelan sistem adalah mencari bentuk logic data yang diproses dalam sistem. Pemodelan mencari bentuk logic ini dinamakan semantic data model Contoh pemodelan data yang terkenal adalah menggunakan teknik ERA modelling Model ini juga kurang detil, sehingga dibutuhkan deskripsi lebih detil dari masing entitas, atribut dan relasi. Maka dapat digunakan data dictionary
Semantic data (a.k.a. ER) models Design 1
name description C-date M-date
is-a
has-nodes
1
has-links
1
n
n 1
Node
has-links
1
Link
n
name type
name type 2
1
links
1
1
has-labels
has-labels Label n
name text icon
n
Data dictionary models Data dictionary merupakan daftar nama yang
terlibat dalam model sistem Berisi deskripsi entitas dan informasi pendukung lainnya Kegunaannya : Mengelola nama unique Berfungsi untuk menyimpan infomasi organisasi
Data dictionary models Name
Description 1:N relation between entities of type has-labels Node or Link and entities of type Label. Holds structured or unstructured Label information about nodes or links. Labels are represented by an icon (which can be a transparent box) and associated text. A 1:1 relation between design Link entities represented as nodes. Links are typed and may be named. Each label has a name which name (label) identifies the type of label. The name must be unique within the set of label types used in a design. Each node has a name which must be name (node) unique within a design. The name may be up to 64 characters long.
Type
Date
Relation
5.10.1998
Entity
8.12.1998
Relation
8.12.1998
Attribute
8.12.1998
Attribute
15.11.1998
Model Obyek Model obyek menggambarkan suatu sistem
dalam kelas - kelas obyek Kelas Obyek merupakan abstraksi dari suatu set obyek dengan atribut dan operasi yang dimiliki oleh masing – masing obyek. Model obyek yang berbeda dapat dihasilkan : Model Inheritance Model Aggregasi Model Interaksi
Model Obyek - Model Inheritance Library item Catalogue number Acquisition date Cost Type Status Number of copies Acquire () Catalogue () Dispose () Issue () Return ()
Published item
Recorded item Title Medium
Title Publisher
Book Author Edition Publication date ISBN
Magazine Year Issue
Film Director Date of release Distributor
Computer program Version Platform
Model Obyek - Model Aggregasi Study pack Course title Number Year Instructor
Assignment Credits
Exercises #Problems Description
OHP slides Slides
Solutions Text Diagrams
Lecture notes Text
Videotape Tape ids.
Model Obyek – Model Interaksi Ecat: Catalog
:Library Item
:Library User Lookup Display Issue Issue licence Accept licence Compress
Deliver
Lib1: NetServer
Sasaran dari metode formal Menghindari ambiguitas, konsisten, lengkap dan dapat dibuktikan
kebenarannya Spesifikasi persyaratan :
Mengklarifikasi persyaratan kustomer Mengungkapkan ambiguitas, ketidakonsistenan dan ketidaklengkapan
Spesifikasi struktural dari relasi antar komponen Spesifikasi perilaku dari komponen
Apakah kita telah membangun sistem dengan benar? Membuktikan bahwa realisasi sesuai dengan spesifikasi
Apakah sistem yang dibangun sesuai permintaan? Test dan debugging
Komunikasi diantara stakeholder
Desain sistem / perangkat lunak Verifikasi : Validasi : Dokumentasi:
Mengapa menggunakan metode formal Metode formal memiliki kemampuan untuk
meningkatkan kualitas dan produktifitas dalam pembangunan perangkat lunak. Diantara kemampuannya : Untuk meningkatkan pendeteksian error sejak
awal Untuk membangun sistem perangkat lunak yang aman, handal dan terjamin Untuk memfasilitasi pengujian dari implementasi Untuk memungkinkan dilakukannya simulasi, animasi, pembuktian, eksekusi dan transformasi
Mengapa menggunakan metode formal? Metode formal telah berada pada ambang
untuk dijadikan sebagai metode yang terbaik dan/atau metode yang sangat dibutuhkan untuk membangun sistem perangkat lunak yang safety-critical dan mission-critical Untuk memastikan bahwa sistem telah memenuhi standar dan peraturan. To avoid legal liability repercussions
Mengapa tidak menggunakan metode formal? Teknologi baru yang belum pasti hasil
baliknya Kurangnya pengalaman dan pembuktian akan keberhasilan. Kurangnya dukungan otomasi Tool yang ada sekarang tidak user friendly Kurva pembelajaran yang tinggi Dibutuhkan kemampuan matematika dan kesempurnaan yang baik. Teknik yang tidak banyak penggunanya Teknik tidak dapat diukur
Tipe Bahasa spesifikasi formal Spesifikasi axiomatic Axiomatic = yang sudah jelas kebenarannya. Mendefinisikan operasi dengan pernyataan logika
Spesifikasi pergantian keadaan (state-transition) Mendefinisikan operasi dalam pernyataan state dan transisi
Spesifikasi model abstrak Mendefinisikan operasi dengan model matematika
Spesifikasi aljabar Mendefinisikan operasi
ekuivalen
dalam kumpulan relasi yang
Spesifikasi logika temporal (waktu) Mendefinisikan operasi dengan pernyataan urutan waktu
dan eksekusi (pelaksanaan)
Spesifikasi kebersamaan (concurrent) Mendefinisikan operasi dalam pernyataan kejadian yang
berlangsung secara berkesinambungan (simultaneously occurring events)
Mitos yang ada pada metode formal Metode formal dapat menjamin kesempurnaan dari
perangkat lunak
Tetapi apakah bisa memastikan spec yang dibangun sempurna?
Metode formal semuanya berupa pembuktian program Metode ini merupakan pemodelan, komunikasi dan demonstrasi
Metode formal hanya berguna pada sistem safety-critical. Tidak juga, mungkin juga berguna pada semua sistem
Metode formal sangat membutuhkan matematikawan
terlatih
metode ini melibatkan tidak lebih dari satu set teori dan logika saja
Metode formal meningkatkan biaya pembangunan Justru lebih sering kebalikannya
Metode formal tidak dapat diterima oleh user
Justru user akan mendapatkan bahwa metode itu sangat membantu jika
dipresentasikan dengan baik
Metode formal tidak digunakan pada perangkat lunak skala
besar
Justru metode ini digunakan setiap hari pada banyak cabang dalam industri
Pemodelan Perangkat Lunak
PEMODELAN G.O.M.S UNTUK ANTARMUKA
Pendahuluan G.O.M.S Merupakan pendekatan untuk menganalisa
kualitas prosedur dari sebuah antar muka Merupakan pendekatan untuk menggambarkan pengetahuan dari suatu prosedur yang harus dimiliki oleh user untuk menjalankan suatu sistem Proposed by Card, Moran, & Newell (1983)
Deskripsi Model GOMS Goals (tujuan) Apa tujuan yang harus dicapai oleh user pada sistem
Operators Apa perlakuan dasar yang dapat dilakukan oleh user
Methods Apa saja urut-urutan dari operator (prosedur) yang
harus diikuti oleh user untuk mencapai tujuan
Selection Rules Ada beberapa metode yang bisa user lakukan untuk
mencapai tujuan pada situasi tertentu yang diberikan.
Model GOMS Terdapat dua pendekatan dalam
mengevaluasi kualitas prosedur dari sebuah antarmuka Metode Model Tingkat Penekanan Tombol
(Keystroke – Level) Operator dan Waktu untuk Model Tingkat Penekanan Tombol
Metode Analisa Model Prosedur GOMS Pilih satu set level teratas dari tujuan user Pilih desain antarmuka tertentu Tulis prosedur umum yang harus user pelajari dan lakukan untuk mencapai tujuan Dapat menggunakan notasi tertentu seperti NGOMSL
Perkirakan pembelajaran dan implikasi pelaksanaan dari prosedur
Informal : Kompleksitas yang tidak perlu, lambat dan
langkah yang sulit Formal : Hitung waktu perkiraan pembelajaran dan pelaksanaan
GOMS Procedure Model Method Choose the design with the best combination
of learning and execution times. Especially useful for: Assessing consistency and ease of learning. Predicting execution time for a large variety of
situations
Example uses NGOMSL notation
Methods for Setting the Clock Method for goal: set the clock Step 1. Press CLOCK button Step 2. Accomplish goal: set a day and time with the current day and time Step 3. Press CLOCK button Step 4. Return with goal accomplished Method for goal: set a day and time Step 1. Accomplish goal: set day value to the desired value Step 2. Press SELECT Step 3. Accomplish goal: set hour value to the desired value Step 4. Press SELECT Step 5. Accomplish goal: set minute value to the desired value Step 6. Return with goal accomplished Method for goal: set a value to a desired value Step 1. Verify that display shows current value is flashing Step 2. Decide: If display shows value same as desired, then return with goal accomplished. Step 3. Decide: If display shows value smaller than desired, then press UP button. else press DOWN button. Step 4. Go to Step 2.
GOMS Procedure Model Method User goals - a subset Example: • Set the clock VCR Procedures • Record a program • Stop current recording • Cancel previously programmed recording
Assumptions • A cassette is loaded • Power is on • Desired channel is already selected Methods and Selection Rules are somewhat simplified
(Continue) Methods for Recording a Program Selection rule set for goal: record a program If you are present when the program starts and you will be
present when the program ends then accomplish goal: record a program manually If you are present when the program starts and you will not be present when the program ends and you know how long the program lasts and the VCR clock is set then accomplish goal: record a program with One-Touch Recording If you will not be present when the program starts and you know when the program will start and you know how long the program lasts and the VCR clock is set then accomplish goal: record a program with Timer Recording Return with goal accomplished
(Continue) Method for goal: record a program manually
Step 1. Wait for program to start. Step 2. Hold down REC button. Step 3. Press PLAY button. Step 4. Release both buttons. Step 5. Verify that display shows "REC" and arrow is moving Step 6. Wait for program to end Step 7. Press STOP button. Step 8. Return with goal accomplished. Method for goal: record a program with One-Touch Recording Step 1. Wait for program to start Step 2. Press OTR button. Step 3. Press OTR button. Step 4. Decide: If time shown in display is less than length of program, go to Step 3. Step 5. Return with goal accomplished.
Contoh Implementasi aksi game dengan GOMS Goal ?
Melewati jurang
Objectif
Methods
Melompati jurang
Ancang-ancang Tekuk kaki
!!!
Lompat Pakai tali
Tali di ikat pada pohon
?
Tali diulur ke bawah a
Rambati tali n
Terbang
Cari kesaktian terbang pada jimat Gunakan jimat terbang Lompat dan terbang
End Session Question??
Contoh permasalahan - Jam Inisialiasi : Wakti tengah malam, bell dalam keadaan mati dan alarm tidak aktif. Jika waktu sekarang sama dengan waktu alarm dan alarm aktif, bell akan memulai berbunyi. Hanya dalam kondisi ini bell dapat mulai berbunyi
Waktu alarm dapat diatur setiap saat Hanya ketika alarm aktif saja dapat di non aktifkan Jika alarm tidak aktif ketika bell berbunyi, maka bell akan berhenti berbunyi Pengaturan kembali jam, mengatifkan atau nonaktifkan alarm dianggap telah dilakukan