TUGAS RPL (PROJECT1) NPM GANJIL
Pengenalan Rekayasa Perangkat Lunak
1. Konsep dasar Rekayasa Perangkat Lunak (Software Engineering) :
2. Tanggung Jawab profesional dan etika
3. Siklus Hidup Perangkat Lunak (SWDLC/Software Development Life Cycle)
Perencanaan Proyek Prangkat Lunak
1.Observasi pada Estimasi
2.Tujuan Perencanaan Proyek
3.Ruang Lingkup Perangkat Lunak
4.Sumber Daya
5.Estimasi
Proyek Perangkat Lunak
Pengenalan Rekayasa Perangkat Lunak
Pengertian Dasar
Istilah Reakayasa Perangkat Lunak (RPL) secara umum disepakati
sebagai terjemahan dari istilah Software engineering. Istilah Software
Engineering mulai dipopulerkan pada tahun 1968 pada software 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 suatu
disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai
dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi
dari kebutuhan pengguna, disain, pengkodean, pengujian sampai
pemeliharaan sistem setelah digunakan. Dari pengertian ini jelaslah
bahwa RPL tidak hanya berhubungan dengan cara pembuatan program
komputer. Pernyataan ”semua aspek produksi” pada pengertian di atas,
mempunyai arti semnua hal yang berhubungan dengan proses produksi
seperti manajemen proyek, penentuan personil, anggaran biaya, metode,
jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari
RPL.
Sejarah Software Engineering
Istilah software engineering digunakan pertama kali pada akhir
1950-an dan awal 1960-an. Saat itu, masih terdapat perdebatan tajam
mengenai aspek engineering dari pengembangan perangkat lunak. Pada tahun
1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang
rekayasa perangkat lunak, yang memberikan dampak kuat terhadap
pengembangan rekayasa perangkat lunak. Banyak yang menganggap dua
konferensi inilah yang menandai awal resmi profesi rekayasa perangkat
lunak.Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan
para praktisi pengembangan perangkat lunak. Banyak project yang gagal,
hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan
pengembangan perangkat lunak terjadi mulai dari project yang melebihi
anggaran, hingga kasusu yang mengakibatkan kerusakan fisik dan kematian.
Salah satu kasus yang terkenal antara lain meledaknya roket Ariane
akibat kegagalan perangkat lunak. Selama bertahun-tahun, para peneliti
memfokuskan usahanay untuk menemukan teknik jitu untuk memecahkan
masalah krisi perangkat lunak. Berbagai teknik, metode, alat, proses
diciptakan dan diklaim sebagai senjata pamungkas untuk memecahkan kasus
ini. Mulai dari pemrograman terstruktur, pemrograman berorientasi objek,
pernagkat pembantu pengembangan perangkat lunak (CASE tools), berbagai
standar, UML hingga metode formal diagung-agungkan sebagai senjaat
pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan
tepat waktu. Pada tahun 1987, Fred Brooks menulis artikel No Silver
Bullet, yang berproposisi bahwa tidak ada satu teknologi atau praktek
yang sanggup mencapai 10 kali lipat perbaikan dalam produktivitas
pengembanan perngkat lunak dalam tempo 10 tahun.Sebagian berpendapat, no
silver bullet berarti profesi rekayasa perangkat lunak dianggap telah
gagal. Namun sebagian yang lain justru beranggapan, hal ini menandakan
bahwa bidang profesi rekayasa perangkat lunak telah cukup matang, karena
dalam bidang profesi lainnya pun, tidak ada teknik pamungkas yang dapat
digunakan dalam berbagai kondisi.
1. Konsep Dasar Perangkat Lunak
a. Apa itu perangkat lunak?
Perangkat lunak merupakan program komputer yang berfungsi
menghubungkan antara pengguna dan komputer yang digunakan. dapat
dibilang perangkat lunak merupakan sebagai media penerjemah perintah
yang diberikan oleh pengguna kepada komputer untuk selanjutnya diproses
melalui perangkat keras komputer tersebut.Perangkat lunak umumnya
digunakan untuk mengontrol perangkat keras yang biasa disebut sebagai
device driver, melakukan proses penghitungan, berinteraksi dengan
perangkat lunak yang lebih mendasar lainnya, seperti sistem operasi dan
bahasa pemrograman.
Secara umum ada tiga jenis perangkat lunak yang diketahui hingga
saat ini yaitu sistem operasi yang merupakan sebuah penghubung antara
pengguna dari komputer dengan perangkat keras komputer. Kedua yaitu
perangkat lunak bahasa pemrograman seperti java. Dan yang ketiga yaitu
perangkat lunak aplikasi yang merupakan penrangkat yang digunakan untuk
membantu dan memudahkan pekerjaan seseorang misalnya saja Microsoft
Excel, Word, dan Power Point
b. Apa itu Rekayasa Perangkat Lunak?
Rekayasa atau teknik merupakan penerapan ilmu dan teknologi untuk
menyelesaikan permasalahan manusia. Hal ni diselesaikan lewat
pengetahuan, matematika, dan pengalaman praktis yang diterapkan untuk
mendesain objek atau proses yang berguna. Para praktisi teknik
professional disebut perekayasa.
Rekayasa perangkat lunak atau Software engineering dalam bahasa
inggris merupakan bidang ilmu yang mempelajari tentang segala aspek
perangkat lunak, seperti cara-cara pengembangan, pemeliharaan ,
pembuatan, serta manajemen kualitas perangkat lunak.
Rekayasa perangkat lunak juga merupakan disiplin rekayasa dengan
perangkat lunak yang dikembangkan. Biasanya proses melibatkan penemuan
pada keinginan klien, menyusunnya didalam daftar kebutuhan, merangcang
arsitektur yang mampu mendukung semua kebutuhan, perancangan, pengodean,
pengujian, dan pengintegrasian bagian yang terpisah, menguju
keseluruhan, penyebaran, dan pemeliharaan perangkat lunak.
2. Tanggung Jawab Profesional dan Etika
Tanggung Jawab Profesional dan Etika
Rekayasa perangkat lunak jelas dibatasi oleh hukum lokal, nasional dan
internasional. Perekayasa perangkat lunak harus memiliki tanggung jawab
etis dan moral jika ingin dihormati sebagai profesional. Terdapat
beberapa standar dan kode etik yang harus dipertimbangkan, yaitu:
Konfidensialitas, Harus menghormati konfidensialitas atasan dan kliennya
walaupun tidak ada persetujuan yang ditanda tangani secara formal.
Kompetensi. Tidak boleh menyalahi tingkat kompetensinya (melebihi atau
menyimpang)
Hak Properti Intelektual, Menyadari terhadap hukum yang mengatur
penggunaan properti intelektual, seperti paten, hak cipta dan lain
sebagainya.
Penyalahgunaan Komputer, Tidak boleh dengan sengaja menyalah gunakan
komputer yang nantinya berakibat merugikan orang lain, seperti
penyebaran virus, penyadapan dan lain sebagainya.
3. Siklus Hidup Perangkat Lunak (SWDLC/Software Development Life Cycle)
System Development Life Cycle (SDLC)
SDLC adalah tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem
dan programmer dalam membangun sistem informasi.Langkah yang digunakan
meliputi :
1. Melakukan survei dan menilai kelayakan proyek pengembangan sistem informasi
2. Mempelajari dan menganalisis sistem informasi yang sedang berjalan
3. Menentukan permintaan pemakai sistem informasi
4. Memilih solusi atau pemecahan masalah yang paling baik
5. Menentukan perangkat keras (hardware) dan perangkat lunak (software)
6. Merancang sistem informasi baru
7. Membangun sistem informasi baru
8. Mengkomunikasikan dan mengimplementasikan sistem informasi baru
9. Memelihara dan melakukan perbaikan/peningkatan sistem informasi baru bila diperlukan.
System Development Lyfe Cycle (SDLC) adalah keseluruhan proses dalam
membangun sistem melalui beberapa langkah. Ada beberapa model SDLC.
Model yang cukup populer dan banyak digunakan adalah waterfall. Beberapa
model lain SDLC misalnya fountain, spiral, rapid, prototyping,
incremental, build & fix, dan synchronize & stabilize.
Dengan siklus SDLC, proses membangun sistem dibagi menjadi beberapa
langkah dan pada sistem yang besar, masing-masing langkah dikerjakan
oleh tim yang berbeda.
Dalam sebuah siklus SDLC, terdapat enam langkah. Jumlah langkah SDLC
pada referensi lain mungkin berbeda, namun secara umum adalah sama.
Langkah tersebut adalah:
1. Analisis sistem, yaitu membuat analisis aliran kerja manajemen yang sedang berjalan
2. Spesifikasi kebutuhan sistem, yaitu melakukan perincian mengenai apa
saja yang dibutuhkan dalam pengembangan sistem dan membuat perencanaan
yang berkaitan dengan proyek sistem
3. Perancangan sistem, yaitu membuat desain aliran kerja manajemen dan
desain pemrograman yang diperlukan untuk pengembangan sistem informasi
4. Pengembangan sistem, yaitu tahap pengembangan sistem informasi dengan menulis program yang diperlukan
5. Pengujian sistem, yaitu melakukan pengujian terhadap sistem yang telah dibuat
6. Implementasi dan pemeliharaan sistem, yaitu menerapkan dan memelihara sistem yang telah dibuat
Siklus SDLC dijalankan secara berurutan, mulai dari langkah pertama
hingga langkah keenam. Setiap langkah yang telah selesai harus dikaji
ulang, kadang-kadang bersama expert user, terutama dalam langkah
spesifikasi kebutuhan dan perancangan sistem untuk memastikan bahwa
langkah telah dikerjakan dengan benar dan sesuai harapan. Jika tidak
maka langkah tersebut perlu diulangi lagi atau kembali ke langkah
sebelumnyKaji ulang yang dimaksud adalah pengujian yang sifatnya quality
control, sedangkan pengujian di langkah kelima bersifat quality
assurance. Quality control dilakukan oleh personal internal tim untuk
membangun kualitas, sedangkan quality assurance dilakukan oleh orang di
luar tim untuk menguji kualitas sistem. Semua langkah dalam siklus harus
terdokumentasi. Dokumentasi yang baik akan mempermudah pemeliharaan dan
peningkatan fungsi system
Perencanaan Proyek Prangkat Lunak
1. Observasi pada Estimasi
Estimasi yang diperlukan dalam perancangan proyek perangkat lunak di
antaranya adalah sumber daya, biaya, dan jadwal sebagai usaha dalam
pengembangan perangkat lunak, mengakses informasi historis yang baik,
dan keberanian untuk melakukan pengukuran kuantitatif bila hanya data
kualitatif saja yang ada. Berikut adalah yang menimbulkan ketidakpastian
dalam estimasi:
a. Project complexity (kompleksitas proyek) berpengaruh kuat terhadap
ketidakpastian yang inheren dalam perencanaan. Komplekitas ini merupakan
pengukuran relatif yang dipengaruhi oleh kebiasaan dengan usaha yang
dilakukan sebelumnya
b. Project size (Ukuran proyek) Merupakan faktor penting yang dapat
mempengaruhi akurasi estimasi. Bila ukuran bertambah maka ketergantungan
di antara berbagai elemen perangkat lunak akan meningkat dengan cepat.
Structural uncertainty (Ketidakpastian struktural) Tingkat
ketidakpastian strutural juga berpengaruh dalam risiko estimasi. Dengan
melihat kembali, kita dapat mengingat lagi hal-hal yang terjadi dan
dapat menghindari tempat-tempat dimana masalah muncul.
Risiko diukur melalui tingkat ketidakpastian pada estimasi kuantitatif
yang dibuat untuk sumber daya, biaya, dan jadwal.Bila ruang lingkup
proyek atau syarat proyek tidak dipahami dengan baik, maka risiko dan
ketidakpastian menjadi sangat tinggi. Perencana perangkat lunak harus
melengkapi fungsi, kinerja, dan definisi interface(yang diisikan ke
dalam spesifikasi sistem). Pendekatan-pendekatan rekayasa perangkat
lunak modern (seperti model proses evolusioner) memakai pandangan
pengembangan yang interaktif. Dengan pandangan semacam ini dimungkinkan
untuk melihat estimasi dan merevisinya bila customer mengubah
kebutuhannya.
2. Tujuan Perencanaan Proyek
Tujuan perencanaan proyek perangkat lunak adalah untuk menyediakan
sebuah kerangka kerja yang memungkinkan manajer membuat estimasi yang
dapat dipertanggungjawabkan mengenai sumber daya, biaya dan jadwal.
Tujuan perencanaan dicapai melalui suatu proses penemuan informasi yang
menunjuk ke estimasi yang dapat dipertanggungjawabkan.
3. Ruang Lingkup Perangkat Lunak
Penentuan ruang lingkup perangkat lunak merupakan aktivitas pertama
dalam perencanaan proyek perangkat lunak. Ruang lingkup perangkat lunak
menggabarkan fungsi, kinerja, batasan, interface dan reliabilitas.
Fungsi yang digambarkan dalam statmen ruang lingkup dievaluasi dan
disaring untuk memberikan awalan yang lebih detail pada saat estimasi
dimulai. Pertimbangan kinerja melingkupi pemrosesan dan kebutuhan waktu
respon. Batasan ini mengidentifikasi dari batas yang ditempatkan pada
perangkat lunak oleh perangkat keras eksternal, memori, atau sistem
informasi yang ada.
4. Sumber Daya
Mengestimasi sumber daya yang dibutuhkan untuk menyelesaikan usaha
pengembangan perangkat lunak yang meliputi manusia, komponen perangkat
lunak, dan peranti perangkat keras/perangkat lunak. Piramida di atas
memperlihatkan sumber daya pengembangan sebagai sebuah piramid. Peranti
perangkat keras dan perangkat lunak berada pada fondasi dari piramida di
atas dan menyediakan infrastruktur untuk mendukung usaha
pengembangan(lingkungan pengembang). Dalam tingkat yang lebih tinggi
terdapat komponen perangkat lunak reuseable – blok bangungan perangkat
lunak yang dapat mengurangi biaya pengembangan secara dramatis dan
mempercepat penyampaian. Dan di puncak terdapat sumber daya utama yaitu
manusia. Masing-masing sumber daya ditentukan dengan empat
karakteristik:
a. Deskripsi sumber daya
b. Statemen ketersediaan
c. Waktu kronologis sumber daya diperlukan
d. Durasi waktu sumber daya diaplikasikan
A. Sumber Daya Manusia
Perencanaan sumber daya manusia memulai dengan mengevaluasi ruang
lingkup serta memilih kecakapan yang dibutuhkan untuk mnyelesaikan
pengembangan. Baik posisi organisasi maupun specialty. Jumlah orang yang
diperlukan untuk sebuah proyek perangkat lunak dapat ditentukan setelah
estimasi usaha pengembangan dibuat.
B. Sumber daya perangkat lunak reusable
Kreasi dan penggunaan kembali blok bangunan perangkat lunak yang
seharusnya dikatalog menjadi referensi yang mudah, distandarisasi untuk
aplikasi yang mudah, dan divalidasi untuk integrasi yang mudah. Ada
empat kategori sumber daya perangkat lunak yang harus dipertimbngkan
pada saat perencanaan berlangsung, yaitu :
Komponen off-the-self Perangkat lunak yang ada dapat diperoleh dari
bagian ketiga atau telah dikembangkan secara internal untuk proyek
sebelumnya.
Komponen full-experience Spesifikasi, kode, desain atau pengujian data
yang sudah ada yang dikembangkan pada proyek yang lalu yang serupa
dengan perangkat lunak yang akan dibangun pada proyek saat ini.
Komponen partial-experience Aplikasi, kode, desain, atau data pengujiaan
yang ada pada proyek yang lalu yang dihubungkan dengan perangkat lunak
yang dibangun untuk proyek saat ini, tetapi akan membutuhkan modifikasi
substansial.
Komponen baru Komponen perangkat lunak yang harus dibangun oleh tim
perangkat lunak khususnya adalah untuk kebutuhan proyek sekarang. Lebih
baik mengkhususkan syarat sumber daya perangkat lunak dari awal. Dengan
cara ini evaluasi teknis dari semua alternatif dapat dilakukan dan
akuisisi secara berkala dapat terjadi.
C. Sumber daya lingkungan
Lingkungan yang mendukung poyek perangkat lunak, yang disebut juga
software engineering environment (SEE), menggabungkan perangkat lunak
dan perangkat keras. Karena sebagian besar organisasi perangkat lunak
memiliki konstituen ganda yang memerlukan akses ke SEE, maka perencana
proyek harus menentukan jendela waktu yang dibutuhkan bagi perangkat
keras dan perangkat lunak serta membuktikan bahwa sember-sumber daya
tersebut dapat diperoleh.
Pada saat sebuah sistem berbasis komputer akan direkayasa, tim perangkat
lunak mungkin membutuhkan akses ke elemen perangkat keras yang sedang
dikembangkan oleh tim rekayasa yang lain.
5. Estimasi Proyek Perangkat Lunak
Biaya perangkat lunak terdiri dari presentase kecil pada biaya sistem
berbasis komputer secara keseluruhan. Kesalahan estimasi biaya yang
besar dapat memberikan perbedaan antara keuntungan dan kerugian.
Estimasi proyek perangkat lunak dapat ditranformasi dari suatu seni yang
misterius ke dalam langkah-langkah yang sistematis yang memberikan
estimasi dengan risiko yang dapat diterima. Sejumlah pilihan untuk
mencapai estimasi biaya dan usaha yang dapat dipertanggung jawabkan :
a. Menunda etimasi sampai akhir proyek
b. Mendasarkan etimasi pada proyek-proyek yang mirip yang sudah pernah dilakukan sebelumnya
c. Menggunakan “teknik dekomposisi” yang relatif sederhana untuk melakukan estimasi biaya dan usaha proyek
d. Menggunakan satu atau lebih model empiris bagi estimasi usaha dan
biaya perangkat lunak. Model estimasi empiris dapat digunakan untuk
melengkapi teknik dekomposisi serta menawarkan pendekatan estimasi yang
secara potensial berharga. Model berbasis pengalaman(data hitoris) dan
berbentuk : d=f(vi)
Di mana d adalah satu dari sejumlah harga estimasi (contoh :
usaha, biaya,durasi proyek) dan vi adalah parameter independen yang
dipilih (seperti LOC dan FP yang diestimasi). Peranti estimasi otomatis
mengimplementasi satu atau lebih teknik dekomposisi atau model empiris.
Masing-masing pilihan estimasi biaya perangkat lunak yang dapat
dilakukan sama baiknya dengan data hitoris yang digunakan untuk
menumbuhkan estimasi.
0 Monggo Komentarnya: