Ruang Lingkup Rekayasa Perangkat Lunak
Guru Go Blog - Rekayasa Perangkat Lunak (RPL) merupakan bidang ilmu yang mendalami cara-cara pengembangan perangkat lunak mulai dari pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak dan manajemen kualitas. RPL juga erat kaitannya dengan software yakni website, aplikasi, game dan semua jenis bahasa pemrograman. Sehingga bidang ilmu RPL selalu akan berkaitan dengan coding, desain dan algoritma, tiga hal ini adalah kunci kesuksesan bidang RPL.
Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.
Rekayasa perangkat lunak adalah pengubahan perangkat lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip reakayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.
Pada tingkat dasar, pengetahuan mengenai perangkat lunak sudah sangat umum dan bisa dipahami di luar kepala. Tapi ilmu mengenai rekayasa perangkat lunak justru baru dipelajari setelah seseorang masuk dalam tingkat praktik teknologi.
Bagi Anda yang masih bingung dan belum pernah mempelajarinya, perhatikan beberapa definisi berikut ini.
1. Menurut Bahasa
Rekayasa software atau perangkat lunak berasal dari dua kata, yakni rekayasa dan perangkat lunak. Rekayasa sendiri menurut bahasa berarti penerapan dari kaidah ilmu yang meliputi kegiatan pembuatan, perancangan, pengoperasian sehingga menghasilkan sistem yang lebih efisien dan ekonomis.
Sementara perangkat lunak merupakan salah satu nyawa dari komputer dan perangkat keras yang ada di dalamnya, sehingga tanpa perangkat lunak komputer tidak akan bisa menjalankan fungsinya.
Dari dua asal kata di atas, dapat dipahami bahwa rekayasa dari perangkat lunak adalah suatu kegiatan merancang atau membuat perangkat lunak yang sudah ada, agar bisa menghasilkan perangkat yang lebih efisien bagi penggunanya.
2. Menurut Para Ahli
Mengingat pentingnya wawasan terkait rekayasa software ini, maka beberapa para ahli ikut mendefinisikan dari sudut pandang masing-masing yang lebih mudah dipahami oleh para pemula. Beberapa ahli tersebut di antaranya:
1. Roger Pressman
Proses pembuatan sebuah program berupa perangkat lunak agar bisa digunakan oleh users untuk menjalankan fungsi dan instruksi tertentu. Rekayasa software juga disebut sebagai struktur data atau dokumen yang dimanfaatkan untuk memanipulasi segala informasi.
Adapun prinsip yang digunakan dalam proses rekayasa software ini adalah keahlian teknik demi memperoleh software yang bisa bekerja lebih efisien pada mesin tertentu yang digunakan.
2. Fritz Bauer
Sesuai namanya, rekayasa software adalah proses pengembangan software yang sudah ada dengan menggunakan prinsip dan teknik rekayasa, agar bisa menghasilkan software yang lebih efisien dalam penerapannya menggunakan mesin sesungguhnya.
3. Stephen R. Schach
Suatu pengembangan software yang sengaja dilakukan agar bisa menghasilkan perangkat yang tidak bermasalah dan tidak mengalami kerusakan.
Selain itu, proses itu juga sengaja dilakukan supaya pengiriman data melalui software tersebut bisa lebih efektif dan efisien sesuai keinginan users.
4. IEE Computer Society
Merupakan suatu pendekatan yang diterapkan dan dilakukan secara disiplin dan sistematis guna memelihara software. Dengan pendekatan yang terkuantifikasi atas pengembangan dan sistematis inilah, perangkat lunak bisa dipelihara dengan sistem engineering.
5. IEEE 610.12
Sebuah kegiatan rekayasa atau studi terkait perangkat lunak yang terdiri dari pendekatan sistematis, kuantifiabel, pengembangan, disiplin, operasi, hingga pemeliharaan perangkat lunak untuk mengembangkan perangkat lunak yang sudah ada.
Menurut istilah, rekayasa software ini bisa didefinisikan dari penerapan dan praktiknya dalam kehidupan. Rekayasa perangkat lunak bisa diartikan sebagai ilmu yang mempelajari tentang proses perancangan, pembuatan, hingga pemeliharaan sebuah perangkat lunak.
Adapun sistem dan prinsip yang dipakai bersifat sistematis sehingga bisa menghasilkan software yang lebih fungsional dan sesuai dengan kebutuhan nyata dalam kehidupan.
Dari beberapa definisi di atas, dapat ditemukan beberapa kriteria yang harus dijadikan tolak ukur dalam melakukan rekayasa software, di antaranya:
- Mampu memenuhi kebutuhan yang diinginkan oleh penggunanya.
- Bisa mengikuti keinginan pengguna.
- Mampu mengikuti perkembangan teknologi yang sedang berkembang.
- Mampu meningkatkan efektifitas dan efisiensi dalam menggunakan energi penggunanya.
- Bisa terus dipelihara dan dirawat untuk jangka panjang.
RPL atau rekayasa software tentu memiliki banyak tujuan positif yang memberikan kemudahan dan manfaat bagi manusia sebagai pembuat dan pengguna dari perangkat itu sendiri. Beberapa tujuan tersebut meliputi:
1. Mengembangkan Software yang Lebih Berkualitas
Tujuan utama yang sudah umum diketahui dari adanya RPL adalah untuk mengembangkan perangkat lunak yang sudah ada agar lebih berkualitas dan bermanfaat bagi penggunanya. Tentu saja kualitas tidak hanya dilihat dari user saja, tapi dari berbagai sudut pandang seperti pemakai, sponsor, dan maintainer.
Pemakai harus mengakui kualitas dari software hasil RPL karena benar-benar menunjang dan mempermudah kegiatan tertentu. Sementara pihak sponsor yang membangun perangkat lunak juga merasakan bahwa software hasil RPL bisa lebih efisien dari sebelumnya.
Sementara maintainer juga merasakan kualitas dari software yang dianggap lebih mudah dalam pemeliharaannya dan bisa digunakan dalam jangka waktu lama.
2. Memperbarui Software Agar Lebih Fungsional
Dalam aplikasinya, perangkat lunak yang dibuat pasti memiliki kelemahan ketika sudah digunakan untuk berbagai kepentingan. Berbagai kelemahan ini perlu disempurnakan dan diperbaiki lagi, agar lebih fungsional dan dimanfaatkan sesuai kebutuhan.
Melalui prinsip kerja dari rekayasa software, tentu saja berbagai kelemahan tersebut bisa dipelajari secara mendalam untuk dicarikan solusi agar bisa disempurnakan kembali. Dengan begitu, perangkat lunak bisa lebih berguna sesuai dengan keinginan penggunanya.
3. Menciptakan Software yang Lebih Mudah Digunakan
Adanya kegiatan rekayasa pada perangkat lunak juga memiliki tujuan untuk menyempurnakan software agar lebih mudah digunakan atau user friendly. Tidak hanya mudah diaplikasikan, tapi juga memiliki tampilan yang lebih menarik sehingga mudah dipahami saat dipakai.
Seorang yang memiliki ilmu tentang perangkat lunak tentunya mengetahui kesulitan dari software yang telah ada dari sudut pandang pengguna. Untuk itulah software dikembangkan lagi agar lebih mudah digunakan untuk masyarakat luas dari segala kalangan.
4. Membantu Integrasi Perangkat Lunak dengan Peralatan Lainnya
Beberapa perangkat lunak juga diciptakan untuk membantu integrasi dengan peralatan lainnya. Sayangnya, dalam aplikasinya beberapa peralatan justru mengalami masalah saat dihubungkan dengan perangkat lunak.
Atas kendala itulah, RPL dilakukan untuk tujuan integrasi software dengan berbagai peralatan tersebut. Diharapkan RPL mampu meningkatkan sistem software agar lebih optimal, sehingga bisa mendukung berbagai peralatan yang dibutuhkan tersebut.
5. Membantu Memelihara dan Merawat Perangkat Lunak
Tidak hanya membuat dan mengembangkan aplikasi saja, rekayasa software juga berguna untuk membantu perawatan dan pemeliharaan dari perangkat lunak tersebut. Dengan adanya perawatan melalui rekayasa software, tentu saja segala kendala dan masalah pada software bisa dihindari.
Dalam jangka panjang, sistem akan tetap berkualitas dan mampu memenuhi kebutuhan pengguna sesuai dengan keinginannya.
6. Memodifikasi Perangkat Lunak Agar Lebih Hemat dan Efisien
Meskipun sudah sempurna dan fungsional, perangkat lunak yang ada terkadang juga memiliki masalah dari penggunaannya yang kurang efisien dan memakan banyak biaya. Untuk itulah rekayasa software diperlukan.
7. Menciptakan Perangkat Lunak yang Tepat Waktu Sesuai Kebutuhan
Perangkat lunak yang diciptakan juga harus bisa tepat waktu sesuai dengan kebutuhan yang diinginkan. Apabila perangkat tidak bisa bekerja tepat waktu dan sesuai kebutuhan, akan sangat merugikan dan mengurangi efektifitas serta fungsi dari perangkat lunak itu sendiri.
Ruang Lingkup Rekayasa Perangkat Lunak
Melalui definisi dan tujuan yang diinginkan dari rekayasa software, dapat ditemukan beberapa ruang lingkup dari RPL itu sendiri yang harus tercakup di dalamnya, yaitu:
- Desain, yang menampilkan komponen, arsitektur, tampilan, serta karakteristik dari perangkat lunak.
- Requirement, terkait dengan berbagai spesifikasi persyaratan dan keperluan dari software.
- Configurations managemen, berupa berbagai usaha yang dilakukan untuk mengubah perangkat lunak agar bisa memenuhi kebutuhan tertentu.
- Construction, yang mencakup berbagi rincian dari perangkat lunak itu sendiri hingga menguji software agar bebas dari kesalahan.
- Engineering tools, berkaitan dengan kajian dari alat bantu dan metode rekayasa software.
- Engineering management, berupa pengukuran dan pengelolaan dari rekayasa software.
- Maintaince, berupa segala usaha untuk merawat software yang telah digunakan.
- Testing yang menguji semua perilaku dari software yang sudah ada dan akan digunakan.
RUANG LINGKUP
Sesuai dengan definisi yang telah disampaikan sebelumnya, maka ruang lingkup RPL dapat digambarkan sebagai berikut:
- software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak
- software desain mencakup proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak
- software construction berhubungan dengan detail 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 menitik beratkan pada kualitas dan daur hidup perangkat lunak
Metode Rekayasa Perangkat Lunak
Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC) seperti terlihat pada Gambar berikut ini.
- Kebutuhan terhadap definisi masalah yang jelas. Input utama dari setiap model pengembangan perangkat lunak adalah pendefinisian masalah yang jelas. Semakin jelas akan semakin baik karena akan memudahkan dalam penyelesaian masalah. Oleh karena itu pemahaman masalah seperti dijelaskan pada Bab 1, merupakan bagian penting dari model pengembangan perangkat lunak.
- Tahapan-tahapan pengembangan yang teratur. Meskipun model-model pengembangan perangkat lunak memiliki pola yang berbeda-beda, biasanya model-model tersebut mengikuti pola umum analysis – design – coding – testing – maintenance
- Stakeholder berperan sangat penting dalam keseluruhan tahapan pengembangan. Stakeholder dalam rekayasa perangkat lunak dapat berupa pengguna, pemilik, pengembang, pemrogram dan orang-orang yang terlibat dalam rekayasa perangkat lunak tersebut.
- Dokumentasi merupakan bagian penting dari pengembangan perangkat lunak. Masing-masing tahapan dalam model biasanya menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain yang harus didokumentasi dan merupakan bagian tak terpisahkan dari perangkat lunak yang dihasilkan.
- Keluaran dari proses pengembangan perangkat lunak harus bernilai ekonomis. Nilai dari sebuah perangkat lunak sebenarnya agak susah di-rupiah-kan. Namun efek dari penggunaan perangkat lunak yang telah dikembangkan haruslah memberi nilai tambah bagi organisasi. Hal ini dapat berupa penurunan biaya operasi, efisiensi penggunaan sumberdaya, peningkatan keuntungan organisasi, peningkatan “image” organisasi dan lain-lain.
TAHAPAN REKAYASA PERANGKAT LUNAK
Meskipun dalam pendekatan berbeda-beda, namun model-model pendekatan memiliki kesamaan, yaitu menggunaka pola tahapan analysis – design – coding(construction) – testing – maintenance.
Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi komponen-komponennya dengan tujuan mempelajari seberapa bagus komponen-komponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka. Analisis mungkin adalah bagian terpenting dari proses rekayasa perangkat lunak. Karena semua proses lanjutan akan sangat bergantung pada baik tidaknya hasil analisis. Ada satu bagian penting yang biasanya dilakukan dalam tahapan analisis yaitu pemodelan proses bisnis.
Model proses adalah model yang memfokuskan pada seluruh proses di dalam sistem yang mentransformasikan data menjadi informasi (Harris, 2003). Model proses juga menunjukkan aliran data yang masuk dan keluar pada suatu proses. Biasanya model ini digambarkan dalam bentuk Diagram Arus Data (Data Flow Diagram / DFD). DFD meyajikan gambaran apa yang manusia, proses dan prosedur lakukan untuk mentransformasi data menjadi informasi.
Disain perangkat lunak adalah tugas, tahapan atau aktivitas yang difokuskan pada spesifikasi detil dari solusi berbasis computer (Whitten et al, 2004). Disain perangkat lunak sering juga disebut sebagai physical design. Jika tahapan analisis sistem menekankan pada masalah bisnis (business rule), maka sebaliknya disain perangkat lunak fokus pada sisi teknis dan implementasi sebuah perangkat lunak (Whitten et al, 2004). Output utama dari tahapan disain perangkat lunak adalah spesifikasi disain. Spesifikasi ini meliputi spesifikasi disain umum yang akan disampaikan kepada stakeholder sistem dan spesifikasi disain rinci yang akan digunakan pada tahap implementasi. Spesifikasi disain umum hanya berisi gambaran umum agar stakeholder sistem mengerti akan seperti apa perangkat lunak yang akan dibangun. Biasanya diagram USD tentang perangkat lunak yang baru merupakan point penting dibagian ini. Spesifikasi disain rinci atau kadang disebut disain arsitektur rinci perangkat lunak diperlukan untuk merancang sistem sehingga memiliki konstruksi yang baik, proses pengolahan data yang tepat dan akurat, bernilai, memiliki aspek user friendly dan memiliki dasar-dasar untuk pengembangan selanjutnya. Desain arsitektur ini terdiri dari desain database, desain proses, desain user interface yang mencakup desain input, output form dan report, desain hardware, software dan jaringan. Desain proses merupakan kelanjutan dari pemodelan proses yang dilakukan pada tahapan analisis.
Konstruksi adalah tahapan menerjemahkan hasil disain logis dan fisik ke dalam kode-kode program komputer.
Pengujian sistem melibatkan semua kelompok pengguna yang telah direncanakan pada tahap sebelumnya. Pengujian tingkat penerimaan terhadap perangkat lunak akan berakhir ketika dirasa semua kelompok pengguna menyatakan bisa menerima perangkat lunak tersebut berdasarkan kriteria-kriteria yang telah ditetapkan.
Perawatan dan Konfigurasi. Ketika sebuah perangkat lunak telah dianggap layak untuk dijalankan, maka tahapan baru menjadi muncul yaitu perawatan perangkat lunak.
Ada beberapa tipe perawatan yang biasa dikenal dalam dunia perangkat lunak.
- Tipe perawatan corrective dilakukan jika terjadi kesalahan atau biasa dikenal sebagai bugs. Perawatan bisa dilakukan dengan memperbaiki kode program, menambah bagian yang dirasa perlu atau malah menghilangkan bagian-bagian tertentu.
- Tipe perawatan routine biasa juga disebut preventive maintenance dilakukan secara rutin untuk melihat kinerja perangkat lunak ada atau tidak ada kesalahan.
- Tipe perawatan sistem upgrade dilakukan jika ada perubahan dari komponen-komponen yang terlibat dalam perangkat lunak tersebut. Sebagai contoh perubahan platform sistem operasi dari versi lama ke versi baru menyebabkan perangkat lunak harus diupgrade.
Posting Komentar untuk "Ruang Lingkup Rekayasa Perangkat Lunak"