Rekayasa Perangkat Lunak (Software Engineering)
Graha Prakarsa, ST. MT. Sekolah Tinggi Teknologi Bandung
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 Mengetahui t h i metode t d pengembangan b perangkat k t lunak. Memahami perbedaan dari setiap metode pengembangan perangkat lunak.
1
1.
Proses Pengembangan g g Perangkat g Lunak
2.
Model Proses Pengembangan Perangkat Lunak
3.
Aktivitas Pengembangan Perangkat Lunak
4 4.
Metode Pengembangan Perangkat Lunak
2
Proses dimana kebutuhan pemakai diterjemahkan menjadi produk perangkat lunak melalui suatu rangkaian aktivitas tertentu sesuai model proses yang digunakan
Kebutuhan pemakai
3
Pengembangan Perangkat Lunak
Perangkat lunak
4
1
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. produk Proses (process) kumpulan aktivitas untuk menghasilkan perangkat lunak. Alat bantu
P Proses template
Orang
Proyek partisipan
otomasi
Alat Bantu
hasil
Produk
5
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.
7
6
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.
8
2
Model Proses Linear Sequential
R ekayasa Sistem / Inform asi
Analisis
P erancangan
Pengkodean
Pengujian
Model Proses Waterfall A li i Analisis Kebutuhan Perancangan Pengkodean Pengujian Pengoperasian
Pemakai hanya memberikan 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
9
10
Mengkombinasikan model linear sequential dan pengulangan dari model prototyping.
penambahan pertama
Analisis
penambahan kedua
Perancangan
Analisis
Implementasi
Perancangan
Pengujian
Implementasi
PERENCANAAN
hasil penambahan pertama
Pengujian
hasil penambahan kedua
. . . penambahan ke-n
Analisis
Perancangan
Implementasi
Pengujian
hasil akhir / produk lengkap 11
ANALISIS RESIKO
Mengadopsi pengulangan model prototyping dan pengendalian model linear sequential dengan tambahan elemen analisis resiko pada proses pengembangannya.
EVALUASI PEMAKAI
REKAYASA
12
3
A. B. C. D. E. F. G G. H. I. J.
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.
Persiapan pengembangan Analisis kebutuhan sistem Perancangan sistem Analisis kebutuhan perangkat lunak Perancangan perangkat lunak Implementasi perangkat lunak (coding) P Pengujian ji perangkat k t lunak l k Integrasi perangkat lunak Pengujian sistem Penyerahan kepada pemakai (user acceptance) 13
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. Kebutuhan K b h informasi. i f i Kebutuhan antarmuka sistem. Kebutuhan lain unjuk kerja, keselamatan, keamanan dan sebagainya.
14
Aktivitas untuk merancang struktur dan keterkaitan antar 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, output atau modul‐modul penghubung. Arsitektur perangkat keras dan perangkat lunak sistem. Data dan informasi. 15
16
4
d. Analisis Kebutuhan Perangkat Lunak Aktivitas untuk mendefinisikan kebutuhan perangkat lunak, yaitu kondisi atau kemampuan yang harus dimiliki oleh perangkat lunak untuk memenuhi apa yang disyaratkan atau diinginkan pemakai.
g g Aktivitas f. Implementasi Perangkat Lunak (Coding) untuk mewujudkan perangkat lunak melalui proses transformasi semua model hasil perancangan menjadi program komputer dan data, dengan menggunakan perangkat implementasi tertentu.
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.
g.Pengujian Perangkat Lunak Aktivitas untuk memeriksa perangkat lunak yang dihasilkan apakah sudah memenuhi kebutuhan yang sudah didefinisikan atau belum. 17
18
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. operasi Konversi dan penyiapan data yang sebenarnya. Pelaksanaan pengujian oleh pemakai atau perwakilan pemakai yang benar‐benar mengetahui kebutuhannya. Evaluasi hasil pengujian.
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. Pengujian g j apakah p perangkat p g keras yyang g sudah diinstalasi dan perangkat lunak pendukungnya sudah bekerja dengan benar. Instalasi perangkat lunak. Pengujian dan evaluasi hasil integrasi. 19
20
5
Apabila pemakai dapat menerima seluruh hasil pengujian, perangkat lunak dapat segera diserahterimakan. Spesifikasi produk perangkat lunak Manual pemakaian perangkat lunak Manual masukan/keluaran / perangkat p g lunak Manual pengoperasian komputer
A. B. C. D.
Konvensional atau Tradisional. Berorientasi Aliran Data atau Fungsi. Berorientasi Struktur Data. Berorientasi Objek.
21
22
23
24
Sudut pandang ditujukan pada sistem fisik (prosedur kerja). T h pengembangan: Tahap b 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 dengan menggunakan alat bantu yang disebut bagan alir (flowchart). Pemodelan yang dibuat pada umumnya adalah:
Peta aliran kerja (flowmap) System Flowchart Program Flowchart
6
Sudut pandangnya mengacu pada aspek fungsional dan 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:
Diagram Aliran l Data (Data Flow l 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
25
26
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
Functional Decomposition = function + sub‐functions f + functions interfaces
menggunakan konstruksi sequence, selection dan repetition. Memetakan hirarki struktur informasi menjadi struktur program. program
Contoh: Data Structured System Development (DSSD) Jackson System Development (JSD) Structured Systems Analysis and Design Methodology (SSADM) dll.
27
28
7
Memandang perangkat lunak yang akan dikembangkan sebagai suatu kumpulan objek yang berkorespondensi dengan objek‐objek dunia nyata. t Sistem Akademik
Data Flow Approach = data (& control) flows + data (& control) transformation + data (& control) stores data (& control) stores + terminators + process specs (mini‐specs) + data dictionary
Dekomposisi berdasarkan objek atau konsep Dosen
Mahasiswa
Jadwal
Kuliah
Kontrak Kuliah
Metodologi Berorientasi Objek
29
Konteks
Pengambilan Kuliah
Penjadwalan
Penilaian
Metodologi Berorientasi Fungsi
Contoh: Object Modeling Technique (OMT), Object Oriented Software Engineering (OOSE), Unified Modeling Language (UML), dll. 30
Proses pengembangan umumnya penetapan baseline, analisis dan perancangan sistem, 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 dapat d t diwujudkan. di j dk
Penentuan model proses mana yang digunakan saat pengembangan, tergantung sepenuhnya kepada sifat dan ukuran proyek, area aplikasi, atau kompleksitas masalah.
Object Oriented = classes and objects + inheritance + communication with messages
31
Dekomposisi berdasarkan fungsi atau proses
32
8
Metode pengembangan adalah metode teknis untuk menyelesaikan p aktivitas dari p pengembangan g g p perangkat g lunak yyang g mempunyai p y setiap 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. 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
Baca Materi 1 dan 2
35
9