Definisi Perangkat Lunak
merupakan program komputer yang berfungsi sebagai sarana interaksi
antara pengguna dan perangkat keras. Selain itu dapat juga dikatakan
sebagai ‘penterjemah’ perintah-perintah yang dijalankan pengguna
komputer untuk diteruskan ke atau diproses oleh perangkat keras.
Perangkat Lunak seharusnya memberikan pengguna kebutuhan fungsionalitas dan unjuk kerja yang dapat :
Maintanability = Perangkat Lunak harus dapat memenuhi perubahan kebutuhan
Dependability = Perangkat Lunak harus dapat dipercaya
Efisiensi = Perangkat Lunak harus efisien dalam penggunaan sumber daya
Usability = Perangkat Lunak harus dapat digunakan sesuai dengan yang direncanakan
Maintanability = Perangkat Lunak harus dapat memenuhi perubahan kebutuhan
Dependability = Perangkat Lunak harus dapat dipercaya
Efisiensi = Perangkat Lunak harus efisien dalam penggunaan sumber daya
Usability = Perangkat Lunak harus dapat digunakan sesuai dengan yang direncanakan
Macam-macam perangkat lunak :
Perangkat Lunak Sistem -> Merupakan software yang mengelola perangkat keras dan perangkat lunak yang digunakan komputer. Contoh : DOS, Macintosh, Windows, dll.
Perangkat Lunak Bahasa Pemograman -> Merupakan software yang berfungsi untuk membantu melakukan pembuatan program aplikasi komputer. Contoh : Visual Basic, C++, dll.
Perangkat Lunak Aplikasi -> Merupakan software yang berfungsi untuk membantu melakukan berbagai tugas perkantoran/aktivitas sehari-hari. Contoh : pengolah kata, pengolah gambar, lembar sebar, dll.
Perangkat Lunak Sistem -> Merupakan software yang mengelola perangkat keras dan perangkat lunak yang digunakan komputer. Contoh : DOS, Macintosh, Windows, dll.
Perangkat Lunak Bahasa Pemograman -> Merupakan software yang berfungsi untuk membantu melakukan pembuatan program aplikasi komputer. Contoh : Visual Basic, C++, dll.
Perangkat Lunak Aplikasi -> Merupakan software yang berfungsi untuk membantu melakukan berbagai tugas perkantoran/aktivitas sehari-hari. Contoh : pengolah kata, pengolah gambar, lembar sebar, dll.
Model Konvensional Proses Perangkat Lunak . Terdapat 4 jenis model, antara lain :
- Model aliran kerja (workflow) : Menunjukkan kegiatan pada proses bersama dengan input, output dan ketergantungannya. Merepresentasikan pekerjaan manusia.
- Model aliran data (data flow) : Merepresentasikan proses sebagai suatu set kegiatan yang melakukan transformasi data. Menunjukkan bagaimana input ke proses, misalnya spesifikasi ditransformasi menjadi output, misalnya menjadi desain.
- Model peran/aksi : Merepresentasikan peran orang yang terlibat pada perangkat lunak dan kegiatan yang menjadi tanggungjawab mereka.
- Model air terjun (waterfall) : Mengambil kegiatan dasar seperti spesifikasi, pengembangan, validasi dan evolusi dan merepresentasikannya sebagai fase-fase proses yang berbeda seperti spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan seterusnya.
Pengertian Rekayasa Perangkat Lunak atau Software Engineering
Istilah Rekayasa Perangkat Lunak (RPL) secara umum sebagai terjemahan dari istilah Software Engineering. Istilah Software Engineering dipopulerkan tahun 1968 pada Sofware Engineering Conference yang diselenggarakan oleh NATO.
Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat
program komputer. Padahal ada perbedaan yang mendasar antara perangkat
lunak (software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur
adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi
(O’ Brien, 1999). Pengertian RPL sendiri adalah sebagai berikut :
Suatu
disiplin Ilmu yang membahas semua aspek produksi perangkat lunak, mulai
dari tahap awal yaitu analisa kebutuhan pengguna, menentukan
spesifikasi dari kebutuhan pengguna, desain, pengkodean, pengujian
sampai memelihara system setelah digunakan.
Jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program komputer. Pernyataan “semua aspek produksi”
pada pengertian diatas, mempunyai arti semua hal yang berhubungan
dengan proses produksi seperti manajemen proyek, penentuan personil,
anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan
pengguna merupakan bagian dari RPL.
Tujuan Rekayasa Perangkat Lunak :
Gambar Tujuan RPL
Secara lebih khusus kita dapat menyatakan tujuan RPL adalah :
Memperoleh biaya produksi perangkat lunak yang rendah
Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis Platform
Menghasilkan perangkat lunak yang biaya perawatannya rendah
Memperoleh biaya produksi perangkat lunak yang rendah
Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis Platform
Menghasilkan perangkat lunak yang biaya perawatannya rendah
· Sofware requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak
· Software design mencakup proses penentuan arsitektur, komponen, antarmuka dan karakteristik lain dari perangkat lunak
· Software construction berhubungan dengan detil pengembangan perangkat lunak termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan
· Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak
· Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan
· Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu
· Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak
· Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL
· Software engineering process berhubungan dengan definisi, implementasi, pengukuran, pengelolaan, perubahan dan perbaikan proses RPL
· Software quality menitikberatkan pada kualitas dan daur hidup perangkat lunak
Setelah mempelajari Rekayasa Perangkat Lunak mahasiswa diharapkan mampu :
Memahami karakteristik umum model proses dalam rekayasa perangkat lunak
Menyebutkan beberapa model rekayasa perangkat lunak
Mengetahui prinsip-prinsip dari metode waterfall, prototyping dan univied process
Memahami tahapan-tahapan dalam rekayasa Perangkat Lunak
Memahami karakteristik umum model proses dalam rekayasa perangkat lunak
Menyebutkan beberapa model rekayasa perangkat lunak
Mengetahui prinsip-prinsip dari metode waterfall, prototyping dan univied process
Memahami tahapan-tahapan dalam rekayasa Perangkat Lunak
RPL telah memiliki sejarah yang cukup panjang, arah perkembangan yang saat ini sedang dikembangkan antara lain meliputi :
Metode Rekayasa Perangkat Lunak :
Deskripsi Model -> Deskripsi pemodelan dengan grafik
Aturan -> Batasa yang digunakan pada model sistem
Rekomendasi -> Saran dalam membentuk perancangan yang baik
Petunjuk Proses -> Aktifitas yang harus diikuti
Deskripsi Model -> Deskripsi pemodelan dengan grafik
Aturan -> Batasa yang digunakan pada model sistem
Rekomendasi -> Saran dalam membentuk perancangan yang baik
Petunjuk Proses -> Aktifitas yang harus diikuti
Ada 4 kegiatan/aktivitas pada proses perangkat lunak :
- · Spesifikasi Perangkat Lunak : Fungsionalitas perangkat lunak dan batasan kemampuasn operasinya harus didefinisikan
- · Pengembangan (Perancangan dan Implementasi) Perangkat Lunak : Perangkat lunak yang memenuhi spesifikasi harus diproduksi
- · Validasi Perangkat Lunak : Perangkat Lunak harus divalidasi untuk menjamin bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan
- · Evolusi Perangkat Lunak : Perangkat Lunak harus berkembang untuk memenuhi kebutuhan pelanggan
Rancangan Pemodelan Logis
- Use Case Diagram
Metode Pengembangan Perangkat Lunak - Evolusioner
Kali ini saya akan membahas mengenai metode pengembangan
perangkat lunak model evolusioner. sebenarnya metode ini bisa di
pisah menjadi 2 metode, tetapi beberapa referensi yang saya dapat menyatakan
bahwa metode spiral dan incremental masuk ke dalam metode evolusioner. saya
tidak akan membahas mengenai perbedaan kesepakan tetapi saya akan menjelaskan
sedikit mengenai metode tersebut. Metode pengembangan perangkat lunak
model evolusioner adalah model iterative, ditandai dengan
tingkah laku yang memungkinkan perekayasa perangkat lunak
mengembangkan versi perangkat lunak yang lebih lengkap sedikit
demi sedikit. Kebutuhan produk dan bisnis kadang-kadang berubah seiring dengan
laju perkembanganya. Dalam situasi tersebut maupun lainya, perekayasa perangkat
lunak membutuhkan sebuah model proses yang sudah dirancang secara
eksplisit untuk mengakomodasi perkembangan produk sepanjang waktu. Model ini
bukan termasuk metode pengembangan perangkat lunak klasik.
Model evolusioner meliputi :
A. Model pertambahan
Metode pengembangan perangkat lunak secara incremental menggabungkan
elemen-elemen model sekuensial linier (diaplikasikan secara berulang) dengan
filosofi prototype iterative. Model ini memakai urutan-urutan linier di dalam
model yang membingungkan, seiring dengan laju waktu kalender. Setiap urutan
linier menghasilkan pertambahan, perangkat lunak “yang bisa
disampaikan.” Contoh, perangkat lunak pengolah kata yang
dikembangkan dengan menggunakan paradigm pertambahan akan menyampaikan
manajemen file, editing, serta fungsi penghasilan dokumen pada pertambahan pertama,
dan selanjutnya. Pertambahan pertama dapat disebut sebagai produk inti (core
product).
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 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.
Gb. Model Incremental
Perkembangan pertambahan, khususnya berguna pada staffing, tidak bisa dilakukan menggunakan implementasi lengkap oleh batas waktu bisnis yang sudah disepakati untuk proyek tersebut. jika produk inti diterima dengan baik, maka staf tambahan bisa ditambahkan untuk mengimplementasi pertambahan selanjutnya.
B. Model spiral
Awalnya diusulkan oleh Boehm (BOE88), adalah metode
pengembangan perangkat lunak yang evolusioner,
merangkai sifat iterative dari prototype dengan cara control dan aspek
sistematis dari model sekuensial linier. Model yang berpotensi untuk
pengembangan versi pertambahan perangkat lunak secara cepat.
Model spiral dibagi menjadi sejumlah aktifitas kerangka kerja atau wilayah
tugas, antara lain :
- Komunikasi pelanggan, tugas-tugas yang dibutuhkan untuk membangun komunikasi yang efektif diantara pengembang dan pelanggan.
- Perencanaan, tugas-tugas yang dibutuhkan untuk mendefinisikan sumber-sumber daya, ketepatan waktu, dan proyek informasi lain yang berhubungan.
- Analisis resiko, tugas-tugas yang dibutuhkan untuk menaksir resiko-resiko, baik manajemen maupun teknis.
- Perekayasaan, tugas-tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari aplikasi tersebut.
- Konstruksi dan peluncuran, tugas-tugas yang dibutuhkan untuk mengkonstruksi, menguji, memasang (instal), dan memberikan pelayanan kepada pemakai (contohnya pelatihan dan dokumentasi)
- Evaluasi pelanggan, tugas-tugas untuk memperoleh umpan balik dari pelanggan dengan didasarkan pada evaluasi representasi perangkat lunak, yang dibuat selama masa perekayasaan, dan dimplementasikan selama masa pemasangan.
Metode
pengembangan perangkat lunak spiral menjadi pendekatan yang realistis bagi
perkembangan system dan perangkat lunak skala besar. Karena perangkat
lunak terus bekerja selama proses bergerak, pengembang dan
pemakai memahami, dan bereaksi lebih baik terhadap resiko dari Setiap tingkat
evolusi. Model spiral menggunakan prototype sebagai mekanisme pengurangan
resiko.
Model spiral membutuhkan keahlian penafsiran resiko yang masuk akal, dan sangat bertumpu pada keahlian ini untuk mencapai keberhasilan. Jika sebuah resiko tidak dapat ditemukan dan diatur, pasti akan terjadi masalah. Model ini membutuhkan waktu bertahun-tahun sampai kehandalannya bisa dipertimbangkan dengan kepastian absolute.
Metode Pengembangan Perangkat Lunak - Evolusioner
Model ini menggabungkan beberapa karakteristik model
spiral. Bersifat evolusioner, sehingga membutuhkan
pendekatan iterative untuk menciptakan perangkat lunak. Tetapi
model ini merangkai aplikasi dari komponen perangkat lunak
sebelum dipaketkan (kadang disebut kelas).
Aktivitas pengembangan perangkat lunak dimulai dengan identifikasi calon kelas. Dipenuhi dengan mengamati data yang akan dimanipulasi oleh aplikasi dan algoritma-algoritma yang akan diaplikasikan. Data dan algoritma yang berhubungan dikemas ke dalam kelas. Kelas-kelas tersebut disimpan dalam class library (tempat penyimpanan).
Aktivitas pengembangan perangkat lunak dimulai dengan identifikasi calon kelas. Dipenuhi dengan mengamati data yang akan dimanipulasi oleh aplikasi dan algoritma-algoritma yang akan diaplikasikan. Data dan algoritma yang berhubungan dikemas ke dalam kelas. Kelas-kelas tersebut disimpan dalam class library (tempat penyimpanan).
Model ini membawa pada penggunaan kembali perangkat lunak, dan kegunaan kembali itu memberi sejumlah keuntungan yang bisa diukur pada pengembangan perangkat lunak.
Metode Pengembangan Perangkat Lunak (RAD)
Metode Pengembangan Perangkat Lunak (RAD)
Metode pengembangan perangkat lunak yang akan saya bahas adalah model
raid aplication development atau yang biasa disebut dengan metode RAD, Metode
ini di dalam pengembangannya menggunakan semua sumberdaya yang ada dengan
tujuan pengembangan perangkat lunak yang sangat cepat dan singkat. Dan
boleh dikatakan ini merupakan model pengembangan perangkat lunak secara linear
sequential yang menekankan pada siklus pengembangan yang sangat singkat atau
pendek. Jika kebutuhan dipahami dengan baik, proses metode
pengembangan perangkat lunak RAD memungkinkan tim pengembangan
menciptakan “sistem fungsional yang utuh” dalam periode waktu yang sangat
pendek (kira-kira 60-90 hari). Pendekatan RAD model menekankan cakupan :
a. Pemodelan bisnis (Bussiness Modelling)
Aliran informasi diantara fungsi-fungsi bisnis dimodelkan
dengan suatu cara untuk menjawab pertanyaan-pertanyaan berikut : Informasi apa
yang mengendalikan proses bisnis ? Kemana informasi itu pergi? Siapa yang
memprosesnya ?
b. Pemodelan data (Data Modelling)
Aliran informasi yang didefinisikan sebagai bagian dari
fase pemodelan bisnis disaring ke dalam serangkaian objek data yang dibutuhkan
untuk menopang bisnis tersebut. Karakteristik/attribut dari masing-masing objek
diidentifikasi dan hubungan antara objek-objek tersebut didefinisikan.
c. Pemodelan proses (Process Modelling)
Aliran informasi yang didefinisikan dalam fase pemodelan
data ditransformasikan untuk mencapai aliran informasi yang perlu bagi
implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk
menambah, memodifikasi, menghapus atau mendapatkan kembali sebuah objek data.
d. Pembuatan aplikasi (Application generation)
Selain menciptakan perangkat lunak dengan menggunakan
bahasa pemrograman generasi ketiga yang konvensional, metode
pengembangan perangkat lunak RAD lebih banyak memproses kerja untuk
memakai lagi komponen program yang telah ada atau menciptakan komponen yang
bisa dipakai lagi. Pada semua kasus, alat-alat Bantu otomatis dipakai untuk
memfasilitasi kontruksi perangkat lunak.
e. Pengujian dan pergantian (Testing and turnover)
Karena proses metode pengembangan perangkat
lunak RAD menekankan pada pemakaian kembali, banyak komponen yang
telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tapi komponen baru
harus diuji
Metode Pengembangan Perangkat Lunak (RAD)
Kelemahan model RAD :
- Untuk proyek dengan skala besar, metode pengembangan perangkat lunak RAD membutuhkan sumber daya manusia yang cukup untuk membentuk sejumlah tim RAD yang baik.
- Metode pengembangan perangkat lunak RAD membutuhkan pengembang dan pemakai yang mempunyai komitmen dalam aktivitas rapid-fire untuk melaksanakan aktivitas melengkapi sistem dalam kerangka waktu yang singkat. Jika komitmen tersebut tidak ada, proyek RAD gagal.
- Tidak semua aplikasi sesuai untuk metode pengembangan perangkat lunak RAD.bila sistem tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat problematic. RAD menjadi tidak sesuai jika risiko teknisnya tinggi.
METODE PENGEMBANGAN PERANGKAT LUNAK (Prototype)
Metode Pengembangan Perangkat Lunak (Prototype)
Metode pengembangan perangkat lunak yang akan saya bahas adalah model
prototype, seperti tulisan yang sebelumnya yang membahas metode pengembangan perangkat lunak
model sekuel linier. Metode ini memiliki 3 unsur yang perlu
diperhatikan di dalam pengembangan perangkat lunak yaitu kebutuhan
pelanggan, pembuatan pasar atau market dan uji coba kebutuhan pasar. Secara
garis besar dapat terlihat pada gambar berikut ini
Metode Prototyping sebagai suatu paradigma baru dalam metode pengembangan perangkat lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia pengembangan perangkat lunak tetapi juga merevolusi mwtode pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal dengan nama SDLC. Metode Prototype merupakan metode pengembangan perangkat lunak yang memodelkan dari sistem kerja suatu perangkat lunak yang belum lengkap dari pihak user. Para pengembang perangkat lunak melakukan koordinasi dan pertemuan-pertemuan yang secara intensif dengan user guna menampung informasi yang akan dijadikan dasar dalam perancangan perangkat lunak. Prototype dari perangkat lunak yang dihasilkan kemudian dipresentasikan kepada dan user diberikan kesempatan untuk memberikan masukan masukan sehingga perangkat lunak yang dihasilkan nantinya betul-betul sesuai dengan keinginan dan kebutuhan user.
Perubahan dan presentasi prototype ini dapat dilakukan berkali-kali sampai dicapai kesepakatan bentuk perangkat lunak yang akan dipakai
Metode Pengembangan Perangkat Lunak (Prototype)
Metode pengembangan perangkat lunak ini dimulai dengan pengumpulan
kebutuhan. Pendekatan prototyping model digunakan jika pemakai hanya
mendefenisikan secara umum dari perangkat lunak tanpa merinci
kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu
yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk antarmuka
manusia-mesin yang harus diambil. Cakupan aktivitas dari prototyping model
terdiri dari :
- Mendefinisikan objektif secara keseluruhan dan mengidentifikasi kebutuhan yang sudah diketahui.
- Melakukan perancangan secara cepat sebagai dasar untuk membuat prototype.
- Menguji coba dan mengevaluasi prototype dan kemudian melakukan penambahan dan perbaikan-perbaikan terhadap prototype yang sudah dibuat.
secara ideal prototype
berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan perangkat
lunak. Bila prototype yang sedang bekerja dibangun, pengembang harus
menggunakan fragmen-fragmen program yang ada atau mengaplikasikan alat-alat
bantu (contoh: window manager, dsb) yang memungkinkan program yang bekerja agar
dimunculkan secara cepat.
Kelemahan prototyping model :
- Pelanggan yang melihat working version dari model yang dimintanya tidak menyadari, bahwa mungkin saja prototype dibuat terburu-buru dan rancangan tidak tersusun dengan baik
- Pengembang kadang-kadang membuat implementasi sembarang, karena ingin working version bekerja dengan cepat.
Metode
pengembangan perangkat lunak model prototype dirancang agar dapat menerima
perubahan-perubahan dalam rangka menyempurnakan protitype yang sudah ada
sehingga pada akhirnya dapat menghasilkan perangkat lunak yang
dapat diterima dan perubahan-perubahan yang terjadi dapat dianggap merupakan
bagian dari proses pengembangan itu sendiri.
Kesalahan dalam pembuatan DAD:
1.
Entitas mengirim aliran data pada entitas
Seharusnya
2.
Proses memiliki input saja/black hole
Seharusnya
3.
Proses memiliki output saja
Seharusnya
4.
Entitas mengakses langsung dta storage
Seharusnya
5.
Data storage mengirim data pada data storage
Seharusnya
1.
Diagram
siatem informasi penggajian
2.
Kasus pemesanan kereta api on line
DAD level 0 sistem informasi pemesanan
kereta api online
DAD level 1 sistem pemesanan kereta api online
3.
Kasus Pemesanan baju online
DAD level 0 Pemesanan
baju online
DAD level 1 pemesanan
baju online
Kesimpulan RPL :
· Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi
· Program adalah kumpulan perintah yang dimengerti oleh komputer
· Prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi
· RPL
adalah suati disiplin ilmu yang membahas semua aspek produksi perangkat
lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna,
menentukan spesifikasi dari kebutuhan pengguna, desain, pengkodean,
pengujian sampai pemeliharaan sistem setelah digunakan
· Tujuan RPL adalah menghasilkan perangkat lunak dengan kinerka tinggi, tepat waktu, berbiaya rendah dan multiplatform
· RPL
merupakan sub bidang ilmu komputer yang dalam penerapannya membutuhkan
dukungan baik dari sub bidang ilmu komputer lainnya maupun bidang-bidang
ilmu lain
· Sertifikasi untuk bidang RPL belum tersedia namun mengacu pada bidang Programmer
· Masalah
(problem) adalah perbedaan antara kondisi yang terjadi dan kondisi yang
diharapkan dan gejala adalah tanda/petunjuk terjadinya suatu masalah
· Model-model
rekayasa perangkat lunak pada umumnya mengacu pada model proses
pengembangan sistem yang disebut System Development Life Cycle (SDLC)
- · Model pengembangan perangkat lunak yang sekarang umum digunakan adalah The Waterfall Model, Prototyping Model dan Unified Process (UP)