REKAYASA PERANGKAT
LUNAK
DEFENISI PERANGKAT LUNAK
Perangkat lunak(Software) adalah : Merupakan suatu data yang diprogram sedemikian rupa dan disimpan dalam bentuk digital yang tidak terlihat secara fisik tetapi tersimpan dalam media penyimpanan komputer. Software atau perangkat lunak berupa program atau aktivitas menjalankan suatu perintah atau intruksi melalui fasilitas interaksi pada software (perangkat lunak) komputer sehingga komputer dapat beroperasi.
KLASIFIKASI PERANGKAT LUNAK
- Sistem operasi (Operating System), merupakan perangkat lunak yang berfungsi untuk mengoperasikan perangkat komputer serta menyediakan antar muka dengan perangkat lunak lain atau dengan pengguna. Contoh perangkat lunak sistem operasi : MS DOS, MS Windows(dengan berbagai generasi), Macintosh, OS/2, LINUX (dengan berbagai distribusi), NetWare, dan sebagainya.
- Program Utilitas (Utility), merupakan program khusus yang berfungsi sebagai perangkat pemeliharaan suatu sistem komputer, seperti Anti Virus, partisi hardisk, manajemen hardisk, dan sebagainya.
- Program Aplikasi, merupakan program yang dikembangkan untuk memenuhi kebutuhan yang spesifik. Contoh : aplikasi akuntansi, aplikasi perbankan, aplikasi manufuktur, dan sebagainya.
- Paket Pemrograman, merupakan program yang dikembangkan untuk kebutuhan umum, seperti : pengolah kata/text editor (MS- Word, NotePad, Latex, dll), pengolah angka,/ lembar kerja(MS -Excel, dll), presentasi(MS- PowerPoint, dll), dan desain grafis(3D, CorelDraw, PhotoShop, dan sebagainya).
- Bahasa Pemrograman, merupakan sebuah intruksi standar yang bertugas untuk memberikan intruksi kepada komputer. Contoh bahasa pemrograman yang paling umum digunakan, yaitu : Java Script, PHP, HTML, C++, Python, dan sebagainya.
APLIKASI PERANGKAT LUNAK
Perangkat lunak dapat diaplikasikan ke berbagai situasi dan lingkungan dimana serangkaian langkah prosedural telah didefenisikan.
- Perangkat Lunak Sistem, merupakan sekumpulan program yang ditulis untuk memberika layanan terhadap program-program yang lain.
- Perangkat Lunak Real Time, program-program yang memonitori, menganalisa, dan mengontrol kejadian didunia nyata pada saat berlangsungnya suatu aktivitas. Konsep kerja perangkat lunak Real-time berbeda dengan fungsi interaksi atau timesharing.
- Perangkat Lunak Bisnis, pemrossesan informasi bisnis merupakan area aplikasi perangkat lunak yang paling luas saat ini. Sistem diskrit (Contohnya payroll, account payable, inventory, dan sebagainya) telah mengembangkan perangkat lunak sistem informasi manajemen(SIM) yang mengakses satu atau lebih database besar yang berisi informasi bisnis.
- Perangkat Lunak Teknik dan Ilmu Pengetahuan, ditandai dengan keberadaan algoritma number crunching. Perangkat lunak ini memiliki cakupan aplikasi mulai dari aplikasi mulai dari sistem aplikasi astronomi sampai vulkanologi, dari analisa otomotif sampai dinamika orbit pesawat ruang angkasa, dan dari biologi molekuler sampai pabrik yang sudah diotomatisasi.
- Embedded Software, Embedded Software dapat memberikan fungsi yang terbatas serta fungsi esoteric (misalnya keypad kontrol untuk sebuah microwave) atau memberikan kemampuan kontrol dan fungsi yang penting (contohnya fungsi digital dalam sebuah mobil seperti kontrol bahan bakar, penampilan panel di dashboard, sistem pengereman, dan sebagainya).
- Perangkat Lunak Komputer Personal, pasar perangkat komputer personal telah berkembang selama dekade terakhir. Program pengolah kata, spreadsheet, multimedia, manajemen database, aplikasi keuangan bisnis dan personal, jaringan eksternal atau akses database hanya merupakan beberapa contoh saja dari ratusan aplikasi yang ada.
- Perangkat Lunak Kecerdasan Buatan, perangkat lunak kecerdasan buatan (Artifical Intelligent/AI) menggunakan algoritme non-numeris untuk memecahkan masalah kompleks yang tidak dapat dilakukan perhitungan atau analisa secara langsung. Area kecerdasan buatan yang aktif adalah sistem pakar, disebut juga sistem berbasis pengetahuan. Sistem yang lain adalah jaringan Syaraf Tiruan, Voice and Image Recognition, game playing, dan sebagainya.
HARDWARE VS SOFTWARE
Reability, kehandalan perangkat untuk dioperasionalkan, dan bebas dari kegagalan (failure) untuk jangka waktu tertentu di lingkungan tertentu.
Hardware Reability
- Kesalahan perangkat keras sebagian besar adalah kesalahan fisik.
- Komponen perangkat keras umumnya gagal karena aus.
- Dalam perangkat keras, kesalahan desain mungkin juga ada, tetapi kesalahan fisik umumnya mendominasi.
- Fitur kegagalan perangkat keras, disebut Bathtub curve.
Software Reability
- Kesalahan perangkat lunak adalah kesalahan desain, yang sulit untuk divisualisasikan, diklasifikasikan, dideteksi, dan dikoreksi.
- Komponen perangkat lunak gagal karena bug.
- Kualitas perangkat lunak tidak akan berubah setelah diunggah ketempat penyimpanan dan ketika sudah mulai running.
DEFENISI REKAYASA PERANGKAT LUNAK
IEEE Computer Society, Rekayasa Perangkat Lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin, dan terkuantifikasi atas pengembangan, penggunaan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.
KARAKTERISTIK PERANGKAT LUNAK YANG BAIK
Kualitas Perangkat Lunak adalah pemenuhan terhadap kebutuhan fungional dan kinerja yang didokumentasikan secara eksplisit, pengembangan standar yang didokumentasikan secara eksplisit, dan sifat-sifat implisit yang diharapkan dari sebuah software yang dibangun secara profesional ( Dunn 1990).
Produk Operation
- Correctness, sesuai spesifikasi kebutuhan pengguna.
- Usability/Learnability, mudah digunakan.
- Integrity, tidak mempengaruhi jalannya/kinerja perangkat lunak yang lain.
- Reliability, tidak memiliki cacat/cela/kekurangan/kerusakan dan tidak gagal pada saat dieksekusi.
- Efficiency, Terkait cara perangkat lunak menggunakan sumber daya seperti memanfaat kan ruang penyimpanan secara efektif dan menjalankan perintah sesuai kebutuhan waktu yang diinginkan.
- Security/Savety, data manapun perangkat keras tempat berjalannya perangkat lunak harus aman, tidak berbahaya bagi linkungan maupun kehidupan.
Produk Transition
- Interoperability, perangkat lunak dapat bertukar informasi dengan perangkat lunak lain dan memanfaatkan informasi secara transparan.
- Portability, perangkat lunak dapat menjalankan fungsi sama baiknya pada berbagai lingkungan dan platform (Sistem operasi yang berbeda).
- Reusability, kode-kode perangkat lunak dapat digunakan kembali untuk tujuan lain seperti membangun perangkat lunak lain.
Produk Revision
- Maintainability, mudah dalam pemeliharaannya.
- Flexibilitas, perubahan dalam perangkat lunak mudah dilakukan.
- Extensibility, mudah menambahkan fungsionalitas/fitur perangkat lunak.
- Scalabillity, dapat diupgrade untuk menangani lebih banyak pekerjaan atau pengguna.
- Testability, mudah dalam pengujian.
- Modularity, jika perangkat lunak dapat dibagi menjadi bagian independen terpisah (unit atau modul) yang dapat dimodifikasi, diuji secara terpisah, perangkat lunak tersebut memiliki modularitas tinggi.