Tujuan
Bagian ini menjelaskan tentang pengembangan perangkat lunak, meliputi pengertian, aktivitas, model proses, dan metode pengembangannya. Setelah mempelajari bagian ini dengan baik, pembaca diharapkan dapat: 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 lunak.
Pokok Bahasan
Pokok bahasan pada bagian ini meliputi: Proses Pengembangan Perangkat Lunak Aktivitas Pengembangan Perangkat Lunak Model Proses Pengembangan Perangkat Lunak Metode Pengembangan Perangkat Lunak
19
20
Perangkat lunak sebagai sebuah produk rekayasa dihasilkan melalui sekumpulan proses yang dilaksanakan menurut kerangka kerja tertentu. Salah satu proses yang sangat dominan dari rekayasa perangkat lunak adalah pengembangan perangkat lunak (software development).
Kebutuhan pemakai
Perangkat lunak
Gambar 2.1 Proses Pengembangan Perangkat Lunak Proses pengembangan perangkat lunak dilaksanakan setelah proses akuisisi dan pasokan. Dalam pelaksanaannya, proses pengembangan ini akan melibatkan: Orang (people) Individu, kelompok, atau bagian organisasi yang menjadi pelaksana pekerjaan, seperti analis sistem, pemrogram, penguji perangkat lunak, dan pihak-pihak lainnya termasuk pemakai dan pelanggan. Proyek (project) Pekerjaan pengembangan perangkat lunaknya sendiri, yang dikelola sesuai prinsip-prinsip manajemen proyek. Produk (product) Kode sumber (source code), executable programs, model-model, dan dokumen-dokumen yang dihasilkan sebagai produk selama pelaksanaan pengembangan. Proses (process) Kumpulan aktivitas yang digunakan untuk menghasilkan perangkat lunak. Setiap aktivitas dilaksanakan dengan menggunakan pendekatan atau metode teknis tertentu. Alat bantu Kumpulan perangkat bantu atau kakas otomatis dan semi-otomatis yang akan digunakan untuk mendukung aktivitas-aktivitas dari proses.
Hubungan kelima elemen yang terkait dengan proses pengembangan di atas ditunjukkan oleh Gambar 2.2 berikut.
21
Proses
template
Orang
partisipan
Proyek
otomasi
Alat Bantu
hasil
Produk
Gambar 2.2 Hubungan Antar Elemen Proses Pengembangan (Sumber: Jacobson, Booch, and Rumbaugh [JAC99])
Semua aktivitas yang di atas akan selalu berulang seiring dengan munculnya kebutuhan untuk membuat perangkat lunak yang lain jika: perangkat lunak yang ada sudah tidak dapat memenuhi kebutuhan lagi akibat adanya perubahan lingkungan dan teknologi.
22
munculnya masalah-masalah atau proses bisnis baru yang sebelumnya tidak ada. adanya peluang bisnis baru. berubahnya keinginan dan pengharapan pemakai.
2.
3.
4.
Pembahasan rinci untuk aktivitas analisis kebutuhan sistem akan disampaikan pada Bab 3.
23
Pembahasan rinci untuk aktivitas perancangan sistem akan disampaikan pada Bab 3.
24
25
4. 5.
Pelaksanaan pengujian oleh pemakai atau perwakilan pemakai yang benar-benar mengetahui kebutuhannya. Evaluasi hasil pengujian.
26
Gambar 2.3 Model Proses Waterfall (Sumber: Davis [DAV93]) Cakupan aktivitas yang ada pada model proses waterfall meliputi: 1. Analisis kebutuhan Mempelajari dan memahami masalah yang akan dibuat perangkat lunaknya, menetapkan ranah informasi, fungsi, perilaku, unjuk kerja dan antarmuka perangkat lunak untuk didefinisikan sebagai kebutuhan perangkat lunak. Perancangan Transformasi setiap spesifikasi kebutuhan menjadi modul-modul perancangan yang lebih rinci sehingga menghasilkan model solusi dalam bentuk rancangan struktur data, arsitektur perangkat lunak, antar muka, dan prosedur-prosedur atau algoritma. Pengkodean Menerjemahkan model perancangan ke dalam bentuk yang dapat dimengerti oleh mesin (komputer) dengan menggunakan perangkat implementasi tertentu. Pengujian Memeriksa kebenaran logika internal dan fungsi perangkat lunak untuk menemukan kesalahan-kesalahan, dan memastikan bahwa perangkat lunak yang dihasilkan sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. Pengoperasian Penggunaan perangkat lunak oleh pemakai di lingkungan sebenarnya. Untuk menjaga supaya perangkat lunak yang dioperasikan ini tetap berjalan sebagaimana mestinya, dilakukan proses pemeliharaan.
2.
3.
4.
5.
Versi lain dari model proses waterfall adalah model proses linear sequential (lihat Gambar 2.4). Pada model proses ini, setiap aktivitas dilaksanakan secara linear, tanpa umpan balik untuk memperbaiki tahap sebelumnya.
27
Analisis
P erancangan
Pengkodean
Pengujian
Gambar 2.4 Model Proses Linear Sequential (Sumber: Pressman [PRE01]) Model proses waterfall atau linear sequential pada umumnya dipilih jika semua kebutuhan sudah jelas dan dapat didefinisikan secara eksplisit di awal proses pengembangan.
2.
3.
28
Subset function prototype Prototype perangkat lunak yang sudah dapat digunakan tetapi baru mengimplementasikan sebagian dari fungsi-fungsi yang diinginkan. Existing program Program sebenarnya yang mengimplementasikan sebagian besar atau seluruh fungsionalitas yang dibutuhkan, tetapi masih ada hal-hal utama lainnya yang harus disempurnakan pada pengembangan berikutnya.
4.
Evaluasi prototype Menguji coba dan mengevaluasi prototype bersama-sama dengan pemakai untuk mendapatkan umpan balik yang dapat membantu pengembang memperbaiki prototype yang sudah dibuat, atau membangun prototype yang baru. Perbaikan prototype Melakukan penambahan dan perbaikan-perbaikan terhadap prototype berdasarkan hasil evaluasi sampai diperoleh produk yang diinginkan.
5.
Pengumpulan Kebutuhan
Perbaikan Prototype
Perancangan Cepat
Evaluasi Prototype
Bangun Prototype
29
bagi perangkat lunak. Hasil penambahan yang pertama biasanya merupakan produk inti yang mewakili kebutuhan dasar dari sistem. Produk inti inilah yang nantinya akan ditambah terus-menerus sampai didapat produk yang lengkap dan memenuhi kebutuhan pemakai (lihat Gambar 2.6).
penambahan pertama Analisis Perancangan Implementasi Pengujian hasil penambahan pertama
penambahan kedua
Analisis
Perancangan
Implementasi
Pengujian
. . .
penambahan ke-n Analisis Perancangan Implementasi Pengujian hasil akhir / produk lengkap
Gambar 2.6 Model Proses Incremental (Sumber: Pressman [PRE01]) Sebagai gambaran, misalkan dikembangkan perangkat lunak text editor. Hasil penambahan pertama mungkin berupa text editor dengan fasilitas untuk membentuk, membuka, menyunting, dan menyimpan dokumen teks. Pada penambahan kedua, disertakan fasilitas untuk mengatur halaman dan mencetak. Dan pada penambahan berikutnya didapat produk akhir text editor yang sudah ditambahi dengan fasilitas pengaturan font, pencarian dan penggantian kata, serta fasilitas bantuan (help).
2. 3.
30
4.
Evaluasi pemakai Mendapatkan umpan balik dari pemakai berdasarkan hasil evaluasi produk yang direkayasa.
PERENCANAAN ANALISIS RESIKO
EVALUASI PEMAKAI
REKAYASA
2.
3.
4.
31
Sasaran RUP adalah menghasilkan perangkat lunak yang berkualitas tinggi, sesuai kebutuhan pemakai, dengan jadwal dan biaya sesuai dengan yang direncanakan
Gambar 2.8 Model Proses Pengembangan dengan RUP (Sumber: www.rational.com) Proses pengembangan pada RUP dinyatakan dalam dua dimensi, atau dua sumbu (lihat Gambar 2.8). sumbu horizontal (sumbu x) merepresentasi waktu dan menunjukkan aspek dinamis dari proses, yaitu siklus, tahap, iterasi, dan milestone. sumbu vertikal (sumbu y) merepresentasikan aspek statis dari proses, yaitu aktivitas, artifak, pelaksana kerja (worker) dan aliran kerja (workflow).
32
2.
Pemerincian (elaboration) Tahap untuk menentukan use case (set of activities) dari perangkat lunak berikut rancangan arsitekturnya. Konstruksi (construction) Membangun produk perangkat lunak secara lengkap yang siap diserahkan kepada pemakai. Transisi (transition) Menyerahkan perangkat lunak kepada pemakai, mengujinya di tempat pemakai, dan memperbaiki masalah-masalah yang muncul saat dan setelah pengujian.
3.
4.
3.
4.
5. 6.
Aliran Kerja Pendukung 1. Manajemen konfigurasi dan perubahan (configuration and change management) Mengendalikan perubahan dan memelihara artifak-artifak proyek. Manajemen proyek (project management) Mendeskripsikan berbagai strategi pekerjaan dengan proses yang berulang. Lingkungan (environment) Menangani infrastruktur yang dibutuhkan untuk mengembangkan sistem.
2.
3.
33
2.
3.
Contoh hasil pengembangan perangkat lunak dengan metode konvensional dapat dilihat pada Lampiran B.
34
Salah satu teknik yang paling populer untuk metode ini adalah Teknik Terstruktur (Structured Technique) yang meliputi analisis, perancangan, dan pemrograman. Pada teknik ini, hasil analisis dan perancangan dimodelkan dengan menggunakan alat bantu pemodelan seperti: 1. Diagram Aliran Data (Data Flow Diagram atau DFD) Digunakan untuk menggambarkan aliran data dalam sistem, sumber dan tujuan data, proses yang mengolah data tersebut, dan tempat penyimpanan datanya. Kamus Data (Data Dictionary) Digunakan untuk mendeskripsikan struktur dari data atau informasi yang mengalir (ada) dalam sistem. Spesifikasi Proses (Process Specification atau P-Spec) Digunakan untuk menggambarkan deskripsi dan spesifikasi dari setiap proses yang ada pada sistem, biasanya untuk proses-proses atomik, dengan menggunakan notasi yang disebut Structured English. Diagram Transisi Keadaan (State Transition Diagram atau STD) Digunakan untuk menggambarkan perilaku sistem, dan biasanya untuk sistem waktu nyata (real time). Diagram E-R Digunakan untuk menggambarkan hubungan (relationship) antara entitas-entitas dilihat dari aspek datanya (atau hubungan antar tempat penyimpanan). Bagan Terstruktur (Structure Chart) Digunakan untuk menggambarkan struktur atau arsitektur program. Pseudo-code Digunakan untuk menuliskan algoritma setiap modul program.
2.
3.
4.
5.
6. 7.
Penjelasan rinci untuk metode pengembangan berorientasi aliran data ini akan disampaikan pada Bab 5 dan 8.
35
Beberapa teknik pengembangan perangkat lunak berorientasi struktur data ini diantaranya adalah: Data Structured System Development (DSSD) Diperkenalkan pertama kali oleh J.D. Warnier (1974) dan kemudian oleh Ken Orr (1977) sehingga sering disebut juga teknik Warnier-Orr. Teknik ini menggunakan perangkat entity diagram, assembly line diagram dan Warnier-Orr diagram untuk memodelkan hasil analisis dan perancangannya. Jackson System Development (JSD) Dikembangkan oleh M.A. Jackson (1975) dengan menggunakan perangkat pemodelan yang disebut structure diagram dan system specification diagram.
Mahasiswa
Kontrak Kuliah
Pengambilan Kuliah
Penjadwalan
Penilaian
Gambar 2.9 Sudut Pandang Metode Berorientasi Objek vs Fungsi Beberapa teknik pengembangan perangkat lunak yang berorientasi objek ini diantaranya adalah: Object Oriented Analysis (OOA) dan Object Oriented Design (OOD) dari Peter Coad dan Edward Yourdon (1990).
36
Object Modeling Technique (OMT) dari James Rumbaugh, Michael Blaha, William Premerlan, Frederick Eddy dan William Lorensen (1991). Object Oriented Software Engineering (OOSE) dari Ivar Jacobson (1992). Metode Booch dari Grady Booch (1994). Syntropy dari Steve Cook dan John Daniels (1994).
Pembahasan rinci untuk metode pengembangan objek dijelaskan pada Bab 6 dan 9.
37
Rangkuman
1. Pengembangan perangkat lunak adalah salah satu proses dari berbagai proses yang ada dalam rekayasa perangkat lunak. Pada proses ini, kebutuhan pemakai ditransformasi menjadi perangkat lunak. Walaupun pelaksanaan proses pengembangan mungkin mempunyai ragam aktivitas yang berlainan, tetapi pada umumnya terdiri dari: 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 adalah cara atau strategi bagaimana mengembangkan perangkat lunak berdasarkan model proses, metode pengembangan, teknik, dan alat bantu tertentu sehingga produk perangkat lunak 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 mempunyai pendekatan, sudut pandang, dan kumpulan aturan tertentu. Jika diklasifikasi sesuai pendekatannya, dikenal empat metode pengembangan, yaitu metode konvensional, berorientasi fungsi, data, dan objek.
2.
3.
4.
Daftar Pustaka
[DAV93] Davis, Alan M., Software Requirements: Objects, Functions and States, Prentice-Hall International Editions, Englewood Cliffs, New Jersey, 1993. [DOD94] US Department of Defense, MIL-STD-498 Software Development and Documentation, 1994. [IEE93] The Institute of Electrical and Electronics Engineers, IEEE Std 610.12-1993 Standard Glossary of SW Engineering Terminology, 1993. The Institute of Electrical and Electronics Engineers; Electronic Industries Association (EIA), IEEE/EIA 12207.0 Standard for Information Technology - Software Life Cycle Processes, 1998.
[IEE98]
[JAC99] Jacobson, Ivar; Booch, Grady; and Rumbaugh, James The Unified Software Development Process, Addison Wesley, Reading, Massachusetts, 1999.
38
[LAR98] Larman, Craig, Applying UML and Paterns An Introduction to Object-Oriented Analysis and Design, Prentice-Hall PTR, Upper Saddle River, New Jersey, 1998. [PRE01] Pressman, Roger S., Software Engineering: A Practioners Approach, Fifth Edition, MacGraw-Hill International Editions, 2001. [RAT99] Rational Software, The Rational Unified Process, November, 1999.