Anda di halaman 1dari 28

Design Engineering

 Introduction
 Design quality
 Design concepts
 The design model

Fakultas Ilmu Komputer Universitas


(Source: Pressman, Bina Darma
R. Software Engineering: Find us for Quality
A Practitioner’s Approach. McGraw-Hill, 2005)
Introduction

Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality


Five Notable Design Quotes
• "Pertanyaan tentang apakah diperlukan atau desain yang cukup terjangkau
intinya; desain tidak bisa dihindari. Alternatif untuk desain yang baik adalah
desain yang buruk, [bukan] tidak ada desain sama sekali." Douglas Martin
• "Anda dapat menggunakan penghapus di meja gambar atau palu di lokasi
konstruksi." Frank Lloyd Wright
• "Publik lebih akrab dengan desain yang buruk daripada desain yang baik.
Jika, pada dasarnya, dikondisikan untuk lebih memilih desain yang buruk,
karena itulah yang terjadi; desain yang baru menjadi mengancam, yang lama
meyakinkan." Paul Rand
• "Kesalahan umum yang dilakukan orang ketika mencoba merancang
sesuatu yang benar-benar mudah adalah meremehkan kecerdikan orang
bodoh." Douglas Adams
• "Every now and then go away, have a little relaxation, for when you
come back to your work your judgment will be surer. Go some distance
away because then the work appears smaller and more of it can be taken
in at a glance and a lack of harmony and proportion is more readily
seen."
Leonardo DaVinci
Fakultas Ilmu Komputer Universitas Bina Darma Find us for
3 Quality
Tujuan Desain
• Desain adalah di mana kebutuhan pelanggan, kebutuhan bisnis,
dan pertimbangan teknis semua datang bersama-sama dalam
perumusan produk atau sistem.
• Model desain menyediakan detail tentang struktur data perangkat
lunak, arsitektur, antarmuka, dan komponen.
• Model desain dapat dinilai untuk kualitas dan
ditingkatkan sebelum kode yang dihasilkan dan tes
dilakukan.
– Apakah desain mengandung kesalahan, inkonsistensi, atau
kelalaian?
– Apakah ada alternatif desain yang lebih baik?
– Bisa desain diimplementasikan dalam batasan, jadwal, dan biaya
yang telah ditetapkan?

(More on next slide) 4


Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Tujuan Desain (cont...)
• Seorang desainer harus berlatih diversifikasi (dibedakan)
dan konvergensi (dipusatkan)
– Perancang memilih dari komponen desain, solusi komponen,
pengetahuan yang tersedia melalui dan katalog, buku
pengalaman. pelajaran, dan
– Perancang kemudian memilih unsur-unsur dari koleksi ini yang memenuhi
persyaratan yang ditetapkan oleh persyaratan teknik dan analisis
pemodelan
– Konvergensi terjadi sebagai alternatif dipertimbangkan dan ditolak sampai
satu konfigurasi tertentu komponen yang dipilih
• Software desain adalah sebuah proses iteratif dimana kebutuhan
diterjemahkan ke dalam blueprint untuk membangun perangkat
lunak.
– Desain dimulai pada tingkat tinggi abstraksi yang dapat
langsung
ditelusuri kembali ke data, fungsional, dan persyaratan perilaku.
– Ilmu
Fakultas Sebagai desainUniversitas
Komputer iterasi terjadi,
Binaperbaikan
Darma berikutnya mengarah Findke
usde
for5sain
Quality
Analisis Model > Desain Model

Co m p o n e n t -
sc e n a r i o - b a f l o w- o r i e n t e L e v e l D e si g
se d e l e m e n d elem ents n
ts
use-cases - text data flow diagrams
use-case diagrams control-flow diagrams
activity diagrams processing narratives
swim lane diagrams
I n t e r f a c e D e si g
An a l y sis Mo d e l n

A r c h i t e c t u r a l D e si g
c l a ss- b a se behavior
n
d elem en al elem e
ts
class diagrams nts
state diagrams
analysis packages sequence diagrams
CRC models D a t a / Cl a s s D e si g
collaboration diagrams
n

Design Model

Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality


Analisis Model > Desain Model(Cont...)
• Setiap elemen dari model analisis menyediakan informasi
yang diperlukan untuk membuat empat model desain.
 Desain data / class mengubah kelas analisis ke dalam kelas desain
bersama dengan struktur data yang diperlukan untuk
mengimplementasikan perangkat lunak
 Desain arsitektur mendefinisikan hubungan antara elemen
struktural utama dari perangkat lunak; gaya arsitektur dan pola
desain membantu mencapai persyaratan yang ditetapkan untuk
sistem
 Desain antarmuka menjelaskan bagaimana software berkomunikasi
dengan sistem yang beroperasi dengan itu dan dengan manusia
yang menggunakannya
 Desain Tingkat-komponen elemen struktural dari
mengubah arsitektur perangkat deskripsi prosedur dari
lunak menjadi komponen 7
Fakultas Ilmu Komputer Universitas
software(.More Bina Darma
on next slide)
Find us for Quality
Analisis Model > Desain Model(Cont...)

Component-level Design

(Class-based model, Flow-oriented model


Behavioral model)

Interface Design

(Scenario-based model, Flow-oriented model


Behavioral model)

Architectural Design

(Class-based model, Flow-oriented model)

Data/Class Design

(Class-based model, Behavioral model) 8


Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Panduan Mengatur Desain Perangka
Lunak
1) Periksa model domain informasi dan desain
struktur data yang sesuai untuk objek data dan
atribut mereka
2) Menggunakan model analisis, pilih gaya arsitektur
(dan
pola desain) yang sesuai untuk perangkat lunak
3) Partisi model analisis ke dalam subsistem desain dan
mengalokasikan subsistem ini dalam arsitektur
a) Desain antarmuka subsistem
b) Mengalokasikan kelas analisis atau fungsi masing-masing subsistem
4) Create satu set kelas desain atau komponen
a) Menerjemahkan setiap analisis deskripsi kelas ke kelas desain
b) Periksa setiap kelas desain terhadap kriteria desain; mempertimbangkan
masalah warisan
9
c) Menentukan
d) Mengevaluasi metode yang
dan mem(iMBinaterkait dengan
lihorpeoDarma masing-masing kelas desain
Fakultas Ilmu Komputer Universitas olandneesxatinsiludnet)uk kelas desain atau
Find us for Quality
(continued)

5) Desain antarmuka yang diperlukan dengan


sistem eksternal atau perangkat
6) Desain antarmuka pengguna
7) Melakukan desain komponen-tingkat
a) Tentukan semua algoritma pada tingkat yang relatif rendah abstraksi
b) Memperbaiki antarmuka masing-masing komponen
c) Tentukan struktur data komponen-tingkat
d) Tinjau masing-masing komponen dan memperbaiki kesalahan
semua
ditemukan
8) Mengembangkan
 Tampilkan tata letak Physical/Deployment model
fisik dari sistem, mengungkapkan komponen yang
akan berlokasi di mana dalam lingkungan komputasi fisik

10
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Design
Quality

Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality


Quality's Role
 Pentingnya desain adalah kualitas
 Desain adalah tempat di mana kualitas dibina
 Menyediakan representasi perangkat lunak dinilai
yang dapat kualitas untuk
 Akurat menerjemahkan kebutuhan pelanggan menjadi produk jadi atau
sistem perangkat lunak
 Berfungsi sebagai dasar untuk semua kegiatan rekayasa perangkat lunak
yang berikutnya.
 Tanpa desain, kita berisiko membangun sebuah
sistem yang tidak stabil yang
 Akan gagal jika perubahan kecil yang dibuat
 Mungkin sulit untuk menguji
 Tidak dapat dinilai untuk kualitas kemudian dalam proses perangkat lunak
saat waktunya singkat dan sebagian besar anggaran yang telah
dikeluarkan
 Kualitas desain yang dinilai melalui serangkaian tinjauan
teknis formal 12
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Goals of a Good Design
 Desain harus mengimplementasikan semua persyaratan
eksplisit yang terkandung dalam model analisis
 Hal ini juga harus mengakomodasi semua kebutuhan implisit yang
diinginkan oleh pelanggan
 Desain harus menjadi panduan yang dapat dibaca dan
dimengerti bagi mereka yang menghasilkan kode, dan bagi
mereka yang menguji dan mendukung perangkat lunak
 Desain harus menyediakan gambaran yang lengkap dari
perangkat lunak, menangani data, fungsional, dan domain
perilaku dari perspektif implementasi
"Writing a clever piece of code that works is one thing; designing
something that can support a long-lasting business is quite
another."
“Menulis sepotong kecerdasan dari kode yang berhasil merupakan
hal
adalah hal lain.” 13
Fakultas Ilmu
biasaKomputer Universitas
; merancang Bina dapat
sesuatu yang Darmamendukung bisnis jangkaFind us for Quality
Pedoman Desain Kualitas
1) Sebuah desain harus menampilkan arsitektur yang
a) Telah dibuat dengan menggunakan gaya arsitektur dikenali atau pola
b) Terdiri dari komponen-komponen yang menunjukkan karakteristik desain
yang baik
c) Dapat diimplementasikan dalam bentul yang evolusioner,
sehingga memfasilitasi implementasi dan pengujian
2) Sebuah desain harus modular; yaitu, perangkat lunak harus
secara logis dipartisi menjadi beberapa elemen subsistem
3) Sebuah desain harus berisi representasi yang berbeda dari
data, arsitektur, antarmuka, dan komponen
4) Sebuah desain harus menuju struktur data yang sesuai
untuk kelas yang akan diimplementasi dan digambar dari
pola data yang dikenal

(more on next slide) 14


Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Quality Guidelines (continued)
5) Sebuah desain harus menuju komponen-komponen yang
menunjukkan karakteristik fungsional independen
6) Sebuah desain harus menuju antarmuka yang mengurangi
kompleksitas hubungan antara komponen dan dengan
lingkungan eksternal
7) Sebuah desain harus diturunkan menggunakan metode
berulang yang diatur oleh informasi yang diperoleh selama
analisis persyaratan perangkat lunak
8) Sebuah desain harus direpresentasikan menggunakan
notasi yang secara efektif mengkomunikasikan maknanya

15
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Design
Concepts

Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality


Design Concepts
 Abstraction
 Procedural abstraction – urutan instruksi yang memiliki fungsi
tertentu dan terbatas
 Data abstraction – Sekumpulan data yang menggambarkan objek data
 Architecture
 Struktur keseluruhan dari perangkat lunak dan dimana struktur
memberikan
cara-cara integritas konseptual untuk sistem
 Terdiri dari komponen, konektor, dan hubungan antara mereka
 Patterns
 Sebuah struktur desain yang memecahkan masalah desain tertentu dalam konteks
tertentu
 Ini memberikan gambaran yang memungkinkan desainer untuk menentukan
apakah pola yang berlaku, apakah pola dapat digunakan kembali, dan apakah
pola dapat berfungsi sebagai panduan untuk mengembangkan pola serupa

(more on next slide) 17


Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Design Concepts
• Modularity
(continued)
 Secara terpisah dengan nama dan alamat komponen (yaitu, yang
terintegrasi
modul) untuk memenuhi persyaratan (membagi dan menaklukkan prinsip)
 Membuat perangkat lunak intelektual dikelola sehingga dapat memahami jalur
kontrol, rentang referensi, jumlah variabel, dan kompleksitas keseluruhan
• Information hiding
 Perancangan modul sehingga algoritma dan data lokal yang
terkandung di dalamnya tidak dapat diakses untuk modul lain
 Hal ini memaksa kendala akses ke kedua prosedural (yaitu, pelaksanaan) detail dan
struktur data lokal
• Functional independence
 Modul yang memiliki "single-minded" fungsi dan penolakan terhadap interaksi
yang berlebihan dengan modul lain
 High cohesion – modul hanya melakukan satu tugas
 Low coupling – modul memiliki jumlah terendah dari koneksi yang diperlukan
dengan modul lain

18
(more
Fakultas Ilmu Komputer Universitas BinaonDarma
next slide) Find us for Quality
Design Concepts
(continued)
 Stepwise Refinement
 Pengembangan program dengan tingkat sukses detail
memperbaiki prosedur
 Melengkapi abstraksi, yang memungkinkan seorang desainer
untuk
menentukan prosedur dan data dan belum menekan tingkat rendah rincian
 Refactoring
 Sebuah teknik reorganisasi yang menyederhanakan desain (atau struktur
kode internal) dari komponen tanpa mengubah fungsi atau perilaku
eksternal
 Menghapus redundansi, unsur-unsur yang tidak terpakai desain, algoritma
yang tidak efisien atau tidak perlu, konstruksi yang buruk atau tidak pantas
struktur data, atau kegagalan desain lainnya
 Design classes
 Memurnikan kelas analisis dengan memberikan detail desain yang akan
memungkinkan kelas yang akan dilaksanakan
 Membuat
perangkat set
lunak untuk
baru kelasmendukung
desain yangsolusi bisnis
mengimplementasikan infrastruktur
19
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Types of Design Classes
 User interface classes – dmendefinisikan semua abstraksi
yang diperlukan untuk interaksi manusia-komputer (biasanya
melalui metafora objek dunia nyata)
 Business domain classes – diperbaiki dari kelas analisis;
mengidentifikasi atribut dan jasa (metode) yang diperlukan
untuk mengimplementasikan beberapa elemen dari
domain bisnis
 Process classes – mengimplementasikan abstraksi bisnis yang
diperlukan untuk sepenuhnya mengelola kelas domain bisnis
 Persistent classes – mewakili menyimpan data (misalnya,
database) yang akan bertahan melampaui pelaksanaan
perangkat lunak
 System classes – menerapkan manajemen perangkat lunak dan
fungsi kontrol yang memungkinkan sistem untuk beroperasi
dan berkomunikasi dalam lingkungan komputasi dan
20
dunia
luar
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Characteristics of a Well-Formed Design Class
(Karakteristik Kelas Desain yang Terbentuk dengan Baik)
 Complete and sufficient
 Berisi enkapsulasi lengkap semua atribut dan metode yang ada untuk kelas
 Hanya berisi metode-metode yang cukup untuk mencapai maksud dari kelas
 Primitiveness
 Setiap metode kelas berfokus pada mencapai satu layanan untuk kelas
 High cohesion
 Kelas ini memiliki kecil, terfokus set tanggung jawab dan single-mindedly berlaku
atribut dan metode untuk melaksanakan tanggung jawab itu
 Low coupling
 Kolaborasi dari kelas dengan kelas lainnya disimpan ke minimum
yang dapat diterima
 Setiap kelas harus memiliki pengetahuan yang terbatas dari kelas-kelas lain dalam
subsistem lainnya

21
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
The Design
Model
Component-level Design

Interface Design

Architectural Design

Data/Class Design

Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality


Dimensions of the Design
Model
High

Analysis model
Abstraction Dimension

Design model

Data/Class Architectural Interface Component-level Deployment-level


Elements Elements Elements Elements
Low Elements

Process Dimension (Progression)


Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
high

a n a ly sis m o d
el
c la ss diagr a m s
analysis packages
use- c ases - t ext c l a s s diagr a m s
Requirement s :
CRC m o d e l s c o n s t raint s
use- c a s e diagr analysis packages
coll abor at i on
diagr a m s
a m s act ivit y diagr CRC m o d e l s int eroperabilit y
ams col labor at i on diagr
dat a f l o w diagr t arget s a n d
s w im lane diagr a m s dat a f l o w diagr
ams ams c o n f igurat ion
ams
cont r ol- f l o w diagr
c o l l a b o r at i o n d i a g r cont r ol- f l ow diagr
ams
a m s s t at e d i a g r a m s a m s pr o c e s s i n g nar r
p r o c e s s i n g n a r r at
ives s eq uen ce diagr a m s at i v e s st at e diagr
ams
s equ enc e diagr a m s
design class r ealizat
ions s u b s y s t e m s
coll abor at i on diagr a m s t ec hn i c al int er f component diagr a m s
design c las s r ealizat
ace design design classes
ions s u b s y s t em s
Navigat ion design act ivit y diagr a m s
c o l l a b o r at i o n d i a g r a m s
GUI d e s i g n s equ enc e diagr a m s
component diagr a m s
d e sig n m o d design classes
el r e f i n e m e n t s t o: act ivit y diagr a m s
r e f i n e m e n t s t o: s eque nc e diagr a m s
component diagr a m s
design class r ealizat design classes
ions subs y s t ems act ivit y diagr a m s
lo w c o l l a b o r at i o n d i a g r a m s se quen c e diagr a m s deploy ment diagr a m s

archit ect int erf c o m p o n e n t -level d e p l o y m e n t -level


ure ace element s element s
element s element s
Fakultas Ilmu Komputer Universitas Bina
p r oDarma
cess dimension Find us for Quality
Introduction
 Model desain dapat dilihat dalam dua dimensi yang
berbeda
 (Horizontally) Dimensi proses menunjukkan evolusi bagian dari model
desain sebagai setiap tugas desain dieksekusi
 (Vertically) Dimensi abstraksi merupakan tingkat detail karena setiap
elemen model analisis ditransformasikan ke dalam model desain dan
kemudian perhalus
 Elemen model desain menggunakan banyak diagram UML
yang sama digunakan dalam model analisis
 Diagram yang disempurnakan dan diuraikan sebagai bagian dari desain
 Lebih-detil implementasi khusus disediakan
 Penekanan ditempatkan pada
 Struktur arsitektur dan gaya
 Antarmuka antara komponen dan dunia luar
 Komponen yang berada dalam arsitektur

25
(More on next slide)
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Introduction (continued)
Elemen model desain tidak selalu
dikembangkan secara berurutan
 Desain arsitektur awal menetapkan tahap
 Hal ini diikuti oleh desain antarmuka dan desain tingkat-komponen, yang
• sering terjadi secara paralel

Model desain
 Data/class designmemiliki elemen berlapis berikut
 Architectural design Component-level Design
 Interface design
 Component-level design Interface Design

 Unsur kelima yang mengikuti semua? Architectural Design


Yang lain adalah deployment-level design
Data/Class Design

26
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Elemen-Elemen Model Desain
 Data/class design
 Membuat model data dan objek yang direpresentasikan pada tingkat tinggi
abstraksi
 Architectural design
 Menggambarkan tata letak keseluruhan dari perangkat lunak
 Interface design
 Menceritakan bagaimana informasi mengalir masuk dan keluar dari sistem dan
bagaimana hal itu dikomunikasikan antara komponen-komponen didefinisikan
sebagai bagian dari arsitektur
 Termasuk antarmuka pengguna, antarmuka eksternal, dan antarmuka internal
 Component-level design elements
 Menjelaskan detail internal masing-masing komponen perangkat lunak dengan
cara definisi struktur data, algoritma, dan spesifikasi antarmuka
 Deployment-level design elements
 Menunjukkan bagaimana fungsi perangkat lunak dan subsistem
akan
lunak
dialokasikan dalam lingkungan komputasi fisik yang akan mendukung perangkat
27
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Pattern-based Software Design
(Pola berbasis Software Desain)
 Perkembangan Disiplin ilmu teknik memanfaatkan ribuan pola desain untuk
hal-hal seperti bangunan, jalan raya, sirkuit listrik, pabrik-pabrik, sistem
senjata, kendaraan, dan komputer
 Design patterns juga melayani tujuan dalam rekayasa perangkat lunak
 Architectural patterns
 Menentukan struktur keseluruhan perangkat lunak
 Menunjukkan hubungan antara subsistem dan komponen software
 Tentukan aturan untuk menentukan hubungan antara unsur-unsur perangkat lunak
 Design patterns
 Menangani elemen tertentu dari desain seperti agregasi komponen atau memecahkan
beberapa masalah desain, hubungan antar komponen, atau mekanisme untuk mempengaruhi
komunikasi antar-komponen
 Terdiri dari penciptaan, struktural, dan perilaku pola
 Coding patterns
 Jelaskan pola bahasa tertentu yang menerapkan unsur algoritmik atau struktur data
komponen, protokol interface tertentu, atau mekanisme untuk komunikasi antar komponen

28
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality

Anda mungkin juga menyukai