Analisis Kebutuhan
Menentukan karakteristik
operasional PL
Menunjukkan antarmuka PL
dengan elemen sistem yang lain
Membuat batasan yang harus
dipenuhi PL
Analisis Kebutuhan
memungkinkan Software Engineer (disebut analis atau modeler) untuk :
Memperinci kebutuhan dasar
yang dibuat kapda rekayasa kebutuhan sebelumnya
Membangun model yang dapat
menggambarkan skenario user, aktivitas fungsional, class masalah dan relasinya,
sistem dan perilaku class, dan aliran data ketika ditransformasikan.
Sebuah Jembatan
Aturan-Aturan
Model harus fokus pada
masalah atau domain bisnis. Tingkat abstraksinya relatif harus lebih tinggi.
Setiap elemen model analisis
sebaiknya memberikan tambahan pada pemahaman keseluruhan kebutuhan PL dan
menyediakan wawasan pada domain informasi, fungsi dan perilaku sistem.
Tunda semua konsideran
infrastruktur dan model non fungsional hingga fase desain.
Minimalisasi rangkaian
melalui sistem.
Pastikan model analisis
menyediakan nilai untuk semua stakeholder.
Jaga model sesederhana
mungkin.
Analisis Domain
Analisis Domain
Tentukan domain yang ingin
diinvestigasi.
Kumpulkan contoh
representatif aplikasi pada domain tersebut.
Analisis setiap aplikasi
pada contoh.
Kembangkan model analisis
untuk objek.
Pemodelan Data
Memeriksa objek data secara
independen terhadap proses
Fokus perhatikan pada domain
data
Membuat sebuah model pada
abstraksi level konsumen
Mengindikasikan bagaimana
objek data berhubungan satu dengan yang lain
What is a Data Object?
Objek-Objek Umum
Objek Data dan Atribut
Apakah Relationship?
Relationship – menandakan
kaitan, sebuah fakta yang harus diingat oleh sistem, tidak dikomputasi atau
diturunkan secara mekanis
several instances of a
relationship can exist
objects can be related in
many different ways
Notasi ERD
Membangun Sebuah ERD
Level 1—modelkan semua objek
data (entitas) dan koneksinya dengan yang lain
Level 2—modelkan semua
entitas dan relasi
Level 3—modelkan semua
entitas, relasi, dan atribut yang menyediakan informasi yang lebih mendalam
ERD: sebuah contoh
Konsep Object-Oriented
Harus dipahami untuk
menerapkan elemen berbasis class pada model analisis
Konsep-konsep kunci:
Classes dan objects
Attributes dan operations
Encapsulation dan
instantiation
Inheritance
Class
Pemikiran object-oriented
dimulai dengan sebuah class, sering didefinisi sebagai :
template
deskripsi umum
“blueprint” ...
Menggambarkan sekelompok item yang mirip
sebuah metaclass (sering
disebut superclass)yang membangun hierarki semua class yang ada
Sekali sebuah class item
ditentukan, instance spesifik dari class tersebut dapat diidentifikasi
Membangun Class
Apakah Class?
Enkapuslasi/Penyembunyian
Hierarki Class
Method
(Operasi, Layanan)
(Operasi, Layanan)
Model berbasis Scenario
Use-Cases
Sebuah skenario yang
menggambarkan rangkaian kegunaan pada sistem
actors mewakili peran orang atau
piranti yang dimaikan ketika sistem berfungsi
users dapat berperan sebagai
lebih dari satu peran dalam sebuah skenario yang ditentukan
Mengembangkan Use-Case
Apa tugas atau fungsi utama
yang harus dilakukan aktor ?
Sistem Informasi seperti apa
yang diperlukan, dihasilkan atau diubah oleh aktor ?
Apakah aktor harus
menginformasikan sistem tentang perubahan dalam lingkungan eksternal?
Informasi apa yang diharapkan
aktor dari sistem?
Apakah aktor menginginkan
diberitahu tentang perubahan yang tidak tersangka?
Use-Case Diagram
Activity Diagram
Swimlane Diagrams
Pemodelan berorientasi
aliran
Model Aliran
Notasi Model Aliran
Entitas Eksternal
Proses
Aliran Data
Menyimpan Data
Petunjuk menggambar DFD
Semua icon harus diberi nama
yang bermakna jelas
DFD berkembang dalam
beberapa tingkatan
Selalu dimulai dengan sebuah
context level diagram (level 0)
Selalu menunjukkan entitas
eksternal pada level 0
Selalu berinama panah aliran
data
Jangan menampilkan prosedur
logika
Membangun sebuah DFD—I
Mereview model data untuk
mengisolasi objek data dan gunakan parsing gramatikal untuk menentukan
“Operasi”
Menentukan entitas eksternal
(produsen dan konsumen data)
Membuat level 0 DFD
Contoh Level 0 DFD
Membangun DFD—II
Tulis sebuah narasi yang
menggambarkan transformasi
Parsing untuk menentukan
transformasi tingkat berikutnya
“seimbangkan” aliran untuk
menjaga aliran data
Bangun level 1 DFD
Gunakan rasio 1:5
(perkiraan)
Hierarki Aliran Datang
Catatan untuk DFD
Setiap lingkaran harus
dipecah hingga dia hanya melakukan hanya SATU hal
Rasio ekspansi menurun
sesuai dengan jumlah level yang meningkat
Kebanyakan sistem
membutuhkan antara 3 hingga level 7 untuk model aliran yang cukup.
Sebuah item aliran data
(panah) dapat dikembangkan seiring dengan meningkatnya level (data dictionary
menyediakan informasi ini)
Spesifikasi Proses (PSPEC)
Setelah DFD?
Control Flow Diagram
Menggambarkan “events” dan
proses yang mengelola event
Sebuah “event” adalah
kondisi boolean yang dipastikan dengan :
Mendaftar semua sensor yang
dibaca oleh software.
Mendaftar semua kondisi
interupsi.
Mendaftar semua
"switches" yang dipicu oleh sebuah operator.
Mendaftar semua kondisi
data.
Memanggil kembali parser
kata benda/kerja yang diaplikasikan pada narasi proses, mereview semua “item
kendali” sebagai input/output CSPEC.
Model
Kendali
control flow diagram berada
“di atas” DFD dan menunjukkan event yang mengendalikan proses-proses yang
terdapat pada DFD
Aliran kendali—event dan
item kendali– ditandai dengan panah putus-putus
Sebuah tiang vertikal
menggambarkan input menuju atau output dari sebuah control spec (CSPEC) —
spesifikasi terpisah yang menggambarkan bagaimana kendali ditangani
Sebuah panah putus-putus
memasuki tiang vertikal adalah input menuju CSPEC
Sebuah panah putus-putus
meninggalkan proses menggambarkan kondisi data
Sebuah panah putus-patas
memasuki sebuah proses menggambarkan sebuah kendali input yang dibaca langsung
oleh proses
Aliran kendali tidak secara
fisik mengaktifkan/menonaktifkan proses, hal ini dilakukan melalui CSPEC
Control Flow Diagram
Control Specification
(CSPEC)
Panduan Membangun CSPEC
Pemodelan berbasis Class
Tentukan analisis class dengan
memeriksa pernyataan masalah(problem statement)
Gunakan parsing gramatikal
untuk memilah class potensial
Kenali atribut tiap class
Kenali operasi yang
memanipulasi atribut-atribut tersebut
Class Analisis
Entitias external (contoh : sistem lain,
piranti, orang) yang menghasilkan atau menggunakan informasi yang digunakan
oleh sistem berbasis komputer.
Benda (contoh : laporan, display,
surat, sinyal) yang merupakan bagian dari domain informasi untuk masalah.
Kejadian atau event (contoh : transfer properti
atau pelengkapan urutan gerakan robot) yang terjadi di dalam konteks sistem
operasi.
Peran (contoh : manajer,
insinyur, sales) yang diperankan orang yang berinteraksi dengan sistem.
Unit Organisasi (contoh : divisi, kelompok,
tim) yang relevan terhadap aplikasi.
Tempat (contoh : lantai pabrik,
pelabuhan muatan) yang membangun konteks masalah dan fungsi keseluruhan sistem.
Struktur (contoh : sensor, kendaraan
4WD, komputer) yang terdiri dari beberapa objek class atau objek-objek class
yang terkait
Kriteria memilih class
Class Diagram
Class Diagram
Pemodelan CRC
Class-class analisis
memiliki “tanggung-jawab”
Tanggungjawab adalah atribut-atribut dan
operasi-operasi yang terenkapsulasi oleh class
Class-class analisis
berkolaborasi satu dengan yang lain
Collaborators adalah class-class yang
dibutuhkan untuk menyediakan sebuah class dengan informasi yang dibutuhkan
untuk memenuhi tanggung jawabnya.
Secara umum, sebuah
kolaborasi berakibat permintaan informasi atau permintaan beberapa
aksi/operasi.
Pemodelan CRC
Tipe-tipe Class
Class entitas, sering disebut class model
atau bisnis, yang diekstrak langsung dari statemen permasalahan (contoh :
Sensor).
Class perbatasan digunakan
untuk membuat interface (contoh : layar interaktif, atau laporan cetak) dimana
user melihat dan berinteraksi dengannya selama PL digunakan.
Class kendali mengelola
“unit kerja
[UML03] dari awal sampai akhir. Class kendali dapat didesain mengelola :
Pembuatan atau update objek
entitas;
Inisiasi objek perbatasan
sebagaimana mereka mendapatkan informasi dari objek entitas;
Komunikasi kompleks antara
sekumpulan objek;
Validasi data yang
dikomunikasikan antara user dan aplikasi.
Responsibilities
System intelligence should
be distributed across classes to best address the needs of the problem
Each responsibility should
be stated as generally as possible
Information and the behavior
related to it should reside within the same class
Information about one thing
should be localized with a single class, not distributed across multiple
classes.
Responsibilities should be
shared among related classes, when appropriate.
Kolaborasi
Class memenuhi tanggung
jawabnya dengan satu diantara dua cara :
Sebuah class dapat
menggunakan operasinya sendiri untuk memanipulasi atributnya masing-masing atau
Sebuah class dapat
berkolaborasi dengan class lainnya.
Kolaborasi membuat relasi
antara class
Kolaborasi dapat
diidentifikasi dengan menentukan apakah sebuah class dapat memenuhi tanggung
jawabnya masing-masing
Tiga relasi umum yang
berbeda antar class [WIR90]:
is-part-of relationship
has-knowledge-of relationship
depends-upon relationship
Composite
Aggregate Class
Review
model CRC
Semua peserta dalam review
(model CRC) diberikan sebuah subset dari kartu index model CRC.
Kartu yang berkolaborasi
harus terpisah (tidak boleh ada reviewer yang memiliki dua kartu yang
berkolaborasi).
Semua skenario use-case (dan
diagram use case terkait) harus diorganisasi dalam kategori-kategori.
Pemimpin review membaca
use-case secara hati-hati.
Ketika pemimpin review
sampai pada objek, dia akan memberi tanda kepada person yang memegang kartu
index class yang terkait.
Ketika tanda dikirimkan,
pemilik kartu class diminta untuk menggambarkan tanggung jawab yang tertulis di
kartu tersebut.
Kelompok menentukan satu
(atau lebih) tanggung jawab yang memenuhi kebutuhan use-case.
Jika tanggung jawab dan
kolaborasi yang tertera pada kartu index tidak dapat mengakomodasi use-case,
modifikasi dilakukan pada kartu tersebut.
Hal ini termasuk definisi
class baru (dan kartu index CRC) atau spesifikasi baru atau revisi mengenai
tanggung jawab, atau kolaborasi kartu yang sudah ada.
Asosiasi dan Dependensi
Dua class analisis sering
berhubungan satu dengan yang lain dalam beberapa pola
Dalam UML relasi ini sering
disebut asosiasi
Asosiasi dapat didapatkan
dengan mengenali multiplicity (istilah cardinality digunaikan
dalam pemodelan data
Dalam banyak instans, relasi
client-server ada diantara dua class analisis.
Dalam kasus ini, class
client tergantung pada class server dalam suatu cara dan relasi dependensi
terjadi
Multiplicity
Dependencies
Analisis Paket
Beberapa model analisis
(use-case, class analisis) dikategorisasi dalam sebuah pola yang mempaketkan
mereka dalam kelompok
Tanda plus di dalam nama
class analisis dalam setiap paket menandakan bahwa class-class tersebut
mempunyai visibilitas publik dan karena itu dapat diakses dari paket lain.
Simbol lain dapat mendahului
elemen di dalam paket. Tanda minus menandakan bahwa elemen disembunyikan dari
semua paket, dan tanda # menandakan bahwa elemen hanya dapat diakses oleh paket
yang berada di dalam paket tersebut.
Analysis
Packages
Pemodelan
Perilaku
Model perilaku menggambarkan
bagaimana PL merespon event atau stimulan eksternal. Untuk model tersebut,
analis harus melakukan langkah-langkah berikut :
Evaluasi semua use-case untuk mendapatkan pemahaman
menyeluruh tentang urutan interaksi di dalam sistem.
Mengenali event yang mengendalikan urutan interaksi
dan memahamibagaimana event mempunyai relasi terhadap objek spesifik.
Membuat urutan untuk setiap use-case.
Membangun state diagram untuk sistem.
Review model behavioral untuk memverifikasi akurasi
dan konsistensi
Representasi Keadaan
Dalam konteks pemodelan
perilaku, dua karakter keadaan harus diperhatikan :
Keadaan setiap class ketika
sistem menjalankan fungsinya, dan
Keadaan sistem ketika
diobservasi dari luar sebagaimana sistem menjalankan fungsinya.
Keadaan class mengambil baik
karakter aktif maupun pasif [CHA93].
Sebuah keadaan pasif
adalah status saat ini dari semua atribut objek.
Keadaan aktif dari sebuah objek
menggambarkan status saat ini pada objek tersebut ketika menjalankan
transformasi atau proses.
State Diagram for the
ControlPanel Class
Keadaan-Keadaan Sistem
state—sekumpulan keadaan
terobservasi yang menggambarkan perilaku sistem pada satu waktu
state transition—perubahan
dari satu keadaan ke keadaan yang lain
event—sebuah kejadian yang menyebabkan
sistem melakukan perilaku yang sudah diprediksi sebelumnya
action—proses yang terjadi
sebagai konsekuensi membuat transisi
Pemodelan Perilaku
Membuat daftar keadaan
sistem yang berbeda (Bagaimana perilaku sistem ?)
Menggambarkan bagaimana
sistem membuat transisi dari satu keadaan ke keadaan yang lain.indicate how the
system makes a transition from one state to another (Bagaimana sistem mengubah
keadaan?)
mengenali event
Mengawali action
Menggambar sebuah state
diagram atau sequence diagram
Sequence Diagram
Menulis Spesifikasi PL
Tugas
Buatlah sebuah paper yang
menjelaskan tentang UML beserta contoh kasusnya, minimal 15 halaman, spasi 1.5,
kertas Quarto, sampul mika biru tua.
Kriteria penilaian :
Validitas/kebenaran
Kelengkapan
Kompleksitas kasus
Panduan Spesifikasi
Panduan Spesifikasi
Panduan Spesifikasi