Introduction
Design quality
Design concepts
The design 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
Component-level Design
Interface Design
Architectural Design
Data/Class Design
10
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Design
Quality
15
Fakultas Ilmu Komputer Universitas Bina Darma Find us for Quality
Design
Concepts
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
Analysis model
Abstraction Dimension
Design model
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
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
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