Makalah Rekayasa Perangkat Lunak
Oleh :
NOVITA YULIANTI
NPM : 14010016
Kelas : TI B2
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS DEHASEN BENGKULU
2017
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan Kehadirat Tuhan Yang Maha Esa atas Rahmat dan Hidayahnya lah penulis mampu menulis dan menyelesaikan Makalah Rekayasa Perangkat Lunak ini.. Dalam penyusunan Makalah Rekayasa Perangkat Lunak ini, Penulis banyak menerima bimbingan, bantuan, dorongan serta dukungan dari berbagai pihak. Semoga Allah SWT melimpahkan Rahmat dan Hidayahnya kepada semua pihak yang telah membantu sampai terselesainya makalah ini.
Penulis menyadari sepenuhnya dalam penyusunan makalah ini, masih banyak terdapat kekurangan dan kelemahan yang dimiliki penulis baik itu sistematika penulisan maupun penggunaan bahasa. Untuk itu penulis mengharapkan saran dan kritik dari berbagai pihak yang bersifat membangun demi penyempurnaan makalah ini. Semoga makalah ini berguna bagi pembaca secara umum dan penulis secara khusus. Akhir kata penulis ucapkan banyak terima kasih.
Bengkulu, 13 Oktober 2017
Penulis
BAB I
REKAYASA PERANGKAT LUNAK
1. Jelaskan tentang Rekayasa Perangkat Lunak meliputi :
1.1 Latar Belakang Disiplin Rekayasa Perangkat Lunak
Rekayasa perangkat lunak adalah disiplin rekayasa dengan perangkat lunak yang dikembangkan. Biasanya proses melibatkan penemuan pada keinginan klien, menyusunnya di dalam daftar kebutuhan, perancangan, pengodean, pengujian, dan pengintegrasian bagian yang terpisah, menguji keseluruhan, penyebaran dan pemeliharaan perangkat lunak.
Disiplin masih berada dalam pertumbuhannya (tahap awal perkembangan/pengembangan) sebagai suatu disiplin rekayasa. Kita tidak pernah mempunyai pengalaman yang cukup, maupun kumpulan data empiris yang cukup untuk secara sistematis memahami dan meramalkan siklus hidup proyek perangkat lunak.
1.2 Krisis Perangkat Lunak
Adalah sekumpulan masalah yang ditemukan dalam pengembangan software komputer. Masalahnya tidak hanya terbatas pada software yang tidak berfungsi sebagaimana mestinya, tetapi krisis software ini terdiri dari masalah yang berhubungan dengan :
a. Bagaimana mengembangkan software.
b. Bagaimana memelihara software yang ada, yang berkembang dalam jumlah yang besar.
c. Bagaimana mengimbangi permintaan software yang makin besar.
1.3 Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak Menurut Fritz Bauer : “Penerapan dan pemanfaatan prinsip-prinsip rekayasa untuk menghasilkan perngkat lunak yang ekonomis yang handal dan bekerja secara efisisen pada mesin-mesin yang nyata” Karakteristik Perangkat Lunak Dikembangkan atau direkayasa, tidak dibuat dalam pengertian pada umumnya. Tidak ‘lapuk’ atau mengalami penyusutan secara fisis.
Pada umumnya dibuat secara khusus, tidak disusun dari komponen-komponen yang telah ada. Problem Perangkat Lunak Perangkat lunak tidak berfungsi secara baik (kualitas yang kurang).Ketidaktepatan penjadwalan proses dan biaya produksi. Produktivitas yang belum dapat memenuhi tuntutan kebutuhan pemakai. Pemeliharaan yang sukar. Perkembangan teknologi perangkat keras di luar kemampuan programmer untuk membuat perangkat lunak yang dapat memanfaatkan potensi perangkat keras secara maksimal.
Rekayasa perangkat lunak (RPL atau SE [Software Engineering]) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak, dan sebagainya.
Pada tahun 2004, istilah rekayasa perangkat lunak secara umum digunakan dalam tiga arti, yaitu:
a. Sebagai istilah umum untuk berbagai kegiatan yang dulunya bernama pemrograman atau analisis sitem,
b. Sebagai istilah yang luas untuk analisis teknis dari semua aspek-aspek praktis yang bertentangan dengan teori pemrograman computer, dan
c. Sebagai istilah yang mewujudkan advokasi suatu pendekatan spesifik ke pemrograman computer, satu hal yang mendesak yang diperlakukan sebagai profesi rekayasa daripada sebuah seni atau kerajinan, dan advokasi dari kodifikasi praktis yang disarankan dalam bentuk metodologi rekayasa perangkat lunak.
1.4 Mutu Perangkat Lunak
Terdapat 3 pihak (minimal) yang mempengaruhi mutu P.L yaitu
a. Sponsor
Seseorang atau organisasi yang membiayai/membayar selama pengembangan atau perantaraan sistem software dan biasanya mempunyai respon terhadap pengembangan sistem software itu sendiri dengan melibatkan perhitungan biaya yang optimal.
b. User
Setiap orang yang secara langsung berinteraksi terhadap eksekusi software, yang secara langsung memberi input ke komputer dan menggunakan/menikmati output dari komputer.
c. Developer
Seseorang atau organisasi yang memberikan modifikasi dan memelihara terhadap error serta mengembangkan sistem software tersebut.
1.5 Karakteristik Perangkat Lunak
a. Sebuah Perangkat Lunak itu dikembangkan dan tidak diproduksi masal seperti pada umumnya perangkat keras. Disini sebuah perangkat lunak hanya dibuat satu dan tidak dibuat dalam jumlah yang banyak sedangkan perangkat keras dibuat dalam jumlah besar.
b. Sebuah Perangkat Lunak tidak pernah Usang. Hal ini sangat berbeda dengan perangkat keras, dimana sebuah perangkat keras akan usang dimakan waktu. Perhatikan saat kita membeli sebuah Gadget dengan Spek Processor Snapdragon 835, Ram 8 GB, Rom 64 GB, Kamera 16 MB, maka perangkat Gadget ini semakin lama akan usang dan dengan ditandai biasanya adalah PERFORMANSI dari Perangkat Keras yang menurun, Harga yang semakin murah, dan lain-lainnya (Soumyakanti, 2017).
c. Beberapa Perangkat Lunak dikembangkan secara custom (pesanan) sedangkan Perangkat Keras dikembangkan berdasarkan sistem Component-Based Assembly. Disini sebuah perangkat lunak selain dikembangkan dengan cara umumnya, beberapa perangkat lunak juga ada yang dikembangkan dengan cara pesanan.
1.6 Proses Perangkat Lunak
Proses perangkat lunak adalah serangkaian kegiatan dan hasil-hasil relevannya yang menghasilkan perangkat lunak (sebagian besar dilakukan oleh perekayasa perangkat lunak).
Ada 4 macam kegiatan/aktivitas pada proses perangkat lunak :
a. Spesifikasi Perangkat Lunak : Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.
b. Pengembangan Perangkat Lunak : Perangkat lunak yang memenuhi spesifikasi harus diproduksi.
c. Validasi Perangkat Lunak : Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan.
d. Evolusi Perangkat Lunak : Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan.
1.7 Karakteristik Proses Perangkat Lunak
Understandability => membuat proses secara eksplisit didefinisikan dan bagaimana sehingga mudah untuk mengerti definisi proses
Visibility => Aktifitas proses menghasilkan hasil yang jelas sehingga tahapan proses yang dilakukan terlihat
Supportability => Aktifitas Proses dapat didukungatas CASE tools
Acceptability => Penerimaan atas proses yangterdefinisi dan yang digunakan oleh Engineer selama pembangunan Produk Perangkat Lunak.
Reliability=>Proses didesain dalam suatumetode untuk dihindarkan dari kesalahan
Robustness => Proses dapat meneruskan dalam masalah yang tidak diharpkan terjadiMaintainabiity => Proses yang merefleksi atas perubahan permintaan atau perbaikan proses yang diidentifikasi
Rapidity => bagaimana cepat dapat berjalan atas proses pengiriman atau implementasi sebuah sistem dari Spesifikasi yang ada sampai selesai.
1.8 Daur Hidup Pembangunan perangkat Lunak
2. Jelaskan Tentang Pengembangan dan Siklus Pengembangan Rekayasa Perangkat Lunak dan model proses pengembangan perangkat lunak
Perangkat lunak adalah suatu benda tak berwujud (intangible) yang berpasangan dengan perangkat keras yang dibuat untuk memenuhi suatu maksud atau tujuan tertentu. Tujuan atau maksud ini bisa jadi bagian dari sebuah sistem atau bahkan sistem itu sendiri. Manusia berperan dalam membangun atau membuat kedua perangkat tersebut, dan berperan untuk menggunakan atau menerima hasilnya.
Misalnya perangkat lunak personalia, perangkat lunak tersebut dijalankan pada suatu komputer (perangkat keras) untuk menangani masalah-masalah yang terkait dengan pengelolaan sumber daya manusia sebuah perusahaan. Ada orang-orang yang terlibat dalam mengembangkan perangkat lunak dan ada orang-orang yang menjalankan atau memakainya. Dari penjelasan di atas dapat dilihat ada beberapa hal atau elemen yang terlibat, yaitu perangkat lunak, perangkat keras, pembuat perangkat lunak,pemakai perangkat lunak dan masalah.
Pada Umumnya terdapat 4 siklus hidup pengembangan software Yaitu :
Pada Umumnya terdapat 4 siklus hidup pengembangan software Yaitu :
A. Model Sekuensial Linier atau Waterfall Development Model
Berikut Merupakan Tahapan – tahapan Pengembangan Model Sekuensial Linear / Waterfall Development Model :
1. Rekayasa dan pemodelan sistem/informasi
2. Analisis kebutuhan perangkat lunak
3. Desain
4. Pengkodean
5. Pengujian
6. Pemeliharaan
Kelebihan Model Sekuensial Linear / Waterfall Development Model :
a. Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
b. Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
c. Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
d. Documen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
Kekurangan Model Sekuensial Linear / Waterfall Development Model :
a. Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapatkan tim pengembang harus diubah kembali/iterasi sering menyebabkan masalah baru.
b. Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
c. Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
d. Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap sebelumnya sudah benar-benar selesai.
e. Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat produk.
f. Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.
B. Model Prototype
Teknik – teknik Prototyping Meliputi :
1. Perancangan Model
2. Perancangan Dialog
3. Simulasi
Berikut adalah 4 langkah yang menjadi karakteristik dalam proses pengembangan pada metode prototype, yaitu :
a. Pemilihan fungsi
b. Penyusunan Sistem Informasi
c. Evaluasi
d. Penggunaan Selanjutnya
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Prototype, yaitu :
a. Pengumpulan kebutuhan
b. Membangun prototyping
c. Evaluasi protoptyping
d. Mengkodekan system
e. Menguji system
f. Evaluasi Sistem
g. Menggunakan sistem
Kelebihan Model Prototype :
a. Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
b. Penentuan kebutuhan lebih mudah diwujudkan.
c. Mempersingkat waktu pengembangan produk perangkat lunak.
d. Adanya komunikasi yang baik antara pengembang dan pelanggan.
e. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
f. Lebih menghemat waktu dalam pengembangan sistem.
g. Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.
Kekurangan Model Prototype :
a. Proses analisis dan perancangan terlalu singkat.
b. Biasanya kurang fleksibel dalam mengahadapi perubahan.
c. Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
d. Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.
C. Model Rapid Application Development (RAD)
Rapid Aplication Development (RAD) adalah sebuah model proses perkembanganperangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen.
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Rapid Application Development (RAD), yaitu :
1. Bussiness Modeling
2. Data Modeling.
3. Proses Modeling
4. Aplication Generation
5. Testing dan Turnover
Kelebihan Model RAD :
a. Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
b. Cocok untuk proyek yang memerlukan waktu yang singkat.
c. Model RAD mengikuti tahap pengembangan sistem seperti pada umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuatnya dari awal lagi sehingga waktu pengembangan menjadi lebih singkat dan efisien.
Kekurangan Model RAD :
a. Model RAD menuntut pengembangan dan pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal.
b. Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat bermasalah.
c. RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
d. Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.
e. Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.
D. Model Evolutionary Development / Evolutionary Software Process Models
Model Evolutionary Development bersifat iteratif (mengandung perulangan). Hasil prosesnya berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Model Evolutionary Development / Evolutionary Software Process terbagi menjadi 2, yaitu :
1. Model Incremental
Model Incremental merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear sekuensial (waterfall) dengan Model Prototype. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.
Model ini berfokus pada penyampaian produk operasional dalam Setiap pertambahanya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai. Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas.
Kelebihan Model Incremental :
a. Personil bekerja optimal.
b. mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim kerja yang banyak untuk menjalankannya.
c. Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
d. Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya setiap bagian demi bagian.
e. Memaksimalkan pengembalian modal investasi konsumen.
Kekurangan Model Incremental :
a. Tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding).
b. Sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.
2. Model Spiral / Model Boehm
Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya. Model ini dikenal dengan sebutan Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses pengerjaan proyek.
Tahap-tahap model ini dapat dijelaskan secara ringkas sebagai berikut :
a. Tahap Liason : pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai.
b. Tahap Planning (perencanaan) : pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.
c. Tahap Analisis Resiko : mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
d. Tahap Rekayasa (engineering) : pembuatan prototipe.
e. Tahap Konstruksi dan Pelepasan (release) : pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
f. Tahap Evaluasi : Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
Kelebihan model ini adalah sangat mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala besar. Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk mencerminkan keadaan sebenarnya. Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.
Kekurangan model ini adalah waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar. Selain itu, sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko. Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk diterapkan.
3. WINWIN Spiral Model
Dalam hal ini win win merupakan situasi kemenangan antara tim pengembang dan pelanggan. Yang membedakan antara win win spiral model dan spiral model adalah setelah selesai mendapatkan feed back dari pelanggan, tim pengembang perangkat lunak dan pelanggan akan kembali melakukan negosiasi untuk perkembangan perangkat lunak tersebut.
Tahapan-tahapan WINWIN Spiral model:
a. Identifikasi kunci sistem atau subsistem dari yang berkepentinagn
b. Penentuan kondisi kemenangan dari yang berkepentingan
c. Negosiasi kondisi menang yang berkepentingan agar terjadi kedamaian.
Berikut ada beberapa kelebihan dan kekurangan WINWIN Spiral Model
Kelebihan :
a. Sama sama adanya kesepakatan developer dengan customer
b. Terdapat kepuasan dan keuntungan antara developer dengan customer karena aplikasi yang dijalankan dengan negoisasi sesuai kesepakatan
c. Sangat efektif untuk digunakan karena kesepakatan antara developer dengan customer sama-sama disepakati sehingga tidak akan menimbulkan ketidak puasan customer
Kekurangan :
a. Membutuhkan waktu yang cukup lama2.Seringkali pada awalnya customer dengan developer mengalami kecekcokkan pada saat negoisasi
4. Component Based Development
Component-based development sangat berkaitan dengan teknologi berorientasi objek. Pada pemrograman berorientasi objek, banyak class yang dibangun dan menjadi komponen dalam suatu software. Class-class tersebut bersifat reusable artinya bisa digunakan kembali. Model ini bersifat iteratif atau berulang-ulang prosesnya.
Secara umum proses yang terjadi dalam model ini adalah:
a. Identifikasi class-class yang akan digunakan kembali dengan menguji class tersebut dengan data yang akan dimanipulasi dengan aplikasi/software dan algoritma yang baru
b. Class yang dibuat pada proyek sebelumnya disimpan dalam class library, sehingga bisa langsung diambil dari library yang sudah ada. Jika ternyata ada kebutuhan class baru, maka class baru dibuat dengan metode berorientasi objek.
c. Bangun software dengan class-class yang sudah ditentukan atau class baru yang dibuat, integrasikan.
Penggunaan kembali komponen software yang sudah ada menguntungkan dari segi:
a. Siklus waktu pengembangan software,Karena mampu mengurangi waktu 70%.
b. Biaya produksi berkurang sampai 84% arena pembangunan komponen berkurang
Pembangunan software dengan menggunakan komponen yang sudah tersedia dapat menggunakan komponen COTS (Commercial off-the-shelf) – yang bisa didapatkan dengan membeli atau komponen yang sudah dibangun sebelumnya secara internal. Component-Based Software Engineering (CBSE) adalah proses yang menekankan perancangan dan pembangunan software dengan menggunakan komponen software yang sudah ada. CBSE terdiri dari dua bagian yang terjadi secara paralel yaitu software engineering (component-based development) dan domain engineering.
Berikut adalah beberapa kekurangan dan kelebihan dari Component Based Development :
Kelebihan model ini adalah tinggal mencaplok atau menggunakan program atau komponen yang sudah ada dan menyusunnya menjadi sebuah program yang lebih kompleks dan berkembang sesuai dengan kebutuhan user/pengguna sehingga dapat mengefisienkan penggunaan waktu dan tenaga.Selain itu,model ini juga menyediakan kemampuan untuk memvisualisasikan hasil rakitan dengan kesanggupan untuk mengukur, menganalisa, merancang dan merancang ulang program.
Kekurangan model ini adalah seringnya program atau komponen-komponen terdahulu tidak kompatibel atau sejalan dengan model perakitan komponen ini sehingga untuk perusahaan berskala kecil akan kesulitan menemukan komponen yang sesuai untuk dirakit.
6. Formal Method Model
Teknik formal method adalah teknik yang mengandalkan perhitungan matematika dalam setiap prosesnya. Hanya digunakan pada sistem yang sangat memperhatikan keamanan atau keselamatan dari pengguna. Contoh penggunaan teknik ini adalah aerospace engineering.
Keuntungan menggunakan teknik formal method adalah meminimalkan resiko dengan adanya perhitungan komputasi.
Sedangkan kerugiannya adalah:
1. Biaya Tinggi.
2. Kompleks
3. Tidak Umum untuk Proyek Software pada umumnya
7. 4th Generation
Metode pengembangan perangkat lunak 4GT menggunakan perangkat bantu (tools) yang akan membuat kode sumber secara otomatis berdasarkan spesifikasi dari pengembang perangkat lunak. Hanya digunakan untuk menggunakan perangkat lunak yang menggunakan bahasa khusus atau notasi grafik yang diselesaikan dengan syarat yang dimengerti pemakai.
Cakupan aktivitas 4GT meliputi:
a. Pengumpulan kebutuhan, idealnya pelanggan akan menjelaskan kebutuhan yang akan ditranslasikan ke prototype operasional.
b. Translasi kebutuhan menjadi prototype operasional, atau langsung melakukan implementasi secara langsung dengan menggunakan bahasa generasi keempat (4GL) jika aplikasi relatif kecil.
c. Untuk aplikasi yang cukup besar, dibutuhkan strategi perancangan sistem walaupun 4GL akan digunakan.
d. Pengujian.
e. Membuat dokumentasi.
f. Melaksanakan seluruh aktivitas untuk mengintegrasikan solusi-solusi yang membutuhkan paradigma rekayasa perangkat lunak lainnya.
Kelebihan dari metode pengembangan perangkat lunak ini diantaranya :
1. Pengurangan waktu dan peningkatan produktivitas secara besar
2. Karena 4GT menggunakan 4GL yang merupakan bahasa pemrograman yang khusus dirancang dengan tujuan tertentu (spesifik), maka untuk permasalahan yang tertentu dengan 4GL tertentu pula sangat tepat menggunakan 4GT.
3. Tool yang menggunakan metode pengembangan perangkat lunak 4GL bisa meng-generate sistem dari output yang dihasilkan oleh CASE tools.
Kekurangan metode pengembangan perangkat lunak ini:
1. Penggunaan perangkat bantu (tools) dibandingkan dengan bahasa pemrograman, dan juga kode sumber yang dihasilkannya tidak efisien.
2. Untuk usaha yang besar, dibutuhkan pengembangan strategi desain untuk sistem, walau digunakan bahasa 4GL.
3. Penggunaan 4GT tanpa perencanaan matang (untuk proyek besar) akan menyebabkan kesulitan yang sama (kualitas dan pemeliharaan yang jelek, ketidakpuasan pelanggan) seperti dengan metode konvensional.
4. 4GL tidak selalu berhasil menghasilkan sistem yang diinginkan.