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.
Artinya, aktivitas pengembangan berikutnya baru dapat dilaksanakan jika aktivitas sebelumnya sudah diselesaikan lebih dahulu.
Model Proses Linear Sequential
R ekayasa S istem /
Model Proses Waterfall
A li i
R ekayasa S istem / Inform asi
A nalisis P erancangan P engkodean P engujian
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
sequential dengantambahan elemen analisis resiko pada
elemen analisis resiko pada proses pengembangannya.
REKAYASA EVALUASI PEMAKAI
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 .
Penentuanstandaryang akan dijadikan acuan serta alat bantu dan perangkat implementasi yang akan digunakan
digunakan.
Pembuatanrencanapengembangan.
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 lain unjuk 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).
Antarmuka formulir isian dan dokumen output atau Antarmuka formulir isian dan dokumen output, atau
modul‐modul penghubung.
Arsitektur perangkat keras dan perangkat lunak sistem. Data dan informasi.
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 (Coding) Aktivitasg g
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 dihasilkanapakah 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. Evaluasi hasil pengujian.
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 Diagram atau DFD)
Kamus Data (Data Dictionary)
Spesifikasi Proses (Process Specification atau P‐Spec)
Diagram Transisi Keadaan (State Transition Diagram atau STD)
Diagram E‐R Pseudo‐code 26 Functional Decomposition = function + sub‐functionsf + 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 menjadi objek informasi kunci berikut operasi‐operasinya.
Menyatakan struktur informasi (dari dokumen) secara hirarki dengan menggunakan konstruksi sequence, selection dan repetition.
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 umumnya penetapan baseline, 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.
Penentuan model proses mana yang digunakan saat pengembangan, tergantung sepenuhnya kepada sifat dan ukuran proyek, area aplikasi, atau kompleksitas masalah.
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