Kamis, 22 Maret 2018

Model Proses Rekayasa Perangkat Lunak

Model Proses Rekayasa 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.

RQUIREMENT MODELLING

RQUIREMENT M

ODELLING




Memahami kebutuhan suatu masalah adalah salah satu tugas yang sering menjadi kendala atau paling sulit untuk dihadapi seorang software engineering.

A. Menggali Requirement

  • Pertemuan dilakukan dan dihadiri oleh software engineering dan customer
  • Aturan untuk persiapan dan partisipasi ditetepkan
  • Fasilator (Customer, pengembang, atau orang lain) untuk pertemuan
  • Mekanisme definisi ( Lembar Kerja, Flip chart, chat room, forum virtual) digunakan.

Tujuannya :
  1. untuk mengidentifikasi masalah
  2. mengusulkan elemen dari solusi
  3. menegosiasikan pendekatan yang berbeda
  4. menentukan satu set awal persyaratan solusi
- Validasi Requirement
  • Apakah setiap kebutuhan konsisten dengan tujuan keseluruhan sistem/produk?
  • Apakah semua persyaratan telah ditetapkan pada tingkat abstraksi yang tepat? Artinya, lakukan beberapa persyaratan menyediakan tingkat detail tekhnis yang tidak pada level ini?
  • Apakan kebutuhan benar - benar diperlukan ataukah merupakan fitur add-on yang mungkin tidak penting untuk tujuan sistem?
  • Apakah setiap persyaratan memiliki atribusi?Artinya, apakah sumber (umumnya, individu tertentu) mencatat untuk kebutuhan masing - masing.
- Requirements Analysis
Requirements modelling menghasilkan satu atau lebih dari jenis model berikut :
  • Scenario based model -> requirements dari titik pandang berbagai "aktor" sistem
  • Data models - > menggambarkan permasalahan dari domain informasi
  • Class-orinted models -> Menggambarkan objek oriented classes (atribut & operasi)
  • Flow - oriented models -> menggambarkan elemen fungsi sistem dari bagaimana mentransformasi data dalam sistem.
  • Behavioral Models -> Penggunan mengikuti sistem/ tingkahb laku mengikuti sistem
B. DATA MODELS
Database mempresentasikan beberapa aspek dunia nyata sering kali disebut dunia mini. perubahan pada dunia mini di presesntasikan di database.
  • Level abastrakasi data
- View level = Model data konseptual
- Legal level = Model data implementasi
- Phsysical Level = Model data fisik

1. Model Data Konseptual
Model data yang menyerupai bagaimana pembuat dan pengguna dapat meneerima/melihat data

2. Model Data Implementasi
Model data yang dapat diketahui oleh end user tetapi tidak terlalu dengan bagaimana data disimpan di dalam komputer

3. Model Data Fisik
Model Data Fisik adalah model yang menjelaskan cara komputer memandang data, bahwa data tersimpan pada lokasi fisik sebagai file-file yang terpisah

Memahami tentang SQL dan NoSQL

Memahami tentang SQL dan NoSQL



1. Pengertian SQL
SQL adalah singkatan dari Structured Query Language. Sedangan pengertian SQL adalah suatu bahasa (language) yang digunakan untuk mengakses data di dalam sebuah database relasional. SQL sering juga disebut dengan istilah query, dan bahasa SQL secara praktiknya digunakan sebagai bahasa standar untuk manajemen database relasional. Hingga saat ini hampir seluruh server database atau software database mengenal dan mengerti bahasa SQL.

-Sejarah SQL
Awal mula lahirnya bahasa SQL yaitu pada bulan Juni 1970, dimana saat Jhonny Oracle yang merupakan seorang peneliti dari perusahaan IBM memiliki gagasan pembuatan basis data relasional, ide tersebut dituangkan dalam sebuah artikel. Di dalam artikel tersebut juga dibahas mengenai kemungkinan membuat sebuah bahasa standar untuk mengakses data dalam database tersebut. Bahasa standar tersebut diberinama SEQUEL (Structured English Query Language). Setelah kemunculan artikel tersebut lalu IBM memutuskan untuk mengembangkan pembuatan bahasa SEQUEL. Namun penamaan SEQUEL dalam bahasa standar tersebut bermasalah dengan hukum sehingga diubahlah menjadi SQL.


2. Pengertian NoSQL
NoSQL singkatan dari Not Only SQL. NoSQL adalah sebuah konsep mengenai penyimpanan data non-relasional. Berbeda dengan model basis data relasional yang selama ini digunakan, NoSQL menggunakan beberapa metode yang berbeda-beda.
NoSQL sangat berguna pada data-data yang terus-menerus berkembang, dimana  data tersebut sangat kompleks sehingga sebuah database relational tidak lagi bisa mengakomodir. Salah satu bentuknya adalah ketika suatu data saling berhubungan satu sama lain, maka akan muncul proses duplikasi data. Dimana data saling memanggil ke beberapa permintaan, tambahan data baru, perubahan data, dan lain-lain dengan key yang sama. Karena faktor hubungan antar data yang sama terjadi terus-menerus, mendorong faktor redudansi data, data menjadi berlipat-lipat, dan pada akhirnya akan menyebabkan crash pada database berkonsep RDBMS.
-Sejarah NoSQL
Sejarah konsep NoSQL dimulai ketika Carlo Strozzi pada tahun 1998 menggunakannya untuk nama open source database relational yang tidak mengikuti standar SQL, kemudian Eric Evans (karyawan Rackspace) memperkenalkan kembali istilah NoSQL pada awal 2009 ketika Johan Oskarsson dari Last.fm ingin menyelenggarakan acara untuk membahas distributed database open source.
            Sejarah NoSQL tidak lepas dari kesulitan-kesulitan yang terjadi dalam penanganan perkembangan database dengan menggunakan konsep relational database. Dalam praktiknya, database tidak hanya berkembang secara vertikal (adanya penambahan baris), tetapi juga berkembang secara horisontal (adanya penambahan field). Ketika field bertambah banyak permasalahan yang terjadi ketika menggunakan konsep RDBMS. Dalam konsep RDBMS, penambahan field merupakan masalah yang harus dihindari, akan tetapi pada kenyataannya hal itu sering terjadi. Konsep tersebut yang mendasari adanya konsep NoSQL. NoSQL tidak membutuhkan skema tabel dan umumnya menghindari operasi join karena berkembang secara horisontal. Kaum akademisi menyebutnya sebagai structured storage (penyimpanan terstruktur).

Tabel Kelebihan dan Kekurangan DBMS MYSQL

Tabel Kelebihan dan Kekurangan DBMS MYSQL


KelebihanKekurangan
1. Merupakan salah satu software yang portable1. Sulit untuk diaplikasikan pada intansi atau perusahan dengan database yang besar
2. MySQL merupakan salah satu DBMS yang opensource2. Support yang kurang
3. Multi User3. Kurang Populer Untuk Aplikasi Mobile & Game
4. Memiliki tipe data yang bervariasi
5. Memilki fitur keamanan yang baik
6. Administrative tools yang lengkap
7. Struktur tabel yang lebih fleksibel
8. Dapat diintegrasikan dengan berbagai bahasa pemrograman
9. Tidak membutuhkan spesifikasi hardware yang tinggi
10. Tidak membutuhkan RAM Besar