Minggu, 28 April 2013

Requirements Engineering


Pengertian requirement engineering

Requirement engineering adalah sebuah proses menetapkan layanan yang dibutuhkan oleh costumer dari suatu sistem dan adanya suatu batasan-batasan dari operasi yang dikembangkan.

Tipe requirement

1.       Kebutuhan user

Pernyataan dengan menggunakan bahasa yang alami serta diagram dari layanan sistem yang disediakan dan batasan-batasan operasional.

2.       Kebutuhan system

Sebuah struktur dokumen yang detail, deskripsi-deskripsi sistem dan batasan operasi-operasi meruapakan bagian dari kontrak.

Kebutuhan user siapa saja yang terlibat:
1.       Client managers
2.       System end-users
3.        Client engineering
4.       Constractor managers
5.       System architect

Kebutuhan system:
1.       System End-Users,
2.       Client Engineers
3.       System Architects
4.        Software Developers.

Functional requirements dan non functional requirement

1.       Non functional requirements

Merupakan batasan dari layanan yang dikirim melalui sebuah sistem.

2.       Functional requirement

Pernyataan dari layanan yang harus disediakan sistem tergantung dari jenis software yang diharapkan user dan jenis 

3.        Domain Requirements                        

Menjadi kebutuhan functional yang baru.Harus melihat batasan/ranahnya. Bisa menjadi fungsi yang baru.

4.        Agile-method and Requirements        

Metode ini menggunakan increment model. Menurut metode ini membuat dokumen itu membuang waktu karena dokumen biasanya kadaluarsa.


Selasa, 02 April 2013

Tugas RPL - Kelebihan dan Kekurangan Proses Model


Berikut ini merupakan jenis – jenis serta kelebihan dan kekurangan proses model dalam rekayasa perangkat lunak.

1.      The waterfall model

The waterfall model merupakan paradigma yang tertua.  The waterfall model biasanya disebut dengan classic life cycle.
Berikut ini merupakan beberapa kekurangan atau masalah-masalah yang akan ditemui jika menggunakan model waterfall.
·         Pada pengerjaan suatu projek bila menginginkan adanya suatu perubahan maka akan membuat team work yang mengerjakan projek tersebut  menjadi bingung
·         Dalam model waterfall ini setiap tahapan harus dikerjakan secara urut, apabila tahap pertama belum selesai maka tidak bisa melanjutkan ketahap selanjutnya jadi harus diselesaikan terlebih dahulu. Hal tersebut membuat costumer harus bersabar untuk menunggu produk pesanannya selesai dikerjakan.
·         The waterfall model ini semua kebutuhan harus didesripsikan sejak awal sebelum model dibuat. Apabila kostumer menginginkan adanya  perubahan kebutuhan yang maka akan sulit dilakukan
·         Para developer harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya sehingga akan membuat para developer  mempunyai waktu yang banyak untuk menganggur.
·         Waterfall pada umumnya digunakan untuk rekayasa sistem perangkat lunak berkapasitas besar dimana proyek dikerjakan di beberapa tempat berlainan, dan terbagi menjadi beberapa bagian sub-proyek
Ada beberapa kelebihan dari model waterfall ini. Berikut adalah kelebihan dari model waterfall ini.
·         Model ini akan memudahkan para pengembang perangkat lunak untuk menetapkan tanggung jawab, memonitor penjadwalan proyek serta akuntabilitas peran personal dalam proyek perangkat lunak.
·         Mudah untuk diaplikasikan
·         Model waterfall ini sangat cocok untuk diterapakan jika semua kebutuhan sudah terpenuhi  jauh sebelum model dibuat.
·         Memberikan template tentang metode anaisis, pegkodean, pengujian, design, serta  pemeliharan.


2.      V model

v model merupakan variasi dari model waterfall.
          Kelebihan V model:
·         V model sangat fleksibel. V model ini bisa digunakan untuk project tailoring serta penambahan pengurangan method dan tool secara dinamik.
·         V model dikembangkan dan di maintain oleh publik. User dari V model berpartisipasi dalam change board yang memproses semua change request terhadap V model.
Kekuranagn V model
·         V model hanya bisa digunakan sekali dalam suatu proyek hal tersebut disebabkan kerena V model merupakan model yang project oriented.
·         V model bersifat terlalu fleksibel sehingga mengakibatkan beberapa aktivitas-aktivitas yang digambarkan dalam V model menjadi terlalu abstrak. Hal tersebut mengakibatkan tidak bisa diketahui dengan jelas apa yang termasuk dalam activity tersebut dan apa yang tidak.

3.      The Incremental model

          Kekurangan model increment
·         Model jenis ini hanya cocok untuk proyek dengan skala kecil
·         Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanjut
·         Hanya akan berhasil jika tidak ada staffing untuk penerapan secara menyeluruh

Kelebihan dari The incremental Model:
·         Dengan model incremental ini mampu mengakomodasi perubahan kebutuhan customer
·         The incremental model Cocok digunakan bila pembuat software tidak banyak/kekurangan pembuat

4.       Evolutionary Process Model

Evolutionary model mempunyai dua jenis yaitu prototype model dan spiral model.

a.       Prototype model

Prototype model ini digunakan ketika user atau costumer telah mendefinisikan kebutuhan umumm namun belum bisa menyertakan fungsi dan fitur-fitur secara detail. Atau model ini dapat digunakan saat pengembang tidak yakin dengan efisiensi dari algoritma yang dibentuk.
Kelebihan prototype model
·         Jika menggunakan model ini maka dapat menghemat waktu pengembangan
·         Akan terjalin komunikasi yang baik antara kostumer dan pengembang
·         Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
·         User mnegetahui apa yang diharapkan sehingga penerapan menjadi lebih mudah.
·         Dalam pengembangan sistem user bisa berpartisipasi secara aktif.
Kekurangan prototype model
·         Proses analisa dan perancangan dalam prototype model terlalu singkat
·         Biasanya kurang fleksible dalam mengahadapi perubahan
·         Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang
·         Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien

b.      Spiral model

Spiral model merupakan gabungan antara prototype model dan waterfall model. Spiral model didefinisikan dalam aktivitas kerangka kerja oleh team software engineering.
Kelebihan model Spiral :
·         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
Kekurangan model Spiral :
·         Pada saat situasi kontrak akan sulit untuk meyakinkan costumer bahwa penggunaan pendekatan ini akan dapat dikendalikan
·         Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses
·         Model spiral ini merupakan model yang masih baru sehingga belum terbukri apakah model ini efisien atau tidak.