Prinsip Rekayasa Perangkat Lunak
PRINSIP-PRINSIP REKAYASA PERANGKAT LUNAK (RPL)
Pada awal pengembangan perangkat lunak, para pembuat program (programmer) langsung melakukan pengodean perangkat lunak tanpa menggunakan prosedur atau tahapan pengembangan perangkat lunak. Dan ditemuilah kendala-kendala seiring dengan perkembangan skala sistem (sistem perangkat yang semakin besar). SDLC atau SoftwareDevelopment Life Cycle atau sering disebut juga System Development Life Cycle adalah proses mengembangkan atau mengubah suatu system perangkat lunak dengan menggunakan model-model dan metodologi yang digunakan orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya.
TAHAPAN-TAHAPAN PADA SDLC
Tahapan-tahapan yang ada pada SDLC secara global adalah :
- Inisiasi (Initiation)
- Pengembangan Konsep Sistem (System Concept Development)
- Perencanaan (Planning)
- Analisis Kebutuhan (Requirements Analysis)
- Desain (Design)
- Pengembangan (Development)
- Integrasi dan Pengujian (Integration and Test)
- Implementasi (Implementation)
- Operasi dan Pemeliharaan (Operations and Maintenance)
- Disposisi (Disposition)
MODEL SDLC
SDLC memiliki beberapa model dalam penerapan tahapan prosesnya. Beberapa contoh modelnya sebagai berikut :
- Model Waterfall adalah model SDLC yang paling sederhana. Cocok untuk pengembangan perangkat lunak dengan spesifikasi yang tidak berubah-ubah.
- Model Prototipe cocok digunakan untuk menggali spesifikasi kebutuhan pelanggan secara lebih detail tetapi beresiko tinggi terhadap membengkaknya biaya dan waktu proyek.
- Model Rapid Application Development (RAD) cocok digunakan pengembangan perangkat lunak yang bersifat inkremental (berkembang sedikit demi sedikit secara teratur) terutama untuk waktu pengerjaan yang pendek.
- Model Iteratif merupakan gabungan dari model Waterfall dan model Prototipe.
- Model Spiral cocok digunakan untuk pengembangan aplikasi dengan skala besar tetapi target waktu dan biaya tidak terlalu mengikat.
REKAYASA WEB
Rekayasa Web adalah sebuah aplikasi yang menggunakan pendekatan sistematis, disiplin, dan terukur untuk pengembangan, operasi dan pemeliharaan aplikasi berbasis Web (Web-Based Applications). Rekayasa Web adalah subdisiplin dari rekayasa perangkat lunak yang membantu menyediakan metodologi untuk merancang, mengembangkan, memelihara, dan melibatkan aplikasi Web. Powel (1998) mengatakan bahwa sistem berbasis Web “melibatkan campuran antara print publishing (penerbitan cetakan) dan pengembangan perangkat lunak, antara pemasaran dan komputasi, antara komunikasi internal dan relasi eksternal, dan antara seni dan teknologi”
Rekayasa Web menjadi suatu bidang yang multidisipliner dengan masukan dari berbagai bidang ilmu yang berbeda seperti :
- Interaksi manusia-komputer (human-computer interaction)
- Antarmuka pengguna (user interface)
- Perancangan dan analisis sistem (systems analysis and design)
- Rekayasa perangkat lunak (software engineering)
- Rekayasa kebutuhan (requirements engineering)
- Rekayasa hipermedia ( hypermedia engineering)
- Struktur informasi (information structured)
- Pengujian (tersting)
- Pemodelan dan simulasi (modeling and simulation)
- Manajemen proyek ( project management)
REKAYASA WEB DAN REKAYASA PERANGKAT LUNAK
Meskipun rekayasa Web melibatkan pemrograman dan pengembangan perangkat lunak serta mengadopsi beberapa prinsip-prinsip RPL, pengembangan sistem berbasis Web danrekayasa Web berbeda dengan pengembangan perangkat lunak dan rekayasa perangkat lunak. Sistem berbasis Web :
- Kebanyakan sistem berbasis Web (paling tidak saat ini) adalah halaman Web statis dan dinamis.
- Sistem berbasis Web akan berlanjut untuk dipusatkan pada “look and feel” yang menekankan pada penyajian dan kreativitas visual mengenai antarmuka frond-end dengan seorang pengguna yang dapat saling berhubungan.
- Sistem berbasis Web akan berlanjut ke pengembangan content-driven. Artinya pengembangan sistem berbasis Web akan meliputi pengembangan dari konten yang disajikan.
- Web menerangkan ikatan yang lebih besar antara seni dan ilmu daripada yang dialami di dalam pengembangan perangkat lunak.
- Kebanyakan sistem berbasis web dikembangkan dalam waktu yang sangat singkat sehingga sulit untuk membuat dan menerapkannya pada tingkat yang sama dengan perencanaan dan pengujian seperti yang digunakan dalam pengembangan perangkat lunak.
KEAHLIAN BIDANG REKAYASA WEB
Faktor kesuksesan proyek rekayasa Web merupakan tingkat keahlian yang dibutuhkan dari seorang perekayasa Web untuk menguasai proses pengembangan. Menurut Seffah dan Grogono (2002), ada tiga kelompok keahlian yang dibutuhkan oleh seorang perekayasa perangkat lunak (software engineer). Oleh karena itu seorang perekayasa Web juga diharapkan memiliki ketiga kelompok keahlian berikut :
- Keahlian prasyarat
- Keahlian spesifik
- Keahlian umum
Keahlian Prasyarat
- Pemrograman dan pemodelan berorientasi dengan UML dan Java, atau dengan bahasa yang serupa.
- Pengembangan basis data dengan JDBC, MySQL, dan Java Servlets, atau dengan bahasa yang serupa.
- Pemrograman Web dengan HTML, JavaScript, CGI Script, dan PHP, atau dengan bahasa yang serupa.
- Penyebaran dari tool authoring khusus dengan editor Web, seperti FrontPage dan Macromedia Dreamweaver untuk desain dan implementasi aplikasi berbasis Web.
Keahlian Spesifik
- Pemahaman rekayasa Web sebagai bidang multidisipliner yang menggabungkan teknik, rekayasa, sosial, politik, pemasaran, legalitas, etika, budaya, estetika, dan isu pedadogis.
- Pengembangan filosofis pengembangan rekayasa Web.
- Pemahaman cakupan sistem dan konteks dari aplikasi rekayasa Web.
- Pemodelan analisis : pemahaman kebutuhan masalah, penetapan kebutuhan pengguna yang menggunakan use case dan scenario, penetapan kebutuhan data menggunakan elas dan teknik-teknik pemodelan analisis lainnya, dan atribut kualitas umum untuk aplikasi berbasis Web.
- Desain Web (desain situs menggunakan linear, grid, hierarki, dan struktur), Web jaringan, desain halaman, desain antar muka, desain navigasi, desain visual, desain tipografi, style editorial layar, warna, dan multimedia.
- Pengembangan prototipe (prototyping), tambahan (incremental), evolusioner, dan iteratif, pengodean program, pengujian integrasi, dan unit, pengevaluasian dan perbaikan (debugging) pengembangan solusi kode, dan pemeriksanaan konsistensi.
- Rekayasa dan pengujian usabilitas, interaksi manusiakomputer, kriteria usabilitas yang berkaitan dengan kepuasan pengguna (kemudahan penggunaan, kemudahan pembelajaran, dan konsistensi)
Keahlian Umum
- Manajemen dan perencanaan proyek.
- Penggunaan kembali prinsip-prinsip desain, frameworks, arsitektur, dan toolkit (class libraries), memodifikasi dan menggunakan kembali analisis yang ada (desain dan solusi kode program dan pola), perbandingan (mengenali persamaan dan perbedaan antara permasalah baru dan solusi sebelumnya).
- Keahlian menulis dan membaca : mempunyai kemampuan menulis dan teknik mengatur laporan dan dokumentasi, mampu membaca teks dan dokumen.
- Dialog komunikasi dengan stakeholder. Bekerja di dalam tim dengan pengembang, desainer sistem,pemrogram, pengguna akhir dan klien.
AKTIVITAS REKAYASA WEB
Rekayasa Web bukanlah tugas atau aktivitas tunggal. Rekayasa Web dihadapkan pada semua aspek-aspek dari pengembangan sistem berbasis Web, mulai dari konsep dan pengembangan untuk implementasi, evaluasi, kinerja,dan pemeliharaan yang berkesinambungan. Rekayasa Web menyajikan suatu pendekatan yang proaktif untuk penciptaan aplikasi Web. Sekarang ini banyak pengembang Web mengadopsi prinsip-prinsip rekayasa Web secara khusus meliputi :
- Analisis dan spesifikasi kebutuhan
- Teknik-teknik dan metodologi pengembangan system berbasis Web
- Integrasi dengan sistem warisan
- Migrasi dari sistem warisan ke lingkungan Web
- Pengembangan aplikasi waktu nyata berbasis Web
- Pengujian, verifikasi, dan validasi
- Penilaian kualitas, kontrol, dan jaminan
- Konfigurasi dan manajemen proyek
- Matriks web untuk estimasi usaha pengembangan
- Evaluasi dan spesifikasi kinerja
- Pembaruan (update) dan pemeliharaan
- Manajemen staf, tim, dan model pengembangan
- Manusia dan aspek-aspek budaya
- Pengembangan user-centric, pemodelan pengguna, dan umpan balik serta keterlibatan pengguna
- Pengembangan aplikasi pengguna akhir
- Pendidikan dan pelatihan.
Komentar
Posting Komentar