Senin, 02 Maret 2015

REKAYASA PERANGKAT LUNAK


A.    Pengertian
Software adalah produk yang dirancang dan dibangun oleh software engineer, meliputi program  yang dijalankan dalam komputer dengan berbagai ukuran dan arsitektur, dokumen hasil cetakan dan formulir yang bersifat maya, data yang terdiri dari kombinasi angka dan huruf,  termasuk informasi yang disajikan melalui gambar, gambar hidup dan suara.
B.     Tujuan Rekayasa Perangkat Lunak
Secara lebih khusus kita dapat menyatakan tujuan dan Rekaya Perangkat Lunak ini adalah:
1.      Memperoleh biaya produksi perangkat lunak yang rendah.
2.      Menghasilkan pereangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
3.      Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform
4.      Menghasilkan perangkat lunak yang biaya perawatannya rendah

C.    Jenis-Jenis perangkat lunak menurut Roger S.Pressman :
1.      perangkat lunak sistem
2.      perangkat lunak real-time
3.      perangkat lunak bisnis
4.      perangkat lunak teknik dan ilmu pengetahuan
5.      embedded software
6.      perangkat lunak komputer personal
7.      perangkat lunak kecerdasan buatan

D.    Perkembangan Software
1.      Generasi Awal
Ø  Batch orientation
Ø  Custom software
2.      Generasi Kedua
Ø  Multi--user, Real
Ø  Database
Ø  Product software
3.      Generaasi Ketiga
Ø  Distributed systems
Ø  Low cost hardware
4.      Generasi Keempat
Ø  Desktop systems
Ø  Object Oriented Technologies
Ø  Expert Systems
Ø  AI, neural networks
Ø  Parallel computing
Ø  Network computers


E.     Metode Proses Pengembangan Software Engineering
Pengembangan sistem dapat berati menyusun suatu sistem yang baru untuk menggantikan sistem yang lama secara keseluruhan atau memperbaiki sistem telah ada.
Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC). Setiap model yang dikembangkan mempunyai karakteristik tersendiri. Namun secara umum ada persamaan dari model-model tersebut.
a.      Model Sekuensial Linier (Model Air Terjun)
Dalam model sekuensial linier atau yang biasa dikenal sebagai waterfall terdapat lima tahapan utama yang harus dilakukan. Pada model ini setiap tahapan harus diselesaikan secara berurutan, karena untuk dapat melanjutkan ke tahap berikutnya maka tahapan sebelumnya harus diselesaikan terlebih dahulu. Berikut adalah tahapan-tahapan dari model sekuensial linier.
1.      Tahap Rekayasa dan pemodelan sistem informasi (investigasi/requirement)
Investigasi dilakukan untuk menentukan apakah terjadi suatu masalah atau adakah peluang suatu sistem informasi dikembangkan.
2.      Tahap Analisis kebutuhan perangkat lunak
Tahap ini dilakukan untuk mengetahui kebutuhan sistem dan mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada. Merupakan tahap pemahaman kebutuhan user terhadap sistem oleh analis yang kemudian semuanya akan dibuat dalam bentuk yang dapat dimengerti oleh user
3.      Tahap Desain
Menentukan spesifikasi detil dari komponen-komponen sistem informasi (manusia, hardware, software, network dan data) dan produk-produk informasi yang sesuai dengan hasil tahap analisis. Proses desain menerjemahkan syarat atau kebutuhan ke dalam sebuah representasi perangkat lunak yang dapat diperkirakan demi kulitas sebelum dimulai pemunculan kode.
4.      Tahap Implementasi (pengkodean)
Desain harus diterjemahkan kedalam bentuk yang dapat dimengerti mesin. Oleh karena itulah dilakukan pengkodean untuk mendapatkan atau mengembangkan hardware dan software. Lalu dilakukan pengujian, pelatihan dan perpindahan ke sistem baru.
5.      Tahap Pengujian
Setiap kali kode dari sistem telah dibuat maka akan dilakukan pengujian untuk memastikan bahwa semua pernyataan sudah di uji. Selain itu pengujian dilakukan untuk menemukan kesalahan-kesalahan dan memastikan input memberikan hasil yang diharapkan.
6.      Tahap Pemeliharaan
Perangkat lunak akan mengalami perubahan setelah disampaikan ke pelanggan (perkecualian yang mungkin adalah perangkat lunak yang dilekatkan). Perubahan akan terjadi karena kesalahan-kesalahan ditentukan, karena perangat lunak harus disesuaikan untuk mengakomodasi perubahan-perubahan didalam lingkungan eksternalnya ( contohnya perubahan yang dibutuhkan sebagai akibat dari perangkat peripheral atau sistem informasi yang baru), atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan perangkat lunak mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi.
Beberapa kelebihan dari linear sequential model:
  • Mudah dimengerti, mudah digunakan
  • Struktur menyediakan staf berpengalaman
  • Milestones dipahami dengan baik
  • Persyaratan Sets stabilitas
  • Baik untuk kontrol manajemen (rencana, staf, lagu)
  • Bekerja dengan baik ketika kualitas lebih penting daripada biaya atau jadwal
Beberapa kelemahan linear sequential model:
  • Proyek yang sebenarnya jarang mengikuti alur sekuensial,  sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapat tim harus diubah kembali.
  • Linear sequential model mengharuskan semua kebutuhan pemakai sudah dinyatakan secara eksplisit di awal proses, tetapi kadang-kadang hal ini tidak dapat terlaksana karena kesulitan yang dialami pemakai saat akan mengungkapkan semua kebutuhannya tersebut.
  • Pemakai harus bersabar karena versi dari program tidak akan didapat sampai akhir rentang waktu proyek.
  • Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.
b.    Prototyping Model
Secara Ideal prototipe berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebtuhan perangat lunak.
Salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan (Howard, 1997).
Pendekatan prototyping model digunakan jika pemakai hanya mendefinisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk interaksi manusia-mesin yang harus diambil.
Tahap-tahap dalam prototyping boleh dikata merupakan tahap-tahap yang dipercepat. Strategi utama dalam prototyping adalah kerjakan yang mudah terlebih dahulu dan sampaikan hasil kepada pengguna sesegera mungkin. Harris (2003) membagi prototyping dalam enam tahapan. Tahapan-tahapan secara ringkas dapat dijelaskan sebagai berikut:
  • Identifikasi kandidat prototyping. Kandidat dalam kasus ini meliputi user interface (menu, dialog, input dan output), file-file transaksi utama, dan fungsi-fungsi pemrosesan sederhana.
  • Rancang bangun prototype dengan bantuan software seperti word processor, spreadsheet, database, pengolah grafik, dan software CASE (Computer-Aided System Engineering).
  • Uji prototype untuk memastikan prototype dapat dengan mudah dijalankan untuk tujuan demonstrasi.
  • Siapkan prototype USD (User’s System Diagram) untuk mengidentifikasi bagian-bagian dari perangkat lunak yang di-prototype-kan.
  • Evaluasi dengan pengguna untuk mengevaluasi prototype dan melakukan perubahan jika diperlukan.
  • Transformasikan prototype menjadi perangkat lunak yang beroperasi penuh dengan melakukan penghilangan kode-kode yang tidak dibutuhkan, penambahan program-program yang memang dibutuhkan dan perbaikan dan pengujian perangkat lunak secara berulang.
Beberapa kelebihan dari model prototype:
  • Pelanggan dapat user dapat langsung melihat wujud perangkat lunak yang akan dibangunmeskipun sederhana dan dari sana dapat digali kebutuhan yang lebih dalam sebagai bahan penyusunan perangkat lunak berikutnya.
  • Pengembang belajar dari pelanggan
  • Yang lebih akurat produk akhir
  • Persyaratan terduga ditampung
  • Fleksibel memungkinkan untuk desain dan pengembangan
  • Tenang, terlihat tanda-tanda kemajuan yang dihasilkan
  • Interaksi dengan merangsang prototipe kesadaran diperlukan tambahan fungsionalitas
Beberapa kekurangan dari model prototype:
  • Kecenderungan untuk mengabaikan pengembangan program terstruktur untuk “kode-dan-memperbaiki” pembangunan
  • Reputasi buruk untuk “cepat-dan-kotor” metode
  • Kemampu-rawatan keseluruhan dapat diabaikan
  • Pelanggan mungkin ingin prototipe disampaikan.
  • Proses ini mungkin berlangsung selamanya (scope creep)
c.  RAD (Rapid Application Development) Model
Model pengembangan RAD adalah sebuah metode pengembangan software yang diciptakan untuk menekan waktu yang dibutuhkan untuk mendesain serta mengimplementasikan sistem informasi sehingga dihasilkan siklus pengembangan yang sangat pendek.
Pendekatan RAD mencakup bebrapa tahap yaitu sebagai berikut :
1.      Pemodelan Bisnis
Pemodelan bisnis yang mencakup beberapa pertanyyan berikut
·      Informasi apa yang mengendalikan proses bisnis?
·      Informasi apa yang di munculkan?
·      Siapa yang memunculkanya?
·      Ke mana informasi itu pergi?
·      Siapa yang memprosesnya?
2.      Pemodelan Data
Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modelling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (disebut atribut) masing masing objek diidentifikasi dan hubungan antara objek – objek tersebut didefinisikan.
3.      Pemodelan Proses
Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.
4.      Pembuatan Aplikasi
RAD mengasumsikan pemakaian teknik generasi ke empat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memkai lagi komponen program yang ada (pada saat memungkinkan) atau menciptakan komponen yang bisa dipakai lagi (bila perlu). Pada semua kasus, alat – alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.
5.      Pengujian dan Pergantian
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus di uji dan semua interface harus dilatih secara penuh.
Beberapa kelebihan dari model RAD :
  • Waktu pengembangan yang relatif
  • Biaya yang relatif lebih murah

Beberapa kekurangan dari model RAD :
  • Tidak cocok untuk proyek skala besar
  • Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
  • Sistem yang tidak bisa dimodularisasi tidak cocok untuk model
  • Resiko teknis yang tinggi juga kurang cocok untuk model ini
d. Model Pertambahan ( Increment )
Model pertambahan adalah gabungan elemen-elemen model sekuensial linier (yang diaplikasikan secara berulang) dengan filosofi prototipe iteratif. Model pertambahan berfokus pada penyampaian produk operasional dalam setiap pertambahannya. Penambahan fungsi tambahan dilakukan untuk membuat sistem menjadi lebih baik. Pada intinya model penambahan memebuat sistem yang dapat terus ditambahkan fungsi-fungsi tambahan lain sesuai kebutuhan yang terus beralnjut dalam pemakaian sistem tersebut. Contohnya pada Microsoft Word, pada dasarnya (increment 1) Ms word berfungsi untuk memanajemen fie dasar seperti mengetik, mengedit, dan menghasilkan dokumen. Kemudian pada tahap pertambahan kedua (increment 2) ditambahkan fungsi editing dan kemampuan penghasilan dokumen yang lebih canggih seperti word art dan spelling, lalu dianjutkan penambahan-penambahan fungsi yang lainnya sehingga produk tersebut memiliki semua aspek yang dibutuhkan oleh penggunanya.
e.    Model Spiral
Model spiral adalah model proses perangkat lunak yang evousioner yang merangkai sifat iteraif dari prootipe dengan cara kontrol dan aspek sistematis dari model sekuensial. Model yang berbentuk spiral diusulkan awalnya diusulkan oleh Boehm. Model spiral tidak memiliki tahapan tetapi dibagi mejadi sejumah aktifitas kerangka kerja atau disebut juga wilayah tugas, diantara tiga dari enam wilayah tgas meggambarkan moel spiral yang berisi enam wilayah tugas, yaitu
1.   Komunikasi pelanggan
Tugas – tugas yang dibutuhkan untuk membangun komunikasi yang efektif di antara pengembangan dan pelanggan.
2.   Perencanaan
Tugas – tugas yang dibutuhkan untuk mendefinisikan sumber – sumber daya, ketepatan waktu, dan proyek informasi lain yang
3.   Analisis Resiko
Tugas – tugas yang dibutuhkan untuk menaksir risiko – risiko, baik manajemen maupun teknis.
4.   Perekayasaan
Tugas – tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari aplikasi tersebut.
5.   Konstruksi dan peluncuran
Tugas – trugas yang dibutuhkan untuk mengkonstruksi, menguji, memasang (instal) dan memberikan pelayanan kepada pemakai (contohnya pelatihan dan dokumentasi).
6.   Evaluasi pelanggan
Tugas – tugas yang dibutuhkan untuk memperoleh umpan balik dari pelanggan dengan didasarkan pada evaluasi representasi software, yang dibuat selama masa perekayasaan, dan diimplementasikan selama masa pemasangan.

Referensi






Tidak ada komentar:

Posting Komentar