Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak
(
Software
Engineering
)
Graha Prakarsa, ST. MT.
Sekolah Tinggi Teknologi Bandung
1
Memahami arti pengembangan perangkat lunak.
Mengetahui aktivitas pengembangan perangkat
lunak.
Memahami
model
proses
pengembangan
perangkat lunak dan mengetahui beberapa jenis
model proses yang sering digunakan.
M
t h i
t d
b
k t
Mengetahui metode pengembangan perangkat
lunak.
Memahami
perbedaan
dari
setiap
metode
pengembangan perangkat lunak.
2
1.
Proses Pengembangan Perangkat Lunak
g
g
g
2.
Model
Proses Pengembangan Perangkat
Lunak
3.
Aktivitas Pengembangan Perangkat Lunak
4
Metode Pengembangan Perangkat Lunak
4.Metode Pengembangan Perangkat Lunak
Proses dimana kebutuhan pemakai diterjemahkan
menjadi produk perangkat lunak melalui suatu
rangkaian aktivitas tertentu sesuai model proses yang
digunakan
Kebutuhan pemakai Perangkat lunak
Pengembangan Perangkat Lunak
Orang (
people
)
analis sistem, pemrogram,
penguji perangkat lunak termasuk pemakai dan
pelanggan.
Proyek (
project
)
Produk
(
product
)
source
code,
executable
programs,
model
‐
model dan dokumen
‐
dokumen
yang dihasilkan sebagai produk
yang dihasilkan sebagai produk.
Proses (
process
)
kumpulan aktivitas untuk
menghasilkan perangkat lunak.
Alat bantu
5
P
Proyek Proses
Orang Alat Bantu
partisipan
template
otomasi
Produk
hasil
6
Suatu cara atau strategi pengembangan yang
memadukan metode, teknik dan alat bantu
sedemikian rupa sehingga produk perangkat lunak
dapat diwujudkan.
Model proses ini ada karena beragamnya sifat
proyek dan aplikasi, metode dan alat yang
digunakan, serta pengendalian dan hasil yang
diinginkan.
Model proses pengembangan perangkat lunak yang
pelaksanaan proses pengembangannya dilakukan
secara berurutan.
 Model Proses Linear Sequential
R ekayasa Sistem /
 Model Proses Waterfall
A li i
R ekayasa Sistem / Inform asi
Analisis P erancangan Pengkodean Pengujian
Analisis Kebutuhan Perancangan Pengkodean Pengujian Pengoperasian 9
 Pemakai hanya memberikan gambaran umum dari spesifikasi dan gambaran umum dari spesifikasi dan kegunaan perangkat lunak tanpa merinci seperti apa masukan, proses, dan keluarannya.
 Model proses prototyping
dilaksanakan secara berulang dengan diawali oleh aktivitas pengumpulan kebutuhan sistem dan berakhir jika produk perangkat lunak yang dihasilkan sudah sesuai dengan yang diharapkan oleh pemakai
10
Mengkombinasikan model
linear sequential
dan
pengulangan dari model
prototyping
.
Analisis Perancangan Implementasi Pengujian
Analisis Perancangan Implementasi Pengujian
penambahan pertama penambahan kedua hasil penambahan pertama hasil penambahan kedua
Analisis Perancangan Implementasi Pengujian
kedua
penambahan ke-n
kedua
hasil akhir / produk lengkap
. . .
PERENCANAAN ANALISIS RESIKO
Mengadopsi pengulangan
model prototyping dan
pengendalian model linear sequentialdengantambahan elemen analisis resiko pada
elemen analisis resiko pada proses pengembangannya.
A.
Persiapan pengembangan
B.
Analisis kebutuhan sistem
C.
Perancangan sistem
D.
Analisis kebutuhan perangkat lunak
E.Perancangan perangkat lunak
F.
Implementasi perangkat lunak (
coding
)
G
P
ji
k t l
k
G.
Pengujian perangkat lunak
H.
Integrasi perangkat lunak
I.Pengujian sistem
J.
Penyerahan kepada pemakai (
user
acceptance
)
13
Bertujuan untuk menetapkan
baseline
dari pengerjaan
pengembangan:
Pendefinisian
model
proses
pengembangan
perangkat lunak yang akan digunakan .
Penentuan
standar
yang akan dijadikan acuan serta
alat bantu dan perangkat implementasi yang akan
digunakan
digunakan.
Pembuatan
rencana
pengembangan.
Penetapan
produk
‐
produk
yang akan diserahkan
kepada pemakai.
14
Aktivitas untuk mempelajari dan menentukan kebutuhan sistem yang menjadi lingkungan dimana perangkat lunak akan beroperasi:
 Kebutuhan lingkungan sistem kebutuhan perangkat keras, perangkat lunak, dan komunikasi data.
 Kebutuhan bisnis fungsional. K b h i f i
 Kebutuhan informasi.
 Kebutuhan antarmuka sistem.
 Kebutuhan lainunjuk kerja, keselamatan, keamanan dan sebagainya.
Aktivitas untukmerancang strukturdan keterkaitanantar
komponen‐komponen sistem sesuai kriteria yang sudah ditetapkan, termasuk antarmuka dengan lingkungan operasionalnya.
 Prosedur (berkaitan dengan bagaimana sistem nanti akan digunakan).
 Antarmukaformulir isian dan dokumen output atau
 Antarmukaformulir isian dan dokumen output, atau modul‐modul penghubung.
 Arsitektur perangkat keras dan perangkat lunak sistem.
d. Analisis Kebutuhan Perangkat Lunak  Aktivitas untuk
mendefinisikan kebutuhan perangkat lunak, yaitu kondisi ataukemampuan yang harus dimilikioleh perangkat lunak untuk memenuhi apa yang disyaratkan atau diinginkan pemakai.
e. Perancangan Perangkat Lunak  Aktivitas untuk menentukan bagaimana perangkat lunak memenuhi kebutuhan yang sudah didefinisikan. Cakup perancangan meliputi perancangan data, arsitektur perangkat lunak, antarmuka, dan algoritma.
17
f. Implementasi Perangkat Lunak (
g
Coding
g
)
Aktivitas
untuk mewujudkan perangkat lunak melalui proses
transformasi
semua
model
hasil
perancangan
menjadi program komputer dan data, dengan
menggunakan perangkat implementasi tertentu.
g. Pengujian Perangkat Lunak
Aktivitas untuk
memeriksa perangkat lunak yang dihasilkan
apakah
sudah
memenuhi
kebutuhan
yang
sudah
didefinisikan atau belum.
18
Aktivitas untuk mengintegrasikan perangkat lunak yang sudah selesai diuji dengan perangkat keras dan bagian‐ bagian sistem lainnya menjadi suatu kesatuan.
 Pembuatan rencana integrasi dan dokumentasinya.
 Instalasi perangkat keras dan perangkat lunak pendukung yang dibutuhkan oleh perangkat lunak.
 Pengujiang j apakahp perangkatp g keras yangy g sudah diinstalasi dan perangkat lunak pendukungnya sudah bekerja dengan benar.
 Instalasi perangkat lunak.
 Pengujian dan evaluasi hasil integrasi.
Aktivitas untuk menguji perangkat lunak di lingkungan sebenarnya dengan menggunakan data sebenarnya, dan melibatkan komponen sistem lainnya, seperti perangkat keras, perangkat komunikasi data, pemakai, dan prosedur‐prosedur seperti prosedur manual, prosedur audit, dan prosedur keamanan.
 Pembuatan dokumen rencana pengujian sistem. Penyusunan petunjuk operasi
 Penyusunan petunjuk operasi.
 Konversi dan penyiapan data yang sebenarnya.
 Pelaksanaan pengujian oleh pemakai atau perwakilan pemakai yang benar‐benar mengetahui kebutuhannya.
Apabila pemakai dapat menerima seluruh hasil
pengujian,
perangkat
lunak
dapat
segera
diserahterimakan.
Spesifikasi produk perangkat lunak
Manual
pemakaian perangkat lunak
Manual
masukan/keluaran perangkat lunak
/
p
g
Manual
pengoperasian komputer
21
A.
Konvensional atau Tradisional.
B.
Berorientasi Aliran Data
atau Fungsi.
C.
Berorientasi Struktur Data.
D.
Berorientasi Objek.
22
 Sudut pandang ditujukan pada sistem fisik (prosedur kerja).
T h b
 Tahap pengembangan:
 mengamati dokumen apa yang menjadi media data atau informasi,
 bagaimana dokumen tersebut terbentuk,
 bagaimana dokumen tersebut mengalir dari satu bagian ke bagian yang lain,
 proses apa yang terjadi pada dokumen tersebut, dan seterusnya.  Hasil setiap tahap pengembangan dimodelkan denganHasil setiap tahap pengembangan dimodelkan dengan
menggunakan alat bantu yang disebut bagan alir (flowchart).
 Pemodelan yang dibuat pada umumnya adalah:  Peta aliran kerja (flowmap)
 System Flowchart
25
 Sudut pandangnya mengacu pada aspek fungsional dan perilaku sistem.
perilaku sistem.
 Pengembang harus mengetahui fungsi‐fungsi atau proses‐ proses apa saja yang ada dalam sistem, data apa yang menjadi masukannya, dimana data tersebut disimpan, transformasi apa yang akan dilakukan terhadap data tersebut, dan apa yang menjadi hasil transformasinya.
 Hasil analisis dan perancangan dimodelkan menjadi:
l l
 Diagram Aliran Data (Data Flow Diagramatau DFD)
 Kamus Data (Data Dictionary)
 Spesifikasi Proses (Process SpecificationatauP‐Spec)
 Diagram Transisi Keadaan (State Transition Diagramatau STD)
 Diagram E‐R
 Pseudo‐code
26
Functional
Decomposition
=
function
+
sub
‐
functions
f
+
functions
interfaces
 Sudut pandangnya mengacu pada struktur data dari dokumen masukan/keluaran yang digunakan dalam sistem.
 Tahap pengembangannya:
 Mengidentifikasi entitas‐entitas atau item‐item yang menjadiobjek informasi kunciberikut operasi‐operasinya.
 Menyatakan struktur informasi (dari dokumen) secara hirarki dengan menggunakan konstruksisequence,selectiondanrepetition.
 Memetakan hirarki struktur informasi menjadi struktur programMemetakan hirarki struktur informasi menjadi struktur program.  Contoh:
 Data Structured System Development(DSSD)
 Jackson System Development(JSD)
 Structured Systems Analysis and Design Methodology(SSADM)
Data Flow Approach = data (& control) flows
+ data (& control) transformation
data (& control) stores + data (& control) stores + terminators
+ process specs (mini‐specs) + data dictionary
29
 Memandang perangkat lunak yang akan dikembangkan sebagai suatu kumpulan objek yang berkorespondensi dengan objek‐objek dunia
t nyata.
Sistem Akademik
Dosen Jadwal Kuliah Konteks
Dekomposisi berdasarkan objek atau konsep Dekomposisi berdasarkan fungsi atau proses
 Contoh: Object Modeling Technique (OMT), Object Oriented Software Engineering(OOSE),Unified Modeling Language(UML), dll.
Mahasiswa Kontrak Kuliah
Pengambilan
Kuliah Penjadwalan Penilaian Metodologi Berorientasi Objek Metodologi Berorientasi Fungsi
30
Object
Oriented
=
classes
and
objects
+
inheritance
+
communication
with
messages
 Proses pengembangan umumnyapenetapanbaseline, analisis dan perancangan sistem analisis kebutuhan dan perancangan dan perancangan sistem, analisis kebutuhan dan perancangan perangkat lunak, penulisan program, pengujian, instalasi dan pengujian sistem, dan penyerahan kepada pemakai.
 Model proses pengembangan cara atau strategi bagaimana mengembangkan PL berdasarkan model proses, metode pengembangan, teknik, dan alat bantu tertentu sehingga produk PL d t di j dk
PL dapat diwujudkan.
 Metode pengembangan adalah metode teknis untuk menyelesaikan setiap aktivitas dari pengembangan perangkat lunak yang mempunyaip p g g p g y g p y pendekatan, sudut pandang dan kumpulan aturan tertentu.
 Jika diklasifikasi sesuai pendekatannya, dikenal empat metode pengembangan, yaitu metode konvensional, berorientasi fungsi, data, dan objek.
 Strategi utama untuk menangani kompleksitas pembangunan perangkat lunak adalah dekomposisi permasalahan menjadi bagian‐ bagian kecil yang dapat dikelola
bagian kecil yang dapat dikelola.
 Pada metode berorientasi fungsi atau aliran data (DFD) dekomposisi permasalahan dilakukan berdasarkan fungsi atau proses secara hirarki, mulai dari konteks sampai proses‐proses yang paling kecil.
 Sementara pada metode berorientasi objek, dekomposisi permasalahan dilakukan berdasarkan objek‐objek yang ada dalam
sistem. 33
Rekayasa Sistem
 Analisis kebutuhan sistem
 Perancangan sistem
34