Model Rekayasa Perangkat Lunak

Ada beberapa model rekaya perangkat lunak. Model-model ini pada umumnya mengacu pada model proses  pengembangan  sistem yang disebut System Development Life Cycle (SDLC) seperti terlihat pada Gambar di bawwah ini:

Development Life Cycle
Setiap  mode rekayasa perangkat lunak  yang  dikembangkan   mempunyai  karakteristik   sendiri- sendiri. Namun secara umum ada persamaan dari model-model ini, yaitu:
  1. Kebutuhan terhadap definisi masalah yang jelas.  Input utama dari setiap model pengembangan perangkat lunak adalah pendefinisian masalah yang jelas.  Semakin jelas akan semakin baik karena akan memudahkan dalam penyelesaian  masalah.
  2. Tahapan-tahapan  pengembangan  yang  teratur.    Meskipun  model-model pengembangan perangkat lunak memiliki pola yang berbeda-beda, biasanya model-model tersebut mengikuti pola umum analysis – design – coding – testing - maintenance.
  3. Stakeholder berperan sangat penting dalam keseluruhan tahapan pengembangan.  Stakeholder dalam rekayasa perangkat lunak dapat berupa pengguna pemilik, pengembang, pemrogram dan orang-orang yang terlibat dalam rekayasa perangkat lunak tersebut.
  4. Dokumentasi  merupakan  bagian  penting  dari  pengembangan  perangka lunak.    Masing-masing  tahapan  dalam  model  biasanya  menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain yang harus didokumentasi dan merupakan bagian tak terpisahkan dari perangkat lunak yang dihasilkan.
  5. Keluaran  dari  proses  pengembangan  perangkat  lunak  harus  bernilah ekonomis.   Nilai dari sebuah perangkat lunak  sebenarnya agak susah di- rupiah-kan Namun  efek dari penggunaan perangkat lunak  yang telah dikembangkan haruslah memberi nilai tambah bagi organisasi.  Hal ini dapat berupa  penurunan  biaya  operasi,   efisiensi  penggunaan   sumberdaya, peningkatan keuntungan organisasi,  peningkatan “image” organisasi dan lain-lain.
Ada banyak  model pengembangan  perangkat lunak, antara lain: The Waterfall Model, Joint Application Development (JAD), Information Engineering (IE), Rapid Application Development (RAD),  Prototyping, Unified Process (UP), Structural Analysis and Design (SAD) d Framework for the Application of System thinking (FAST) The  Waterfall  Model,  Prototyping,    Unified Process (UP).
 The waterfall model
Model siklus hidup (life cycle model) adalah model utama dan dasar dari banyak model.  Salah satu model yang cukup dikenal dalam  dunia rekayasa perangkat lunak adalah The Waterfall Model.  Ada 5 tahapan utama dalam The Waterfall Model seperti terlihat pada Gambar di bawah.  di sebut Waterfall (berarti Air Terjun) memang diagram tahapan prosesnya mirip dengan air terjun yang bertingkat. Tahapan-tahapan dalam The Waterfall Model secara ringkas adalah sebagai berikut:
  1. Tahap  investigasi  dilakukan  untuk  menentukan  apakah  terjadi  suatu masalah atau adakah peluang suatu sistem informasi dikembangkan.  Pada tahapan  ini  studi  kelayakan  perlu  dilakukan  untuk  menentukan  apakah sistem informasi yang akan dikembangkan merupakan solusi yang layak
  2. Tahap analisis bertujuan untuk mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada (sebelum diterapkan  sistem informasi yang baru).
  3. Tahap  disain  bertujuan   menentukan  spesifikasi   detil  dari  komponen- komponen  sistem informasi  (manusia,  hardware, software,  network dan data) dan produk-produk informasi yang sesuai dengan hasil tahap analisis.
  4. Tahap implementasi merupakan tahapan untuk mendapatkan atau mengembangkan    hardware    dan    software    (pengkodean    program), melakukan pengujian, pelatihan dan perpindahan ke sistem baru.
  5. Tahapan perawatan (maintenance) dilakukan ketika sistem informasi sudah dioperasikan. Pada tahapan ini dilakukan monitoring proses, evaluasi dan perubahan (perbaikan) bila diperlukan.

The Waterfall Model
Prototyping model
Prototyping adalah 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).
  • Reusable prototype: Prototype yang akan ditransformasikan menjadi produk final.
  • Throwaway prototype:  Prototype yang akan dibuang begitu selesai menjalankan maksudnya.
  • Input/output prototype: Prototype yang terbatas pada antar muka pengguna (user interface).
  • Processing prototype:  Prototype  yang  meliputi  perawatan  file  dasar  dan  proses-proses transaksi.
  • System prototype: Prototype yang berupa model lengkap dari perangkat lunak.
Prototyping model dapat diklasifikasikan  menjadi  beberapa  tipe seperti terlihat pada gambar di bawah ini:

Klasifikasi prototyping model (Harris, 2003)
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 seperti terlihat pada gambar di bawah.
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.

Tahapan-tahapan prototyping model (Harris, 2003) 
Unified Proces dan Unified Modeling Languange
Unified  Process  (UP)  atau  kadang  disebut  sebagai  Unified  Software Development  Process  (USDP)  adalah  kerangka proses  pengembangan yang bersifat use-case-driven, berpusat pada arsitektur perangkat lunak, interatif dan tumbuh-kembang (Alhir,  2005).
Kerangka pengembangan ini termasuk baru dalam metodologi pengembangan perangkat lunak.  UP dapat diaplikasikan pada berbagai skala proyek, mulai dari skala kecil sampai dengan skala besar.
Daur hidup UP secara umum akan tampak seperti pada bagan di Gambar di bawah. Bagan ini biasa disebut sebagai “hump chart”.  Pada bagan ini terlihat ada empat tahap peengembangan yaitu inception, elaboration, construction, dan transition Selain itu tampak pula sejumlah aktifitas yang harus dilakukan sepanjang pengembangan perangkat lunak, yaitu business, modeling, requirements, analisys and design. Impelemntasi, test. Tahap dan aktifitas tersebut akan dilakukan secara iteratiff ( Ambler, 2005).

RUP Life Cycle (Ambler, 2005)
Penjelasan singkat untuk empat tahapan dalam   UP adalah sebagai berikut:
  • Inception tahapan ini merupakan tahapan paling awal dimana aktivitas. penilaian terhadap    sebuah   proyek   perangkat  lunak dilakukan. Tujuannya adalah  untuk  mendapatkan  kesepakatan  dari  stakeholder sehubungan dengan tujuan dan dana proyek.
  • Elaboration. Tujuan dari tahap ini adalah untuk mendapatkan gambaran. umum kebutuhan, persyaratan dan fungsi-fungsi utama perangkat lunak. Hal ini penting untuk mengetahui secara lebih baik resiko-resiko proyek, baik meliputi resiko  arsitektur perangkat lunak, perencanaan, maupun implementasi.  Pada tahap ini telah dimulai rancang bangun perangkat lunak   secara   iterative  melalui   aktivitas-aktivitas   seperti   business modeling, requirements, analysis dan design meskipun baru pada tahap awal.
  • Construction. Tujuan dari tahapan ini adalah membangun perangkat lunak sampai dengan saat perangkat  lunak tersebut siap digunakan. Titik  berat tahapan  ini  adalah  pada  penentuan  tingkat  prioritas kebutuhan / persyaratan, melengkapi spesifikasinya, analisis lebih dalam, disain solusi yang  memenuhi  kebutuhan dan persyaratan, pengkodean dan  pengujian  perangkat  lunak.    Jika  dimungkinkan  versi  awal  dari perangkat  lunak  diuji  cobakan  untuk  mendapatkan  masukan  dari pengguna.
  • Transition. Tahap  ini  difokuskan  pada  bagaimana  menyampaikan perangkat lunak yang sudah jadi pada pengguna.  Perangkat lunak akan secara resmi diuji oleh baik oleh penguji (tester) yang kompeten maupun oleh pengguna. Beberapa aktivitas seperti pemindahan pusat data dan pelatihan pengguna dan staf pendukung harus dilakukan pada tahap ini.
Dalam pengembangan perangkat lunak dengan menggunakan  UP, maka tidak  lepas  dari  penggunaan  notasi-notasi yang biasa disebut  sebagai UML ( Unifie Modeling Languange) Meskipun UP   mensyaratkan  penggunaan UML, namun UML sendiri dapat digunakan pada berbagai metodologi yang lain  bahkan dapat digunakan pada  bidang selain  sistem informasi. UML adalah  bahan pemodelan   standar  atau  kumpulan   teknik-teknik  pemodelan  untuk  men- spesifikasi, mem-visualisasi,  meng-konstruksi dan mendokumentasi hasil kerja dalam  pengembangan  perangkat  lunak  (Fowler,  2004).    UML lahir dari penggabungan banyak bahasa  pemodelan  grafis  berorientasi  obyek  yang berkembang pesat pada akhir tahun 1980an dan awal 1990an.
Secara sederhana  UML digunakan untuk menggambar sketsa  sistem. Pengembang menggunakan  UML  untuk  menyampaikan  beberapa  aspek  dari sebuah perangkat lunak  melalui notasi grafis.   UML mendefinisikan notasi dan semantik.   Notasi merupakan sekumpulan bentuk khusus yang memiliki makna tertentu untuk menggambarkan berbagai diagram piranti lunak  dan semantik mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan.  Ada beberapa jenis diagram yang disediakan dalam UML, antara lain adalah:
  • Use-case diagram. Diagram ini berguna untuk menggambarkan interaksi antara pengguna dengan sebuah perangkat lunak
  • Activity diagram. Diagram ini berguna untuk menggambarkan prosedur prosedur perilaku perangkat lunak.
  • Class diagram. Diagram ini berguna untuk menggambarkan class, fitur, dan hubungan-hubungan  yang terjadi.  Pada diagram ini pendekatan berorientasi obyek memegang peranan yang sangat penting.
  • Sequence  diagram. Diagram  ini  berguna  untuk  menggambarkan interaksi antar  obyek  dengan  penekanan  pada  urutan  proses  atau kejadian.
  • State machine diagram. Diagram ini digunakan untuk menggambarkan  bagaimana suatu kejadian mengubah obyek selama masa hidup obyek tersebut.
  • Component  diagram. Diagram  ini  berguna  untuk  menggambarkan struktur dan koneksi komponen.

Posting Komentar

Lebih baru Lebih lama

نموذج الاتصال