Anda di halaman 1dari 15

REKAYASA PERANGKAT LUNAK

Kelompok 3 :
1. Andika Fahrul Reza (09011382025120)
2. NIKO (09011382025138)
3. Aditya Rahmandika (09011382025142)
Kelas :
SK4UA
CHAPTER 6
ARCHITECTURAL DESIGN
Desain arsitektur adalah tahap pertama dalam proses desain perangkat lunak, ini merupakan penghubung yang
penting antara desain dan rekayasa persyaratan, seperti mengidentifikasi komponen struktural utama dalam
sistem dan hubungan antara mereka. Output dari proses desain arsitektur adalah model arsitektur yang
menggambarkan bagaimana sistem ini disusun sebagai satu set komponen untuk berkomunikasi

Menurut Bosch (2000), arsitektur perangkat lunak penting karena mempengaruhi kinerja, ketahanan,
pembagian, dan pemeliharaan dari sistem. Komponen individu menerapkan persyaratan sistem fungsional dan
persyaratan nonfungsional tergantung pada sistem arsitektur di mana komponen ini terorganisir dan
berkomunikasi. Dalam kebanyakan sistem, persyaratan non-fungsional juga dipengaruhi oleh komponen
individual, tetapi tidak ada keraguan bahwa arsitektur dari sistem ini adalah pengaruh yang cukup dominan.
Tiga keuntungan secara eksplisit merancang dan mendokumentasikan arsitektur perangkat lunak
yaitu:
1. Komunikasi Stakeholder. Arsitektur adalah presentasi tingkat tinggi dari sistem yang dapat
digunakan sebagai fokus utama untuk diskusi dengan berbagai pemangku kepentingan yang
berbeda.
2. Analisis Sistem. Membuat sistem arsitektur yang jelas pada tahap awal dalam pengembangan
sistem memerlukan beberapa analisis. keputusan desain arsitektur memiliki efek mendalam
apakah bisa atau tidak sistem dapat memenuhi persyaratan kritis seperti kinerja, kehandalan,
dan pemeliharaan.
3. Skala besar penggunaan kembali. Sebuah model arsitektur sistem merupakan deskripsi
kompak, dikelola bagaimana sistem diorganisir dan bagaimana komponen beroperasi.
Arsitektur sistem ini sering sama untuk sistem baru yang dibuat dengan persyaratan yang sama
dan dapat mendukung penggunaan kembali perangkat lunak dalam skala besar.
Desain arsitektur merupakan proses kreatif di mana anda merancang organisasi sistem yang akan
memenuhi kebutuhan fungsional dan non-fungsional dari suatu sistem. Karena merupakan proses
kreatif, kegiatan dalam proses tergantung pada jenis sistem sedang dikembangkan, latar belakang
dan pengalaman dari sistem arsitek, dan persyaratan khusus untuk sistem. Oleh karena itu sangat
berguna untuk memikirkan desain arsitektur sebagai rangkaian keputusan yang harus dibuat
daripada urutan kegiatan. Arsitektur sistem perangkat lunak mungkin didasarkan pada pola
arsitektur tertentu atau gaya.
Pola arsitektur adalah deskripsi dari sebuah organisasi sistem (Garlan dan Shaw, 1993), seperti
organisasi client-server atau arsitektur berlapis. Pola arsitektur menangkap esensi dari arsitektur
yang telah digunakan dalam sistem perangkat lunak yang berbeda. Anda harus menyadari pola
umum, di mana mereka dapat digunakan, dan kekuatan dan kelemahan mereka ketika membuat
keputusan tentang arsitektur sistem. Anda harus memilih struktur yang paling tepat, seperti client-
server atau penataan berlapis, yang akan memungkinkan anda untuk memenuhi persyaratan sistem.
Pendekatan yang dapat anda gunakan memungkinkan berbagai jenis arsitektur untuk dilaksanakan.
Akhirnya, dalam proses pemodelan kontrol, Anda membuat keputusan tentang bagaimana
pelaksanaan komponen dikendalikan. Anda mengembangkan model umum hubungan kontrol
antara berbagai bagian dari sistem. Karena hubungan erat antara kebutuhan non-fungsional dan
arsitektur perangkat lunak, gaya arsitektur tertentu dan struktur yang Anda pilih untuk sistem harus
tergantung pada persyaratan sistem non-fungsional seperti:
• Kinerja. Jika kinerja merupakan persyaratan penting, arsitektur harus dirancang untuk melokalisasi operasi
penting dalam sejumlah kecil komponen, dengan komponen ini semua digunakan pada komputer yang
sama daripada didistribusikan di seluruh jaringan.
• Keamanan. Jika keamanan merupakan kebutuhan penting, struktur berlapis untuk arsitektur harus
digunakan, dengan aset yang paling penting dilindungi di lapisan terdalam, dengan tingkat tinggi validasi
keamanan diterapkan pada lapisan ini.
• Keselamatan. Jika keselamatan merupakan persyaratan penting, arsitektur harus dirancang sehingga operasi
yang terkait dengan keselamatan semua terletak di salah satu komponen atau sejumlah kecil komponen.
Hal ini akan mengurangi biaya dan masalah validasi keamanan dan memungkinkan untuk menyediakan
sistem perlindungan terkait yang dapat dengan aman mematikan sistem dalam hal kegagalan.
• Ketersediaan. Jika ketersediaan merupakan kebutuhan penting, arsitektur harus dirancang untuk
memasukkan komponen berlebihan sehingga dimungkinkan untuk mengganti dan memperbarui komponen
tanpa henti sistem.
• Perawatan. Jika perawatan merupakan persyaratan penting, arsitektur sistem harus dirancang menggunakan
fine-grain, komponen mandiri yang dapat mudah diubah. Produsen data harus dipisahkan dari konsumen
dan struktur data bersama harus dihindari.
A. Pandangan arsitektur
Ada pendapat yang berbeda tentang pandangan apa yang diperlukan. Kruchten (Kruchten 1995) dalam
model tampilan arsitektur perangkat lunak 4 +1 yang terkenal, menyarankan bahwa harus ada empat
pandangan arsitektur mendasar, yang dapat dihubungkan melalui penggunaan umum Dia menyarankan
pandangan berikut:
1. Logical View, yang menunjukkan abstraksi kunci dalam sistem sebagai objek atau kelas objek. Harus
dimungkinkan untuk menghubungkan persyaratan sistem dengan entitasdalam pandangan logis ini.
2. Processes View, yang menunjukkan bagaimana, pada saat runtime, sistem terdiri dari proses-proses yang
saling berinteraksi. Pandangan ini berguna untuk membuat penilaian tentang karakteristik sistem non-
fungsional seperti kinerja dan ketersediaan.
3. Development View, yang menunjukkan bagaimana perangkat lunak didekomposisi untuk pengembangan;
yaitu, ini menunjukkan pemecahan perangkat lunak menjadi komponen-komponen yang
diimplementasikan oleh satu pengembang atau tim pengembangan. Tampilan ini berguna untuk manajer
perangkat lunak dan programmer.
4. Physical View, yang menunjukkan perangkat keras sistem dan bagaimana komponen perangkat
lunak didistribusikan ke seluruh prosesor dalam sistem. Tampilan ini berguna untuk insinyur
sistem merencanakan penyebaran sistem

B. Arsitektur aplikasi
Sistem aplikasi dimaksudkan untuk memenuhi kebutuhan bisnis atau organisasi. Semua
bisnis memiliki banyak kesamaan—mereka perlu mempekerjakan orang, menerbitkan faktur,
mempertahankan akun, dan sebagainya. Bisnis yang beroperasi di sektor yang sama
menggunakan aplikasi spesifik sektor umum. Oleh karena itu, serta fungsi bisnis umum, semua
telepon perusahaan membutuhkan sistem untuk menghubungkan dan mengukur panggilan,
mengelola jaringan dan masalah merekatagihan kepada pelanggan. Akibatnya, sistem aplikasi
yang digunakan oleh bisnis ini juga memiliki banyak kesamaan
Sebagai perancang perangkat lunak, Anda dapat menggunakan model arsitektur aplikasi dalam
beberapa cara:
1. Sebagai titik awal untuk proses desain arsitektur, Jika Anda tidak terbiasa dengan jenis aplikasi
yang Anda kembangkan, Anda dapat mendasarkan desain inisial Anda pada arsitektur aplikasi
generik. Anda kemudian mengkhususkan ini untuk sistem tertentu yang sedang dikembangkan.
2. Sebagai daftar periksa desain, Jika Anda telah mengembangkan desain arsitektur untuk sistem
aplikasi, Anda dapat membandingkannya dengan arsitektur aplikasi generik.Anda dapat
memeriksa apakah desain Anda konsisten dengan arsitektur generik.
3. Sebagai cara mengatur pekerjaan tim pengembangan, Arsitektur aplikasi mengidentifikasi fitur
struktural yang stabil dari arsitektur sistem, dan dalam banyak kasus, adalah mungkin untuk
mengembangkan ini secara paralel. Anda dapat menugaskan pekerjaan keanggota kelompok
untuk mengimplementasikan komponen yang berbeda dalam arsitektur.
4. Sebagai sarana menilai komponen untuk digunakan Kembali, Jika Anda memiliki komponen,
Anda mungkin dapat menggunakannya kembali, Anda dapat membandingkannya dengan
struktur generik untuk dilihat apakah ada komponen yang sebanding dalam arsitektur aplikasi.
5. Sebagai kosa kata untuk berbicara tentang aplikasi, Jika Anda sedang mendiskusikan spesifik
aplikasi atau mencoba membandingkan aplikasi, maka Anda dapat menggunakan konsep
diidentifikasi dalam arsitektur generik untuk berbicara tentang aplikasi ini.
Ada banyak jenis sistem aplikasi, dan, dalam beberapa kasus, mereka mungkin tampak menjadi sangat
berbeda. Namun, aplikasi yang sangat berbeda mungkin memiliki banyak manfaat umum dan dengan
demikian berbagi arsitektur aplikasi abstrak. Saya menggambarkan ini dengan menggambarkan arsitektur dari
dua jenis aplikasi:
1. Transaction processing systems
Transaction Processing Systems adalah aplikasi yang berpusat pada basis data yang memproses
permintaan pengguna untuk informasi dan memperbarui informasi dalam database. Ini adalah jenis yang
paling umum dari sistem bisnis inter aktif. Mereka diatur sedemikian rupa sehingga tindakan pengguna
tidak dapat saling mengganggu dan keutuhan database tetap terjaga. Kelas sistem ini mencakup sistem
perbankan interaktif, sistem e-commerce, sistem informasi, dan sistem pemesanan. Contoh transaksi
database adalah permintaan pelanggan untuk menarik uang dari rekening bank menggunakan ATM. Ini
melibatkan memeriksa saldo akun pelanggan untuk melihat jika dana yang cukup tersedia, memodifikasi
saldo dengan jumlah yang ditarik dan mengirimkan perintah ke ATM untuk mengirimkan uang tunai.
Sampai semua langkah ini selesai, transaksi tidak lengkap dan database akun pelanggan tidak terisi
2. Language processing systems
Language Processing Systems adalah sistem dalam di mana niat pengguna diungkapkan dalam
bahasa formal, seperti bahasa pemrograman. Sistem pemrosesan bahasa memproses bahasa ini
ke dalam format internal dan kemudian menafsirkan representasi internal ini. Sistem
pemrosesan bahasa yang paling terkenal adalah kompiler, yang menerjemahkan tingkat tinggi
program bahasa ke dalam kode mesin. Namun, sistem pemrosesan Bahasa juga digunakan
untuk menginterpretasikan bahasa perintah untuk database dan informasi sistem, dan bahasa
markup seperti XML.
Kompiler bahasa pemrograman yang merupakan bagian dari lingkungan pemrograman yang lebih
umum memiliki arsitektur generik yang mencakup komponen berikut

1. Lexical Analyzer, yang mengambil token bahasa input dan mengubahnya menjadi sebuah bentuk internal.

2. Symbol table, yang menyimpan informasi tentang nama-nama entitas (variabel,nama kelas,
nama objek, dll.) yang digunakan dalam teks yang sedang diterjemahkan.
3. Syntax analyzer, yang memeriksa sintaks bahasa yang diterjemahkan. menggunakan tata bahasa yang
ditentukan dan membangun pohon sintaksis.
4. Syntax Tree, yang merupakan struktur internal yang mewakili program yang sedang dikompilasi.
5. Semantic Analyzer, yang menggunakan informasi dari pohon sintaksis dan tabel simbol untuk memeriksa
kebenaran semantik teks bahasa input.
6. Code Generator, yang "berjalan" di pohon sintaks dan menghasilkan abstrak kode mesin
Komponen lain mungkin juga disertakan yang menganalisis dan mengubah sintaks tree untuk meningkatkan
efisiensi dan menghilangkan redundansi dari kode mesin yang dihasilkan. Dalam jenis sistem pemrosesan
bahasa lainnya, seperti penerjemah bahasa alami, akan ada komponen tambahan seperti kamus. Keluaran
sistem adalah terjemahan teks masukan.
Terima Kasih

Anda mungkin juga menyukai