(0275) 2974 127
Rekayasa perangkat lunak telah berkembang sejak pertama kali diciptakan pada tahun 1940-an hingga kini. Focus utama pengembangannya adalah untuk mengembangkan praktek dan teknologi untuk meningkatkan produktivitas para praktisi pengembang perangkat lunak dan kualitas aplikasi yang dapat digunakan oleh pemakai.
Rekayasa Perangkat Lunak atau RPL adalah suatu perubahan perangkat lunak yang berfungsi untuk melakuka pengembangan, pemeliharaan dan pembangunan kembali dengan memakai prinsip rekayasa untuk memperoleh perangkat lunak yang bisa bekerja lebih efisien dan efektif pada user.
Definisi lain dari rekayasa perangkat lunak yaitu suatu disiplin ilmu yang mempraktekkan teori-teori dasar bidang tertentu, pada suatu perangkat lunak yang bisa dipakai atau digunakan sebagai suatu peralatan pembantu dalam memecahkan masalah dan proses mengambil keputusan.
Kemudian definisi dari perangkat lunak sendiri atau yang biasa disebut software adalah program yang ada di komputer yang memiliki fungsi sebagai sebuah sarana dalam berinteraksi antar pengguna dan hardware “perangkat keras”.
Lebih daripada itu juga biasa disebut sebagai “penerjemah” perintah-perintah yang diberikan user atau pengguna komputer untuk kemudian diteruskan ke atau diproses oleh hardware.
Dalam Wikipedia Rekayasa Perangkat Lunak merupakan bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak dan manajemen kualitas.
Tujuan utama rekayasa perangkat lunak sebagai berikut :
Tujuan utama dari seseorang mempelajari rekayasa perangkat lunak adalah untuk mengembangkan perangkat lunak yang dapat berfungsi dan berguna bagi penggunanya. Sebuah perangkat lunak tentu harus memiliki fungsi dan kegunaan yang spesifik agar dapat digunakan oleh penggunanya.
Terkadang perangkat lunak yang sudah ada membutuhkan pembaruan, karena mungkin fungsinya telah berkurang. Dengan seseorang mendalami perangkat lunak akan mampu mengembangkan perangkat lunak yang sudah ada itu menjadi sistem perangkat lunak yang lebih baik dan lebih berguna lagi bagi penggunanya.
Setiap pengguna atau user pasti menginginkan perangkat lunak yang user friendly, setidaknya perangkat lunak yang user friendly memiliki tampilan yang yang menarik.fungsional dan mudah digunakan oleh penggunanya.
Seseorang yang mempelajari dan mendalami perangkat lunak tentu paham akan hal ini, sehingga ia mampu mengembangkan dan menciptakan perangkat yang user friendly.
Pada beberapa peralatan mekanikal memerlukan integrasi dengan perangkat lunak agar sistem dapat bekerja dengan optimal. Seseorang yang mendalami hal ini pasti telah paham dengan masalah tersebut.
Dengan kemampuannya mempelajari RPL, maka sebuah sistem perangkat lunak mampu diintegrasikan pada sebuah peralatan mekanikal, sehingga mendukung kegiatan operasional pada peralatan tersebut.
Tujuan dari seseorang mempelajari perangkat lunak adalah agar bukan hanya terpaku pada pembuatan dan pengembangan sistem perangkat lunak yang ada, tapi berada pada sistem maintenance atau perawatan pada sebuah perangkat lunak yang ada.
Pada semua perangkat lunak pastinya memerlukan maintenance, terutama saat perangkat lunak itu mengalami gangguan atau kendala. Karena perawatan diperlukan, agar ada sistem perawatan dan maintenance dari perangkat lunak tersebut.
Sedangkan secara khususnya memiliki tujuan sebagai berikut :
Rekayasa software dapat diterapkan dalam kehidupan sehari-hari maupun dalam perusahaan. Pembuatan aplikasi yang mencatat data kecelakaan, aplikasi pembuatan kamera untuk driver adalah beberapa contoh rekayasa perangkat lunak.
Meskipun baru dicetuskan pada tahun 1968, namun RPL telah memiliki sejarah yang cukup yang panjang. Dari sisi disiplin ilmu, RPL masih reklatif muda dan akan terus berkembang.
Arah perkembangan yang saat ini sedang dikembangkan antara lain meliputi :
Tahun |
Kejadian |
1940an | Komputer pertama yang membolehkan pengguna menulis kode program langsung |
1950an | Generasi awal interpreter dan bahasa macro Generasi pertama compiler |
1960an | Generasi kedua compiler Komputer mainframe mulai dikomersialkan Pengembangan perangkat lunak pesananKonsep Software Engineering mulai digunakan |
1970an | Perangkat pengembang perangkat lunak Perangkat minicomputer komersial |
1980an | Perangkat Komputer Personal (PC) komersial Peningkatan permintaan perangkat lunak |
1990an | Pemrograman berorientasi obyek (OOP) Agile Process dan Extreme Programming Peningkatan drastis kapasitas memoriPeningkatan penggunaan internet |
2000an | Platform interpreter modern (Java, .Net, PHP, dll) Outsourcing |
Terdapat beberapa kriteria dalam perangkat lunak yang antara lain yakni sebagai berikut :
Sedangkan ruang lingkup perangkat lunak antara lain adalah sebagai berikut :
Dilihat dari sudut pandang fungsinya, perangkat lunak dapat dikelompokkan menjadi :
Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk operasional komputer.
Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk membantu menyelesaikan masalalah-masalah yang dihadapi oleh pemakai.
Sedangkan dilihat dari aplikasinya, perangkat lunak dibedakan menjadi :
Sekumpulan program yang ditulis untuk kepentingan program lain, contoh editor, driver dan lain-lain
Perangkat lunak yang digunakan untuk mengukur/menganalisis atau mengontrol proses pemasukan data dari lingkungan luar sampai menghasilkan laporan yang diinginkan
Perangkat lunak yang memberikan fasilitas operasi untuk bisnis atau fasilitas pengambilan keputusan manajemen, contoh sistem akuntansi, inventory, payroll dan lain-lain
Perangkat lunak yang digunakan di dalam bidang aplikasi teknik dan kerekayasaan perangkat lunak jenis ini biasanya berhubungan dengan komputasi data numerik, CAD (Computer Aided Design), simulasi sistem, dan lain-lain.
Perangkat lunak yang digunakan untuk mengontrol suatu produk dan sistem dimana perangkat lunak tersebut disimpan. Biasanya ditempatkan di ROM, contoh Tombol di Microwave Oven
Banyak digunakan pada aplikasi yang bersifat perorangan, contohnya: pengolah kata, spreadsheet, game, DBMS dan lain-lain.
Dibuat dengan menggunakan teknik algoritma non-numerik untuk memecahkan masalah yang kompleks, digunakan dalam bidang aplikasi kecerdasan buatan, contohnya: game, expert sistem, neural network, Turbo Prolog, dan lain-lain.
Model 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.
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.
Awalnya diusulkan oleh Boehm (BOE88), adalah model proses 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 :
Model 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.
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 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 rekayasa perangkat lunak.
Representasi aktivitas dalam model ini, meliputi aktivitas analisis, bisa berada dalam salah satu dari keadaan-keadaan yang dicatat pada saat tertentu. Dengan cara yang sama, aktivitas yang lain (desain atau komunikasi pelanggan) dapat direpresentasikan dalam sebuah sikap yang analog. Semua aktifitas ada secara konkruen tetapi dia tinggal didalam keadaan yang berbeda. Model ini sering digunakan sebagai paradigm bagi pengembangan aplikasi klien/server.
Kenyataanya model proses konkruen bisa diaplikasikan ke dalam semua tipe perkembangan perangkat lunak, dan memberikan gambaran akurat mengenai keadaan tertentu dari sebuah proyek. Selain membatasi ajtivitas perekayasa ke dalam sederetan kejadian, model proses juga mendefinisikan jaringan aktivitas.
Ada 3 fokus manajemen proyek perangkat lunak (PL) :
Mempertinggi kesiapan organisasi PL untuk mengerjakan aplikasi yang semakin kompleks.
Objektifitas dan ruang lingkupnya harus ditetapkan, pemecahan alternatifnya harus dipertimbangkan, teknik dan batasanpun harus didefinisikan
Memberikan suatu kerangka kerja dimana rencana komprehensif bagi pengembangan perangkat lunak.
Manajemen Proyek Perangkat Lunak Adalah aktifitas dalam memanajemen rekayasa perangkat lunak, dimulai sebelum aktifitas teknis di inisialisasi dan berlanjut pada keseluruhan batasan, perkembangan dan pemeliharaan perangkat lunak komputer.
Manajemen proyek merupakan lapisan pertama dalam proses rekayasa perangkat lunak skala besar. Untuk menuju pada proyek yang berhasil, perlu dimengerti tentang :
Untuk mengestimasi biaya, pembagian tugas, dan penjadwalan, sebelum sebuah proyek direncanakan perlu :
Pengukuran dan satuan ukuran akan membantu untuk mengerti proses-proses dalam pengembangan produk dan produk itu sendiri. Proses dan produk diukur dalam usaha untuk meningkatkan kualitasnya.
Dalam aktifitas utama proyek yaitu perencanaan, dilakukan estimasi :
Analisis resiko sangat penting dalam manajemen proyek perangkat lunak. Beberapa hal yang harus diperhatikan berkaitan dengan resiko adalah ;
Analisis resiko merupakan serangkaian langkah untuk menyiasati resiko, yaitu:
Memperhitungkan lebih lanjut estimasi resiko dalam bentuk : [ri, li, xi] dengan
Disebut juga estimasi resiko, adalah usaha untuk mengukur setiap resiko dengan 2 cara :
Ada 4 aktivitas estimasi resiko :
Langkah-langkah yang dilakukan dalam penjadwalan :
Penelusuran dan pengendalian dilakukan setelah ada penjadwalan yang pasti, yaitu memeriksa apakah tugas telah dilaksanakan sesuai dengan jadwal.
Pengukuran perangkat lunak dilakukan untuk :
Satuan ukuran perangkat lunak dikategorikan ke dalam :
Kategori lain untuk pengukuran :
Kualitas perangkat lunak dihitung pada saat proses rekayasa perangkat lunak ataupun setelah diserahkan kepada pemakai. Satuan ukuran kualitas perangkat lunak pada saat proses rekayasa :
Definisi pengukuran kualitas menurut Gilb :
Menurut Basili dan Zelkowitz ada 5 faktor yang mempengaruhi produktivitas perangkat lunak :
Semoga informasi ini bermanfaat.
Apakah Anda menggunakan kartu ATM atau kartu debit? Suka bertransaksi secara cashless? Sepertinya Anda perlu…
Design website toko online tidak hanya soal estetika, tapi juga UX yang bagus secara keseluruhan.…
Sebelum memulai karir Anda sebagai desainer UX, Anda harus membuat portofolio yang mencakup semua pengalaman…
Keep-Alive memungkinkan browser pengunjung Anda mendownload semua konten (JavaScript, CSS, gambar, video, dll) melalui koneksi…
Job description seorang web developer adalah membuat situs web menggunakan berbagai bahasa pemrograman. Tanggung jawab…
Secara default, WordPress tidak mendukung A/B testing. Tapi jangan khawatir. Di bawah ini, kami telah…