rekayasa perangkat lunak software design fundamentals
Post on 04-Jul-2015
1.443 Views
Preview:
TRANSCRIPT
Tugas 07 RPL
Nama : ListyowatikNIM : 120103256Prodi : Teknik Informatika
Rekayasa Perangkat Lunak
SOFTWARE DESIGN FUNDAMENTALS
THE DEVELOPMENT PHASE AND SOFTWARE DESIGN
Fase pengembangan terdiri dari 3langkah :• Design• Code Generation (manual or
automatic)• Testing
Setiap langkah melakukan transformasiinformasi dalam suatu cara yangakhirnya menghasilkan softwarekomputer yang valid
Software requirementsDijelaskan dengan “Infor-mationDomain”, “Func-tional and performancrequirments”, “Feed the design step”
Development Phase
Menggunakan metodelogi :
1. Data Design difokuskan pada definisi dari struktur data
2. Architectural Design mendefinisikan hubungan antara elemenstruktur utama dari program
3. Procedural Design mengubah struktur elemen ke dalamprosedur software
THE DEVELOPMENT PHASE AND SOFTWARE DESIGN
THE DESIGN PROCESS
@ Software design a process through
which requirements are translated into a
representation of software
@Software design dibagi dalam 2 tahap :
1. Preliminary Design
Pada tahap ini difokuskan dengan trans-
formasi dari keperluan / kebutuhan ke
dalam data dan arsitektur software
2. Detail Design
Difokuskan pada penghalusan represen-
tasi arsitektur yang berisi struktur data
detail dan algoritma untuk software
Hubungan antara aspek tehnikdan management pada desain
DESAIN AND SOFTWARE QUALITY
Beberapa tuntunan dalam melakukan agar dihasilkan desaindengan kriteria yang baik, yaitu suatu desain haruslah :1. Memperlihatkan organisasi hirarki yang mengontrol
elemen-elemen software.2. Berkenaan dengan modul. Software secara logika
terbagi dalam elemen-elemen yang membentuk fungsidan sub fungsi.
3. Berisi representasi yang berbeda dan terpisah dari datadan prosedur.
4. Membentuk modul ( contoh subroutine dan procedure )yang memperlihatkan karakteristik fungsi yang tidaksaling bergantung.
5. Diturunkan dengan menggunakan metode perulanganyang didukung oleh informasi yang ada selama analisakebutuhan software.
THE EVOLUTION OF SOFTWARE DESIGN
Evolusi dari desain software merupakan proses yang
berkelanjutan terus selama 3 dekade
Beberapa metodologi telah tumbuh, dan secara umum
memiliki karakteristik sebagai berikut :
1. Sebuah mekanisme untuk menterjemahkan representasi
domain informasi ke dalam representasi desain
2. Notasi untuk merepresentasikan fungsi komponen-komponen
dan interfaces-nya
3. Heuristics untuk penghalusan dan pemartisian
4. Petunjuk untuk penaksiran kualitas
DESIGN FUNDAMENTALS
Membantu software enginee untuk menjawabpertanyaan-pertanyaan berikut :1. Apakah kriteria yang dapat dipakai untuk
mempartisi software menjadi sejumlah komponen ?2. Bagaimana fungsi atau struktur data dipisahkan dari
suatu representasi konseptual software3. Apakah ada kriteria yang seragam yang menetapkan
kualitas tehnik dari suatu software desainREFINEMENT
“Stepwise refinement” adalah strategi desain top-down pertama yang diajukan oleh Nicklaus Wirth
Refinement sebenarnya merupakan suatu prosespengembangan ( elaborasi )
SOFTWARE ARCHITECTURE
Arsitektur perangkat lunak menyinggung2 karakteristik penting dari sebuahprogram komputer :1. Hirarki struktur dari komponen-
komponen prosedural ( modul )2. Data struktur
P3
P1
P4P5
P2S1 S2
S3
S4 S5
SO F TWARE SO LUT IO NPR OBLEM T O BE SO LVE
VIA SO FT WARE
Evolution of structure
PR O BLEM
ST RUCT URE 1
S1 S2 S3 S4 S5
S1 S4 S5
S3
S2
S1 S2 S5
S4
S3
ST RUCT URE 2 ST RUCT URE 3
Different Structure
PROGRAM STRUCTURE
Program structure menampilkan /
menyajikan organisasi ( seringkali
organisasi hirarki ) dari komponen-
komponen program ( modul-modul )
dan mengandung arti hirarki dari
kontrol program
Notasi yang digunakan adalah
diagram tree. Biasanya dinamakan
structure chart Terminologi Structure
DATA STRUCTURE
Menggambarkan relasi logikal antara sejumlah elemen dari “dari”. Contoh :
type G = array [1..100] of integer;......Procedure S ( var T : G ; n : integer ; sum : integer );Var
I : integer;begin
sum := 0;for I:=1 to n do
sum := sum + t[i];end;
SOFTWARE PROCEDURE
Difokuskan pada detail pemrosesan dari setiap modul secaraindividu. Prosedur harus mengandung spesifikasi yang benar /tepat dari pemrosesan, termasuk : sequence of events, decision
points, repetitive operations, dan struktur data.
MO DULE A
MO DULE A
Procedure dengan sebuah modul
Software is divided into separately named andaddressable elements, called modules, that areintegrated to satisfy problem requirementsMisalkan :
C(x) = fungsi kompleksitasdari suatu masalah
E(x) = fungsi usaha/waktuyang diperlukan untuk memecahkan suatumasalahP1 ,P2 = masalah 1, masalah 2Jika : C(P1) > C(P2) maka :
E(P1) > E(P2)Berdasarkan penelitian :C ( P1 + P2 ) > C ( P1 ) + C ( P2 )E ( P1 + P2 ) > E ( P1 ) + E ( P2 )Konklusi :Kompleksitas suatu masalah gabungan P1 dan P2
akan berkurang jika masalah tersebut dipisahkanAkan lebih mudah menyelesaikan suatu masalahjika dipecah / dipartisi
MODULARITY
LO
ST
O
R E
FF
OR
T
NUMBER O F MO DU LES
Region O f M inimum Cost
M
TO T AL SO FTWAR E C O ST
CO ST T O INT ERF ACE
CO ST / MO DULE
Modularity & Software Cost
ABSTRACTION
Jika kita menggunakan suatu solusi modular untuk beberapamasalah, maka beberapa level / tingkat abstrasi dapatditampilakn / diperlihatkan. Pada level tertinggi, suatu solusi berada pada term yang
umum dengan menggunakan bahasa natural Level yang lebih rendah lebih berorientasi pada prosedur-
prosedurKeuntungan :1. Jika diperlukan modifikasi selama testing dan maintenance
data & prosedur disembunyikan dari bagian lain, dariprogram / software secara keseluruhan.
2. Kesalahan-kesalahan yang terjadi selama modifikasi tidakmerambat pada bagian lain.
EFFECTIVE MODULAR DESIGN
Modular design mereduksi komplesitas masalah, menyediakan fasilitas untuk
melakukan perubahan ( dalam hal pemeliharaan ), dan memudahkan implementasi
dengan pengembangan paralel dari bagian-bagian yang berbeda dalam suatu sistem
MODULE TYPES
Abstraksi dan information hiding dipakai untuk mendefinisikan modul-modul di dalam
lingkungan software architecture
1. Di dalam structure software, suatu modul mungkin dikategorikan sebagai berikut :
2. Sequential module dieksekusi tanpa interupsi yang dilakukan software aplikasi
3. Incremental module dapat diinterupsi oleh program aplikasi dan kemudian
kembali ke titik semula setelah interupsi selesai
4. Parallel module dieksekusi secara simultan dengan modul lain dalam lingkungan
Concurrent multiprocessor
FUNCTIONAL INDEPENDENCE
Konsep functional independence berkembang dari modularitas dan konsep abstraksi serta informationhidingIndependence diukur dengan menggunakan 2 kriteria kualitatif, yaitu :1. Cohesion ( keterpautan ) Perluasan / kelanjutan dari information hiding Suatu modul kohesif membentuk sebuah tugas tunggal di dalam suatu software prosedur dan
memerlukan sedikit interaksi dengan prosedur yang dibuat dalam bagian lain dari suatu programCoincidental cohesion :sebuah modul yang membentuk sejumlah tugas yang berhubungan satu sama lain dengan longgarLogically cohesion :sebuah modul yang membentuk tugas-tugas yang dihubungkan secara logicalTemporal cohesion :jika sebuah modul berisi sejumlah tugas yang dihubungkan dengan segala yang harus dieksekusi di dalamwaktu yang bersamaan.Procedural cohesion :jika pemrosesan elemen-elemen dari suatu modul dihubungkan dan harus dieksekusi dalam urutan spesifikCommunication cohesion :jika pemrosesan elemen-elemen dikonsentrasikan pada satu area dari suatu struktur data2. Coupling ( bergandengan ) Merupakan suatu pengukuran dari keterkaitan / keterhubungan antara sejumlah modul dalam struktur
program Coupling tergantung pada kompleksitas interface antar modul
DATA DESIGN
Data Desain merupakan aktivitas penting yang diselenggarakanselama proses perekayasaan perangkat lunak.
Data Desain berpengaruh besar terhadap kualitas software yang dibuat / didesain. Karena kompleksitas dari struktur program dan prosedur dapat dipengaruhi oleh bagaimana desain data yang kita buat.
Proses desain data yang diringkat oleh Wasserman. “Well - Designed” data dapat menyebabkan struktur program
lebih baik, modularitas, dan menghilangkan kompleksitasprocedural.
Wasserman mengajukan beberapa prinsip yang dipakai untukspesifikasi dan desain data.
Prinsip-prinsip tersebut merupakan basis untuk desain data yangdapat dipadukan pada fase definisi dan fase pengembanganpada proses perekayasaan perangkat lunak
S E L E S A I . . .
top related