SEJARAH SOFTWARE ENGINEERING
Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal 1960-an. Saat itu, masih terdapat perdebatan tajam mengenai aspek engineering dari pengembangan perangkat lunak. Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan dampak kuat terhadap pengembangan rekayasa perangkat lunak. Banyak yang menganggap dua konferensi inilah yang menandai awal resmi profesi rekayasa perangkat lunak.
PENGERTIAN RPL
RPL sendiri adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan.
TUJUAN RPL
a. Memperoleh biaya produksi perangkat lunak yang rendah
b. Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
c. Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform
d. Menghasilkan perangkat lunak yang biaya perawatannya rendah
ARTI SOFTWARE
1. Instruksi
Atau program komputer yang ketika dieksekusi akan memberi fungsi dan hasil yang diinginkan.
2. Struktur data
Yang memungkinkan program memanipulasi informasi
3. Dokumen
Yang menggambarkan operasi dan penggunaan program.
ELEMEN KUNCI REKAYASA PERANGKAT LUNAK
Software engineering terdiri dari 3 elemen kunci, yaitu :
1. Metode,
2. Peralatan (tools),
3. Prosedur, yang memungkinkan manajer mengontrol proses pengembangan software dan memberikan praktisi dasar yang baik untuk pembentukan software berkualitas tinggi.
1. Metode Software Enginnering
Metode software engineering memberikan tehnik-tehnik bagaimana membentuk software. Metode ini terdiri dari serangkaian tugas :
a. Perencanaan & estimasi proyek
b. Analisis kebutuhan sistem dan software
c. Desain struktur data
d. Arsitektur program dan prosedur algoritma
e. Coding
f. Testing dan pemeliharaan
2. Peralatan Software Engineering
Peralatan software engineering memberikan dukungan atau semiautomasi untuk metode. Contohnya :
a. CASE (Case Aided Software Engineering), yaitu suatu software yang menggabungkan software, hardware, dan database software engineering untuk menghasilkan suatu lingkungan software engineering.
b. Database Software Engineering, adalah sebuah struktur data yang berisi informasi penting tentang analisis, desain, kode dan testing.
c. Analogi dengan CASE pada hardware adalah : CAD (Computer Aided Design), CAM (Computer Aided Manufacturing), CAE (Computer Aided Engineering)
3. Prosedur Software Engineering
Terdiri dari :
a. urut-urutan di mana metode tersebut diterapkan
b. dokumen
c. laporan-laporan
d. formulir-formulir yang diperlukan
e. mengontrol kualitas software
f. mengkoordinasi perubahan yang terjadi pada software
PENGERTIAN SISTEM
Sistem adalah sekumpulan elemen yang saling berinteraksi untuk mencapai suatu tujuan.
SPEKTRUM MANAJEMEN
Manajemen proyek perangkat lunak yang efektif berfokus pada :
1. PEOPLE : Elemen terpenting dari suksesnya proyek
2. PRODUCT / PROBLEM : Software yang dikembangkan
3. PROCESS : Suatu kerangka kerja dari suatu aktifitas dan kumpulan tugas untuk memgembangkan perangkat lunak
4. PROJECT (tambahan) : Penggabungan semua kerja untuk membuat produk menjadi kenyataan
Tujuan perencanaan proyek perangkat lunak:
Menyediakan sebuah kerangka kerja yang memungkinkan manajer membuat estimasi yang dapat dipertanggungjawabkan terhadap sumber daya, biaya dan jadwal pada awal proyek yang dibatasi oleh waktu
Metodologi software engineer
1. Model Linear Sequential/Waterfall
Model Linear Sequential/Waterfall merupakan paradigma rekayasa perangkat lunak yang paling tua dan paling banyak dipakai.
Kelebihan model Linear Sequential/Waterfall :
- Mudah diaplikasikan.
- Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan pemeliharaan.
- Cocok digunakan untuk produk software yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
Kekurangan model Linear Sequential/Waterfall :
- Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
- Sulit untuk mengalami perubahan kebutuhan yang diinginkan customer.
- Customer harus sabar untuk menanti produk selesai, karena dikerjakan tahap pertahap, menyelesaikan tahap awal baru bisa ke tahap selanjutnya.
- Perubahan ditengah-tengah pengerjaan produk akan membuat bingung team work yang sedang membuat produk.
- Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya
2. Model Spiral
Model ini cukup baru ditemukan,yaitu tahun 1988 oleh Barry Boehm. Spiral adalah salah satu bentuk evolusi yang menggunakan metode iterasi natural yang dimiliki oleh model prototyping dan digabungkan dengan aspek sistematis yang dikembangkan model waterfall.
Kelebihan model Spiral :
- Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
- Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
- Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses .
Kelemahan model Spiral :
- Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
- Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
- Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute
3. Extreme Programming
Extreme Programming (XP) merupakan salah satu metodologi dalam rekayasa perangkat lunak dan juga merupakan satu dari beberapa agile software development methodologies yang berfokus pada coding sebagai aktivitas utama di semua tahap pada siklus pengembangan perangkat lunak (software development lifecycle). Metodologi ini mengedepankan proses pengembangan yang lebih responsive terhadap kebutuhan customer (”agile”) dibandingkan dengan metode-metode tradisional sambil membangun suatu software dengan kualitas yang lebih baik.
Kelebihan model Extreme Programming :
- Komunikasi dalam XP dibangun dengan melakukan pemrograman berpasangan (pair programming). Developer didampingi oleh pihak klien dalam melakukan coding dan unit testing sehingga klien bisa terlibat langsung dalam pemrograman sambil berkomunikasi dengan developer. Selain itu perkiraan beban tugas juga diperhitungkan.
- Menekankan pada kesederhanaan dalam pengkodean: “What is the simplest thing that could possibly work?” Lebih baik melakukan hal yang sederhana dan mengembangkannya besok jika diperlukan. Komunikasi yang lebih banyak mempermudah, dan rancangan yang sederhana mengurangi penjelasan.
- Setiap feed back ditanggapi dengan melakukan tes, unit test atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).
- Banyak ide baru dan berani mencobanya, berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki.
Kelemahan model Extreme Programming :
- Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
- Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
4. Model incremental
Model Incremental dalam rekayasa perangkat lunak, menerapkan rekayasa perangkat lunak perbagian, hingga menghasilkan perangkat lunak yang lengkap. Proses membangun berhenti jika produk telah mencapai seluruh fungsi yang diharapkan.
Kelebihan model Increment :
- Cocok digunakan bila pembuat software tidak banyak/kekurangan pembuat.
- Mampu mengakomodasi perubahan kebutuhan customer.
Kekurangan model Increment :
- Hanya akan berhasil jika tidak ada staffing untuk penerapan secara menyeluruh.
- Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanjut.
- Hanya cocok untuk proyek dengan skala kecil.
5. Model RAD (Rapid Application Development)
Model RAD merupakan model proses pengembangan perangkat lunak secara linear sequential yang menekankan pada siklus pengembangan yang sangat singkat.
Kelebihan model RAD :
- Setiap fungsi mayor dapat dimodulkan dalam waktu tertentu kurang dari 3 bulan dan dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga waktunya lebih efisien.
- RAD mengikuti tahap pengembangan sistem seperti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuat dari awal lagi dan waktu yang lebih singkat.
Kelemahan model RAD :
- Model yang besar (skala proyek), membutuhkan resources yg baik dan solid.
- Membutuhkan komitmen pengembang dan user yang sama agar cepat selesai sesuai dengan rencana.
Tidak ada komentar:
Posting Komentar