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. Mengetahui metode pengembangan perangkat kt lunak. Memahami perbedaan dari setiap metode pengembangan perangkat lunak. 1 2 1. Proses PengembanganPerangkatLunak g g 2. Model Proses Pengembangan Perangkat Lunak 3. Aktivitas Pengembangan Perangkat Lunak 4. Metode PengembanganPerangkat Lunak Proses dimana kebutuhan pemakai diterjemahkan menjadi produk perangkat lunak melalui suatu rangkaian aktivitas tertentu sesuai model proses yang digunakan Kebutuhan pemakai Pengembangan Perangkat Lunak Perangkat lunak 3 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 dihasilkansebagaiproduk. Proses (process) kumpulan aktivitas untuk menghasilkan perangkat lunak. Alat bantu Orang partisipan Proses template Proyek hasil Produk otomasi Alat Bantu 5 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. 7 8 2
Model Proses Linear Sequential Rekayasa Sistem/ Informasi Analisis Perancangan Pengkodean Pengujian Model Proses Waterfall Analisis i Kebutuhan Perancangan Pengkodean Pengujian 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 Pengoperasian 9 10 Mengkombinasikan model linear sequential dan pengulangan dari model prototyping. PERENCANAAN ANALISIS RESIKO penambahan pertama penambahan kedua Analisis Perancangan Implementasi Pengujian Analisis Perancangan Implementasi Pengujian... hasil penambahan pertama hasil penambahan kedua Mengadopsi pengulangan model prototyping dan pengendalian model linear sequential dengan tambahan elemen analisis resiko pada proses pengembangannya. penambahan ke-n Analisis Perancangan Implementasi Pengujian hasil akhir / produk lengkap EVALUASI PEMAKAI REKAYASA 11 12 3
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. Pengujianperangkat ktlunak H. Integrasi perangkat lunak I. Pengujian sistem J. Penyerahan kepada pemakai (user acceptance) 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. Pembuatan rencana pengembangan. Penetapan produk produk yang akan diserahkan kepada pemakai. 13 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. Kebutuhan informasi. i Kebutuhan antarmuka sistem. Kebutuhan lain unjuk kerja, keselamatan, keamanan dan sebagainya. 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, 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. 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. f. Implementasi Perangkat Lunak (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. 17 18 Aktivitas untuk mengintegrasikan perangkat lunak yang sudah selesai diuji dengan perangkat keras dan bagianbagian sistem lainnya menjadi suatu kesatuan. Pembuatan rencana integrasi dan dokumentasinya. Instalasi perangkat keras dan perangkat lunak pendukung yang dibutuhkan oleh perangkat lunak. Pengujian apakah perangkat keras yang 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. Konversi dan penyiapan data yang sebenarnya. Pelaksanaan pengujian oleh pemakai atau perwakilan pemakai yang benar benar mengetahui kebutuhannya. Evaluasi hasil pengujian. 19 20 5
Apabila pemakai dapat menerima seluruh hasil pengujian, perangkat lunak dapat segera diserahterimakan. Spesifikasi produk perangkat lunak Manual pemakaianperangkatlunak Manual masukan/keluaran perangkat lunak Manual pengoperasiankomputer A. Konvensional atau Tradisional. B. Berorientasi Aliran Data atau Fungsi. C. Berorientasi Struktur Data. D. Berorientasi Objek. 21 22 Sudut pandang ditujukan pada sistem fisik (prosedur kerja). Th 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 dengan menggunakan alat bantu yang disebut bagan alir (flowchart). Pemodelan yang dibuat pada umumnya adalah: Peta aliran kerja (flowmap) System Flowchart Program Flowchart 23 24 6
25 Sudut pandangnya mengacu pada aspek fungsional dan perilaku sistem. Pengembang harus mengetahui fungsi fungsi atau prosesproses 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 Data (Data Flow Diagram atau DFD) Kamus Data (Data Dictionary) Spesifikasi Proses (Process Specification atau P Spec) Diagram Transisi Keadaan (StateTransition Diagram atau STD) Diagram E R Pseudo code 26 Functional Decomposition = function + sub functions + functions interfaces 27 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. Memetakanhirarki struktur informasi menjadistruktur program. Contoh: Data Structured System Development (DSSD) Jackson System Development (JSD) Structured Systems Analysis and Design Methodology (SSADM) dll. 28 7
Memandang perangkat lunak yang akan dikembangkan sebagai suatu kumpulan objek yang berkorespondensi dengan objek objek dunia nyata. Sistem Akademik Data Flow Approach = data (& control) flows + data (& control) transformation + data (& control) stores + terminators + process specs (mini specs) + data dictionary 29 Dekomposisi berdasarkan objek atau konsep Dekomposisi berdasarkan fungsi atau proses Dosen Jadwal Kuliah Konteks Kontrak Mahasiswa Kuliah Metodologi Berorientasi Objek Pengambilan Penjadwalan Penilaian Kuliah Metodologi Berorientasi Fungsi Contoh: Object Modeling Technique (OMT), Object Oriented Software Engineering (OOSE), Unified Modeling Language (UML), dll. 30 Object Oriented = classes and objects + inheritance + communication with messages Proses pengembangan umumnya penetapan baseline, analisis 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 dapatdiwujudkan. dk Penentuan model proses mana yang digunakan saat pengembangan, tergantung sepenuhnya kepada sifat dan ukuran proyek, area aplikasi, atau kompleksitas masalah. 31 32 8
Metode pengembangan adalah metode teknis untuk menyelesaikan setiap aktivitas dari pengembangan g perangkat lunak yang mempunyai 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 bagiankecil yang dapatdikelola. 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