Apa itu Model Proses Perangkat Lunak?


Proses merupakan suatu deskripsi yang disederhanakan dari proses perangkat lunak dan kemudian dipresentasikan dengan sudut pandang tertentu. Model proses ini bisa saja mencakup suatu kegiatan yang termasuk dalam bagian dari proses perangkat lunak tersebut dan produk perangkat lunak. Serta terlibatnya peran seseorang pada rekayasa perangkat lunak tersebut.

Model proses perangkat lunak itu sendiri dibagi menjadi beberapa macam pengembangan, seperti dibawah ini :

1. Waterfall
Pengertian model waterfall ini adalah suatu model klasik yang memiliki pengembangan perangkat lunak secara sistematis. Jadi, dari model waterfall ini melakukan pengerjaan dari suatu sistem dilakukan secara berurutan atau secara linear.
Kelebihan dari waterfall:
·         Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
·         Dokumen pengembangan sistem sangat terorganisir. Mengapa? Karena pada setiap fasenya harus terselesaikan secara lengkap sebelum nantinya akan melangkah ke fase berikutnya.
Kekurangan dari waterfall:
·         Perubahan sulit dilakukan karena sifatnya yang kaku. Jadi, karena sifat kakunya inilah model proses waterfall mungkin cocok ketika nanti kebutuhan yang dikumpulkan lengkap, sehingga perubahan bisa ditekan sekecil mungkin. Tapi pada kenyataannya jarang sekali pengguna yang bisa memberikan kebutuhan secara lengkap,  mungkin karena perubahan kebutuhan adalah sesuatu yang wajar terjadi.

2. Prototype
Metode Prototype merupakan metode pengembangan perangkat lunak yang memodelkan dari sistem kerja suatu perangkat lunak yang belum lengkap dari pihak user.
Kelebihan dari prototype :
·         User dapat berinteraksi aktif.
·         Penentuan kebutuhan lebih mudah diwujudkan.
·         Mempersingkat waktu pengembangan.
Kekurangan dari prototype :
·         Proses analisis dan perancangan terlalu singkat.
·         Mengesampingkan alternatif pemecahan masalah.
·         Bisanya kurang fleksible dalam mengahadapi perubahan.
·         Prototype yang dihasilkan tidak selamanya mudah dirubah.
·         Prototype terlalu cepat selesai.

3. Spiral
Model spiral adalah model proses dari software yang evolsioner dan dapat merangkai dengan sifat yang iteraktif dari prototype dengan cara kontrol dan aspek sistematis dari model sekuensial linear. Model ini sangat berpotensi untuk pengembangan versi software secara cepat.
Kelebihan dari spiral :
·         Nantinya dapat disesuaikan agar perangkat lunak bisa digunakan selama perangkat lunak komputer masih aktif.
·         Model ini cocok untuk pengembangan sistem dan perangkat lunak skala besar.
Kekurangan dari 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.

4. Rapin Aplication Development (RAD)
Model RAD merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier, yang di mana perkembangan ini cepat dicapai dengan menggunakan pendekatan kontruksi berbasis komponen.
Kelebihan dari 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
Kekurangan dari RAD adalah :
·         Bagi proyek yang besar tetapi berskala, RAD memerlukan sumber daya manusia yang memadai untuk menciptakan jumlah tim RAD yang baik.
·         RAD menuntut pengembangan dan pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal.

5. Incremental
Model incremental (Incremental waterfall model) merupakan perbaikan dari modelwaterfall dan sebagai standar pendekatan top-down. Ide dasar dari model ini adalahmembangun software secara meningkat (Increment) berdasarkan kemampuan fungsional.
Kelebihan dari Incremental :
·         Penambahan kemampuan fungsional akan lebih mudah diuji, diverifikasi, dan divalidasi dan dapat menurunkan biaya yang dikeluarkan untuk memperbaiki sistem.
·         Nilai penggunaan dapat ditentukan pada setiap increament sehingga fungsionalitas sistem disediakan lebih awal.
·         Increment awal berupa prototype untuk membantu memahami kebutuhan pada increment berikutnya.
·         Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem.
·         Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji.
Kekurangan dari Incremental :
·         Tiap bagian tidak dapat diintegrasikan.
·         Setiap tambahan yang dibangun harus dimasukkan kedalam struktur yang ada tanpa menurunkan kualitas dari yang telah dibangun system tersebut sampai saat ini.
·         Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanjut.
Nah itulah pembahasan tentang pengertian model proses perangkat lunak, kelebihan dan kekurangan model proses, dan macam-macam model proses. Semoga dapat membantu sobat semuanya.




Software Engineering Practice
- Terdiri dari kumpulan konsepr, prinsip, metode, dan alat - alat yang engineering software memantau setiap hari.
- Melengkapi manajer untuk mengelola proyek perangkat lunak dan software engineering untuk membangun program komputer
- Mentranformasikan pendekatan terfokus menjadi sesuatu yang lebih terorganisir, lebih efektif, dan lebih mungkin mencapai keberhasilan.


Prinsip yang Memandu Proses
- Membangun suatu tim
- Mengelola perubahan
- Software harus memiliki nilai


Prinsip yang Memandu Praktik
- Memahami pemahaman suatu software
- Berusaha konsisten
- Fokus pada trasnfer informasi
- Membuat suatu model/design/pola softwar engineering
- Pengguna harus mempelihara software tersebut

Communication
- Antar sesama teknisi
- Dengan customer dan Stakeholder lain
- Dengan manajer proyek

Communication Princip
- Mendengarkan kebutuhan customer
- Mempersiapkan waktu yang efektif terhadap customer
- Menghindari konflik yang diinginkan

Prinsip Komunikasi
- Komuikasi secara langsung
- Mendokumentasikan kebutuhan customer

Planning Pratice Principal
- Memahami lingkup proyek
- Melbatkan customer dalam perancangan
- Pertimnagan resiko saat planning
- Pertimbangan customer dan system




Generic Process framework adalah fondasi dasar dari proses software dengan mengidentifikasi aktivitas framework yang dapat diterapkan ke semua software. Generic process framework yang diaplikasikan dalam proyek software yaitu:


1. Communication
Tahap ini ditugaskan untuk berkomunikasi antara developer dengan pelanggan untuk analisis perangkat lunak.

Jenis-jenis kebutuhan (Requiretment):

  • Functional (fungsional)
  • Developement (pengembangan)
  • Deploymenr (penyebaran)
  • Performance (performa)
  • Documentation (dokumentasi)
  • Support (mendukung)

2. Planning
Tahap ini diperlukan untuk menentukan/menetapkan sumber daya, jadwal dan informasi terkait yang lainnya dan menilai risiko dan jadwal kerja.

3 Model
Menganalisis dan mendesign system perangkat lunak yang sesuai dengan keinginan dan kebutuhan custommer/pelanggan.

4. Construction
Tahap yang diperlukan untuk membuat satu atau lebih perangkat lunak (pengembangan model yang dapat dieksekusi) untuk menghasilkan kode dan melakukan pengujian sebuah perangkat lunak.


  • Pengkodean Program (manual/otomatis)
  • Pengujian Software
  • Code
  • Teori


Menurut wikipedia: Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.

Menurut IEEE Computer Society: mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin an terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.

Menurut Rey Marcel Ikhsani : Rekayasa Perangkat Lunak atau biasa disebut RPL adalah salah satu matakuliah yang membahas tentang pengembangan software atau perangkat lunak atau aplikasi agar software tersebut bisa lebih maksimal dan efisien dalam peanfaatannya.

Kriteria yang dapat digunakan sebagai acuan dalam merekayasa perangkat lunak:
1. Dapat terus dirawat dan dipelihara(maintainability),
2. Dapat mengikuti perkembangan teknologi(dependability),
3. Dapat mengikuti keinginan pengguna(robust),
4. Efektif dan efisien dalam menggunakan energi dan penggunaannya,
5. Dapat memenuhi kebutuhan yang diinginkan(usability).

Sekian dari postingan pertama untuk tugas Rekayasa Perangkat Lunak ini, semoga bisa menambah nilai.

Grid computing vs Cloud computing

Untuk memahami perbedaan dasar dan perbedaan secara komplek antara cloud computing dan grid computing, Anda harus benar-benar perlu memahami kedua teknologi yang dipergunakan dalam kedua konsep tersebut. Berikut ini adalah definisinya.


Grid computing

Sistem grid dirancang untuk berbagi sumber daya secara kolaboratif. Hal ini juga dapat dianggap sebagai komputasi cluster yang didistribusikan dengan skala besar.

Grid Computing pada dasarnya adalah salah satu konsep computing yang menggunakan kemampuan pengolahan unit komputasi yang berbeda untuk memproses serta menangani suatu tugas (task). Tugas ini nantinya akan dibagikan menjadi beberapa sub-tugas, masing-masing mesin pada grid memiliki tugas, ketika sub-tugas tersebut telah selesai melakukan tugasnya nantinya mereka akan dikirim kembali ke mesin utama yang mengurus semua tugas lalu semua tugas-tugas yang telah selesai nantinya akan digabungkan secara bersama-sama untuk mengeluarkan output.


Cloud computing

Cloud pada dasarnya merupakan sebuah perluasan dengan konsep pemrograman berorientasi objek secara abstraksi, di mana awan (cloud) di sini yaitu Internet. Di mana untuk para pengguna akhir (end users) hanya akan mendapatkan output serta input tertentu, sebuah proses lengkap yang nantinya akan mengarah ke output dan akan murni terlihat. Komputasi berbasis sumber daya virtual ini sebenarnya ditempatkan pada beberapa server dan juga dalam beberapa cluster.


Dalam cloud computing biasanya ada beberapa istilah yang biasa dikenal sebagai model SPI model SaaS, PaaS dan IaaS. Ini adalah sebuah layanan yang tersedia pada konsep awan dan akan melakukan semua proses kerja yang berat. Dengan Anda menggunakan konsep cloud computing ini maka akan menghilangkan serta menghemat biaya dan kompleksitas, konfigurasi, dan juga dalam mengelola perangkat keras, perangkat lunak yang dibutuhkan untuk membangun dan menyebarkan aplikasi, nantinya aplikasi ini akan dibagikan melalui layanan yang tersedia melalui internet.


Kesimpulan

Komputer server masih akan diperlukan untuk mendistribusikan berbagai data dan juga untuk mengumpulkan hasil dari klien yang berpartisipasi didalam konsep komputasi grid.

Konsep cloud computing akan menawarkan layanan yang lebih baik dari pada komputasi grid. Bahkan hampir semua layanan yang ada di internet saat ini dapat diperoleh dari konsep awan (cloud), misalnya seperti pada web hosting, sistem operasi ganda (multiple operating systems), dukungan berbagai database dan masih banyak lagi yang lainnya.

Konsep grid computing cenderung lebih sulit digabungkan karena beberapa faktor heterogen, dan geografis dibandingkan dengan sistem cluster komputasi konvensional, karena harus menggabungkan beberapa macam perbedaan platform dari sisi perangkat keras dan perangat lunak untuk menghasilkan sebuah output.
PDM (Phsical Data Model)


Merupakan model yang menggunakan sejumlah tabel untuk menggambarkan data serta hubungan antara data-data tersebut. Setiap tabel mempunyai sejumlah kolom di mana setiap kolom memiliki nama yang unik.
CDM (Conceptual Data Model)

CDM adalah model yang dibuat berdasarkan anggapan bahwa dunia nyata terdiri dari koleksi obyek-obyek dasar yang dinamakan entitas (entity) serta hubungan (relationship) antara entitas-entitas itu. Biasanya CDM direpresentasikan dalam bentuk Entity Relationship Diagram.

Manfaat Penggunaan CDM dalam perancangan database :

- Memberikan gambaran yang lengkap dari struktur basis data yaitu arti, hubungan, dan batasan-batasan
- Alat komunikasi antar pemakai basis data, designer, dan analis.
Copyright © 2013 Rey Marcel Ikhsani | IF 16 D