Transparency Masters for Software Engineering: A...

42
Rekayasa Perangkat Lunak Desain Arsitektur Architecural Design

Transcript of Transparency Masters for Software Engineering: A...

Rekayasa Perangkat Lunak

Desain ArsitekturArchitecural Design

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.

8Rekayasa Perangkat Lunak

Data-Centered Architecture

9Rekayasa Perangkat Lunak

Data Flow Architecture

10Rekayasa Perangkat Lunak

Call and Return Architecture

11Rekayasa Perangkat Lunak

Layered Architecture

11

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

20Rekayasa Perangkat Lunak

Memperoleh Arsitektur Program

ProgramArchitecture

21Rekayasa Perangkat Lunak

Partisi Arsitektur

Partisi “horizontal” dan “vertical” dibutuhkan

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

26Rekayasa Perangkat Lunak

Karakteristik Aliran

Aliran Transformasi

Aliran Transaksi

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

32Rekayasa Perangkat Lunak

Transaction Flow

T

incoming flow

action path

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