Ragam Proses Pengembangan Perangkat Lunak

Proses Pengembangan Perangkat Lunak (Software Development Process) adalah suatu penerapan struktur pada pengembangan suatu Perangkat Lunak (Software), yang bertujuan untuk mengembangkan sistem dan memberikan panduan untuk menyukseskan proyek pengembangan sistem melalui tahapan-tahapan tertentu. Dalam prosesnya, terdapat beberapa paradigma model pengembangan sistem perangkat lunak

Proses pengembangan perangkat lunak (Software Process / Development Paradigm) adalah sekumpulan tahap, tugas dan aktivitas yang dibutuhkan untuk secara effisien mentransformasikan kebutuhan pemakai ke suatu solusi perangkat lunak yang efektif. Pemodelan proses perangkat lunak (Software Process Modeling) bertujuan untuk merepresentasikan aktivitas yang terjadi selama pembuatan perangkat lunak dan perubahan-perubahannya (evolusi). Latar belakang penggunaan model-model tersebut adalah kebutuhan untuk menghasilkan suatu sistem yang benar sedini mungkin didalam proses pengembangannya. Alasan utama adalah biaya. Semakin dini suatu kesalahan bisa dideteksi dalam pengembangan sistem, biaya perbaikannya semakin rendah.

Rekayasa Perangkat Lunak mempunyai fungsi utama dalam pengembangannya, antara lain :

  1. Menentukan tahap-tahap yang diperlukan untuk pengembangan perangkat lunak. yang diperlukan untuk pengembangan perangkat lunak.
  2. Menentukan urutan pelaksanaan dari tahap-tahap tersebut dalam rangka pengembangan perangkat lunak.
  3. Menentukan kriteria transisi/perpindahan dari satu tahap ke tahap berikutnya.

Waterfall Development

Model waterfall merupakan metode yang sering digunakan oleh penganalisa sistem pada umumnya. Model ini adalah model klasik yang mengusung pengembangan perangkat lunak yang sistematis/sekuensial. Inti dari model waterfall adalah pengerjaan dari suatu sistem dilakukan secara berurutan atau secara linear. Jadi jika langkah satu belum dikerjakan maka tidak akan bisa melakukan pengerjaan langkah 2, 3 dan seterusnya.  Secara otomatis tahapan ke-3 akan bisa dilakukan jika tahap ke-1 dan ke-2 sudah dilakukan.

Model ini adalah model klasik yang mengusung pengembangan  perangkat lunak yang sistematis, berurutan/sekuensial dimulai pada tingkat dan kemajuan system pada seluruh persyaratan dalam analisis, perancangan (desain), pengkodean, pengujian (testing), hingga ke tahap pemeliharaan dalam membangun software (perangkat lunak). Berikut ini gambaran dari Linear Sequential Model / waterfall model.

 

techprojwaterfall1

Pada setiap tahapan dianalogikan bak air yang mengalir dari tempat tinggi ke tempat yang lebih rendah, artinya sebuah proses baru bias dilanjutkan setelah satu tahap awal selesai dengan sempurna.

Penjelasan tentang setiap tahapan dapat diringkas sebagai berikut:

Tahap analisis: pada tahap ini berlangsung proses pengumpulan kebutuhan secara lengkap untuk dianalisis dan didefinisikan kebutuhan apa saja yang harus dipenuhi oleh program yang akan dibuat, seperti memahami domain permasalahan, tingkah laku, unjuk kerja dan interface (antar muka).

Tahap desain: proses ini melibatkan empat atribut sebuah program yaitu struktur data, arsitektur, perangkat lunak, representasi interface, dan detail (algoritma) prosedural.

Tahap pengkodean: proses penterjemahan desain ke dalam bentuk bahasa mesin yang dapat dilakukan secara mekanis.

Tahap pengujian: proses ini dikerjakan setelah kode dirancang dan difokuskan pada fungsi dan jumlah kesalahan untuk diperbaiki.

Tahap pemeliharaan: meliputi penyesuaian atau perubahan yang berkembang seiring dengan adaptasi perangkat lunak dengan kondisi atau situasi sebenarnya setelah disampaikan kepada konsumen atau pelanggan.

Model waterfal ini sangat sesuai digunakan dalam pengembangan sistem perangkat lunak dan hardware yang luas dan apabila kebutuhan pengguna telah dimengerti dengan baik. Selain itu, juga apabila waktu yang tersedia juga masih cukup banyak.
Langkah-langkah pengembangan perangkat lunak model Waterfall :

  1. System Feasibility Langkah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini bisa malakukan sebuah penelitian, wawancara atau studi literatur. Seorang sistem analis akan menggali informasi sebanyak-banyaknya dari pengguna sehingga akan tercipta sebuah sistem komputer yang bisa melakukan tugas-tugas yang diinginkan oleh user tersebut. Tahapan ini akan menghasilkan dokumen user requirment atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan sistem. Dokumen ini yang akan menjadi acuan sistem analis untuk menerjemahkannya ke dalam bahasa pemrograman.
  2. Software Plans and Requirements
    Suatu proses pengumpulan kebutuhan software untuk mengerti sifat-sifat program yang dibentuk software engineering. Analis harus memahami fungsi, performance, dan interface terhadap elemen lainnya pada software yang diinginkan.

    Karena software merupakan bagian terbesar dari sistem, maka pekerjaan dimulai dengan cara menerapkan kebutuhan semua elemen sistem dan mengalokasikan sebagian kebutuhan tersebut ke software. Panduan terhadap sistem adalah penting, terutama pada saat software harus berhubungan dengan elemen lain, seperti : hardware, sofware, dan brainware.

  3. Product Design
    Proses desain akan menerjemahkan syarat kebutuhan ke sebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada : struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirment. Dokumen inilah yang akan digunakan programmer untuk melakukan aktivitas pembuatan sistemnya.
  4. Detailed DesignSebuah spesifikasi diverifikasi lengkap dari struktur pengendalian, struktur data, hubungan antarmuka, ukuran, algoritma kunci, dan asumsi masing-masing komponen program.
  5. Code
    Coding merupan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer. Dilakukan oleh programmer yang akan meterjemahkan transaksi yang diminta oleh user. Tahapan ini lah yang merupakan tahapan secara nyata dalam mengerjakan suatu sistem. Dalam artian penggunaan komputer akan dimaksimalkan dalam tahapan ini.  Setelah coding selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut dan kemudian bisa diperbaiki.
  6. Integration
    Ketepatan fungsi sebuah produk perangkat lunak yang terdiri dari komponen-komponen perangkat lunak.
  7. Implementation
    Tahapan ini bisa dikatakan final dalam pembuatan sebuah sistem. Setelah melakukan analisa, design dan pengkodean maka sistem yang sudah jadi akan digunakan oleh user.
  8. Operation and Maintenance
    Perangkat lunak yang sudah disampaikan kepada pelanggan pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan (peripheral atau sistem operasi baru) baru, atau karena pelanggan membutuhkan perkembangan fungsional.

Kelebihan model Waterfall adalah dapat digunakan jika suatu persyaratan untuk membuat suatu software sudah dipahami dengan baik dan sudah lengkap semua persyaratan yang ada. Sedangkan kekurangannya adalah :

  1. Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
  2. Hal ini mengakibatkan sulitnya untuk merespon perubahan kebutuhan pengguna (user).
  3. Model air terjun harus digunakan hanya ketika persyaratan dipahami dengan baik.

 

Prototype Development

Metode Prototype merupakan metode pengembangan perangkat lunak yang memodelkan dari sistem kerja suatu perangkat lunak yang belum lengkap dari pihak user. Para pengembang perangkat lunak melakukan koordinasi dan pertemuan-pertemuan yang secara intensif dengan user guna menampung informasi yang akan dijadikan dasar dalam perancangan perangkat lunak. Prototype dari perangkat lunak yang dihasilkan kemudian dipresentasikan kepada  dan user diberikan kesempatan untuk memberikan masukan masukan sehingga perangkat lunak yang dihasilkan nantinya betul-betul sesuai dengan keinginan dan kebutuhan user.

Perubahan dan presentasi prototype ini dapat dilakukan berkali-kali sampai dicapai kesepakatan bentuk perangkat lunak yang akan dipakai.

Metode ini menyajikan gambaran yang lengkap dari sistem, terdiri atas model kertas, model kerja dan program. Pihak pengembang akan melakukan identifikasi kebutuhan pemakai, menganalisa sistem dan melakukan studi kelayakan serta studi terhadap kebutuhan pemakai, meliputi model interface, teknik prosedural dan teknologi yang akan dimanfaatkan.

gambar-21

Metode pengembangan perangkat lunak ini dimulai dengan pengumpulan kebutuhan. Pendekatan prototyping model digunakan jika pemakai hanya mendefenisikan secara umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan output-nya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk antarmuka manusia-mesin yang harus diambil. Cakupan aktivitas dari prototyping model terdiri dari :

  1. Mendefinisikan objektif secara keseluruhan dan mengidentifikasi kebutuhan yang sudah diketahui.
  2. Melakukan perancangan secara cepat sebagai dasar untuk membuat prototype.
  3. Menguji coba dan mengevaluasi prototype dan kemudian melakukan penambahan dan perbaikan-perbaikan terhadap prototype yang sudah dibuat.

Secara ideal prototype berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan perangkat lunak.

Secara ringkas, tahapan-tahapan dalam model prototyping adalah:
Tahap Pengumpulan kebutuhan: pada tahap ini, pelanggan dan pengembang saling bantu dalam mendefinisikan format seluruh perangkat lunak, menentukan keperluan dan garis besar sistem yang akan dirancang.

Tahap Quick design: membangun rancangan global sebagai contoh bagi user

Tahap Pembangunan Prototipe: proses perancangan sementara yang fokusnya kepada penyajian kepada pelanggan, termasuk pengujian dan penyempurnaan.

Tahap Evaluasi Pelanggan: di mana pelanggan melakukan pengujian terhadap prototipe yang ada dan pengembang memperhalus analisis kebutuhan pemakai.

Tahap Pembuatan dan Implementasi: tahap ini termasuk proses desain (rancang), pengkodean dan testing.

Model Prototyping ini sangat sesuai diterapkan untuk kondisi yang beresiko tinggi di mana masalah-masalah tidak terstruktur dengan baik, terdapat fluktuasi kebutuhan pemakai yang berubah dari waktu ke waktu atau yang tidak terduga, bila interaksi dengan pemakai menjadi syarat mutlak dan waktu yang tersedia sangat terbatas sehingga butuh penyelesaian yang segera. Model ini juga dapat berjalan dengan maksimal pada situasi di mana sistem yang diharapkan adalah yang inovatif dan mutakhir sementara tahap penggunaan sistemnya relatif singkat.

Tahapan Metode Prototyping

  • Pemilihan Fungsi. Mengacu pada pemilahan fungsi yang harus ditampilkan oleh prototyping. Pemilahan harus selalu dilakukan berdasarkan pada tugas-tugas yang relevan yang sesuai dengan contoh kasus yang akan diperagakan.
  • Penyusunan Sistem Informasi. Bertujuan memenuhi permintaan kebutuhan akan tersedianya prototype.
  • Evaluasi.
  • Penggunaan Selanjutnya

 Jenis-Jenis Prototyping

  1. Feasibility prototyping. Digunakan untuk menguji kelayakan dari teknologi yang akan digunakan untuk sistem informasi yang akan disusun.
  2. Requirement prototyping. Digunakan untuk mengetahui kebutuhan aktivitas bisnis user. Misalnya dalam sebuah perusahaan terdapat user direktur, manajer, dan karyawan. Maka penggunaan sistem dapat dibedakan berdasarkan user tersebut sesuai dengan kebutuhannya.
  3. Desain Prototyping. Digunakan untuk mendorong perancangan sistem informasi yang  akan digunakan.
  4. Implementation prototyping. Merupakan lanjutan dari rancangan protipe, prototype ini langsung disusun sebagai suatu system informasi yang akan digunakan.

Keunggulan metode prototyping :

  1. User dapat berinteraksi aktif.
  2. Penentuan kebutuhan lebih mudah diwujudkan.
  3. Mempersingkat waktu pengembangan.

Kelemahan metode prototyping :

  1. Proses analisis dan perancangan terlalu singkat.
  2. Mengesampingkan alternatif pemecahan masalah.
  3. Bisanya kurang fleksible dalam mengahadapi perubahan.
  4. Prototype yang dihasilkan tidak selamanya mudah dirubah.
  5. Prototype terlalu cepat selesai.

Metode pengembangan perangkat lunak model prototype dirancang agar dapat menerima perubahan-perubahan dalam rangka menyempurnakan prototype yang sudah ada sehingga pada akhirnya dapat menghasilkan perangkat lunak yang dapat diterima dan perubahan-perubahan yang terjadi dapat dianggap merupakan bagian dari proses pengembangan itu sendiri.

Spiral Modeling

Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya.  Model ini dikenal dengan sebutan Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses pengerjaan proyek.

Model spiral adalah model proses software yang evolsioner yang merangkai sifat iteratif dari prototype dengan cara kontrol dan aspek sistematis dari model sekuensial linear. Model ini berpotensi untuk pengembangan versi software secara cepat. Di alam model spiral, software dikembangkan dalam dalam suatu deretan pertambahan. Selama awal iterasi, rilis inkremental bisa merupakan sebuah model atau prototype kertas. Selama iterasi berikutnya, sedikit semi sedikit dihasilkan versi sistem rekayasa yang lebih lengkap.

spiral-process-a-software-designing-model2

Tahap-tahap model ini dapat dijelaskan secara ringkas sebagai berikut.

Tahap Liason: pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai

Tahap Planning (perencanaan): pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.

Tahap Analisis Resiko: mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.

Tahap Rekayasa (engineering): pembuatan prototipe

Tahap Konstruksi dan Pelepasan (release): pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.

Tahap Evaluasi: Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.

Model Boehm sangat cocok diterapkan untuk pengembangan sistem dan perangkat lunak skala besar di mana pengembang dan pemakai dapat lebih mudah memahami kondisi pada setiap tahapan dan bereaksi terhadap kemungkinan terjadinya kesalahan. Selain itu, diharapkan juga waktu dan dana yang tersedia cukup memadai.

Keunggulan metode spiral :

  1. Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
  2. 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.
  3. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.

Kelemahan metode spiral :

  1. Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
  2. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
  3. Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute.

Rapin Aplication Development (RAD) Model

Rapin Aplication Development (RAD) adalah sebuah model proses perkembangan software sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier di mana perkembangan cepat dicapai dengan menggunakan pendekatan kontruksi berbasis komponen. Jika kebutuhan dipahami dengan baik, proses RAD memungkinkan tim pengembangan menciptakan “sistem fungsional yang utuh” dalam periode waktu yang sangat pendek (kira-kira 60 sampai 90 hari). Karena dipakai terutama pada aplikasi sistem konstruksi.

RAD adalah proses pembangunan Perangkat Lunak yang menekankan pada siklus pengembangan yang pendek dan singkat. Model ini mengawinkan model waterfall dan model component based construction.

rad1

Secara ringkas, tahapan-tahapan RAD adalah sebagai berikut.

Tahap Pemodelan Bisnis: dibuat agar dapat menjawab pertanyaan-pertanyaan berikut: informasi apa yang mengontrol proses bisnis? Informasi apa yang didapat? Siapa yang mendapatkannya? Untuk siapa informasi itu ditujukan? Siapa yang akan memprosesnya?

Tahap Pemodelan Data: informasi-informasi yang dipadu dari pemodelan bisnis dipilah-pilah ke menjadi sekumpulan objek data yang masing-masing objek diidentifikasikan dan ditentukan hubungan antara objek-objek tersebut.

Tahap Pemodelan Proses: aliran informasi yang didapat dalam proses pemodelan data diolah sedemikian untuk dapat menopang fungsi-fungsi bisnis. Prosesnya dikreasikan untuk menambah, memodifikasi, menghapus dan atau mendapatkan kembali sebuah objek data.

Tahap Pembuatan Aplikasi: RAD dapat saja memakai kembali komponen program yang sudah ada bila dimungkinkan, atau membuat komponen yang dapat digunakan lagi bila diperlukan di masa mendatang. RAD juga diasumsikan menggunakan teknik generasi keempat (4GT).

Tahap Pengujian dan Pergantian: Proses RAD menekankan pada pemakaian kembali yang memungkinkan berkurangnya keseluruhan waktu pengujian, namun komponen harus diuji dan harus dilatih secara penuh dan terintegrasi.

Model RAD sangat tepat diterapkan untuk sistem yang telah jelas dan lengkap kebutuhannya, di mana terdapat komponen-komponen yang dapat dipakai kembali dalam proyek yang berskala kecil dengan waktu pengembangan perangkat lunak yang singkat.

Keunggulan metode RAD :

  1. Dimungkinkan dalam proses pembuatan membutuhkan waktu yang sangat singkat (60-90 hari).
  2. Menghemat biaya, karena penekannya adalah penggunaan komponen-komponen yang sudah ada.
  3. RAD menggunakan kembali komponen-komponen yang sudah ada, maka beberapa komponen program sudah diuji sehingga kita dapat melakukan penghematan waktu dalam uji coba.

Kelemahan metode RAD :

  1. Bagi proyek yang besar tetapi berskala, RAD memerlukan sumber daya manusia yang memadai untuk menciptakan jumlah tim RAD yang baik.
  2. RAD menuntut pengembangan dan pelanggan yang memiliki komitmen di dalam aktifitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal. RAD menekankan perkembangan komponen program yang bisa dipakai kembali.
  3. Tidak semua aplikasi sesuai untuk RAD.
  4. RAD menjadi tidak sesuai jika risiko teknisnya tinggi. Hal ini terjadi bila sebuah aplikasi baru memforsir teknologi baru atau bila perangkat lunak baru membutuhkan tingkat interoperabilitas yang tinggi dengan program komputer yang ada.

gambar-42

Model Teknik Generasi ke-4/4GT

4g1

Istilah Fourth Generation Techniques (4GT) mencakup seperangkat peralatan perangkat lunak yang berfungsi sebagai perangkat bantu yang memudahkan seorang pengembang software mengaplikasi beberapa karakteristik software pada tingkat yang tinggi, yang akan menghasilkan source code dan object code secara otomatis sesuai dengan spesifikasi (persyaratan khusus) yang dibuat oleh sang pengembang perangkat lunak.

Dewasa ini, 4GT tools dipakai sebagai bahasa non prosedur untuk DataBase Query, Pembentukan laporan (Report Generation), Manipulasi data, Definisi dan interaksi layar (screen), Pembentukan object dan source ( Object and source generation ), Kemampuan grafik yang tinggi, dan Kemampuan spreadsheet.

Tahapan-tahapan model 4GT dapat diringkas sebagai berikut.

Tahap Pengumpulan Kebutuhan: tahap ini dimulai dengan mengumpulkan serangkaian kebutuhan yang nantinya akan diterjemahkan ke dalam prototipe. Namun, apabila pelanggan tidak yakin dengan apa yang diperlukan dan fakta-fakta tidak jelas diketahui maka prototipe tidak dapat dikerjakan oleh peralatan 4GT.

Tahap Merancang Strategi: tahap ini dibutuhkan untuk proyek besar yakni dengan menterjemahkan kebutuhan menjadi prototipe operasional  agar tidak timbul masalah yang sama jika dibuat dengan model konvensional. Namun, untuk proyek skala kecil tahap ini dapat dihilangkan dengan  langsung melakukan implementasi dengan menggunakan bahasa generasi keempat (4GT).

Tahap Implementasi Menggunakan Bahasa Keempat: untuk skala kecil tahap ini dapat langsung dilakukan ketika kebutuhan telah jelas, dan untuk proyek besar tahapan ini dijalankan setelah dirancang prototipe operasional. Implementasi yang menggunakan 4GT memudahkan pengembang software untuk menjelaskan hasil yang diharapkan yang nantinya akan diterjemahkan ke dalam bentuk kode sumber dan kode objek.

Tahap Produksi: Tahap ini merupakan langkah terakhir yakni mengubah implementasi  4GT ke dalam hasil akhir berupa produk.

Kelebihan model ini adalah pengurangan waktu dan peningkatan produktivitas yang besar.

Kekurangan model ini adalah kemungkinan akan sulit memanfaatkan alat bantu/peralatan/tools 4GT dibandingkan dengan menggunakan bahasa pemrograman yang konvensional, selain itu terdapat juga masalah dalam hal kode sumber yang tidak efisien. Di samping itu, pemeliharaan sistem software besar yang dikembangkan oleh 4GT juga masih sedang dalam proses pengkajian.

Model ini diaplikasikan untuk mengembangkan perangkat lunak yang memakai bentuk bahasa khusus atau notasi grafik yang dieksekusi/diselesaikan dengan syarat atau ketentuan yang dipahami oleh pemakai/pengguna/kustomer.

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s