Fritz Bauer memberikan definisi bahwa Rekayasa Perangkat Lunak merupakan pengembangan dan penggunaan prinsip pengembangan suara untuk memperoleh perangkat lunak secara ekonomis yang reliable dan bekerja secara efisien pada mesin nyata.
Sedangkan IEEE telah mengembangkan definisi yang lebih komperhensif yaitu bahwa rekayasa perangkat lunak :
- Aplikasi dari sebuah pendekatan kuantitatif, disiplin, dan sistematis kepada pengembangan, operasi, dan pemeliharaan perangkat lunak yaitu : aplikasi dari Rekayasa Perangkat Lunak.
- Studi tentang pendekatan – pendekatan seperti pada nomor 1.
Proses, Metode, dan Alat Bantu
Rekayasa perangkat lunak merupakan sebuah teknologi yang dibentangkan. Banyak pendekatan keteknikan yang harus berada pada sebuah komitmen dasar menuju kualitas. Batu landasan yang menopang rekayasa perangkat lunak merupakan fokus pada kualitas. Fondasi untuk rekayasa perangkat lunak merupakan bentangan proses. Proses – proses rekayasa perangkat lunak adalah perekat yang menjaga bentangan – bentangan teknologi secara bersama – sama dan memungkinkan perkembangan perangkat lunak komputer yang tepat waktu dan rasional. Metode – metode rekayasa perangkat lunak memberikan teknik untuk membangun perangkat lunak. Metode – metode itu menyangkut seragkaian tugas yang luas yang menyangkut analisis kebutuhan, konstruksi program, desain, pengujian, dan pemeliharaan. Rekayasa perangkat lunak mengandalkan pada serangkaian prinsip dasar yang mengatur setiap area teknologi dan menyangkut aktivitas permodelan serta teknik – teknik deskriptif yang lain.
Tool – tool rekayasa perangkat lunak memberikan topangan yang otomatis maupun semi-otomatis pada proses – proses dan metode – metode yang ada. Ketika tool – tool diintegrasikan sehingga informasi yang diciptakan oleh satu tool bias digunakan oleh yang lain, system untuk menopang perkembangan perangkat lunak yang disebut computer-aided software engineering (CASE) terbangun. CASE menggabungkan perangkat lunak, perangkat keras, dan database rekayasa perangkat lunak untuk menciptakan lingkungan rekayasa perangkat lunak yang analog dangan CAD/CAE (Computer Aided Design/Engineering) untuk perangkat keras.
Pandangan Umum Tentang Rekayasa Perangkat Lunak
Rekayasa merupakan analisis, desain, konstruksi, verifikasi, dan manajemen kesatuan teknik (atau sosial). Tanpa memperdulikan kesatuan yang dikembangkan, pertanyaan – pertanyaan berikut harus dimunculkan dan dijawab :
- Masalah apakah yang akan dipecahkan?
- Karakteristik kesatuan apakah yang dipakai untuk menyelesaikan masalah tersebut?
- Bagaimanakah kesatuan (pemecahan tersebut) diadakan?
- Bagaimanakah kesatuan tersebut dibangun?
- Pendekatan apakah yang akan dipakai untuk menemukan kesalahan – kesalahan yang dibuat didalam desain dan konstruksi dari kesatuan tersebut?
- Bagaimananakah kesatuan tersebut ditopang selama proses adaptasi yang lama, pada saat koreksi, serta ketika perbaikan dibutuhkan oleh para pemakai kesatuan tersebut.
Usaha yang berhubungan dengan rekayasa perangkat lunak dapat dikategorikan ke dalam tiga fase umum dengan tanpa memperdulikan area aplikasi, ukuran proyek, atau kompleksitasnya. Masing – masing fase akan memberi tekanan pada pertanyaan – pertanyaan yang telah ditulis diatas.
Fase definisi (Definition Phase) berfokus pada “apa”; dimana pada definisi ini pengembang perangkat lunak harus mengidentifikasi informasi apa yang akan diproses, fungsi dan unjuk kerja apa yang dibutuhkan, tingkah laku system seperti apa yang diharapkan, interface apa yang akan dibangun, batasan desain apa yang ada, dan kriteria validasi apa yang dibutuhkan untuk mendefinisikan sistem yang sukses.
Fase pengembangan (Development Phase) berfokus pada how (bagaimana) yaitu dimana selama masa pengembangan perangkat lunak, teknisi harus mendefinisikan bagaimana dat dikonstruksikan, bagaimana fungsi – fungsi diimplementasikan, bagaimana interface ditandai, bagaimana rancangan akan diterjemahkan ke dalam bahasa pemrograman, serta bagaimana pengujian akan dilakukan.
Fase pemeliharaan (Maintenance Phase) berfokus pada perubahan, yang dihubungkan dengan koreksi kesalahan, penyesuaian yang dibutuhkan ketika lingkungan perangkat lunak berkembang, serta perubahan sehubungan dengan perkembangan yang disebabkan oleh perubahan kebutuhan pelanggan. Fase pemeliharaan mengaplikasikan lagi langkah – langkah pada fase definisi dan fase pengembangan, tetapi semuanya tetap tergantung pada konteks perangkat lunak yang ada. Ada empat tipe perubahan yang terjadi selama masa fase pengembangan, yaitu:
- Koreksi
- Adaptasi
- Perkembangan
- Pencegahan
Fase dan langkah – langkah yang berhubungan, seperti yang digambarkan pada pandangan umum kita tentang rekayasa perangkat lunak, harus diimbangi dengan sejumlah aktivitas pelindung (umbrella activities). Kegiatan – kegiatan khusus didalam kategori ini menyangkut :
- Kontrol dan pelacakan proyek perangkat lunak
- Review teknis formal
- Jaminan kualitas perangkat lunak
- Manajemen konfigurasi perangkat lunak
- Penghasilan dan penyiapan dokumen
- Manajemen reusabilitas
- Pengukuran
- Manajemen resiko
Proses Perangkat Lunak
Sebuah kerangka kerja proses umum dibangun dengan mendefinisikan sejumlah kecil aktivitas kerangka kerja yang bisa diaplikasikan ke semua proyek perangkat lunak, tanpa melihat ukuran atau kompleksitasnya. Sejumlah task set- tiap koleksi rekayasa perangkat lunak yang mengerjakan tugas – tugas, tonggak proyek, hasil usaha perangkat lunak dan bisa dipesan, serta titik jaminan kualitas- memungkinkan aktivitas kerangka kerja disesuaikan dengan karakteristik proyek perangkat lunak dan kebutuhan tim proyek. Akhirnya, aktivitas pelindung- seperti jaminan kualitas perangkat lunak, manajemen konfigurasi perangkat lunak- lampiran model proses. Aktivitas pelindung tidak tergantung pada satupun aktivitas kerangka kerja dan terjadi pada seluruh proses.
Proses Perangkat Lunak
Rekayasa perangkat lunak Institute (SEI) telah mengembangkan model komprehensif yang didasarkan atas sekumpulan kapabilitas rekayasa perangkat lunak yang harus ada sebagai organisasi yang mencapai tingkat kematangan proses yang berbeda. Untuk menentukan keadaan suatu organisasi dalam hal kematangan prosesnya, SEI menggunakan perkiraan kuesioner serta skema gradasi lima poin. Skema gradasi tersebut menentukan pemenuhan dengan sebuah model kematangan kapabilitas yang mendefiniskan aktivitas kunci yang dibutuhkan pada tingkat kematangan proses yang berbeda. Pendekatan SEI memberikan sebuah pengukuran terhadap efektivitas global dari sebuah praktek perekayasaan perangkat lunak perusaahaan dan membangun lima tingkat kematangan proses, yang didefinisikan dengan cara berikut :
- Level 1 Initial – Proses perangkat lunak yang ditandai sebagai ad hoc, dan bahkan kadang-kadang bersifat kacau.
- Level 2 Repeatable – Proses – proses manajemen proyek dasar dibangun untuk menulusuri masalah biaya, jadwal, dan fungsionalitas. Disiplin proses yang perlu ada untuk mengulangi sukses – sukses proyek yang terdahulu dengan penerapan yang sama.
- Level 3 Defined – Proses perangkat lunak, baik untuk aktivitas manajemen atau perekayasaan didokumentasikan, distandarkan, dan diintregasikan ke dalam proses perangkat lunak organisasi besar. Semua proyek menggunakan versi proses organisasi yang didokumentasikan dan disahkan untuk pengembangan dan pemeliharaan perangkat lunak. Tingkat ini menyangkut semua ciri yang didefinisikan pada tingkat 3.
- Level 4 Managed – Pengukuran detail terhadap proses perangkat lunak dan kualitas produksi dikumpulkan. Produk dan proses perangkat lunak dipahami secara kuantitatif dan dikontrol dengan menggunakan pengukuran secara detail. Tingkat ini termasuk semua karakteristik yang didefinisikan pada tingkat 3.
- Level 5 Optimizing – Pertambahan proses yang terus – menerus dimungkinkan oleh umpan balik kuantitatif dari prose dan dari gagasan inovatif pengujian serta teknologi. Tingkat ini termasuk semua ciri yang didefinisikan pada tingkat 4.
Lima tingkat yang didefinisikan oleh SEI ini disimpulkan dari sebuah konsekuensi respon evaluasi ke assessment questionnaire yang didasarkan pada CMM. Hasil dari kuesioner tersebut didestilasi menjadi sebuah tingkatan numeric tunggal yang memberikan identifikasi terhadap kematangan proses organisasi.
SEI telah menggabungkan area proses kunci dengan masing – masing tingkat kematangan. KPA menggambarkan fungsi – fungsi rekayasa perangkat lunak yang harus ada untuk memenuhi praktek yang baik pada suatu tingkat tertentu. Setiap KPA digambarkan dengan mengidentifikasikan ciri – ciri sebagai berikut :
- Tujuan – objektif keseluruhan yang harus dicapai oleh KPA.
- Komitmen – kebutuhan yang harus dipenuhi untuk mencapai tujuan, dan yang membuktikan dari maksud mencapai tujuan.
- Kemampuan – hal – hal tersebut harus ada yang akan memungkinkan organisasi untuk memenuhi komitmennya.
- Aktivitas – tugas – tugas khusus yang dibutuhkan untuk mencapai fungsi – fungsi dari KPA.
- Metode untuk memonitor informasi – sikap dimana kegiatan dimonitor pada saat dipakai.
- Metode – metode untuk memverifikasi informasi – sikap dimana praktek yang sesuai untuk KPA diverifikasi.
Model – Model Proses Perangkat Lunak
Untuk menyelesaikan masalah didalam suatu industri, rekayasa perangkat lunak atau tim perekayasa harus menggabungkan strategi pengembangan yang melingkupi lapisan proses, metode, dan alat – alat bantu serta fase – fase generik yang telah dijelaskan sebelumnya. Strategi ini sering diacukan sebagai model proses atau paradigma rekayasa perangkat lunak. Model proses untuk rekayasa perangkat lunak dipilih berdasarkan sifat aplikasi dan proyeknya, metode dan alat – alat bantu yang akan dipakai, dan kontrol serta penyampaian yang dibutuhkan.
Racoon (RAC95) mengusulkan sebuah model “chaos” yang menggambarkan “perkembangan perangkat lunak sebagai sebuah kesatuan dari pemakai ke pengembang dan ke teknologi”. Pada saat kerja bergerak maju menuju sebuah system yang lengkap, keadaan yang digambarkan di atas secara rekursif diaplikasikan kepada kebutuhan pemakai dan spesifikasi teknis perangkat lunak pengembang.
Tidak ada komentar:
Posting Komentar