2Rekayasa Perangkat Lunak
Kenapa Arsitektur ?
Arsitektur bukanlah PL operasional, namun dia
merupakan representasi yang memungkinkan
pengembang PL untuk:
(1) menganalisa efektivitas desain dalam memenuhi
kebutuhan,
(2) Mengetahui alternatif2x arsitektur pada keadaan
dimana membuat perubahan desain masih relatif
lebih mudah, dan
(3) Mengurangi resiko terkait dengan konstruksi PL.
3Rekayasa Perangkat Lunak
Mengapa Arsitektur Penting?
Representasi dari arsitektur PL adalah enabler bagi
komunikasi antar pihak (stakeholder) yang tertarik
dengan pengembangan sistem berbasis komputer.
Arsitektur menyoroti keputusan desain awal yang akan
mempunyai pengaruh yang sangat besar pada
pekerjaan RPL yang mengikutinya, dan keberhasilan
pada entitas sistem operasional.
Arsitektur membangun model yang relatif kecil dan
mudah digenggam secara intelektual tentang
bagaimana sistem distrukturkan dan bagaimana
komponen2 bekerja sama.
4Rekayasa Perangkat Lunak
Desain Data
Pada level arsitektur …
Desain satu atau lebih database untuk mendukung
arsitektur aplikasi
Desain method untuk ‘mining’ isi dari berbagai
database
— Navigasi melalui database2 yang ada dalam usaha untuk
mengambil informasi level bisnis yang sesuai
— Desain sebuah data warehouse—sebuah database besar,
independen yang mempunyai akses pada data yang
disimpan dalam database yang melayani sekelompok aplikasi
yang dibutuhkan bisnis
5Rekayasa Perangkat Lunak
Desain Data
Pada level komponen …
Mengambil objek2 data dan mengembangkan satu set
abstraksi data
Implementasi atribut2 objek data sebagai satu atau
lebih struktur data
review struktur data untuk memastikan bahwa relasi
yang tepat sudah dibuat
Sederhanakan struktur data sesuai dengan kebutuhan
6Rekayasa Perangkat Lunak
Desain Data—Level Komponen
1. Prinsip2 analisis semantik yang diterapkan pada fungsi dan perilaku
harus juga dapat berjalan pada data.
2. Seluruh struktur data dan operasi yang akan dilakukan harus dapat
diidentifikasi.
3. Sebuah data dictionary harus dibuat dan digunakan untuk
menentukan desain program dan data.
4. Keputusan desain data level rendah harus ditunda hingga akhir
proses desain.
5. Representasi struktur data harus diketahui oleh modul yang
menggunakannya langsung dalam struktur tersebut (enkapsulasi).
6. Sebuah pustaka struktur data dan operasi yang memungkinkan
untuk diterapkan harus dikembangkan.
7. Desain PL dan bahasa pemrograman harus mendukung spesifikasi
dan realisasi dari tipe data abstrak.
7Rekayasa Perangkat Lunak
Ragam Gaya Arsitektur
Data-centered architectures
Data flow architectures
Call and return architectures
Object-oriented architectures
Layered architectures
Masing-masing menggambarkan kategori sistem yang menunjukkan:
1. sekumpulan komponen (mis database, modul komputasi) yang menunjukkan fungsi yan dibutuhkan sistem,
2. sekumpulan connectors yang memungkinkan komunikasi, koordinasi dankerjasama antar komponen components,
3. batasan yang menentukan bagaimana komponen dapat diintegrasikanuntuk membentuk sistem, dan
4. model semantik yang memungkinkan desainer untk memahami propertikeseluruhan dari sistem dengan menganalisis properti dalam bagian2 di dalamnya.
12Rekayasa Perangkat Lunak
Pattern Arsitektural
Concurrency—aplikasi harus menangani banyak tugas dalam pola yang mensimulasikan paralelisasi
• operating system process management pattern
• task scheduler pattern
Persistence—Data ada jika dia bertahan setelah eksekusi proses yang membuatnya. Ada dua pattern umum ::
• database management system pattern yang menerapkan penyimpanandan pengambilan dari DBMS kepada arsitektur aplikasi
• application level persistence pattern yang membangun fitur persistence pada aristektur aplikasi
Distribution— pola dimana sistem atau komponen2x di antaranyaberkomunkasi dalam lingkungan terdistribusi
• broker bertindak sebagai orang di tengah antara komponen klient dankomponen server.
13Rekayasa Perangkat Lunak
Desain Arsitektur
PL harus ditempatkan pada konteks
• Desain harus menentukan entitas eksternal (sistem lain, piranti,
orang) dimana PL berinteraksi dengannya
Sekumpulan arsitektur archetypes harus diidentifikasi
• archetype adalah abstraksi (mirip dengan class) yang menampilkan
satu elemen dari perilaku sistem
Desainer menentukan struktur sistem dengan memilih komponen PL
yang mengimplmentasi masing2x archetype
14Rekayasa Perangkat Lunak
Architectural Context Diagram
target system:
Security Functionuses
uses peershomeowner
Safehome
ProductInternet-based
system
surveillance
function
sensors
control
panel
sensors
uses
15Rekayasa Perangkat Lunak
Archetypes (patterns of behavior of a system)
Figure 10.7 UML relat ionships for SafeHome security funct ion archetypes
(adapted f rom [BOS00] )
Cont roller
Node
communicates with
Detector Indicator
16Rekayasa Perangkat Lunak
Component Structure
SafeHome
Execut ive
Ext ernal
Communicat ion
Management
GUI Int ernet
Int erface
Funct ion
select ion
Securit y Surveillance Home
management
Cont rol
panel
processing
det ect or
management
alarm
processing
17Rekayasa Perangkat Lunak
Refined Component Structure
sensorsensor
sensorsensor
sensorsensorsensor
sensor
Ext ernal
Communicat ion
Management
GUI Internet
Interface
Security
Cont rol
panel
processing
det ect or
m anagem ent
alarm
processing
Key pad
processing
CP display
funct ions
scheduler
sensorsensorsensorsensor
phone
com m unicat ion
alarm
SafeHome
Executive
18Rekayasa Perangkat Lunak
Analisis Desain Arsitektur
1. Kumpulkan semua skenario.
2. Dapatkan kebutuhan2, batasan2, dan gambaran lingkungan.
3. Gambarkan pola/gaya arsitektur yang telah dipilih untuk
menangani skenario2 dan kebutuhan2 ::
• module view
• process view
• data flow view
4. Evaluasi kualitas atribut2 dengan melihat setiap atribut dalam
isolasi.
5. Kenali kualitas atribut untuk setiap atribut arsitektural untuk
masing-masik gaya arsitektur yang spesifik.
6. Lakukkan kritik pada arsitektur2 kandidat (yg dikembangkan
pada langkah 3) menggunakan analisis pada langkah 5.
19Rekayasa Perangkat Lunak
Metode Desain Arsitektur
"four bedrooms, three baths, lots of glass ..."
customer requirements
architectural design
22Rekayasa Perangkat Lunak
Partisi Horizontal
Tentukan cabang yang terpisah pada hierarki modul untuk
setiap fungsi utama
Gunakan modul kontrol untuk koodinasi komunikasi antar fungsi
function 1 function 3
function 2
23Rekayasa Perangkat Lunak
Partisi Vertikal : Factoring
Didesain sehingga pengambilan keputusan dan pekerjaan
distratifikasi
Modul pengambilan keputusan tetap ada di puncak arsitektur
workers
decision-makers
24Rekayasa Perangkat Lunak
Mengapa Arsitektur Terpartisi?
Hasilnya adalah PL yang mudah diuji
Membawa kepada PL yang lebih mudah dikelola
Hasilnya efek samping yang semakin sedikit
Hasilnya adalah PL yang lebih mudah
dikembangkan
25Rekayasa Perangkat Lunak
Desain Terstruktur
Tujuan : untuk mendapatkan arsitektur
program yang terpartisi
Pendekatan:
• DFD dipetakan ke arsitektur program
• PSPEC dan STD digunakan untuk
mengindikasikan setiap modul
Notasi: diagram struktur
27Rekayasa Perangkat Lunak
Pendekatan Pemetaan Umum
Isolasi aliran ke dalam dan ke luar batasan; untuk aliran
transaksi, isolasi pusat transaksi
Bekerja dari batasan luar, petakan transformasi DFD ke
modul terkait
Tambahkan modul kontrol jika dibutuhkan
Sempurnakan struktur program menggunakan konsep
modularitas efektif
28Rekayasa Perangkat Lunak
Pemetaan Transformasi
data flow model
"Transform" mapping
ab
c
d e fg h
ij
x1
x2 x3 x4
b c
a
d e f g i
h j
29Rekayasa Perangkat Lunak
Factoring
typical "worker" modules
typical "decision making" modules
direction of increasing decision making
30Rekayasa Perangkat Lunak
First Level Factoring
main programcontroller
inputcontroller
processingcontroller
outputcontroller
31Rekayasa Perangkat Lunak
Second Level Mapping
D
C
BA
A
C
B
Dmapping from the flow boundary outward
main
control
33Rekayasa Perangkat Lunak
Transaction Example
operatorcommands
processoperator commands
fixture setting
report
robot control
fixtureservos
displayscreen
robotcontrolsoftware
in reality, other commandswould also be shown
assemblyrecord
34Rekayasa Perangkat Lunak
Memperbaiki Model Analisis
1. Tulis narasi pemrosesan untuk model aliran level 01 menggunakan
bahasa Inggris.
2. Terapkan kata benda / kata kerja parse (urai/memecah) untuk
mengisolasi proses, item data, simpan dan entitas.
3. Kembangkan model aliran tingkat 02 dan 03
4. Buat entri kamus data yang sesuai
5. perbaiki aliran model yang sesuai
... now, we're ready to begin design!
35Rekayasa Perangkat Lunak
Deriving Level 1 (contoh)
Processing narrative for " process operator commands"
Process operator command software reads operator commands from the cell operator. An error message is displayed for invalid commands. The command type is determined for valid commands and appropriate action is taken. When fixture commands are encountered, fixture status is analyzed and a fixture setting is output to the fixture servos. When a report is selected, the assembly record file is read and a report is generated and displayed on the operator display screen. When robot control switches are selected, control values are sent to the robot control system.
noun-verbparse
Proses perintah operator perangkat lunak membaca perintah operator dari
operator seluler. Pesan kesalahan ditampilkan untuk perintah yang tidak
benar. Tipe perintah ditentukan untuk perintah yang benar dan tindakan yang
tepat diambil. Saat perintah fixture (alat bantu) ditemukan, status fixture
dianalisis dan pengaturan fixture adalah output ke servlet fixture.
Saat sebuah laporan dipilih, file catatan perakitan dibaca dan laporan dibuat
dan ditampilkan pada layar tampilan operator. Saat saklar kontrol robot
dipilih, nilai kontrol dikirim ke sistem kontrol robot.
36Rekayasa Perangkat Lunak
Level 1 Data Flow Diagram
operator commands
read
operator
commands
determine
command
type
analyze
fixture
status
generate
report
send
control
value
fixture
servos
display
screen
robot
control
system
assembly
record
valid command
Error msg
fixture setting
report
robot control
fixture
select report
control
robot
status
37Rekayasa Perangkat Lunak
Level 2 Data Flow Diagram
read
command
produce
error
msg
validate
command
determine
type
read
fixture
status
determine
setting
format
setting
read
record
calculate
output
valuesformat
report
report
values
record
assembly
record
command
commandinvalid c ommand
status
error msg
robot control
send
control
value
start /stop
combined
status
raw setting
fixture setting
38Rekayasa Perangkat Lunak
Transaction Mapping Principles
isolasi jalur aliran masuk
tentukan setiap jalur tindakan dengan mencari"jari-jari roda"
nilai alur pada setiap jalur tindakan
tentukan struktur pengiriman dan kontrol
petakan setiap alur jalur tindakan secara individual
39Rekayasa Perangkat Lunak
Transaction Mapping
data flow model
ab
t
de f
gh
i
j
k
l
m
n Mapping
b
a
x1
t
x2
d e f
x3
g h x3.1
i j
k
x4
l m n
40Rekayasa Perangkat Lunak
Isolate Flow Paths
read
command
produce
error
msg
validate
command
determine
type
read
fixture
status
determine
setting
format
setting
read
record
calculate
output
valuesformat
report
report
values
record
assembly
record
command
commandinvalid command
status
error msg
robot control
send
control
value
start /stop
combined
status
raw setting
fixture setting
41Rekayasa Perangkat Lunak
Map the Flow Model
process operator
commands
command input
controller
read command
validate command
produce error
message
determine type
fixture status
controller
report generation controller
send control value
each of the action paths must be expanded further
42Rekayasa Perangkat Lunak
Refining the Structure Chart
process operator
commands
command input
controller
read command
validate command
produce error
message
determine type
send control value
read fixture status
determine setting
format setting
read record
calculate output values
format report
fixture status
controller
report generation controller
Top Related