680 likes | 1.22k Views
Masalah Perangkat Lunak Proses Perangkat Lunak. Perangkat lunak ( software ).
E N D
MasalahPerangkatLunak ProsesPerangkatLunak
Perangkat lunak (software) Perangkat lunak (software) komputer adalah suatu perangkat yang berisi serangkaian instruksi, program, prosedur, pengendali, pendukung, dan aktifitas-aktifitas pengolahan perintah pada sistem komputer. Jadi software merupakan komponen abstrak dari susunan sistem komputer. Tanpa software, komputer adalah rongsokan elektronik, jadi komputer adalah susunan atas hardware dan software yang saling bekerjasama. Hardware komputer akan “hidup” dan memiliki fungsi jika digunakan bersama-sama dengan software-nya. Secara umum fungsi dari software komputer yang utama adalah : • Melakukan aktifitas bersama-sama dengan hardware • Menyediakan segala sumber daya yang bisa digunakan pada sebuah komputer • Bertindak sebagai perantara antara pengguna (user) dengan perangkat keras (hardware) untuk melakukan aktifitas dengan perintah yang harus dilakukan dalam software komputer.
Software Komputer Melakukan tugas Mengolah Informasi untuk End-user Software Aplikasi Software Sistem Program Aplikasi untuk Tujuan Umum Program untuk Aplikasi Khusus Program untuk Manajemen Sistem Program untuk Pengembangan Sistem Struktur Software Komputer Mengelola dan mendukung operasi sistem komputer dan jaringan • Software Suites • Web Browser • Electronic Mail • Pengolah Kata • Lembar Kerja • Database Managers • Presentasi Grafis • Personal Information Manager • GroupWare - Bisnis – Akuntansi, pengolah transaksi, Perencanaan sumber daya perusahaan, perdagangan elektronik, dll - Ilmu pengetahuan dan teknik • Pendidikan, Entertainment, dll • Sistem Operasi • Program pengelola jaringan • DBMS (database management system) • Sistem Utilitas • Monitoring Unjuk kerja Sistem • Monitoring Keamanan • Bahasa Program Translator (compiler) • Pemrograman Editor dan Tools • Paket CASE (Computer Aided Software Engineering)
Tujuan Rekayasa Perangkat Lunak Diharapkansetelahmempelajarimateriinimahasiswadapatmengetahuidanmemahami : • Bagaimana melakukan rekayasa terhadap sebuah perangkat lunak. • Sikluskehidupanperangkatlunak. • Analisa kebutuhan untuk mengembangkan suatu perangkat lunak. • Merancang suatu perangkat lunak sesuai life cycle. • Mengintegrasikan perangkat lunak yang akan/telahdibuat. • Melakukan pengujian dan debugging terhadap perangkat lunak.
Beli langsung Generik Kebutuhan Beli + Modifikasi Perangkat lunak Sumber daya sendiri Menyerahkan ke pihak lain Pesanan Sewa SDM
Definisi Rekayasa Perangkat Lunak • RPL secaraumumdisepakatidariterjemahan Software Engineering yang mulaipopulertahun 1968 pada Software Engineering Conference oleh NATO. • pengertian RPL sendiriyaitudisiplinilmu yang membahasseluruhaspekproduksiperangkatlunakdaritahapanalisakebutuhan user, menentukanspesifikasikebutuhan user, disainpengkodean, pengujian, hinggakepemeliharaansistemsetelahdipakai. • jadijelas RPL bukanhanyapembuatantapijugasemuaaspekdalampembuatansuatu software.
Tahapan Pengembangan Sistem secara umum • Perencanaan • Analisis • Perancangan • Implementasi • pemeliharaan • Aspekproduksiperangkatlunakdari • Tahapanalisakebutuhan user, • Menentukanspesifikasikebutuhan user, • Disainpengkodean, • Pengujian , hingga • Pemeliharaan
System Development Proses Perencanaan Sistem yang ada Analisis Perancangan Permasalahan Kesempatan Instruksi Implementasi Pemeliharaan PengembanganSistem Peningkatankeuntunganperusahaan Penguranganbiayabisnis Biaya dan keuntungansistem Peningkatanpangsa pasar Perbaikanrelasipelanggan Peningkatanefisiensi Perbaikanpembuatankeputusan Pemenuhanperaturanlebihbaik Kesalahanlebihsedikit Perbaikankeamanan Kapasitaslebih besar Memecahkanmasalahmeraihkesempatanmemenuhiinstruksi Sistem yang baru LibatkanPenggunaSistem GunakanPendekatanPemecahanMasalah Bentuklah Fase dan Aktivitas DokumentasikanSepanjangPengembangan Bentuklah Estándar KelolaProses dan Proyek MembenarkanSystemInformasisebagaiInvestasi Modal JanganTakutuntukMembatalkanatauMerevisiLingkup BagilahdanTakhlukkan DesainlahSistemuntukPertumbuhandanPerubahan
Temuan Survey Global • Temuan #1: Negara dengan pertumbuhan TI yang cepat memiliki pertumbuhan ekonomi yang cepat pula. • Temuan #2: Sektor TI tumbuh melalui pengeluaran di bidang software dan layanan TI • Untuk itu: Pertumbuhan industri software lokal akan mendorong tidak hanya pasar TI tapi juga pertumbuhan ekonomi yang lebih baik
PerkembanganIndustri TI di Indonesia Source dari IDC Pertumbuhan TI di Indonesia sungguh sangat tertinggal Dibandingkan dengan hasil yang dicapai di negara Tetangga
PerkembanganIndustri TI di Indonesia Source dari IDC Apakah kita dapat mencapai hasil yang LEBIH BAIK lagi ? Dengan IKLIM USAHA yang lebih baik dapat dicapai hasil yang lebih baik
Jumlah pengembang software maupun penyedia layanan TI yang masuk dalam keanggotaan ASPILUKI kini ada 218 perusahaan. Sebagian besar bermain di sektor software perbankan dan jasa keuangan. Hal ini dapat dimaklumi mengingat belanja TI tertinggi masih dipegang sektor perbankan dan jasa keuangan, disusul sektor pemerintahan, manufaktur, pertambangan, serta minyak dan gas. Perusahaan di sektor perbankan dan jasa keuangan masih mendominasi belanja telematika 2011 yang diperkirakan mencapai US$ 9 miliar lebih atau sekitar Rp 82,7 triliun.
Dari segi sumber daya manusia, Indonesia tidak kalah bersaing dengan luar negeri. Sebuah survei yang diadakan pada 2009 mengenai kualitas teknisi Indonesia, kualitas SDM Indonesia ada peringkat 14 dari 50 negara. Sedangkan dari segi harga, Indonesia termasuk paling kompetitif, peringkat dua setelah Vietnam. Namun dari sisi lingkungan bisnis, terlempar di peringkat 49. Kalau melihat kualitas dari dunia akademis sebenarnya juga sudah cukup baik. Sayangnya kualitas yang cukup baik itu tidak dibarengi dengan kuantitas SDM. Setiap tahunnya ada 115 ribu orang lulusan teknik, namun hanya 35 ribu orang yang bisa disebut lulusan teknologi informatika. Angka tersebut jauh dibandingkan dengan China yang mampu mencetak 600 ribu orang lulusan teknik informatika tiap tahunnya. India sekitar 350 ribu orang dan AS dalam kisaran 70 ribu.
TantanganPerkembanganIndustri Software Indonesia • Pembajakan Berdasarkan Direktur Pemasaran BSA ( Bussines Software Alliance ) mengatakan sebanyak 84 dari 100 komputer diperkirakan software bajakan. • Keterbatasan pengetahuan dalam software development. • Kurangnya ide dalam produk dan inovasi. • Kurangnya keterlibatan pemerintah untuk melindungi pengembang software lokal. • Keterbatasan modal usaha.
REKAYASA PERANGKAT LUNAK • RPL atau Software Engineering (SE) Disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Ada 2 istilah kunci disini : • “disiplin rekayasa” Perekayasa membuat suatu alat bekerja. Menerapkan teori, metode, dan alat bantu yang sesuai, selain itu mereka menggunakannya dengan selektif dan selalu mencoba mencari solusi terhadap permasalahan. • “semua aspek produksi perangkat lunak” RPL tidak hanya berhubungan dengan proses teknis dari pengembangan perangkat lunak tetapi juga dengan kegiatan seperti Manajemen proyek PL dan pengembangan alat bantu, metode, dan teori untuk mendukung produksi PL.
REKAYASA PERANGKAT LUNAK • Rekayasa perangkat lunak (software engineering) adalah suatu proses rancang bangun. Beberapa definisi tentang rekayasa perangkat lunak : • Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efesien pada komputer (Fritz Bauer, 1968). • Penerapan pendekatan yang sistematis, disiplin, dan terukur untuk pengembangan, operasi, dan pemeliharaan perangkat lunak (IEEE, 1993). • Suatu disiplin yang mengintegrasikan proses/prosedur, metode, dan perangkat tools untuk pembangunan perangkat lunak komputer (Pressman, 97). • Merupakan aplikasi dari prinsip-prinsip sains untuk • Mengurutkan transformasi masalah menjadi solusi yang dapat bekerja dengan baik • Urutan pemeliharaan perangkat lunak tersebut sampai tidak dapat digunakan lagi (Alan M. Davis) • Proses RPL dimulai jauh sebelum “Coding” dilakukan dan berlanjut terus setelah versi awal dari program selesai dikerjakan.
SejarahPekayasaPerangkatLunak Sejarah masuknya mata kuliah Rekayasa Perangkat Lunak ke perguruan tinggi dikarenakan telah terjadinya krisis Perangkat Lunak pada tahun 1960-an. Hal ini dipicu oleh banyaknya kegagalan produksi Perangkat Lunak sehingga anggaran dana pun semakin menipis dan faktor lainnya. Selain itu, pada masa itu juga Rekayasa Perangkat Lunak hanya menjadi konsumsi bagi kalangan bisnis dan cuma berkembang di kalangan bisnis (jalan di tempat). Untuk itulah diadakan pertemuan dan akhirnya dimasukkanlah Rekayasa Perangkat Lunak di perguruan tinggi sebagai mata kuliah dengan harapan akan berkembang di masa mendatang. Kinerja Biaya Waktu
MENGAPA RPL? • Perangkatlunakdibuatsupayabisadigunakan (olehpemakai) untukmembantumenyelesaikanmasalah/ pekerjaan. • Perangkatlunakdigunakanolehpemakaidilingkunganoperasionaldenganteknologitertentusebagaibagiandarisistem yang lebihbesar. • Perangkatlunak yang dibuatharusmemenuhiapa yang diinginkanolehpemakai (bukan yang diinginkandeveloper), ekonomis (memberikankeuntunganbagideveloper), danandal(dapatdigunakandalamjangkawaktu yang lama).
KAPAN RPL ? • Ukuran perangkat lunak besar: • Cakupan atau ruang lingkup persoalan luas dan dalam. • Kompleksitas masalah dan tingkat kekritisan tinggi. • Melibatkan banyak personal pelaksana. • Waktu dan anggaran pengembangan terbatas.
MANFAAT RPL • Perangkat lunak yang dihasilkan sesuai dengan kebutuhan yang diinginkan. • Perangkat lunak dapat digunakan dan beroperasi dengan benar di lingkungan sebenarnya. • Perangkat lunak memberikan manfaat bagi pemakai yang menggunakannya. • Biaya yang dikeluarkan untuk membuatnya rendah (efisien), efektif dan sesuai dengan anggaran yang telah ditetapkan. • Tepat waktu, baik saat pembuatan, penyerahan ke pemakai, maupun instalasinya. • Setiap tahap pekerjaan terjamin kualitasnya, terdokumentasi, dan dapat dipertanggungjawabkan kebenarannya (ada proses verifikasi dan validasi).
Perbedaan Rekayasa Perangkat Lunak dan Ilmu Komputer • Ilmu Komputer berhubungan dengan teori dan metode yang mendasari sistem komputer dan perangkat lunak. Teori ini merupakan suatu model fisik dan analitik untuk menyelesaikan kasus yang spesifik. • Rekayasa Perangkat Lunak berhubungan dengan masalah-masalah praktis untuk menghasilkan suatu perangkat lunak. Pendekatan dilakukan dengan model bisnis dan strategi bisnis suatu perangkat lunak.
Perbedaan Rekayasa Perangkat Lunak dan Rekayasa Sistem • Rekayasa Sistem berhubungan dengan semua aspek pengembangan sistem berbasis komputer, termasuk perangkat keras, perangkat lunak dan rekayasa proses. • Rekayasa Perangkat Lunak adalah bagian dari Rekayasa Sistem
Proses Perangkat Lunak • Proses perangkat lunak adalah serangkaian kegiatan yang tujuannya untuk mengembangkan atau evolusi perangkat lunak. • Kegiatan-kegiatan tersebut adalah: • Spesifikasi perangkat lunak, • Pengembangan perangkat lunak, • Validasi perangkat lunak, • Evolusi perangkat lunak
Perkembangan Software • Generasi Awal • Batch orientation • Custom software • Generasi Kedua • Multi-user, Real-time • Database • Product software • Generasi Ketiga • Distributed systems • Low cost hardware • Generasi Keempat • Desktop systems • Object Oriented Technologies • Expert Systems • AI, neural networks • Parallel computing • Network computers
System Development Proses Perencanaan Sistem yang ada Analisis Perancangan Permasalahan Kesempatan Instruksi Implementasi Pemeliharaan PengembanganSistem Peningkatankeuntunganperusahaan Penguranganbiayabisnis Biaya dan keuntungansistem Peningkatanpangsa pasar Perbaikanrelasipelanggan Peningkatanefisiensi Perbaikanpembuatankeputusan Pemenuhanperaturanlebihbaik Kesalahanlebihsedikit Perbaikankeamanan Kapasitaslebih besar Memecahkanmasalahmeraihkesempatanmemenuhiinstruksi Sistem yang baru LibatkanPenggunaSistem GunakanPendekatanPemecahanMasalah Bentuklah Fase dan Aktivitas DokumentasikanSepanjangPengembangan Bentuklah Estándar KelolaProses dan Proyek MembenarkanSystemInformasisebagaiInvestasi Modal JanganTakutuntukMembatalkanatauMerevisiLingkup BagilahdanTakhlukkan DesainlahSistemuntukPertumbuhandanPerubahan
Model Pengembangan Sistem • Model proses perangkat lunak adalah representasi yang disederhanakan dari proses perangkat lunak yang dipresentasikan dari sudut pandang tertentu • Paradigma pengembangan model sistem : • Waterfall Development Model • Evolutionary Development Model • Spiral Development Model • Incremental Development Model
Tujuan Rekayasa Perangkat Lunak • Meningkatkan keakuratan, performance & efficiency produk secara keseluruhan dalam pengembangan • Menerapkan metodologi yang terdefinisi dengan baik untuk resolusi software
TUJUAN REKAYASA PERANGKAT LUNAK • Memperoleh biaya produksi software yang rendah • menghasilkan software berkinerja tinggi, handal dan tepat waktu • menghasilkan software yang dapat bekerja pada berbagai platform • menghasilkan software dengan biaya perawatan rendah
Tujuan dari RPL • Menghasilkan sebuah perangkat lunak yang berkualitas. Yang dimaksud dengan berkualitas dapat dilihat dari tiga sisi, sisi sponsor (individu atau organisasi yang telah mengeluarkan biaya dalam pembangunan perangkat lunak), sisi pemakai (siapapun yang menggunakan perangkat lunak tersebut), sisi maintainer / modifier (yang memelihara dan memodifikasi perangkat lunak tersebut). • Tujuan kedua dari RPL adalah menghasilkan perangkat lunak dengan biaya yang efisien. • Sedangkan tujuan ketiga dari RPL adalah menghasilkan perangkat lunak tepat pada waktunya.
RUANG LINGKUP REKAYASA PERANGKAT LUNAK • Software 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.
RUANG LINGKUP REKAYASA PERANGKAT LUNAK • - 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.
PERKEMBANGAN REKAYASA PERANGKAT LUNAK (RPL) • 1940anKomputer pertama yang membolehkan pengguna menulis kode program langsung • 1950anGenerasi awal interpreter dan bahasa macro Generasi pertama compiler Generasi kedua compiler • 1960anKomputer mainframe mulai dikomersialkan Pengembangan perangkat lunak pesanan Konsep Software Engineering mulai digunakan
PERKEMBANGAN REKAYASA PERANGKAT LUNAK (RPL) • 1970anPerangkat pengembang perangkat lunak Perangkat minicomputer komersial • 1980anPerangkat Komputer Personal (PC) komersial Peningkatan permintaan perangkat lunak • 1990anPemrograman berorientasi obyek (OOP) Agile Process dan Extreme Programming Peningkatan drastis kapasitas memori Peningkatan penggunaan internet • 2000anPlatform interpreter modern (Java, .Net, PHP, dll)Outsourcing
Problem dalam Pembuatan Software • Tidak memiliki waktu yang cukup dalam mengumpulkan data pada proses pembuatan perangkat lunak. • Ketidakpuasan user pada S/W yang dibuat • Kualitas S/W terkadang meragukan. • Sulit dalam memaintenance S/W sekarang
Problem Solving COMPUTER SCIENCE CUSTOMER Fungsi Computer Teori Problem SOFTWARE ENGINEERING Tools dan Teknikutk Menyelesaikan Problem
Ongoing Problems(Masalah yang terus menerus ada) • Kemajuan perangkat keras melebihi kemampuan membuat software • Kemampuan membangunprogram baru tidak dapat memenuhi permintaan program-program baru, begitu juga kecepatan membangun program tidak dapat mnegikuti kebutuhan bisnis dan pasar • Penyebaran penggunaan computer telah membuat kebergantungan masyarakat thdp komputer • Tantangan untuk membangun software denganreliability & quality yang tinggi • Kemampuan men-support dan meningkatkan program terancam oleh design yang buruk dan keterbatasan sumberdaya
Persyaratan Perangkat Lunak • Perangkat lunak harus memberikan bantuan dalam merepresentasikan dan mengakses file-file eksternal yang dibuat dengan alat bantu lain. • Persyaratan Fungsional dan Non-Fungsional • Persyaratan User • Persyaratan Sistem • Dokumentasi Persyaratan Perangkat Lunak
Persyaratan Fungsionaldan Non-Fungsional • Persyaratan Fungsional: Pernyataan layanan tentang bagaimana sistem harus bereaksi terhadap input, sistem harus berlaku pada situasi-situasi tertentu. Secara khusus menyatakan apa yang tidak boleh dilakukan sistem. • Persyaratan Non Fungsional: Pernyataan tentang batasan layanan dan fungsi yang diberikan sistem. • Persyaratan Domain: Persyaratan yang datang dari domain aplikasi sistem dan merefleksikan karakteristik domain tersebut
Persyaratan Non Fungsional • Persyaratan Produk: persyaratan yang diambil dari spesifikasi produk, seperti persyaratan hardware untuk mendukung kinerja. • Persyaratan Organisasi: persyaratan yang berasal dari kebijakan dan prosedur pada organisasi. • Persyaratan Eksternal: Persyaratan yang berasal dari faktor eksternal terhadap sistem dan proses pengembangannya.
Ukuran Persyaratan Non Fungsional • Kecepatandalam: Transaksi yang diproses/detik, waktutanggal user/event atauwaktu refresh layar • Ukurandalam: KB ataujumlah Chip RAM • Kemudahanpenggunaandalam: waktupelatihanataujumlah frame help • Kehandalandalam: waktu rata-rata kegagalan, probabilitasketidaksediaan, kecepatanterjadinyakegagalan, atauketersediaan • Ketahanandalam: waktu start ulangsetelahkegagalan, prosentase event yang gagal, atauprobabilitaskorupsi data • Portabilitasdalam: prosentasepernyataantergantung target, ataujumlahsistem target
Persyaratan User • Mendeskripsikan persyaratan fungsional dan non-fungsional sehingga dapat dipahami oleh user yang tidak memiliki pengetahuan teknik. • Persyaratan user harus ditulis memakai bahasa natural, formal dan diagram intuitif yang sederhana. Persyaratan user tidak boleh didefinisikan memakai model implementasi. • Masalah yang sering muncul: • Tidak Adanya Kejelasan • Kesimpang-siuran Persyaratan • Penggabungan Persyaratan
Persyaratan Sistem • Persyaratan sistem ini lebih rinci dari persyaratan user, dan berfungsi sebagai dasar kontrak untuk implementasi sistem. • Persyaratan sistem ini digunakan sebagai titik awal perancangan sistem. • Bahasa natural banyak digunakan dalam mendefinisikan persyaratan sistem
PentingnyaEvolusiPerangkatLunak • Perusahaan akan memberikan investasi yang besar pada sistem perangkat lunak mereka karena merupakan aset bisnis yang vital. • Untuk mempertahankan nilai aset tersebut untuk bisnis, sistem perangkat lunak harus diubah dan diperbaharui. • Mayoritas anggaran perangkat lunak dalam perusahaan besar dikhususkan untuk memperbarui perangkat lunak yang telah ada daripada mengembangkan perangkat lunak baru.