Senin, 25 Januari 2016

Rekayasa perangkat lunak adalah teknologi berlapis. Hal itu dapat ditunjukan dengan gambar sebagai berikut,
software-layers
Dari gambar di atas dapat diartikan bahwa  setiap pendekatan rekayasa (termasuk rekayasa perangkat lunak) harus menekankan pada  kualitas.
Dasar untuk rekayasa perangkat lunak adalah lapisan proses. Proses rekayasa perangkat lunak adalah proses yang terus berulang, karena karakteristik perangkat lunak yang membutuhkan pemeliharaan dan pengembangan berkelanjutan agar perangkat lunak tidak kadarluasa. Dalam proses pemeliharaan dilakukan koreksi kesalahan, adaptasi kebutuhan, peningkatan kemampuan atau fungsi dan bentuk pencegahan lainnya agar perangkat lunak tersebut tidak kadarluasa.
Metode rekayasa perangkat lunak menyediakan teknis untuk membangun perangkat lunak dan mengandalkan seperangkat prinsip-prinsip dasar yang mengatur setiap bidang teknologi dan mencakup kegiatan pemodelan dan teknik deskriptif lainnya.
Alat rekayasa perangkat lunak  merupakan unsur yang mendukung proses dan metode. Ketika alat-alat yang terhubung satu sama lain dan memberi  informasi, serta  informasi yang dibuat oleh salah satu alat dapat digunakan oleh yang lain, sistem untuk mendukung pengembangan perangkat lunak dapat dibangun dengan menggunakan bantuan komputer.

Pekerjaan yang berhubungan dengan rekayasa perangkat lunak dapat dikategorikan ke dalam tiga fase generik, yaitu:
  1. Tahap definisi berfokus pada what. Pada fase ini mengidentifikasi informasi apa yang akan diproses, apa fungsi dan kinerja yang diinginkan, perilaku system apa yang dapat diharapkan, apa antarmuka yang akan didirikan, apa desain kendala yang ada, dan apa kriteria validasi yang diperlukan untuk menentukan sistem yang sukses. Persyaratan utama dari sistem dan perangkat lunak diidentifikasi. Meskipun metode yang diterapkan selama fase definisi akan bervariasi tergantung pada paradigma rekayasa perangkat lunak (atau kombinasi paradigma) yang diterapkan, tiga tugas utama akan terjadi dalam beberapa bentuk: sistem atau teknik informasi, perencanaan proyek perangkat lunak, dan analisis kebutuhan.
  2. Tahap pengembangan berfokus pada how. Selama pengembangan perangkat lunak didefinisikan bagaimana data harus terstruktur, bagaimana fungsi diimplementasikan dalam arsitektur perangkat lunak, bagaimana detail prosedural untuk dilaksanakan, bagaimana interface yang akan ditandai, bagaimana desain akan diterjemahkan ke dalam bahasa pemrograman (atau bahasa nonprocedural), dan bagaimana pengujian akan dilakukan. Metode yang diterapkan dalam tahap pengembangan akan bervariasi, tetapi tiga tugas teknis tertentu harus selalu terjadi: desain perangkat lunak generasi kode, dan pengujian perangkat lunak.
  3. Fase dukungan berfokus pada perubahan yang terkait dengan koreksi kesalahan.

Model Proses dalam Rekayasa Perangkat Lunak
Sebuah model proses rekayasa perangkat lunak dipilih berdasarkan pada sifat proyek dan aplikasi, metode dan alat-alat yang akan digunakan, dan kontrol dan kiriman yang diperlukan.
Lingkaran fase pemecahan masalah dan lingkaran fase dalam fase pemecahan masalah
1. Waterfall Model (Linear Sequential Model)
Model Waterfall adalah model yang paling tua dan paling banyak digunakan.
wertyuio
Tahapan dari model ini meliputi,
Sistem / teknik informasi dan pemodelan. Perangkat lunak merupakan bagian dari sistem yang lebih besar (atau bisnis). Pandangan sistem ini penting ketika perangkat lunak harus berinteraksi dengan unsur-unsur lain seperti perangkat keras, orang, dan database.
Analisis kebutuhan perangkat lunak. Persyaratan proses pengumpulan diintensifkan dan difokuskan secara khusus pada software.
Rancangan. Desain perangkat lunak merupakan langkah yang berfokus pada empat atribut yang berbeda dari sebuah program, yaitu struktur data, arsitektur perangkat lunak, representasi interface, dan prosedural (algoritmik) rinci.
Pembuatan kode (Coding). Desain harus diterjemahkan ke dalam bentuk mesin yang dapat dibaca. Dalam tahap ini dilakukan pembuatan kode.
Pengujian(Testing). Setelah kode telah dihasilkan, pengujian program dimulai. Pengujian yang dilakukan secara internal (benar tidaknya pernyataan yang dibuat dalam coding) dan eksternal  (melakukan tes untuk menemukan kesalahan dan memastikan bahwa input sesuai dengan apa yang dibutuhkan).
Dukungan (Support). Perangkat lunak akan mengalami perubahan setelah disampaikan kepada pelanggan.

2. Prototype Models
Capture1
Pada model ini pengembang dan pelanggan bertemu dan menentukan tujuan keseluruhan untuk perangkat lunak dan mengidentifikasi persyaratan apa saja yang diketahui. Sebuah “desain cepat” kemudian terjadi. Desain cepat berfokus pada representasi dari aspek-aspek perangkat lunak yang akan terlihat oleh pengguna (misalnya,pendekatan input dan format output). Prototipe ini diuji oleh pengguna dan digunakan untuk memperbaiki persyaratan untuk perangkat lunak yang akan dikembangkan.

3. RAD (Rapid application development ) Models
1.8
Rapid application development (RAD) adalah model proses pengembangan perangkat lunak tambahan yang menekankan siklus perkembangan yang sangat pendek. Model RAD adalah
Adaptasi dari model sekuensial linier (Waterfall models) “kecepatan tinggi”  berbasis komponen.  Dari penjelasan Pressman (2012) , satu perhatian khusus mengenai metodologi RAD dapat diketahui, yakni implementasi metode RAD akan berjalan maksimal jika pengembang aplikasi telah merumuskan kebutuhan dan ruang lingkup pengembangan aplikasi dengan baik.

Tahapan-tahapan dalam RAD model:
  • Pemodelan Bisnis, pada tahap ini berisi tentang pertanyaan-pertanyaan apa informasi yang mendorong proses bisnis? Informasi apa yang dihasilkan? Siapa yang menghasilkan itu? Dari mana informasi itu berasal? Siapa yang memprosesnya?
  • Pemodelan data, informasi merupakan bagian dari pemodelan bisnis. Karakteristik serta hubungan masing-masing objek dengan yang lainnyan diidentifikasi.
  • Proses pemodelan. Objek data yang didefinisikan dalam fase pemodelan data dihubungkan untuk mendapatkan informasi yang diperlukan untuk melaksanakan fungsi bisnis.
  • Generasi aplikasi, proses RAD bekerja menggunakan bahasa pemrograman dari komponen program yang ada (bila mungkin) atau membuat komponen reusable (bila diperlukan).
  • Pengujian dan omset. Karena proses RAD menekankan penggunaan kembali sehingga banyak komponen program yang telah diuji. Hal ini akan mengurangi waktu pengujian secara keseluruhan. Namun, komponen baru dan interface harus benar-benar diuji.
4. Evolusi Model Proses Perangkat Lunak
Seiring dengan berjalannya waktu, perangkat lunak pun berkembang kearah yang lebih kompleks. Sehingga dalam pembuatan perangkat lunak diperlukan model proses yang fleksibel, agar perangkat lunak dapat berkembang sesuai dengan keadaan.
Waterfall Model dan Prototype model tidak dirancang untuk memberikan system produksdan tidak mempertimbangkan evolusi dari rekayasa perangkat lunak tersebut. Oleh karena itu, engineer harus mengembangkan model proses untuk mengembangkan versi dari perangkat lunak yang ada.
Model incremental
Model ini merupakan gabungan dari waterfall model dan prototype model. Model proses ini dapat digambarkan sebagai berikut,
Capture (1)
Dari gambar dapat diartikan bahwa model inkremental berlaku urutan linear secara bergiliran sesuai dengan urutan waktu. Setiap urutan linier menghasilkan deliverable “kenaikan” perangkat lunak.

Model Spiral
spiral

Model spiral memiliki  sifat interatif yaitu sifat yang ditandai dengan  kemungkinan suatu perangkat lunak dikembangkan versinya secara bertahap untuk menghasilkan perangkat lunak yang lengkap dan terkontrol.

Tahapan-tahapan model spiral:
  • Komunikasi pelanggan, komunikasi dilakukan untuk mengetahui keinginan si pelanggan
  • Perencanaan, pada tahap ini dilakukan pendefinisian sumber daya, waktu yang dibutuhkan, dan informasi lainnya terkait dengan pembuatan perangkat lunak.
  • Analisi Risiko, menganalisis risiko manajemen dan risiko teknis saat pembuatan perangkat lunak.
  • Perekayasaan (Engineering), membangun satu atau lebih representasi dari aplikasi.
  • Konstruksi dan Peluncuran, pada proses ini peerangkat lunak diuji dan akan memberikan pelayanan pada pelanggan.
  • Evaluasi pelanggan, pelanggan akan memberikan pendapat tentang perangkat lunak yang telah dibuat. Apakah perangkat lunak akan dikembangkan kembali atau tidak.
“WINWIN” Spiral Model
figure-2-9Dalam hal ini win win merupakan situasi kemenangan antara tim pengembang dan pelanggan. Yang membedakan antara win win spiral model dan spiral model adalah setelah selesai mendapatkan feed back dari pelanggan, tim pengembang perangkat lunak dan pelanggan akan kembali melakukan negosiasi untuk perkembangan perangkat lunak tersebut.
Tahapan-tahapan WINWIN Spiral model:
  1. Identifikasi kunci sistem atau subsistem dari yang berkepentinagn
  2. Penentuan kondisi kemenangan dari yang berkepentingan
  3. Negosiasi kondisi menang yang berkepentingan agar terjadi kedamaian.

The Concurrent Development Model(concurrent engineering)
figure-2-10Pada model ini aktifitas kerja dilakukan secara bersamaan, setiap proses kerja memiliki beberapa pemicu kerja dari aktifitas. Pemicu dapat berasal dari awal proses kerja maupun dari pemicu yang lain karena setiap pemicu akan saling berhubungan.



Sumber:
Pressman, Roger S. 2001.Software Engineering.New York:Mc. Graw Hill.

Tidak ada komentar:

Posting Komentar