Architecture Design

advertisement
RANGKUMAN ARCHITECTURE DESIGN
AND SOFTWARE DESIGN
RANGKUMAN
Bab 8 – DESIGN CONCEPTS
Bab 9 – Architecture Design
Rekayasa Perangkat Lunak
Panji Saputro – 5235131558
1. Konsep desain
Mitch Kapor mengatakan :
1.
Perangkat lunak yang baik harus menunjukkan:

Ketegasan, aplikasi tidak memiliki bug yang menghalangi fungsi yang dimilikinya.

Kesesuaian, aplikasi harus sesuai dengan tujuan yang dimaksudkan di awal
 Kesenangan, pengalaman menggunakan aplikasi haruslah menjadi hal yang menyenangkan
Perinsip desain
a. Proses desain tidak harus menderita dari ‘ tunnel vision ‘
b. Desain harus dapat dilacak dari model analisis
c. Desain tidak harus menemukan kembali roda
d. Desain harus ” minimize the intellectual distance ” [ DAV95 ] antara software dan masalah
seperti yang ada di dunia nyata
e. Desain harus menunjukkan keseragaman dan integrasi
f. Desain harus terstruktur untuk mengakomodasi perubahan .
g. Desain harus terstruktur untuk mendegradasi lembut , bahkan ketika data yang menyimpang ,
peristiwa , atau kondisi operasi yang ditemukan.
h. Desain bukan coding , coding bukan desain.
i. Desain harus dinilai untuk kualitas saat sedang dibuat , bukan setelah fakta .
j. Desain harus direview untuk meminimalkan konseptual ( semantik ) kesalahan .
* Abstraksi data adalah sekumpulan atribut yang merepresentasikan data itu sendiri.




Abstraksi prosedur adalah algoritma untuk melakukan sebuah aksi pada data.
Arsitektur software adalah struktur hirarki dari komponen program dan interaksinya.
Design Pattern adalah sebuah istilah yang mengacu pada pembuatan fungsi umum yang bisa
dipergunakan berkali-kali untuk menyelesaikan masalah pada desain perangkat lunak.
Dalam konsep desain, sebaiknya kebutuhan dibagi-bagi menjadi bagian-bagian kecil.
Masalah-masalah yang rumit akan lebih mudah diatasi jika dibagi menjadi masalah-masalah
yang kecil juga. Dengan konsep ini, masalah akan membutuhkan waktu dan usaha yang lebih
sedikit untuk menyelesaikannya.

Modularity adalah membagi komponen dengan nama dan alamat yang berbeda (tidak
ditumpuk dalam 1 file).
 Sebagian informasi haruslah disembunyikan. Hal ini berguna untuk mengenkapsulasi atribut
dan mengoptimalkan tampilan dengan menyeleksi informasi tertentu saja.
 Independensi fungsional dicapai dengan mengembangkan modul dengan ” single- minded ”
fungsi dan ” keengganan ” untuk interaksi yang berlebihan dengan modul lain
 Cohesion merupakan indikasi kekuatan fungsional relatif modul
 Coupling merupakan indikasi saling ketergantungan antara modul relatif
1. Refactoring adalah sebuah proses mengubah perangkat lunak menjadi lebih baik dan efisien.
Hal ini bisa dilihat dari source code seperti membuang elemen-elemen yang tidak terpakai,
menggunakan algoritma yang lebih sederhana sehingga menghasilkan waktu eksekusi yang
lebih cepat, memperbaiki bug yang tersisa dari hasil kompilasi sebelumnya, dan lain-lain
2. Konsep desain berorientasi objek menekankan pada pemahaman setiap entitas/objek yang
terlibat dalam sistem.
3. Biasanya terbagi menjadi beberapa class diantaranya:
 Entity Class -> sebuah class yang merepresentasikan apa yang bisa dilakukan oleh masingmasing entitas. Contoh: Class Mahasiswa, Class Dosen, dll.

Boundary Class -> sebuah class yang berkaitan dengan interface dari perangkat lunak.
Contoh: Form, Data Table, dan lain-lain.
 Controller Class -> class yang mengatur hubungan antara entity class dan boundary class.
1. Adapun beberapa sifat dari orientasi objek adalah:
 Inheritance/pewarisan -> sebuah objek dapat mewariskan sifat atau perilakunya terhadap anak
dari objek itu sendiri. Contoh: Class Orang memiliki atribut identitas lalu Class Mahasiswa
merupakan anak dari Class Orang, maka Mahasisa memiliki identitas juga.
 Polymorphism -> sebuah Class bisa memiliki perilaku dengan bentuk yang banyak. Dalam
pemrograman, biasanya hal ini terjadi pada perbedaan parameter/argumen pada sebuah
method dengan nama yang sama.

1.
2.
3.
4.
Elemen-elemen model desain terdiri dari:
Data Elemen -> elemen-elemen yang berkaitan dengan struktur data dan struktur basis data.
Contoh: elemen-elemen pada ERD.
Architectural Element -> arsitektur untuk pengembangan perangkat lunak. Contoh: design
pattern, hubungan antar class.
Interface Element -> berhubungan dengan antarmuka pengguna. Contoh: Alur registrasi
pengguna facebook.
Component Element -> elemen-elemen yang dibentuk berdasarkan komponen dari perangkat
lunak. Contoh: sensor, kamera.
5. Deployment Element -> elemen-elemen yang berkaitan dengan proses pengembangan
perangkat lunak. Contoh: Control Panel, Server, PC.
Architectural Elements
Model arsitektur [ Sha96 ] berasal dari tiga sumber
1. Informasi tentang domain aplikasi untuk perangkat lunak yang akan dibangun
2. spesifik unsur persyaratan Model seperti diagram aliran data atau kelas analisis , hubungan
mereka dan kolaborasi untuk masalah yang dihadapi
3. ketersediaan pola arsitektur dan gaya
v Arsitektur bukan software operasional, mereprentasikan sebuah software pencari
1. Analisisefektifitas dari desain dalam pertemuan titik yang diminta
2. Mempertimbangkan alternatif arsitektur pada langkah ketika membuat dan mengubah desain
yang masih relatif mudah dan
3. Mengolah bahaya mengasosiasi dengan membangun software
v Kenapa arsitektur penting?
1. a) Reprsentasi dari software arsitektur
1. b) Untuk mendesain keputusan awal arsitektur
1. c) Arsitektur merupakan relatif kecil,intelektual mode graspable

ADL (Arsitektur Deskription Language)
Menyediakan semantik dan sintax untuk mengambarkan sebuah software arsitektur
 Menyediakan perancang dengan kemampuan
1. a) Komponen arsitektur yang membusuk
2. b) Menyusun komponen individu ke dalam blok arsitektur besar
3. c) Representasi antarmuka(koneksi mekanisme) disamping komponen
Struktur Desain
1) Objektif : memperolehprogram arsitektur yang dipartisi
2)
–
3)
Kesesuaian: sebuah pemetaan DFD kedalam arsitektur
PSPEC dan STD digunakan untuk indikasi untuk tiap modul
Notasi :struktur char
Download