IEEE= (1) Penerapan secara sistematis, disiplin pendekatan terukur pada pengembangan pengoperasian dan pemeliharaan software (2) Studi terhadap (1).
Jadi, Rekayasa Perangkat Lunak adalah ilmu yang membahas semua aspek produksi Perangkat Lunak, dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikas dari kebutuhan pengguna, desain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan.
Tujuan dari pembelajarn Rekayasa Perangkat Lunak adalah dimana kita bisa menekan Biaya (baik pembuatan dan perawatan) seminim dan serendah mungkin dan memanfaatkan Waktu yang diberikan secara efektif dan efisien sehingga menghasilkan Kinerja yang tinggi, andal dan tepat waktu. Lebih mudahnya dipahami lewat gambar dibawah ini tentang tujuan Rekayasa Perangkat Lunak.
|
Gambar Segitiga
Hubungan Biaya, Waktu, dan Kinerja
|
Bill Gates dengan Microsoft-nya dianggap sebagai intelektual muda yang lahir dari perguruan tinggi. Rekayasa Perangkat Lunak hanyalah sebuah teori, tetapi patut diketahui RPL berkaitan erat dengan semua bidang yang akan digeluti oleh lulusan komputer seperti, bisnis dan manajemen. Dan Bill Gates pun mengamalkan apa yang diketahuinya tentang Rekayasa Perangkat Lunak pada Microsoft.
Rekayasa disini bukan berarti konotasi negatif terhadap Perangkat Lunak.Rekayasa diarahkan kepada positif Perangkat Lunaknya. Menghasilkan yang terbaik, bermanfaat dan kemaslahatan manusia. Perkembangan hardware (perangkat keras) yang cepat membuat software (Perangkat Lunak) harus ikut menyesuaikan. · Berbicara tentang rekayasa perangkat lunak, bukanlah berbicara tentang pemrograman untuk membangun sebuah perangkat lunak. Apa yang dibahas di dalam rekayasa perangkat lunak adalah kegiatan-kegiatan yang dilakukan untuk membangun perangkat lunak dan kegiatan yang menaunginya sehingga perangkat lunak yang dihasilkan sesuai dengan standar mutu yang ditentukan. Mengajarkan dan mengikuti kuliah rekayasa perangkat lunak (RPL) sama-sama tidak mudahnya. Mengajarkan suatu konsep memerlukan kreatifitas sehingga konsep tersebut tidak hanya dapat dibayangkan dan masuk akal, tapi juga menarik. Memahami suatu konsep yang tidak terpikirkan saat melakukan pemrograman memerlukan imajinasi dan analogi yang membantu diterima secara logis. Pada umumnya mahasiswa Teknik Informatika dan Sistem Informasi lebih mengutamakan pemrograman, karena menurut mereka itu adalah kemampuan inti yang harus dikuasai. Pada kenyataannya, banyak kemampuan lain yang mungkin selama ini dianggap sebelah mata, justru menjadi penopang dan penentuk proses membangun perangkat lunak: kerja sama dalam tim, kemampuan berkomunikasi, kemampuan membuat dokumentasi, kemampuan wawancara, kemampuan belajar cepat bidang lain di luar pemrograman dan sebagainya. Dalam rekayasa perangkat lunak umumnya ada beberapa kegiatan yang senantiasa ada pada model proses apapun : identifikasi kebutuhan, desain, pengkodean, penerapan dan pemeliharaan. Dari kegiatan-kegiatan yang berurutan tersebut, pengkodean baru dapat dilakukan jika kebutuhan sudah dikumpulkan dan diketahui lalu didesain. Pengkodean yang sering menjadi fokus mahasiswa ini tidak berhenti ketika selesai, tapi ada pemeliharaan yang pasti terkait juga dengan kebutuhan. Kegiatan lain yang menaungi rekayasa perangkat lunak adalah jaminan mutu perangkat lunak [SQA- Software Quality Assurance]. Pada dasarnya, setiap kegiatan memilik standar bagaimana kegiatan tersebut seharusnya dilakukan untuk menghasilkan produk yang diinginkan. Rekayasa Perangkat Lunak· Pengantar Rekayasa Perangkat Lunak adalah kegiatan yang sistematis dalam membangun sebuah perangkat lunak untuk menjawab kebutuhan-kebutuhan satu pihak.· Skala perangkat lunak yang dibangun beragam berdasarkan luas dan detil kebutuhan klien yang memerlukannya. Perangkat lunak yang memiliki 300.000 baris perintah dikatagorikan perangkat lunak berukuran kecil. Ukuran ini tentu besar untuk kapasitas seorang mahasiswa bidang Teknologi Informasi/Informatika. Karena itu kegiatan ini umumnya dilakukan oleh suatu tim bukan perorangan. Kegiatan dilakukan secara sistematis. Ini tidak hanya berarti berencana, tetapi juga mengacu pada suatu model tertentu yang sesuai dan menjalani prosedur wajib. Model tertentu ini adalah model proses dan prosedur wajib adalah pengelolaan proyek dan penjaminan mutu. Model Proses Model proses menjabarkan urutan kegiatan dalam merekayasa perangkat lunak. Dari berbagai macam model proses yang dibuat oleh banyak ahli dan praktisi, ada 4 kegiatan inti yang selalu ada yaitu: 1. pengumpulan kebutuhan 2. perancangan sistem 3. pengujian sistem 4. penerapan sistem Beberapa model proses yang sudah dikenal adalah Waterfall, Increment, Spiral, Rapid Application Development, Prototying, Component -Based Development, dan Extreme Programming. Beragam model proses ini berusaha untuk menjawab atau memandu pengembangan perangkat lunak dalam berbagai kasus. Dengan demikian tidak ada model proses paling cocok untuk semua kasus rekayasa perangkat lunak. Rekayasa perangkat lunak pada umumnya dilakukan secara tim. Tim pembangun dibentuk dan dikelola dalam suatu manajemen proyek perangkat lunak. Manajemen Proyek Perangkat Lunak Mengatur dan mengkoordinasi anggota-anggota tim, sesumber yang digunakan, waktu yang tersedia untuk tiap proyek, dan komunikasi antar tim atau anggota bukanlah suatu yang mudah untuk dilakukan. Tim pembangun perangkat lunak penting memiliki kemampuan manajemen untuk mendukung ketrampilan teknis yang dimiliki. Dalam pengerjaan suatu proyek perangkat lunak, kemampuan berkomunikasi, penggalian informasi, analisis, presentasi dan pengaturan waktu sangat penting. Ini sering tidak disadari oleh mahasiswa-mahasiswa di jurusan Teknik Informatika, Sistem Informasi atau Ilmu komputer. Banyak dari mereka berpikiran bahwa kemampuan pengkodean atau programming menjadi kemampuan yang paling mendapat prioritas. Mengelola suatu proyek perangkat lunak juga adalah proses memastikan kualitas dari suatu proyek yang dikerjakan. Kualitas suatu software menjadi prioritas tinggi dalam pembangunanya. Karena itu ada bagian khusus dalam tim pembangun yang disebut tim penjamin mutu yang menerapkan prinsip-prinsip dalam software quality assurance. Proses Pembangunan Software Langkah penting dalam pembangunan software adalah pengamatan dan pengumpulan kebutuhan software atau yang disebut software requirement. Setelah kebutuhan didapatkan dari klien secara lengkap, maka analisis dan desain sistemdilakukan oleh tim pembangun. Desain yang juga perlu mendapat perhatian adalah User Interface Desain yaitu bagian yang berinteraksi langsung dengan pengguna software. Setelah desain, maka tahap pengkodean dilakukan. Hasil pada tahap ini dilakukan pengujian, dan setelah lolos pengujian perangkat lunak diterapkan di lokasi klien sambil terus dilakukan pengujian menggunakan kasus-kasus yang terjadi di kondisi sebenarnya. Pelatihan kepada pengguna perangkat lunak wajib dilakukan untuk mensukseskan penerapan. Pelatihan ini juga diharapkan dapat membantu tim pembangun dalam tahap pemeliharaan perngkat lunak. Ada kalanya perangkat lunak yang dibangun adalah suatu website, untuk itu hal-hal yang berkenaan dengan pembangunan suatu website perlu diperhatikan seperti struktur web dan keamanan terhadap integritas data. Jenis-jenis Perangkat Lunak1. Berdasarkan sudut pandang
- Perangkat lunak sistem
- Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk operasional komputer. Diantaranya : sistem operasi , penerjemah bahasa pemrograman (compiler/interpreter)
- Perangkat lunak aplikasi
- Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk membantu
- menyelesaikan masalalah-masalah yang dihadapi oleh pemakai. Contohnya: program paket yang sudah jadi dan program aplikasi buatan sendiri
- Perangkat Lunak Sistem (Sistem Software)
- Sekumpulan program yang ditulis untuk kepentingan program lain, contoh editor,driver dan lain-lain
- Perangkat Lunak Waktu Nyata (Real Time Software)
- Perangkat lunak yang digunakan untuk mengukur/menganalisis atau mengontrol proses pemasukan data dari lingkungan luar sampai menghasilkan laporan yang diinginkan
- Perangkat Lunak Bisnis (Business Software)
- Perangkat lunak yang memberikan fasilitas operasi untuk bisnis atau fasilitas pengambilan keputusan manajemen, contoh sistem akuntansi,inventory, payroll dan lain-lain
- Perangkat Lunak Rekayasa dan Sains (Engineering and Scientific Software)
- 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.
- Embedded Software
- Perangkat lunak yang digunakan untuk mengontrol suatu produk dan sistem dimana perangkat lunak tersebut disimpan. Biasanya ditempatkan di ROM, contoh Tombol di Microwave Oven
- Perangkat Lunak Komputer Pribadi (Personal Computer Software)
- Banyak digunakan pada aplikasi yang bersifat perorangan, contohnya :pengolah kata, spreadsheet, game, DBMS dan lain-lain.
- Perangkat Lunak Intelegensia Buatan (Artificial Intelligent Software) 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.
- Spesifikasi perangkat lunak : mendefinisikan fungsi dan kemampuan beroperasi
- Pengembangan perangkat lunak : mengembangkan perangkat lunak yang sesuai dengan spesifikasi
- Validasi perangkat lunak : menjamin perangkat lunak sesuai dengan yang
- diinginkan pelanggan.
- Evolusi perangkat lunak :perangkat lunak harus terus terupdate sesuai dengan
- keinginan pelanggan.
- 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 perintah (coding) beserta data-datanya sehingga menjadi suatu aplikasi yang
dapat digunakan.
a. Tujuan Rekayasa Perangkat Lunak
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) dengan biaya yang efisien
dan tepat pada waktunya.
Untuk lebih jelasnya lihat gambar 1.1. Gambar 1.1 Paremeter Perangkat Lunak Yang Berkualitas Berdasarkan Sudut Pandang
\\
\
Sisi Sponsor :
Tujuan utama sponsor adalah menghasilkan dan atau menghemat uang. Sponsor
ingin menggunakan perangkat lunak tersebut untuk meningkatkan produktivitas
organisasi. Sponsor mengharapkan untuk dapat menghasilkan sebuah layanan
dengan biaya yang rendah tetapi masuk akal. Karena itu sistem yang dibuat
harus handal, fleksibel dan efisien. Selain itu biaya dari pemeliharaan,
modifikasi dan peningkatan dari sistem tersebut harus serendah mungkin.
Sisi Pemakai :
Bagi pemakai perangkat lunak adalah alat untuk membantu menyelesaikan
tugas-tugasnya. Karena itu perangkat lunak harus menyediakan fungsi-fungsi
yang dibutuhkan oleh pemakai. Perangkat lunak juga harus handal dan efisien,
perangkat lunak harus dapat menghasilkan output yang konsisten. Selain itu
pemakai harus merasa perangkat lunak yang dibuat mudah untuk dipelajari,
mudah digunakan dan mudah untuk diingat.
Sisi Maintainer/modifier :
Perangkat lunak tersebut memiliki sangat sedikit error pada saat penginstallan
pertama (catatan : sangat kecil kemungkinannya untuk menghasilkan perangkat
lunak yang 100 % bebas dari bug). Selain itu perangkat lunak tersebut harus
terdokumentasi dengan baik. Source code juga harus mudah dibaca, terstruktur
dan dirancang dengan baik dan bersifat modular.