Sunday, March 20, 2011

Pengertian Rekayasa Perangkat Lunak


Yang terkandung di dalam postingan ini:
-Pengertian Software Engineering.
-Lapisan Software Engineering: Tools, Methodes, Proses, Quality Focus
-Pekerjaan dalam Software Engineering dapat dibagi 3 bagian:
1) Definition Phase
2) Development Phase
3) Maintenance Phase
-Ada 4 tipe perubahan:
1)Correction
2) Adaption
3) Enhancement
4) Prevention
-Tahapan dan langkah-langkah terkait yang diuraikan dalam hal-hal umum rekayasa perangkat lunak dilengkapi dengan sejumlah payung aktivitas(Umbrella Activities).

Pengertian Software Engineering
Perangkat Lunak adalah seperangkat item atau objek yang membentuk "konfigurasi" yang mencakup program, dokumen dan data.

Apa itu software?
software itu direkayasa
software tidak aus
software itu rumit
software adalah 'pembeda'
software seperti 'pabrik penuaan'

Software Engineering adalah disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi, desain, implementasi sampai pemeliharaan setelah digunakan.

IEEE [ IEE93] telah mengembangkan suatu definisi yang lebih menyeluruh yaitu:
Software Engineering adalah:
Aplikasi yang pendekatannya sistematis, disiplin, terukur untuk pengembangan, operasi, dan pemeliharaan perangkat lunak; itu adalah, terapan dari rekayasa perangkat lunak.

Lapisan Software Engineering

Penjelasan tentang lapisan Software Engineering.
a.Proses
Pondasi untuk software engineering adalah lapisan proses. Proses Software Engineering adalah perekat yang memegang lapisan teknologi bersama-sama dan memungkinkan pengembangan tepat waktu dan masuk akal tentang perangkat lunak komputer. Proses menggambarkan suatu kerangka untuk satu set kunci area pemrosesan (Key Process Area / KPAS) bahwa harus dibentuk untuk penyerahan yang efektif dari teknologi Software Engineering. Area kunci pemrosesan membentuk basis bagi manajemen kendali proyek perangkat lunak dan menetapkan konteks di mana metoda teknis diterapkan, produk-produk kerja (model, dokumen, data, laporan, format, dll.) diproduksi, patok duga dibentuk, mutu dipastikan, dan perubahan diatur dengan baik.

b. Metoda
Metoda software engineering menyediakan teknis cara untuk membangun perangkat lunak. Metoda meliputi suatu larik yang luas tentang tugas yang meliputi analisa persyaratan, disain, konstruksi program, pengujian, dan dukungan. Metoda software engineering bersandar pada satu set prinsip dasar yang mengurus masing-masing area dari teknologi dan meliputi aktivitas pemodelan dan teknik deskriptif lain.

c. Tools (perkakas)
Perkakas (Tools) software engineering menyediakan dukungan otomatis atau semi-otomatis untuk proses dan metoda. Kapan perkakas terintegrasi sedemikian sehingga informasi diciptakan oleh satu alat yang dapat digunakan oleh yang lain. Sistem untuk mendukung pengembangan software, disebut computer-aided software engineering,. CASE mengkombinasikan perangkat lunak, perangkat keras, dan database software engineering (suatu tempat penyimpanan berisi informasi yang penting tentang analisa, disain, konstruksi program, dan pengujian) untuk menciptakan suatu lingkungan software engineering dapat disamakan ke CAD/CAE (computer-aided design/engineering) untuk perangkat keras.


Hal-hal Umum Software Engineering

Rekayasa adalah analisa, desain, pembuatan, verifikasi dan manajemen teknis (atau sosial). Tanpa memandang entitas yang harus direkayasa, ada beberapa pertanyaan yang harus dijawab:

1) Masalah apa yang harus dicarikan solusinya ?
2) Apa saja karakteristik entitas yang digunakan untuk menyelesaikan persoalan tersebut.?
3) Bagaimana entitas (dan solusinya) dapat direalisasikan ?
4) Bagaimana entitas akan dibangun ?
5) Pendekatan apa yang akan digunakan untuk mencegah terjadinya kesalahan desain dan pembuatan entitas?
6) Bagaimana entitas akan didukung selama mungkin, pada saat ada permintaan koreksi, adaptasi dan pengembangan oleh user.


Pekerjaan yang berhubungan dengan software engineering bisa dikategorikan ke dalam 3 fase umum tanpa memandang area aplikasi, ukuran proyek atau kompleksitas. Fase tersebut yaitu:

1) Definition Phase
2) Development Phase
3) Maintenance Phase


1) Definition Phase
Selama fase ini, software developer berusaha untuk mengidentifikasi informasi apa saja yang harus diproses, apa saja fungsi dan kinerja yang digunakan, tingkah laku sistem yang diharapkan, apa saja interface yang harus dibuat, apa saja kendala desain yang ada, dan kriteria validasi yang diperlukan untuk mendefinisikan kesuksesan sistem.

2) Development Phase
Selama fase ini, pengembang software berusaha untuk mendefinisikan bagaimana data disusun, bagaimana fungsi bisa diimplementasikan sesuai dengan arsitektur software, bagaimana prosedur detil untuk implemetasi , bagaimana karakter interface, bagaimana hasil desain bisa ditranslasikan ke bahasa pemrograman dan bagaimana cara pengujiannya.

3) Support Phase
Difokuskan pada perubahan sehubungan dengan adanya koreksi kesalahan, adaptasi dan pengembangan yang dikehendaki customer.

Ada 4 tipe perubahan:
1) Correction
Mengubah software untuk memperbaiki kesalahan-kesalahan yang ada.
2) Adaption
Modifikasi yang dilakukan terhadap software dikarenakan adanya perubahan lingkungan eksternal (misal: CPU, sistem operasi, aturan bisnis, karakter produk eksternal).
3) Enhancement
Pada saat software dipakai, user meminta tambahan-tambahan fungsi. Sehingga software dikembangkan dari kebutuhan semula.
4) Prevention
Sering disebut software re-engineering, harus dilakukan untuk memungkinkan software bisa sesuai dengan keinginan end user. Pada fase ini dilakukan perubahan-perubahan pada program komputer, sehingga program tersebut bisa dikoreksi, beradaptasi dan dikembangkan dengan mudah.


Tahapan dan langkah-langkah terkait yang diuraikan dalam hal-hal umum rekayasa perangkat lunak dilengkapi dengan sejumlah payung aktivitas. Aktivitas yang khas di kategori ini meliputi:
• Panduan dan kendali proyek Perangkat lunak
• Tinjauan ulang teknis formal
• Jaminan kwalitas perangkat lunak
• Manajemen konfigurasi perangkat lunak
• Persiapan dokumen dan produksi
• Manajemen Reusabilas
• Pengukuran
• Manajemen resiko

2 comments: