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.
Software Engineering: A Practitioner’s Approach, 6/e Software Engineering: A Practitioner’s Approach, 6/e
Bab 10 Bab 10
Desain Arsitektur Desain Arsitektur
copyright © 1996, 2001, 2005
R.S. Pressman & Associates, Inc.
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.
Kenapa Arsitektur ? Kenapa Arsitektur ?
Arsitektur bukanlah PL operasional, namun dia Arsitektur bukanlah PL operasional, namun dia
merupakan representasi yang memungkinkan merupakan representasi yang memungkinkan
pengembang PL untuk : (1)menganalisa efektivitas desain pengembang PL untuk : (1)menganalisa efektivitas desain
dalam memenuhi kebutuhan, dalam memenuhi kebutuhan,
(2) Mengetahui alternatif2x arsitektur pada keadaan (2) Mengetahui alternatif2x arsitektur pada keadaan
dimana membuat perubahan desain masih relatif lebih dimana membuat perubahan desain masih relatif lebih
mudah, dan mudah, dan
(3) Mengurangi resiko terkait dengan konstruksi PL.
(3) Mengurangi resiko terkait dengan konstruksi PL.
Mengapa Arsitektur Penting?
Mengapa Arsitektur Penting?
Representasi dari arsitektur PL adalah enabler Representasi dari arsitektur PL adalah enabler bagi komunikasi bagi komunikasi antar pihak (stakeholder) yang tertarik dengan pengembangan antar pihak (stakeholder) yang tertarik dengan pengembangan
sistem berbasis komputer.
sistem berbasis komputer.
Arsitketur menyoroti keputusan desain awal Arsitketur menyoroti keputusan desain awal yang akan mempunyai yang akan mempunyai pengaruh yang sangat besar pada pekerjaan RPL yang
pengaruh yang sangat besar pada pekerjaan RPL yang
mengikutinya, dan keberhasilan pada entitas sistem operasional.
mengikutinya, dan keberhasilan pada entitas sistem operasional.
Arsitektur membangun model yang relatif kecil dan mudah Arsitektur membangun model yang relatif kecil dan mudah digenggam secara intelektual
digenggam secara intelektual tentang bagaimana sistem tentang bagaimana sistem
distrukturkan dan bagaimana komponen2x bekerja sama [BAS03].
distrukturkan dan bagaimana komponen2x bekerja sama [BAS03].
Desain Data Desain Data
Pada level arsitektur … Pada level arsitektur …
Desain satu atau lebih database untuk mendukung arsitektur Desain satu atau lebih database untuk mendukung arsitektur aplikasi
aplikasi
Desain method untuk ‘mining Desain method untuk ‘ mining’ isi dari berbagai database ’ isi dari berbagai database
Navigasi melalui database2x yang ada dalam usaha untuk Navigasi melalui database2x yang ada dalam usaha untuk mengambil informasi level bisnis yang sesuai
mengambil informasi level bisnis yang sesuai
Desain sebuah data warehouse Desain sebuah data warehouse—sebuah database besar, —sebuah database besar,
independen yang mempunyai akses pada data yang disipan dalam independen yang mempunyai akses pada data yang disipan dalam database yang melayani sekelompok aplikasi yang dibutuhkan database yang melayani sekelompok aplikasi yang dibutuhkan bisnis
bisnis
Desain Data Desain Data
Pada level komponen … Pada level komponen …
Mengambil objek2x data dan mengembangkan satu set Mengambil objek2x data dan mengembangkan satu set abstraksi data
abstraksi data
Implementasi atribut2x objek data sebagai satu atau Implementasi atribut2x objek data sebagai satu atau lebih struktur data
lebih struktur data
review struktur data untuk memastikan bahwa relasi review struktur data untuk memastikan bahwa relasi yang tepat sudah dibuat
yang tepat sudah dibuat
Sederhanakan struktur data sesuai dengan kebutuhan Sederhanakan struktur data sesuai dengan kebutuhan
Desain Data—Level Komponen Desain Data—Level Komponen
1. Prinsip2x analisis semantik yang diterapkan pada fungsi dan 1. Prinsip2x analisis semantik yang diterapkan pada fungsi dan perilaku harus juga dapat berjalan pada data.
perilaku harus juga dapat berjalan pada data.
2. Seluruh struktur data dan operasi yang akan dilakukan harus 2. Seluruh struktur data dan operasi yang akan dilakukan harus dapat diidentifikasi.
dapat diidentifikasi.
3. Sebuah data dictionary harus dibuat dan digunakan untuk 3. Sebuah data dictionary harus dibuat dan digunakan untuk menentukan desain program dan data.
menentukan desain program dan data.
4. Keputusan desain data level rendah harus ditunda hingga akhir 4. Keputusan desain data level rendah harus ditunda hingga akhir proses desain.
proses desain.
5. Representasi struktur dara harus diketahui oleh modul yang 5. Representasi struktur dara harus diketahui oleh modul yang menggunakannya langsung dalam struktur tersebut (enkapsulasi).
menggunakannya langsung dalam struktur tersebut (enkapsulasi).
6. Sebuah pustaka struktur data dan operasi yang memungkinkan 6. Sebuah pustaka struktur data dan operasi yang memungkinkan untuk diterapkan harus dikembangkan.
untuk diterapkan harus dikembangkan.
7. Desain PL dan bahasa pemrograman harus mendukung 7. Desain PL dan bahasa pemrograman harus mendukung spesifikasi dan realisasi dari tipe data abstrak.
spesifikasi dan realisasi dari tipe data abstrak.
Ragam Gaya Arsitektur Ragam Gaya Arsitektur
Data-centered architectures Data-centered architectures
Data flow architectures Data flow architectures
Call and return architectures Call and return architectures
Object-oriented architectures Object-oriented architectures
Masing2x menggambarkan kategori sistem yang menunjukkan : (1) a Masing2x menggambarkan kategori sistem yang menunjukkan : (1) a sekumpulan komponen
sekumpulan komponen (mis database, modul komputasi) yang (mis database, modul komputasi) yang menunjukkan fungsi yan dibutuhkan sistem, (2)
menunjukkan fungsi yan dibutuhkan sistem, (2) sekumpulan connectors sekumpulan connectors yang memungkinkan komunikasi, koordinasi dan kerjasama antar
yang memungkinkan komunikasi, koordinasi dan kerjasama antar komponen components, (3)
komponen components, (3) batasan yang menentukan bagaimana batasan yang menentukan bagaimana komponen dapat diintegrasikan untuk membentuk sistem, dan (4) komponen dapat diintegrasikan untuk membentuk sistem, dan (4) smodel semantik
smodel semantik yang memungkinkan desainer untk memahami yang memungkinkan desainer untk memahami properti keseluruhan dari sistem dengan menganlisai properti dalam properti keseluruhan dari sistem dengan menganlisai properti dalam bagian2x di dalamnya.
bagian2x di dalamnya.
Data-Centered Architecture
Data-Centered Architecture
Data Flow Architecture
Data Flow Architecture
Call and Return Architecture
Call and Return Architecture
Layered Architecture
Layered Architecture
Pattern Arsitektural Pattern Arsitektural
Concurrency—aplikasi harus menangani banyak tugas dalam pola Concurrency —aplikasi harus menangani banyak tugas dalam pola yang mensimulasikan paralelisasi
yang mensimulasikan paralelisasi
operating system process management operating system process management pattern pattern
task scheduler pattern task scheduler pattern
Persistence—Data ada jika dia bertahan setelah eksekusi proses yang Persistence —Data ada jika dia bertahan setelah eksekusi proses yang membuatnya. Ada dua pattern umum ::
membuatnya. Ada dua pattern umum ::
database management system pattern yang menerapkan penyimpanan dan database management system pattern yang menerapkan penyimpanan dan pengambilan dari DBMS kepada arsitektur aplikasi
pengambilan dari DBMS kepada arsitektur aplikasi
application level application level persistence persistence pattern yang membangun fitur persistence pattern yang membangun fitur persistence pada aristektur aplikasi
pada aristektur aplikasi
Distribution— pola dimana sistem atau komponen2x di antaranya Distribution — pola dimana sistem atau komponen2x di antaranya berkomunkasi dalam lingkungan terdistribusi
berkomunkasi dalam lingkungan terdistribusi
broker broker bertindak sebagai orang di tengah antara komponen klient dan bertindak sebagai orang di tengah antara komponen klient dan komponen server.
komponen server.
Desain Arsitektur Desain Arsitektur
PL harus ditempatkan pada konteks PL harus ditempatkan pada konteks
Desain harus menentukan entitas eksternal (sistem lain, piranti, Desain harus menentukan entitas eksternal (sistem lain, piranti, orang) dimana PL berinteraksi dengannya
orang) dimana PL berinteraksi dengannya
Sekumpulan arsitektur archetypes harus diidentifikasi Sekumpulan arsitektur archetypes harus diidentifikasi
archetype adalah abstraksi (mirip dengan class) yang archetype adalah abstraksi (mirip dengan class) yang menampilkan satu elemen dari perilaku sistem
menampilkan satu elemen dari perilaku sistem
Desainer menentukan struktur sistem dengan memilih Desainer menentukan struktur sistem dengan memilih komponen PL yang mengimplmentasi masing2x
komponen PL yang mengimplmentasi masing2x
Architectural Context Architectural Context
target system:
Security Function
uses
uses peers
homeowner
Safehome
Product Internet-based system
surveillance function
sensors control
panel
sensors
uses
Archetypes Archetypes
Controller
Node
communicates with
Detector Indicator
Component Structure Component Structure
SafeHome Executive
External Communication
Management
GUI Internet
Interface
Function selection
Security Surveillance Home
management
Control panel processing
detector management
alarm processing
Refined Component Structure Refined Component Structure
External Communication
Management
GUI Internet
Interface
Security
Control panel processing
detector management
alarm processing
Keypad
processing scheduler phone
communicat ion
SafeHome Executive
Analisis Desain Arsitektur Analisis Desain Arsitektur
1. Kumpulkan semua skenario.
1. Kumpulkan semua skenario.
2. Dapatkan kebutuhan2x, batasan2x, dan gambaran lingkungan.
2. Dapatkan kebutuhan2x, batasan2x, dan gambaran lingkungan.
3. Gambarkan pola/gaya arsitektur yang telah dipilih untuk 3. Gambarkan pola/gaya arsitektur yang telah dipilih untuk menangani skenario2x dan kebutuhan2x ::
menangani skenario2x dan kebutuhan2x ::
• • module view module view
• • process view process view
• • data flow view data flow view
4. Evaluasi kualitas atribut2x dengan melihat setiap atribut dalam 4. Evaluasi kualitas atribut2x dengan melihat setiap atribut dalam isolasi.
isolasi.
5. Kenali kualitas atribut untuk setiap atribut arsitektural untuk 5. Kenali kualitas atribut untuk setiap atribut arsitektural untuk masing-masik gaya arsitektur yang spesifik.
masing-masik gaya arsitektur yang spesifik.
6. Lakukkan kritik pada arsitektur2x kandidat (yg dikembangkan
6. Lakukkan kritik pada arsitektur2x kandidat (yg dikembangkan
Metode Desain Arsitektur Metode Desain Arsitektur
"four bedrooms, three baths, lots of glass ..."
customer requirements
Memperoleh Arsitektur Program Memperoleh Arsitektur Program
Program Program
Architecture
Architecture
Partisi Arsitektur Partisi Arsitektur
Partisi “horizontal” dan “vertical” Partisi “horizontal” dan “vertical”
dibutuhkan
dibutuhkan
Partisi Horizontal Partisi Horizontal
Tentukan cabang yang terpisah pada hierarki Tentukan cabang yang terpisah pada hierarki modul untuk setiap fungsi utama
modul untuk setiap fungsi utama
Gunakan modul kontrol untuk koodinasi Gunakan modul kontrol untuk koodinasi komunikasi antar fungsi2x
komunikasi antar fungsi2x
function 1
function 1 function 3 function 3
Partisi Vertikal : Factoring Partisi Vertikal : Factoring
Didesain sehingga pengambilan keputusan dan Didesain sehingga pengambilan keputusan dan pekerjaan distratifikasi
pekerjaan distratifikasi
Modul pengambilan keputusan tetap ada di Modul pengambilan keputusan tetap ada di puncak arsitektur
puncak arsitektur decision-makers decision-makers
Mengapa Arsitektur Terpartisi?
Mengapa Arsitektur Terpartisi?
Hasilnya adalah PL yang mudah diuji Hasilnya adalah PL yang mudah diuji
Membawa kepada PL yang lebih mudah dikelola Membawa kepada PL yang lebih mudah dikelola
Hasilnya efek samping yang semakin sedikit Hasilnya efek samping yang semakin sedikit
Hasilnya adalah PL yang lebih mudah Hasilnya adalah PL yang lebih mudah dikembangkan
dikembangkan
Desain Terstruktur Desain Terstruktur
Tujuan : untuk mendapatkan arsitektur Tujuan : untuk mendapatkan arsitektur program yang terpartisi
program yang terpartisi
pendekatan: pendekatan:
DFD dipetakan ke arsitektur program DFD dipetakan ke arsitektur program
PSPEC dan STD digunakan untuk PSPEC dan STD digunakan untuk mengindikasikan setiap modul mengindikasikan setiap modul
notasi: notasi: diagram struktur diagram struktur
Karakteristik Aliran Karakteristik Aliran
Aliran Transformasi
Aliran Transaksi
Pendekatan Pemetaan Umum Pendekatan Pemetaan Umum
Isolasi aliran ke dalam dan ke luar Isolasi aliran ke dalam dan ke luar
batasan; untuk aliran transaksi, isolasi batasan; untuk aliran transaksi, isolasi
Pusat transaksi Pusat transaksi
Bekerja dari batasan luar, petakan Bekerja dari batasan luar, petakan Transformasi DFD ke modul terkait Transformasi DFD ke modul terkait
Tambahkan modul kontrol jika dibutuhkan Tambahkan modul kontrol jika dibutuhkan
Sempurnakan struktur program
Sempurnakan struktur program
Pemetaan Transformasi Pemetaan Transformasi
data flow model
"Transform" mapping
a b
c
d e f g h
i j
x1
x2 x3 x4
b c d e f g i
Factoring Factoring
typical "decision making" modules direction of increasing
decision making
First Level Factoring First Level Factoring
main program controller
input
controller processing controller
output
controller
Second Level Mapping Second Level Mapping
D
C
B A
A C
B
mapping from the D flow boundary outward
main
control
Transaction Flow Transaction Flow
T
incoming flow
action path
Transaction Example Transaction Example
operator commands
process operator commands
fixture setting
report
robot control
fixture servos
display screen
robot
control
software
assembly
Refining the Analysis Model Refining the Analysis Model
write an English language processing narrative write an English language processing narrative for the level 01 flow model
for the level 01 flow model
apply noun/verb parse to isolate processes, data apply noun/verb parse to isolate processes, data items, store and entities
items, store and entities
develop level 02 and 03 flow models develop level 02 and 03 flow models
create corresponding data dictionary entries create corresponding data dictionary entries
refine flow models as appropriate refine flow models as appropriate 1. 1.
2. 2.
3. 3.
4. 4.
5. 5.
Deriving Level 1 Deriving Level 1
Processing narrative for " process operator commands"
Processing narrative for " process operator commands"
Process operator command software reads operator commands from Process operator command software reads operator commands from the cell operator. An error message is displayed for invalid commands.
the cell operator. An error message is displayed for invalid commands.
The command type is determined for valid commands and appropriate The command type is determined for valid commands and appropriate action is taken. When fixture commands are encountered, fixture
action is taken. When fixture commands are encountered, fixture status is analyzed and a fixture setting is output to the fixture servos.
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 When a report is selected, the assembly record file is read and a
report is generated and displayed on the operator display screen.
report is generated and displayed on the operator display screen.
When robot control switches are selected, control values are sent to When robot control switches are selected, control values are sent to the robot control system.
the robot control system.
Processing narrative for " process operator commands"
Processing narrative for " process operator commands"
Process operator command software
Process operator command software reads reads operator operator commands commands from from the cell
the cell operator operator . An error message . An error message is is displayed displayed for for invalid commands invalid commands . . The The command type command type is is determined determined for for valid commands valid commands and appropriate and appropriate action is
action is taken taken. When . When fixture commands fixture commands are are encountered encountered , , fixture fixture status is is analyzed and a and a fixture setting is is output output to the to the fixture servos . noun-verb
noun-verb
parse
parse
Level 1 Data Flow Diagram 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 assembly
record valid command
Error msg
fixture setting
report fixture
select report
control robot
status
Level 2 Data Flow Diagram 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 values
format report
report values
record command
command invalid command
status error msg
robot control
send control
value
combined status
raw setting
fixture setting
Transaction Mapping Principles Transaction Mapping Principles
isolate the incoming flow path isolate the incoming flow path
define each of the action paths by looking for define each of the action paths by looking for the "spokes of the wheel"
the "spokes of the wheel"
assess the flow on each action path assess the flow on each action path
define the dispatch and control structure
define the dispatch and control structure
map each action path flow individually
map each action path flow individually
Transaction Mapping Transaction Mapping
data flow model
a b
t
d e f
g h
i
j
k l
m
n Mapping
b a
x1
t
x2 x3
g h x3.1
x4
l m n
Isolate Flow Paths Isolate Flow Paths
read command
produce error
msg
validate command
determine type
read fixture status
determine setting
format setting
read record
calculate output values
format report
report values
record
assembly record command
command invalid command
status error msg
robot control
send control
value
combined status
raw setting
fixture setting