Catatan Kuliah Catatan Kuliah
Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak
(Software Engineering) (Software Engineering)
Bagian 2 Bagian 2
copyright © 2006
R.S. Pressman & Associates, Inc M. Idham Ananta Timur, S.T., M.Kom.
Hanya digunakan di lingkungan Universtias
Hanya boleh digandakan untuk mahasiswa di lingkungan universitas yang menggunakan buku Software Engineering: A Practitioner's Approach.
Selain itu dilarang keras menggandakan.
Presentasi, slide atau hardcopy tidak boleh digunakan untuk
short courses, seminar industri, atau kepentingan konsultasi.
Software Engineering: A Practitioner’s Approach, 6/e Software Engineering: A Practitioner’s Approach, 6/e
Chapter 8 Chapter 8
Pemodelan Analisis Pemodelan Analisis
copyright © 1996, 2001, 2005
R.S. Pressman & Associates, Inc.
M. Idham Ananta Timur, S.T., M.Kom For University Use Only
May be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.
Any other reproduction or use is expressly prohibited.
Analisis Kebutuhan Analisis Kebutuhan
Analisis Kebutuhan Analisis Kebutuhan
Menentukan karakteristik operasional PL Menentukan karakteristik operasional PL
Menunjukkan antarmuka PL dengan elemen sistem yang lain Menunjukkan antarmuka PL dengan elemen sistem yang lain
Membuat batasan yang harus dipenuhi PL Membuat batasan yang harus dipenuhi PL
Analisis Kebutuhan memungkinkan Software Engineer Analisis Kebutuhan memungkinkan Software Engineer (disebut analis atau modeler) untuk :
(disebut analis atau modeler) untuk :
Memperinci kebutuhan dasar yang dibuat kapda rekayasa Memperinci kebutuhan dasar yang dibuat kapda rekayasa kebutuhan sebelumnya
kebutuhan sebelumnya
Membangun model yang dapat menggambarkan skenario user, Membangun model yang dapat menggambarkan skenario user, aktivitas fungsional, class masalah dan relasinya, sistem dan aktivitas fungsional, class masalah dan relasinya, sistem dan
perilaku class, dan aliran data ketika ditransformasikan.
perilaku class, dan aliran data ketika ditransformasikan.
Sebuah Jembatan Sebuah Jembatan
system description
analysis model
design
model
Aturan-Aturan Aturan-Aturan
Model harus fokus pada masalah atau domain bisnis. Model harus fokus pada masalah atau domain bisnis.
Tingkat abstraksinya relatif harus lebih tinggi.
Tingkat abstraksinya relatif harus lebih tinggi.
Setiap elemen model analisis sebaiknya memberikan Setiap elemen model analisis sebaiknya memberikan
tambahan pada pemahaman keseluruhan kebutuhan PL dan tambahan pada pemahaman keseluruhan kebutuhan PL dan
menyediakan wawasan pada domain informasi, fungsi dan menyediakan wawasan pada domain informasi, fungsi dan
perilaku sistem.
perilaku sistem.
Tunda semua konsideran infrastruktur dan model non Tunda semua konsideran infrastruktur dan model non fungsional hingga fase desain.
fungsional hingga fase desain.
Minimalisasi rangkaian melalui sistem. Minimalisasi rangkaian melalui sistem.
Pastikan model analisis menyediakan nilai untuk semua Pastikan model analisis menyediakan nilai untuk semua stakeholder.
stakeholder.
Jaga model sesederhana mungkin. Jaga model sesederhana mungkin.
Analisis Domain Analisis Domain
Analisis domain PL adalah identifikasi, analisis, dan Analisis domain PL adalah identifikasi, analisis, dan spesifikasi kebutuhan umum dari domain aplikasi spesifikasi kebutuhan umum dari domain aplikasi tertentu, yang biasanya digunakan kembali pada tertentu, yang biasanya digunakan kembali pada project lain di dalam domain aplikasi yang sama project lain di dalam domain aplikasi yang sama
[Analisis domain berorientasi objek adalah] identifikasi, [Analisis domain berorientasi objek adalah] identifikasi, analisis dan spesifikasi kemampuan umum,
analisis dan spesifikasi kemampuan umum,
kemampuan digunakan kembali dalam domain kemampuan digunakan kembali dalam domain
tertentu dalam istilah-istilah objek, class, subassemblies tertentu dalam istilah-istilah objek, class, subassemblies dan framework umum
dan framework umum
Donald Firesmith
Analisis Domain Analisis Domain
Tentukan domain yang ingin diinvestigasi. Tentukan domain yang ingin diinvestigasi.
Kumpulkan contoh representatif aplikasi pada Kumpulkan contoh representatif aplikasi pada domain tersebut.
domain tersebut.
Analisis setiap aplikasi pada contoh. Analisis setiap aplikasi pada contoh.
Kembangkan model analisis untuk objek. Kembangkan model analisis untuk objek.
Pemodelan Data Pemodelan Data
Memeriksa objek data secara Memeriksa objek data secara independen terhadap proses independen terhadap proses
Fokus perhatikan pada domain data Fokus perhatikan pada domain data
Membuat sebuah model pada abstraksi Membuat sebuah model pada abstraksi level konsumen
level konsumen
Mengindikasikan bagaimana objek data Mengindikasikan bagaimana objek data berhubungan satu dengan yang lain
berhubungan satu dengan yang lain
What is a Data Object?
What is a Data Object?
Object
Object — — something that is described by a set something that is described by a set of attributes (data items) and that will be
of attributes (data items) and that will be manipulated within the software (system) manipulated within the software (system)
each
each instance instance of an object (e.g., a book) of an object (e.g., a book) can be identified uniquely (e.g., ISBN #) can be identified uniquely (e.g., ISBN #) each plays a necessary role in the system each plays a necessary role in the system i.e., the system could not function without i.e., the system could not function without access to instances of the object
access to instances of the object
each is described by attributes that are each is described by attributes that are themselves data items
themselves data items
Objek-Objek Umum Objek-Objek Umum
Entitas eksternal
Entitas eksternal (printer, user, sensor) (printer, user, sensor) Sesuatu
Sesuatu (laporan, display, sinyal) (laporan, display, sinyal) Kejadian atau event
Kejadian atau event (interupsi, alarm) (interupsi, alarm) orang
orang (manager, engineer, salesperson) (manager, engineer, salesperson) Unit organisasi
Unit organisasi (divisi, tim) (divisi, tim) tempat
tempat (lantai pabrik) (lantai pabrik) struktur
struktur (employee record) (employee record)
Objek Data dan Atribut Objek Data dan Atribut
Sebuah objek data terdiri dari sekumpulan Sebuah objek data terdiri dari sekumpulan
atribut yang bertindak sebagai aspek, atribut yang bertindak sebagai aspek,
kualitas, karakteristik, atau penjelas objek kualitas, karakteristik, atau penjelas objek
object: automobile object: automobile
attributes:
attributes:
make make model model
body type body type price price
options code options code
Apakah Relationship?
Apakah Relationship?
Relationship – menandakan kaitan, sebuah fakta Relationship – menandakan kaitan, sebuah fakta
yang harus diingat oleh sistem, tidak yang harus diingat oleh sistem, tidak
dikomputasi atau diturunkan secara mekanis dikomputasi atau diturunkan secara mekanis
several instances of a relationship can exist several instances of a relationship can exist
objects can be related in many different ways objects can be related in many different ways
Notasi ERD Notasi ERD
(0, m) (1, 1)
object
object relationship relationship object object
1 1 2 2
Satu bentuk umum:
Satu bentuk umum:
(0, m) (0, m)
(1, 1) (1, 1)
object
object 1 1 relationship relationship object object 2 2 Bentuk Umum yang lain:
Bentuk Umum yang lain:
attribute
attribute
Membangun Sebuah ERD Membangun Sebuah ERD
Level 1—modelkan semua objek data (entitas) dan Level 1—modelkan semua objek data (entitas) dan koneksinya dengan yang lain
koneksinya dengan yang lain
Level 2—modelkan semua entitas dan relasi Level 2—modelkan semua entitas dan relasi
Level 3—modelkan semua entitas, relasi, dan Level 3—modelkan semua entitas, relasi, dan atribut yang menyediakan informasi yang lebih atribut yang menyediakan informasi yang lebih
mendalam
mendalam
ERD: sebuah contoh ERD: sebuah contoh
(1,1)
(1,1) places places (1,m) (1,m) Customer
Customer request request
for service for service
generates
generates (1,n) (1,n) (1,1)
(1,1)
work work order order
work work tasks tasks materials materials
consists consists
of of lists lists
(1,1) (1,1) (1,w)
(1,w) (1,1)
(1,i) (1,i)
selected selected
from from
standard standard task table task table
(1,w) (1,w) (1,1)
(1,1)
Konsep Object-Oriented Konsep Object-Oriented
Harus dipahami untuk menerapkan elemen Harus dipahami untuk menerapkan elemen berbasis class pada model analisis
berbasis class pada model analisis
Konsep-konsep kunci: Konsep-konsep kunci:
Classes dan objects Classes dan objects
Attributes dan operations Attributes dan operations
Encapsulation dan instantiation Encapsulation dan instantiation
Inheritance Inheritance
Class Class
• Pemikiran object-oriented dimulai dengan Pemikiran object-oriented dimulai dengan sebuah class, sering didefinisi sebagai :
sebuah class, sering didefinisi sebagai :
– template template
– deskripsi umum deskripsi umum
– “blueprint” ... Menggambarkan sekelompok item “ blueprint” ... Menggambarkan sekelompok item yang mirip
yang mirip
• sebuah metaclass sebuah metaclass (sering disebut (sering disebut superclass
superclass)yang membangun hierarki semua )yang membangun hierarki semua class yang ada
class yang ada
• Sekali sebuah class item ditentukan, instance Sekali sebuah class item ditentukan, instance
spesifik dari class tersebut dapat diidentifikasi
spesifik dari class tersebut dapat diidentifikasi
Membangun Class Membangun Class
class name attributes:
operations:
attributes:
operations
Apakah Class?
Apakah Class?
external entities things
occurrences roles
organizational units places
structures
class name attributes:
operations:
Enkapuslasi/Penyembunyian Enkapuslasi/Penyembunyian
Objek mengenkapsulasi Baik data dan prosedur Logis yang dibutuhkan Untuk manipulasi
data
Achieves “information hiding”
method
# 1
data
method
# 2
method method # 4
# 5 method
# 6
method
# 3
Hierarki Class Hierarki Class
Chair
Table Desk ”Chable"
instances of Chair
PieceOfFurniture (superclass)
subclasses of the
Method Method
(Operasi, Layanan) (Operasi, Layanan)
Prosedur yang terenkapsulasi pada sebuah class dan
didesain untuk beroperasi pada satu atau lebih atribut data
yang ditentukan sebagai bagian dari class.
Method dipanggil
melalui pesan
Model berbasis Scenario Model berbasis Scenario
“[Use-cases] adalah bantuan untuk mendefinisikan apa “ [Use-cases] adalah bantuan untuk mendefinisikan apa yang ada pada sistem (aktor) dan apa yang harus
yang ada pada sistem (aktor) dan apa yang harus dilakukan sistem (use-cases).” Ivar Jacobson
dilakukan sistem (use-cases).” Ivar Jacobson
(1) Apa yang harus ditulis?
(1) Apa yang harus ditulis?
(2) Berapa banyak kita harus menulisnya?
(2) Berapa banyak kita harus menulisnya?
(3) Sedetail apa gambaran kita ? (3) Sedetail apa gambaran kita ?
(4) Bagaimana kita mengatur deskripsi?
(4) Bagaimana kita mengatur deskripsi?
Use-Cases Use-Cases
Sebuah skenario yang menggambarkan Sebuah skenario yang menggambarkan rangkaian kegunaan pada sistem
rangkaian kegunaan pada sistem
actors actors mewakili peran orang atau piranti yang mewakili peran orang atau piranti yang dimaikan ketika sistem berfungsi
dimaikan ketika sistem berfungsi
users users dapat berperan sebagai lebih dari satu dapat berperan sebagai lebih dari satu
peran dalam sebuah skenario yang ditentukan
peran dalam sebuah skenario yang ditentukan
Mengembangkan Use-Case Mengembangkan Use-Case
Apa tugas atau fungsi utama yang harus dilakukan aktor ? Apa tugas atau fungsi utama yang harus dilakukan aktor ?
Sistem Informasi seperti apa yang diperlukan, dihasilkan Sistem Informasi seperti apa yang diperlukan, dihasilkan atau diubah oleh aktor ?
atau diubah oleh aktor ?
Apakah aktor harus menginformasikan sistem tentang Apakah aktor harus menginformasikan sistem tentang perubahan dalam lingkungan eksternal?
perubahan dalam lingkungan eksternal?
Informasi apa yang diharapkan aktor dari sistem? Informasi apa yang diharapkan aktor dari sistem?
Apakah aktor menginginkan diberitahu tentang Apakah aktor menginginkan diberitahu tentang perubahan yang tidak tersangka?
perubahan yang tidak tersangka?
Use-Case Diagram Use-Case Diagram
homeowner
Access camera surveillance via the
Internet
Configure SafeHome system parameters
Set alarm
cameras SafeHome
Activity Diagram Activity Diagram
Melengkapi use-case dengan menyediakan representasi diagram Melengkapi use-case dengan menyediakan representasi diagram dari aliran prosedural.
dari aliran prosedural.
enter password and user ID
select major function valid passwords/ ID
prompt for reentry invalid passwords/ ID
input tries remain no input
tries remain select surveillance
other f unctions may also be
selected
thumbnail views select a specif ic camera
select camera icon
prompt for another view select specific camera - thumbnails
exit this f unction see another camera view camera output
in labelled window
Swimlane Diagrams Swimlane Diagrams
Memungkinkan untuk menampilkan aliran aktivitas yang digambarkan oleh use-case, dan Memungkinkan untuk menampilkan aliran aktivitas yang digambarkan oleh use-case, dan di saat yang sama mengindikasikan aktor yang mana, atau class analisis yang mempunyai di saat yang sama mengindikasikan aktor yang mana, atau class analisis yang mempunyai tanggungjawab terhadap tindakan yang digambarkan oleh kotak aktivitas
tanggungjawab terhadap tindakan yang digambarkan oleh kotak aktivitas
enter password and user ID
select major function
valid passwo rds/ ID
prompt for reentry in valid passwo rd s/ ID
in pu t tries remain n o in pu t
tries remain select surveillance
o t her f u n ctio n s may also be
selected
th u mb nail views select a specif ic camera
select camera icon
generate video output select specific
camera - thumbnails
h o m e o wn e r c a m e ra i nt e rf a c e
prompt for view camera output
Pemodelan berorientasi aliran Pemodelan berorientasi aliran
Menampilkan bagaimana objek data ditransformasi Menampilkan bagaimana objek data ditransformasi ketika mereka bergerak di dalam sistem
ketika mereka bergerak di dalam sistem Sebuah
Sebuah data flow diagram (DFD) data flow diagram (DFD) merupakan bentuk merupakan bentuk diagram yang digunakan
diagram yang digunakan
Walaupun dianggap pendekatan kuno, pemodelan Walaupun dianggap pendekatan kuno, pemodelan berorientasi aliran menyediakan pandangan unik berorientasi aliran menyediakan pandangan unik
terhadap suatu sistem. Dia tetap layak digunakan untuk terhadap suatu sistem. Dia tetap layak digunakan untuk mendukung analisis elemen model lainnya.
mendukung analisis elemen model lainnya.
Model Aliran Model Aliran
Setiap sistem berbasis komputer Setiap sistem berbasis komputer
Adalah sebuah transformasi informasi Adalah sebuah transformasi informasi
computer computer
based based system system input
input output output
Notasi Model Aliran Notasi Model Aliran
Entitas Eksternal Entitas Eksternal
proses proses
Aliran data Aliran data
Penyimpanan data
Penyimpanan data
Entitas Eksternal Entitas Eksternal
Produsen atau konsumen sebuah data Produsen atau konsumen sebuah data Contoh : seseorang, piranti, sensor
Contoh : seseorang, piranti, sensor
Contoh lain : sistem berbasis komputer Contoh lain : sistem berbasis komputer
Data harus selalu berawal dari suatu tempat dan Data harus selalu berawal dari suatu tempat dan
Harus selalu dikirim pada sesuatu
Harus selalu dikirim pada sesuatu
Proses Proses
Sebuah transformer data Sebuah transformer data
(mengubah input menjadi output) (mengubah input menjadi output)
Contoh: menghitung pajak, menentukan luas, Contoh: menghitung pajak, menentukan luas,
Memformat laporan, menampilkan grafik Memformat laporan, menampilkan grafik
Data harus selalu diproses dalam bentuk tertentu Data harus selalu diproses dalam bentuk tertentu
Untuk menerima fungsi sistem
Untuk menerima fungsi sistem
Aliran Data Aliran Data
Data mengalir melalui sebuah sistem dimulai Data mengalir melalui sebuah sistem dimulai
Sebagai input dan ditransformasi menjadi Sebagai input dan ditransformasi menjadi
output output
compute compute triangle triangle
area area base base
height height
area area
Menyimpan Data Menyimpan Data
Data disimpan untuk digunakan lagi.
Data disimpan untuk digunakan lagi.
look-up look-up sensor sensor
data data
sensor # sensor #
report required report required
sensor #, type, sensor #, type, location, age location, age
sensor data sensor data sensor number
sensor number
type, type,
location, age
location, age
Petunjuk menggambar DFD Petunjuk menggambar DFD
Semua icon harus diberi nama yang Semua icon harus diberi nama yang bermakna jelas
bermakna jelas
DFD berkembang dalam beberapa DFD berkembang dalam beberapa tingkatan
tingkatan
Selalu dimulai dengan sebuah context Selalu dimulai dengan sebuah context level diagram (level 0)
level diagram (level 0)
Selalu menunjukkan entitas eksternal pada Selalu menunjukkan entitas eksternal pada level 0
level 0
Selalu berinama panah aliran data Selalu berinama panah aliran data
Membangun sebuah DFD—I Membangun sebuah DFD—I
Mereview model data untuk mengisolasi objek Mereview model data untuk mengisolasi objek data dan gunakan parsing gramatikal untuk data dan gunakan parsing gramatikal untuk
menentukan “Operasi”
menentukan “Operasi”
Menentukan entitas eksternal (produsen dan Menentukan entitas eksternal (produsen dan konsumen data)
konsumen data)
Membuat level 0 DFD Membuat level 0 DFD
Contoh Level 0 DFD Contoh Level 0 DFD
user user processing processing request request
video video source
source video signal video signal NTSC NTSC
digital digital video video processor processor
requested requested
video video signal signal
monitor
monitor
Membangun DFD—II Membangun DFD—II
Tulis sebuah narasi yang menggambarkan Tulis sebuah narasi yang menggambarkan transformasi
transformasi
Parsing untuk menentukan transformasi Parsing untuk menentukan transformasi tingkat berikutnya
tingkat berikutnya
“ “ seimbangkan” aliran untuk menjaga aliran seimbangkan” aliran untuk menjaga aliran data data
Bangun level 1 DFD Bangun level 1 DFD
Gunakan rasio 1:5 (perkiraan) Gunakan rasio 1:5 (perkiraan)
Hierarki Aliran Datang Hierarki Aliran Datang
P P
a a b b
x x y y
p1 p1
p2 p2
p3 p3
p4 p4 5 5
a a
b b c c
d d
e e f f
g g
level 0 level 0
level 1
level 1
Catatan untuk DFD Catatan untuk DFD
Setiap lingkaran harus dipecah hingga Setiap lingkaran harus dipecah hingga dia hanya melakukan hanya SATU hal dia hanya melakukan hanya SATU hal
Rasio ekspansi menurun sesuai dengan Rasio ekspansi menurun sesuai dengan jumlah level yang meningkat
jumlah level yang meningkat
Kebanyakan sistem membutuhkan antara Kebanyakan sistem membutuhkan antara 3 hingga level 7 untuk model aliran yang 3 hingga level 7 untuk model aliran yang
cukup.
cukup.
Sebuah item aliran data (panah) dapat Sebuah item aliran data (panah) dapat dikembangkan seiring dengan
dikembangkan seiring dengan
meningkatnya level (data dictionary meningkatnya level (data dictionary
menyediakan informasi ini)
menyediakan informasi ini)
Spesifikasi Proses (PSPEC) Spesifikasi Proses (PSPEC)
PSPEC PSPEC
naratif naratif
pseudocode (PDL) pseudocode (PDL) persamaan
persamaan tabel
tabel
Diagram dan atau grafik Diagram dan atau grafik
Lingkaran
Lingkaran
Maps into Maps into
Setelah DFD?
Setelah DFD?
analysis model analysis model
design model
design model
Control Flow Diagram Control Flow Diagram
Menggambarkan “ Menggambarkan “ events events ” dan proses yang mengelola ” dan proses yang mengelola event
event
Sebuah “event” adalah kondisi boolean yang dipastikan Sebuah “event” adalah kondisi boolean yang dipastikan dengan :
dengan :
Mendaftar semua sensor yang dibaca oleh software. Mendaftar semua sensor yang dibaca oleh software.
Mendaftar semua kondisi interupsi. Mendaftar semua kondisi interupsi.
Mendaftar semua "switches" yang dipicu oleh sebuah operator. Mendaftar semua "switches" yang dipicu oleh sebuah operator.
Mendaftar semua kondisi data. Mendaftar semua kondisi data.
Memanggil kembali parser kata benda/kerja yang diaplikasikan Memanggil kembali parser kata benda/kerja yang diaplikasikan
pada narasi proses, mereview semua “item kendali” sebagai
pada narasi proses, mereview semua “item kendali” sebagai
Model Kendali Model Kendali
• control flow diagram berada “di atas” DFD dan menunjukkan event yang control flow diagram berada “di atas” DFD dan menunjukkan event yang mengendalikan proses-proses yang terdapat pada DFD
mengendalikan proses-proses yang terdapat pada DFD
• Aliran kendali—event dan item kendali– ditandai dengan panah putus- Aliran kendali—event dan item kendali– ditandai dengan panah putus- putus
putus
• Sebuah tiang vertikal menggambarkan input menuju atau output dari Sebuah tiang vertikal menggambarkan input menuju atau output dari
sebuah control spec (CSPEC) — spesifikasi terpisah yang menggambarkan sebuah control spec (CSPEC) — spesifikasi terpisah yang menggambarkan bagaimana kendali ditangani
bagaimana kendali ditangani
• Sebuah panah putus-putus memasuki tiang vertikal adalah input menuju Sebuah panah putus-putus memasuki tiang vertikal adalah input menuju CSPEC
CSPEC
• Sebuah panah putus-putus meninggalkan proses menggambarkan kondisi Sebuah panah putus-putus meninggalkan proses menggambarkan kondisi data data
• Sebuah panah putus-patas memasuki sebuah proses menggambarkan Sebuah panah putus-patas memasuki sebuah proses menggambarkan sebuah kendali input yang dibaca langsung oleh proses
sebuah kendali input yang dibaca langsung oleh proses
• Aliran kendali tidak secara fisik mengaktifkan/menonaktifkan proses, hal Aliran kendali tidak secara fisik mengaktifkan/menonaktifkan proses, hal ini dilakukan melalui CSPEC
ini dilakukan melalui CSPEC
Control Flow Diagram Control Flow Diagram
read operator
input manage
copying
reload process
perform problem diagnosis
create user displays
empty
full
display panel enabled beeper on/off
start
problem
light
copies done
Control Specification (CSPEC) Control Specification (CSPEC)
CSPEC dapat berupa:
CSPEC dapat berupa:
state diagram state diagram (sequential spec) (sequential spec)
state transition table state transition table decision tables
decision tables activation tables activation tables
combinatorial spec
combinatorial spec
Panduan Membangun CSPEC Panduan Membangun CSPEC
Lihat semua sensor yang “dibaca” oleh PL Lihat semua sensor yang “dibaca” oleh PL Lihat semua kondisi interupsi
Lihat semua kondisi interupsi
Lihat semua "switches" yang diaktifkan oleh operator Lihat semua "switches" yang diaktifkan oleh operator
Lihat semua kondisi data Lihat semua kondisi data
Melihat parsing kata benda/kerja yang diterapkan pada Melihat parsing kata benda/kerja yang diterapkan pada
Statemen software atau lingkupnya, mereview semua item kendali Statemen software atau lingkupnya, mereview semua item kendali
Sebagai input/output CSPEC yang mungkin Sebagai input/output CSPEC yang mungkin
Menggambarkan perilaku sebuah sistem dengan identifikasi Menggambarkan perilaku sebuah sistem dengan identifikasi
Keadaan; menentukan bagaimana setiap keadaan mencapai dan Keadaan; menentukan bagaimana setiap keadaan mencapai dan Menentukan transisi antar keadaan
Menentukan transisi antar keadaan
Fokus pada kemungkinan kehilangan/tidak tercantum...
Fokus pada kemungkinan kehilangan/tidak tercantum...
Kesalahan umum dalam menentukan kendali, misalnya
Kesalahan umum dalam menentukan kendali, misalnya
Pemodelan berbasis Class Pemodelan berbasis Class
Tentukan analisis class dengan memeriksa Tentukan analisis class dengan memeriksa pernyataan masalah(problem statement) pernyataan masalah(problem statement)
Gunakan parsing gramatikal untuk memilah class Gunakan parsing gramatikal untuk memilah class potensial
potensial
Kenali atribut tiap class Kenali atribut tiap class
Kenali operasi yang memanipulasi atribut-atribut Kenali operasi yang memanipulasi atribut-atribut tersebut
tersebut
Class Analisis Class Analisis
Entitias external (contoh : sistem lain, piranti, orang) yang menghasilkan atau Entitias external (contoh : sistem lain, piranti, orang) yang menghasilkan atau menggunakan informasi yang digunakan oleh sistem berbasis komputer.
menggunakan informasi yang digunakan oleh sistem berbasis komputer.
Benda (contoh : laporan, display, surat, sinyal) yang merupakan bagian dari Benda (contoh : laporan, display, surat, sinyal) yang merupakan bagian dari domain informasi untuk masalah.
domain informasi untuk masalah.
Kejadian atau event (contoh : transfer properti atau pelengkapan urutan gerakan Kejadian atau event (contoh : transfer properti atau pelengkapan urutan gerakan robot) yang terjadi di dalam konteks sistem operasi.
robot) yang terjadi di dalam konteks sistem operasi.
Peran Peran (contoh : manajer, insinyur, sales) yang diperankan orang yang (contoh : manajer, insinyur, sales) yang diperankan orang yang berinteraksi dengan sistem.
berinteraksi dengan sistem.
Unit Organisasi (contoh : divisi, kelompok, tim) yang relevan terhadap aplikasi. Unit Organisasi (contoh : divisi, kelompok, tim) yang relevan terhadap aplikasi.
Tempat Tempat (contoh : lantai pabrik, pelabuhan muatan) yang membangun konteks (contoh : lantai pabrik, pelabuhan muatan) yang membangun konteks masalah dan fungsi keseluruhan sistem.
masalah dan fungsi keseluruhan sistem.
Struktur (contoh : sensor, kendaraan 4WD, komputer) yang terdiri dari Struktur (contoh : sensor, kendaraan 4WD, komputer) yang terdiri dari beberapa objek class atau objek-objek class yang terkait
beberapa objek class atau objek-objek class yang terkait
Kriteria memilih class Kriteria memilih class
Layanan yang dibutuhkan Layanan yang dibutuhkan
Beberapa atribut Beberapa atribut Atribut umum Atribut umum
Operasi umum Operasi umum
Kebutuhan esensial
Kebutuhan esensial
Menyimpan informasi
Menyimpan informasi
Class Diagram Class Diagram
System
program() display() reset() query() modify() call() systemID
verificationPhoneNumber systemStatus
delayTime
telephoneNumber masterPassword temporaryPassword numberTries
Class name
attributes
operations
Class Diagram Class Diagram
FloorPlan
determineType () positionFloorplan scale( ) change color() type name outsideDimensions
Camera
determineType () translateLocation () displayID() displayView() displayZoom() type ID location fieldView panAngle ZoomSetting
WallSegment
type startCoordinates stopCoordinates nextWallSement
Window
type startCoordinates stopCoordinates nextWindow
is placed within
Wall
type wallDimensions
determineType () computeDimensions ()
Door
type startCoordinates stopCoordinates nextDoor
is part of
is used to build is used to build
is used to build
Pemodelan CRC Pemodelan CRC
Class-class analisis memiliki “tanggung-jawab” Class-class analisis memiliki “tanggung-jawab”
Tanggungjawab Tanggungjawab adalah atribut-atribut dan operasi-operasi yang adalah atribut-atribut dan operasi-operasi yang terenkapsulasi oleh class
terenkapsulasi oleh class
Class-class analisis berkolaborasi satu dengan yang lain Class-class analisis berkolaborasi satu dengan yang lain
Collaborators Collaborators adalah class-class yang dibutuhkan untuk adalah class-class yang dibutuhkan untuk
menyediakan sebuah class dengan informasi yang dibutuhkan menyediakan sebuah class dengan informasi yang dibutuhkan
untuk memenuhi tanggung jawabnya.
untuk memenuhi tanggung jawabnya.
Secara umum, sebuah kolaborasi berakibat permintaan Secara umum, sebuah kolaborasi berakibat permintaan informasi atau permintaan beberapa aksi/operasi.
informasi atau permintaan beberapa aksi/operasi.
Pemodelan CRC Pemodelan CRC
Class:
Description:
Responsibility: Collaborator:
Class:
Description:
Responsibility: Collaborator:
Class:
Description:
Responsibility: Collaborator:
Class: FloorPlan
Description:
Responsibility: Collaborator:
incorporates walls, doors and windows shows position of video cameras defines floor plan name/type manages floor plan positioning scales floor plan for display scales floor plan for display
Wall Camera
Tipe-tipe Class Tipe-tipe Class
Class entitas, sering disebut class model atau bisnis, yang diekstrak Class entitas , sering disebut class model atau bisnis, yang diekstrak langsung dari statemen permasalahan (contoh : Sensor).
langsung dari statemen permasalahan (contoh : Sensor).
Class perbatasan digunakan untuk membuat interface (contoh : layar Class perbatasan digunakan untuk membuat interface (contoh : layar interaktif, atau laporan cetak) dimana user melihat dan berinteraksi interaktif, atau laporan cetak) dimana user melihat dan berinteraksi dengannya selama PL digunakan
dengannya selama PL digunakan. .
Class kendali mengelola “unit kerja Class kendali mengelola “unit kerja [UML03] dari awal sampai akhir. [UML03] dari awal sampai akhir.
Class kendali dapat didesain mengelola : Class kendali dapat didesain mengelola :
Pembuatan atau update objek entitas; Pembuatan atau update objek entitas;
Inisiasi objek perbatasan sebagaimana mereka mendapatkan Inisiasi objek perbatasan sebagaimana mereka mendapatkan informasi dari objek entitas;
informasi dari objek entitas;
Komunikasi kompleks antara sekumpulan objek; Komunikasi kompleks antara sekumpulan objek;
Validasi data yang dikomunikasikan antara user dan aplikasi. Validasi data yang dikomunikasikan antara user dan aplikasi.
Responsibilities Responsibilities
System intelligence should be distributed across classes System intelligence should be distributed across classes to best address the needs of the problem
to best address the needs of the problem
Each responsibility should be stated as generally as Each responsibility should be stated as generally as possible
possible
Information and the behavior related to it should reside Information and the behavior related to it should reside within the same class
within the same class
Information about one thing should be localized with a Information about one thing should be localized with a single class, not distributed across multiple classes.
single class, not distributed across multiple classes.
Responsibilities should be shared among related classes, Responsibilities should be shared among related classes, when appropriate.
when appropriate.
Kolaborasi Kolaborasi
Class memenuhi tanggung jawabnya dengan satu diantara dua cara Class memenuhi tanggung jawabnya dengan satu diantara dua cara : :
Sebuah class dapat menggunakan operasinya sendiri untuk Sebuah class dapat menggunakan operasinya sendiri untuk memanipulasi atributnya masing-masing atau
memanipulasi atributnya masing-masing atau
Sebuah class dapat berkolaborasi dengan class lainnya. Sebuah class dapat berkolaborasi dengan class lainnya.
Kolaborasi membuat relasi antara class Kolaborasi membuat relasi antara class
Kolaborasi dapat diidentifikasi dengan menentukan apakah sebuah Kolaborasi dapat diidentifikasi dengan menentukan apakah sebuah class dapat memenuhi tanggung jawabnya masing-masing
class dapat memenuhi tanggung jawabnya masing-masing
Tiga relasi umum yang berbeda antar class [WIR90]: Tiga relasi umum yang berbeda antar class [WIR90]:
is-part-of is-part-of relationship relationship
has-knowledge-of has-knowledge-of relationship relationship
depends-upon depends-upon relationship relationship
Composite Aggregate Class Composite Aggregate Class
Player
PlayerHead PlayerBody PlayerArms PlayerLegs
Review model CRC Review model CRC
Semua peserta dalam review (model CRC) diberikan sebuah subset dari kartu index model Semua peserta dalam review (model CRC) diberikan sebuah subset dari kartu index model CRC. CRC.
Kartu yang berkolaborasi harus terpisah (tidak boleh ada reviewer yang memiliki dua kartu yang Kartu yang berkolaborasi harus terpisah (tidak boleh ada reviewer yang memiliki dua kartu yang berkolaborasi).
berkolaborasi).
Semua skenario use-case (dan diagram use case terkait) harus diorganisasi dalam kategori- Semua skenario use-case (dan diagram use case terkait) harus diorganisasi dalam kategori- kategori
kategori. .
Pemimpin review membaca use-case secara hati-hati. Pemimpin review membaca use-case secara hati-hati .
Ketika pemimpin review sampai pada objek, dia akan memberi tanda kepada person yang Ketika pemimpin review sampai pada objek, dia akan memberi tanda kepada person yang memegang kartu index class yang terkait.
memegang kartu index class yang terkait.
Ketika tanda dikirimkan, pemilik kartu class diminta untuk menggambarkan tanggung Ketika tanda dikirimkan, pemilik kartu class diminta untuk menggambarkan tanggung jawab yang tertulis di kartu tersebut.
jawab yang tertulis di kartu tersebut.
Kelompok menentukan satu (atau lebih) tanggung jawab yang memenuhi kebutuhan use-case. Kelompok menentukan satu (atau lebih) tanggung jawab yang memenuhi kebutuhan use-case.
Jika tanggung jawab dan kolaborasi yang tertera pada kartu index tidak dapat Jika tanggung jawab dan kolaborasi yang tertera pada kartu index tidak dapat mengakomodasi use-case, modifikasi dilakukan pada kartu tersebut
mengakomodasi use-case, modifikasi dilakukan pada kartu tersebut. .
Hal ini termasuk definisi class baru (dan kartu index CRC) atau spesifikasi baru atau revisi Hal ini termasuk definisi class baru (dan kartu index CRC) atau spesifikasi baru atau revisi mengenai tanggung jawab, atau kolaborasi kartu yang sudah ada.
mengenai tanggung jawab, atau kolaborasi kartu yang sudah ada.
Asosiasi dan Dependensi Asosiasi dan Dependensi
Dua class analisis sering berhubungan satu dengan yang Dua class analisis sering berhubungan satu dengan yang lain dalam beberapa pola
lain dalam beberapa pola
Dalam UML relasi ini sering disebut Dalam UML relasi ini sering disebut asosiasi asosiasi
Asosiasi dapat didapatkan dengan mengenali Asosiasi dapat didapatkan dengan mengenali multiplicity multiplicity (istilah (istilah cardinality
cardinality digunaikan dalam pemodelan data digunaikan dalam pemodelan data
Dalam banyak instans, relasi client-server ada diantara Dalam banyak instans, relasi client-server ada diantara dua class analisis.
dua class analisis.
Dalam kasus ini, class client tergantung pada class server dalam Dalam kasus ini, class client tergantung pada class server dalam suatu cara dan
suatu cara dan relasi dependensi relasi dependensi terjadi terjadi
Multiplicity Multiplicity
WallSegment Window Door
Wall
is used to build is used to build
is used to build 1..*
1 1 1
0..* 0..*
Dependencies Dependencies
Camera DisplayWindow
{password}
<<access>>
Analisis Paket Analisis Paket
Beberapa model analisis (use-case, class analisis) dikategorisasi Beberapa model analisis (use-case, class analisis) dikategorisasi dalam sebuah pola yang mempaketkan mereka dalam kelompok dalam sebuah pola yang mempaketkan mereka dalam kelompok
Tanda plus di dalam nama class analisis dalam setiap paket Tanda plus di dalam nama class analisis dalam setiap paket menandakan bahwa class-class tersebut mempunyai visibilitas menandakan bahwa class-class tersebut mempunyai visibilitas publik dan karena itu dapat diakses dari paket lain.
publik dan karena itu dapat diakses dari paket lain.
Simbol lain dapat mendahului elemen di dalam paket. Tanda minus Simbol lain dapat mendahului elemen di dalam paket. Tanda minus menandakan bahwa elemen disembunyikan dari semua paket, dan menandakan bahwa elemen disembunyikan dari semua paket, dan tanda # menandakan bahwa elemen hanya dapat diakses oleh paket tanda # menandakan bahwa elemen hanya dapat diakses oleh paket yang berada di dalam paket tersebut.
yang berada di dalam paket tersebut.
Analysis Packages Analysis Packages
Environment +Tree +Landscape +Road +Wall +Bridge +Building +VisualEffect +Scene
Characters +Player +Protagonist +Antagonist +SupportingRole
RulesOfTheGame +RulesOfMovement +ConstraintsOnAction
package name
Pemodelan Perilaku Pemodelan Perilaku
Model perilaku menggambarkan bagaimana PL merespon event Model perilaku menggambarkan bagaimana PL merespon event atau stimulan eksternal. Untuk model tersebut, analis harus
atau stimulan eksternal. Untuk model tersebut, analis harus melakukan langkah-langkah berikut :
melakukan langkah-langkah berikut :
Evaluasi semua use-case untuk mendapatkan pemahaman menyeluruh Evaluasi semua use-case untuk mendapatkan pemahaman menyeluruh tentang urutan interaksi di dalam sistem.
tentang urutan interaksi di dalam sistem.
Mengenali event yang mengendalikan urutan interaksi dan Mengenali event yang mengendalikan urutan interaksi dan
memahamibagaimana event mempunyai relasi terhadap objek spesifik.
memahamibagaimana event mempunyai relasi terhadap objek spesifik.
Membuat urutan untuk setiap use-case. Membuat urutan untuk setiap use-case.
Membangun state diagram untuk sistem. Membangun state diagram untuk sistem.
Review model behavioral untuk memverifikasi akurasi dan konsistensi Review model behavioral untuk memverifikasi akurasi dan konsistensi
Representasi Keadaan Representasi Keadaan
Dalam konteks pemodelan perilaku, dua karakter Dalam konteks pemodelan perilaku, dua karakter keadaan harus diperhatikan :
keadaan harus diperhatikan :
Keadaan setiap class ketika sistem menjalankan fungsinya, dan Keadaan setiap class ketika sistem menjalankan fungsinya, dan
Keadaan sistem ketika diobservasi dari luar sebagaimana sistem Keadaan sistem ketika diobservasi dari luar sebagaimana sistem menjalankan fungsinya.
menjalankan fungsinya.
Keadaan class mengambil baik karakter aktif maupun Keadaan class mengambil baik karakter aktif maupun pasif [CHA93].
pasif [CHA93].
Sebuah Sebuah keadaan pasif keadaan pasif adalah status saat ini dari semua atribut adalah status saat ini dari semua atribut objek.
objek.
Keadaan aktif Keadaan aktif dari sebuah objek menggambarkan status saat ini dari sebuah objek menggambarkan status saat ini pada objek tersebut ketika menjalankan transformasi atau
pada objek tersebut ketika menjalankan transformasi atau proses.
proses.
State Diagram for the ControlPanel Class State Diagram for the ControlPanel Class
reading
locked
selecting password
entered
comparing password = incorrect
& numberOfTries < maxTries
password = correct
activation successful key hit
do: validatePassword
numberOfTries > maxTries timer < lockedTime
timer > lockedTime
Keadaan-Keadaan Sistem Keadaan-Keadaan Sistem
state state —sekumpulan keadaan terobservasi —sekumpulan keadaan terobservasi yang menggambarkan perilaku sistem yang menggambarkan perilaku sistem
pada satu waktu pada satu waktu
state transition state transition —perubahan dari satu —perubahan dari satu keadaan ke keadaan yang lain
keadaan ke keadaan yang lain
event event —sebuah kejadian yang —sebuah kejadian yang
menyebabkan sistem melakukan perilaku menyebabkan sistem melakukan perilaku
yang sudah diprediksi sebelumnya yang sudah diprediksi sebelumnya
action action —proses yang terjadi sebagai —proses yang terjadi sebagai konsekuensi membuat transisi
konsekuensi membuat transisi
Pemodelan Perilaku Pemodelan Perilaku
Membuat daftar keadaan sistem yang Membuat daftar keadaan sistem yang berbeda (Bagaimana perilaku sistem ?) berbeda (Bagaimana perilaku sistem ?)
Menggambarkan bagaimana sistem Menggambarkan bagaimana sistem membuat transisi dari satu keadaan ke membuat transisi dari satu keadaan ke
keadaan yang lain.indicate how the system keadaan yang lain.indicate how the system makes a transition from one state to another makes a transition from one state to another (Bagaimana sistem mengubah keadaan?)
(Bagaimana sistem mengubah keadaan?)
mengenali event mengenali event
Mengawali action Mengawali action
Menggambar sebuah Menggambar sebuah state diagram atau state diagram atau
Sequence Diagram Sequence Diagram
homeowner control panel system sensorssensors
system ready
reading
request lookup comparing
result password entered
password = correct
request activation
activation successful locked
numberOfTries > maxTries
selecting timer > lockedTime
A A
Figure 8.27 Sequence diagram (partial) for SafeHome security function activation successful