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.

Minggu, 24 Maret 2013

Tugas Resume RPL kedua


Sebuah kumpulan dari tahapan-tahapan yang sudah diprediksi yang akan membantu membuat secara tepat waktu dan menghasilkan kualitas yang tinggi disebut dengan proses model

Proses model sangat penting dan memang harus digunakan karena proses model akan menyediakan kestabilitasan, mengontrol dan mengorganisasi aktivitas yang jika dibiarkan dan tidak terkontrol maka akan menjadi kacau.

Hasil kerja dari proses model adalah program, dokumen dan data. Proses yang diadopsi tergantung pada software yang dibuat. Suatu proses mungkin bisa baik digunakan untuk sistem A namun belum tentu baik untuk sistem B.

Sejumlah mekasnisme penilaian proses perangkat lunak yang memungkinkan kita menentukan kematangan software proses tersebut.

Pengertian software proses

Software proses adalah kerangka kerja untuk aktivitas-aktivitas, kegiatan-kegiatan yang dibutuhkan untuk membuat software dengan kualitas tinggi.

1.       Linier Proses Flow

Pada linier proses flow yaitu melaksanakan atau mengeksekusi setiap tahapan secara urut.

2.       Iterative process flow

Berbeda dengan linier proses flow, jika interative process flow ini mengulang satu atau lebih proses sebelum melanjutkan ketahapan selanjutnya.


3.       Evolutionary process flow

Mengeksekusi setiap tahapan secara melingkar kearah yang lebih lengkap, jadi bukan merupakan pengulangan.

4.       Paralel Process Flow

Seperti namanya Paralel process flow ini mengeksekusi setiap aktivitas secara paralel.


Identifying a Task Set
1.       Membuat daftar yang akan dicapai
2.       Membuat daftar dari produk kerja yang harus diselesaikan
3.       Membuat daftar kualitas jaminan yang akan digunakan



Proses pattern

1.       Menjelaskan masalah yang terkait dengan proses yang ditemui selama bekerja
2.       Mengidentifikasi lingkungannya dimana masalah itu harus dihadapi atau menunjukan satu atau lebih bukti dan solusi.

Process Patterns
Process petterns merupakan mekasnisme yang efektif untuk menggambarkan beberapa software process.
Penggambaran process pattern
1.       Pattern name: memberikan arti nama yang menggambarkan  fungsinya dalam software process.
2.       Type: terdiri dari tiga jenis yaitu: task pattern, stage patterns, dan phase patterns.
3.       Initial context : menggambarkan pattern yang diguanakn.
4.       Problem: masalah diselesaikan dengan pattern yang telah digambarkan sebelumnya.
5.       Solutions: pengimplementasian dari pattern yang telah digambarkan sebelumnya.
6.       Resulting context : suatu kondisi yang akan memberikan hasil jika pattern sudah berhasil diimplementasikan.
7.       Related patterns: suatu daftar dari semua process patterns yang secara langsung terkait dengan syarat.


Jenis –jenis Proses pattern

1.       Stage pattern : mendefinisikan sebuah masalah yang berhubungan dengan aktivitas kerangka kerja untuk proses tersebut.
2.       Task pattern : mendefinisikan masalah yang berhungan dengan aksi software engineering
3.       Phare pattern :

Senin, 18 Maret 2013

Tugas Resume RPL Pertama


Software process adalah sebuah kerangka kerja untuk  tugas-tugas  yang dibutuhkan untuk membangun software dengan kualitas yang tinggi. Software process dan software engineering bisa dikatakan sama dan bisa pula dikatakan tidak sama.

Software Engineering-A layered Technology
Pengertian software engineering menurut Fritz Bauer adalah  pembentukan dan penggunaan dari prinsip-prinsip engineering untuk mendapatkan software secara ekonomis yang dapat dipercaya serta dapat bekerja secara efisien pada mesin-mesin yang nyata.

Software engineering layer


Software engineering merupakan lapisan dari teknologi. Yang menjadi lapisan paling bawah dari software engineering adalah a quality focus. Sedangkan process meruapakan sebuah pondasi untuk software engineering. Process didefinisikan sebagai kerangka yang sudah mapan untuk keefektifan pengiriman teknologi software eengineering.
Software engineering metods menyediakan  tentang “bagaimana untuk” membuat  suatu software. Software engineering metods bergantung pada prinsip-prinsip dasar yang diperintahkan setiap area dari teknologi dan termasuk aktifitas membuat model, dan diskriptif teknik yang lain.
Software engineering tools menyediakan bantuan untuk mengotomatisasi atau semiautomatisasi untuk process dan methods.

A Process Framework
A Process Framework membentuk pondasi untuk melengkapi software process dengan mengidentifikasi beberapa aktivitas framework yang dapat dipakai untuk untuk semua projek software tanpa memperhatikan ukuran atau kerumitan mereka.
Berikut ini merupakan generic process framework yang dapat digunakan untuk sebagian besar software projects:
1.       Comunication: kegiatan komunikasi dan kolaborasi dengan kostumer dan kegiatan lainnya yang sejenis.
2.       Planning: segala aktivitas yang berhubungan dengan perencaan software engineering agar bekerja sesuai dengan apa yang direncanakan.
3.       Modeling: meliputi kegiatan untuk memmbuat model-model yang mengijinkan pengembang dan kostumer untuk memehami secara lebih baik ketentuan software dan membuat design sesuai dengan ketentuan.
4.       Constraction: mengkombinasikan code generation dan mengetes agar bila terjadi error dapat code dapat segera diperbaiki.
5.       Deployment: software dikirim kepada kostumer.

Aktifitas software engineering
1.       Pelacakan dan pengontrolan software : tim melakukan penilaian kemajuan dan melakukan koreksi untuk memmaintain schedule.
2.       Pengelolaan resiko yang mungkin terjadi
3.       Jaminan kualitas software : aktivitas untuk memaintain kualitas software.
4.       Meninjau teknik – teknik yang digunakan
5.       Pengukuran: mendefinisikan dan mengumpulkan proses, projek dan produk yang akan ditampilkan pada konsumen.
6.       Mengelola konfigurasi software
7.       Reusability menagement
8.       Work product preparation and production  : aktivitas untuk membuat model, dokumen, dan lain-lain.

Essence of practice
1.       Memahami setiap masalah dengan cara komunikasi dan analisis
2.       Merencanakan solusi (software design)
3.       Melakukan atau mengerjakan rencana (code generation)
4.       Menjelaskan hasil untuk menguji akurasi (testing and quality assurane)

Memahami Masalah
Untuk memahamai masalah kita perlu memperhatikan beberapa hal. Berikut ini merupakan beberapa hal yang perlu diperhatikan untuk memahami masalah:
1.       Siapa yang menggunakan atau siapa saja yang terlibat
2.       Fungsi-fungi apa dan fitur-fitur apa yang dibutuhkan untuk mengerjakan masalah
3.       Apakah mungkin memperkecil masalah untuk bisa lebih mudah dipahami?
4.       Dapatkah model analisis grafik dibuat?

 The capability Maturity Model Integration (CMMi)
CMMI adalah proses meta model  yang meliputi banyak hal yang menggambarkan tujuan-tujuan secara spesifik, praktek, dan kemampuan serta harus dihadirkan dalam mature software process.
Berikut ini merupakan capability levels:
1.       Level 0 (incomplete) : pada level ini berarti process area tidak dapat bekerja dengan baik dan tidak dapat mencapai tujuan yang telah ditetapkan sebelumnya.
2.       Level 1(performed): semua tujuan pada process area telah terpenuhi.
3.       Level 2(managed):  level 1 sudah terpenuhi dan semua pekerjaan serta work product dimonitor, dikontrol, direview dan dievaluasi apakah sesuai dengan process description atau tidak.
4.       Level 3(defined): level 2 sudah terpenuhi dan dikhususkan dari set organisasi standart process menurut organisasi tailoring guidelines.
5.       Level 4(quantitatively managed): level ke 3 sudah terpenuhi dan process area dikontrol serta diperbaiki menggunakan pengukuran dan penaksiran kwantitatip.
6.       Level 5(optimized) : level 4 sudah terpenuhi dan process area diadaptasi serta dioptimasikan dengan mengguankan kwantitatip( statistical).




Process Patterns
Process petterns merupakan mekasnisme yang efektif untuk menggambarkan beberapa software process.
Penggambaran process pattern
1.       Pattern name: memberikan arti nama yang menggambarkan  fungsinya dalam software process.
2.       Type: terdiri dari tiga jenis yaitu: task pattern, stage patterns, dan phase patterns.
3.       Initial context : menggambarkan pattern yang diguanakn.
4.       Problem: masalah diselesaikan dengan pattern yang telah digambarkan sebelumnya.
5.       Solutions: pengimplementasian dari pattern yang telah digambarkan sebelumnya.
6.       Resulting context : suatu kondisi yang akan memberikan hasil jika pattern sudah berhasil diimplementasikan.
7.       Related patterns: suatu daftar dari semua process patterns yang secara langsung terkait dengan syarat.

Personal and Team Process Models
1.       Personal software Process (PSP)
Dalam PSP terdapat 5 aktivitas framework  diantaranya sebagai berikut:
·         Planning
·         High level design
·         High level design review
·         Development
·         Postmortem
2.       Team Software Process (TSP)
Tujuan dari TSP adalah membangun “self-directed” project team yang diorganisasikan sendiri untuk memproduksi software dengan kualitas yang tinggi.
Aktivitas kerangka kerja TSP yaitu sebagai berikut:
·         Launch
·         High-level design
·         Implementation
·         Integration and test
·         Postmortem.

Process Technology
Alat-alat (tools) Proses technology mengatur sebuah software untuk membuat model yang optimal dari proses kerangka kerja pada umumnya, task set, aktiviitas yang memayungi kerangka kerja. Model biasanya direpresentasikan sebagai network kemudian dianalisis untuk menentukan workflownya dan memeriksa   alternatif struktur proses yang mungkin bisa mengurangi waktu dan uang pengembangan.