Agile Development
Merupakan sebuah metode pengembangan perangkat lunak dengan mengutamakan kepuasan pelanggan,  dan baimana sebuah produk dari perangkat lunak dapat diterima oleh konsumen
Rekaya perangkat lunak  dapat terwujud jika (manajer, pelanggan, dan pengguna) bekerja sama dalam satu tim  dan bisa mengatur ,mendukung komunikasi dan kolaborasi di antara semua pihak yang terlibat di dalamnya.

Other Agile Development (Model Proses Cepat Lainnya)


1.     Adaptive Software Development (ASD) Pengembangan Perangkat  Lunak  Adaptif Adaptive.
Software Development (ASD) diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari Adaptive SoftwareDevelopment (ASD) adalah kolaborasi manusia dan tim yang mengatur diri sendiri
Spekulasi
Proyek dimulai dari SIKLUS PERENCANAAN ADAPTIF. Dimana yang digunakan adalah: Inisiasi.
Informasi Proyek, Pernyataan Misi Konsumen, Kendala Proyek
Pembelajaran
ASD menekankan pada pembelajaran sebagai elemen kunci dalam pencapaian sebuah tim perangkat lunak yang mampu “Mengorganisasi dirinya sendiri”.
Kolaborasi
Mengkritik Tanpa Permusuhan, Membantu Tanpa Rasa Kecewa, Bekerja Keras bahkan Lebih dari yang biasanya Dilakukan, Memiliki Kontribusi Untuk Pekerjaan yang Ada, Mengomunikasikan Setia Permasalahan maupun Kecurigaan

2.     Dynamic System Development Method (DSDM) Metode Pengembangan Sistem Dinamis “Menyediakan Kerangka Kerja” untuk membangun dan memelihara system perangkat lunak yang memenuhi batasan waktu melalui penggunaan prototype yang ditambahi dan diperluas. Pada dasarnya 80 persen dari aplikasi dapat disampaikan dalam 20 persen dari waktu yang dibutuhkan untuk menghantarkan aplikasi yang lengkap (100 persen).

3.     Scrum
Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan pengembangan selanjutnya dilakukan oleh Schwaber dan Beedle. Prinsip Secrum konsisten untuk untuk membangun kegiatan pengembangan dalam satu proses yang mencakup KEBUTUHAN, ANALISIS, PERANCANGAN, EVOLUSI, dan PENGHANTAR. Scrum menggunakan satu set pola proses perangkat lunak, yaitu:
Langkah:
Backlog: daftar prioritas dari kebutuhan proyek  atau fitur yang menyediakan nilai bisnis bagi pelanggan (Prioritas Update Kebutuhan).
Sprint: Unit kerja untuk mencapai daftar yang ada di Backlog, dan harus sesuai dengan time box.
Meeting: Pertemuan tiap hari yang mempertanyakan apa yang sudah dilakukan, kendala saat ini, dan perencanaan kedepan.

4.     Crystal
Metode Kristal ini pertama kali dibuat oleh Allstair Cockburn dan Jim Highsmith. Metode Kristal ini sendiri dibuat untuk mencapai suatu pendekatan pengembangan perangkat lunak yang berprioritas pada “kemampuan bermanuver”. Inti dari Metode Kristal ini sendiri adalah tujuannya yang memungkinkan Agile Team untuk memilih anggota dari “Keluarga Kristal” yang paling sesuai dengan proyek dan lingkungan mereka. 

5.     Feature Driven Development (FDD) Pengembangan Drive Fitur
User dapat menggambarkan dengan mudah bentuk system,Dapat di organisasikan atau diatur ke dalam kelompok bisnis yang hirarki, Desain dank ode lebih mudah diperiksa secara efektif, Merancang proyek, penjadwalan dan jalur diarahkan oleh feature. Metode ini pertama kali dikemukakan dalam berbentuk konsep oleh Peter Coad.  Yang kemudian dikembangkan oleh Stephen Palmer dan Felsing John. 
Adapula keuntungan metode ini: User dapat menggambarkan dengan mudah bentuk system, Dapat di organisasikan atau diatur ke dalam kelompok bisnis yang hirarki, Desain dank ode lebih mudah diperiksa secara efektif, Merancang proyek, penjadwalan dan jalur diarahkan oleh feature

6.     Agile Modeling (AM)/ Pemodelan Cepat
Agile Modeling adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan system software. Agile Modeling adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software development proyek secara efektif. Tetapi karena keefektifan ini pula, tentunya ada bagian bagian yang harus dipertimbangkan keadaanya. Model ini sendiri memang efektif di bandingkan model tradisional karena hanya mencapai tahapan baik, dan bukan sempurna.
Suatu penekanan pada software pengiriman secara cepat yang memuaskan pelanggan bisa menggunakan Express Programming. Sedangkan untuk menyesuaikan dengan kebutuhan Proyek adalah menggunakan Scrum. Sedangkan untuk pengembangan fitur yang memang sedikit lebih resmi dibandingkan metode lainnya yaitu Feature Driven Development (FDD).

7.      Agile Unified Process (AUP)
Metodologi AUP atau Agile - Unified Process merupakan suatu metodologi pengembangan perangkat lunak yang mulai marak digunakan.
Garis besar tahapan analisa dan perancangan yang dilakukan adalah sebagai berikut:
1)    Inception,
dengan aktivitas mendefinisikan project scope, mengestimasi biaya dan penjadwalan, mendefinisikan resiko, membuat kelayakan proyek dan mempersiapkan lingkungan pengerjaan proyek (tim, tempat kerja, instalasi, dan sebagainya). Proses iterasi dilakukan satu kali. Artifak yang dihasilkan diantaranya adalah dokumen Vision, dokumen Supplementary Specification, dokumen Glossary, Gantt Chart dan Iteration Plan.

2) Elaboration,
dengan aktivitas mengidentifikasi dan validasi arsitektur aplikasi. Proses iterasi dapat dilakukan satu sampai dua kali. Artifak yang dihasilkan adalah UML Use Case, Model Arsitektur (update dan snapshot), Architecture Prototype Code, Scenario Test Plan, dokumen Business Rule, dokumen Supplementary dan Glossary yang telah diupdate.

3) Construction,
dengan aktivitas memodelkan, membangun dan menguji sistem aplikasi (unit testing) serta membuat dokumentasi pendukung. Proses iterasi dapat dilakukan dua hingga delapan kali. Artifak yang dihasilkan adalah Use Case (yang telah diupdate), dokumen Supplementary dan Glossary (yang telah diupdate), Domain Model (snapshot), UML Activity Diagram (snapshot), UML Class Diagram (snapshot), CRC Card, UML Sequence Diagram (snapshot), Source Code, Code Documentation, Regression Test Suite, Acceptance Test dan Bugs Report.

4) Transition,
dengan aktivitas menguji sistem (integration sistem dan user testing), mereview kembali sistem aplikasi dan menginstalasi sistem aplikasi. Proses iterasi dapat dilakukan satu hingga dua kali. Artifak yang dihasilkan adalah Dokumen System Requirement Specification, Dokumen System Technical Specification, Panduan Instalasi dan Panduan Pengguna, Dokumen Pelatihan, Regression Test Suite, User Acceptance Test dan Bugs Report (yang sudah final).

8.     Lean Software Development (LSD)
   Adalah terjemahan dari lean manufacturing dan lean IT prinsip dan praktek untuk pengembangan perangkat lunak domain.



Sumber :




Rekayasa Perangkat Lunak adalah disiplin manajerial dan teknis yang berkaitan dengan pembuatan dan pemeliharaan produk perangkat lunak secara sistematis, termasuk pengembangan dan modifikasinya, yang dilakukan pada waktu yang tepat dan dengan mempertimbangkan faktor biaya.


  • Tujuan : Memperbaiki kualitas produk perangkat lunak, meningkatkan produktivitas
  • Pengertian produk perangkat lunak : perangkat lunak yang digunakan oleh berbagai pengguna
  • Hal-hal yang perlu diperhatikan dalam pengembangan sebuah produk perangkat lunak : kebutuhan dan batasan-batasan pengguna, mengakomodasi paling tidak kepentingan tiga pihak, tahap ujicoba, dokumen pendukung, pelatihan


Beberapa atribut yang merupakan ukuran kualitas perangkat lunak adalah
  • Maintainability, harus dapat dengan mudah dirubah sesuai dengan perubahan kebutuhan pengguna
  • Dependability, harus dapat dipercaya (trustworthy) sehingga pengguna dapat menggantungkan sepenuhnya proses bisnis mereka
  • Eciency, harus efisien dan tidak memakai resources yang tinggi
  • Usability, PL harus dapat digunakan (usable) oleh penggunanya dalam memenuhi kebutuhan mereka


Yang Disebut Perangkat Lunak :
A.    
1.     Instruksi (program komputer) yang bila dieksekusi dapat menjalankan fungsi tertentu.
2.     Struktur datayang dapat membuat program memanipulasi informasi.
3.     Dokumen yang menjelaskan operasi dan penggunaan program (Roger Pressman).
B.   Program komputer, prosedur, aturan, dan dokumentasi yang berkaitan dengannya serta data yang berkaitan dengan operasi suatu sistem komputer (IEEE)



JENIS-JENIS PERANGKAT LUNAK
1.     Perangkat lunak sistem (system software)
Adalah sekumpulan program yang ditulis untuk melayani atau menunjang program lainnya. Beberapa sistem software seperti compiler, editor, komponen-komponen sistem operasi, driver dan prosesor telekomunikasi.
2.     Perangkat lunak waktu nyata (real-time software)
Software yang mengukur, menganalisis dan mengontrol kejadian yang sesungguhnya terjadi di dunia. Elemen-elemen real time software terdiri dari:
a.     Komponen pengumpul data : Yang mengumpulkan dan menyusun informasi dari lingkungan external.
b.     Komponen analisis : Yang mentransformasikan informasi yang diperlukan oleh aplikasi.
c.      Komponen kontrol : Yang memberikan respon kepada lingkungan external.
d.     Komponen monitor : Yang mengkoordinasi semua komponen-komponen lainnya, sehingga respons real time yang berkisar 1 milisecond sampai 1 menit dapat dipertahankan.
Istilah real time berbeda dari istilah interactive atau time sharing. Sistem real time harus memberikan respons pada waktu yang ditentukan, sedangkan pada sistem interactive atau time sharing respons time biasanya melebihi batas waktu yang ditentukan tanpa merusak hasil.
3.     Perangkat lunak bisnis (business software)
Software yang paling banyak digunakan dalam bidang aplikasi software. Software ini digunakan oleh manajemen untuk mengambil keputusan ( Decision Making ) dalam bidang bisnis.
Contoh :
·        DAC EASY ACCOUNTING
·        FINANCE MANAGER

4.     Perangkat lunak rekayasa dan ilmu pengetahuan (engineering and scientific software)
Software yang dicirikan dengan algoritma numerik, aplikasinya berkisar dari astronomi sampai vulkanologi, dari analis ketegangan otomotif sampai dinamika orbit ruang angkasa. Software ini banyak digunakan dalam bidang engineering dan science.
Contoh : CAD / CAM ( Computer Aided Design / Computer Aided Manufacture – Simulasi sistem )
5.     Embedded Software
Perangkat lunak ini terintegrasi dengan perangkat keras dan berfungsi mengatur kinerja dari perangkat keras tersebut.
contoh : microwave oven, telpon genggam, pengaturan avionik pesawat udara, dan lain-lain.
6.     Perangkat lunak pribadi (personal software)
Banyak digunakan pada aplikasi yang bersifat perorangan
contoh : pengolah kata, spreadsheet, game, DBMS dan lain-lain.
7.     Perangkat lunak intelegensia buatan (artificial inteligent software)
Dibuat dengan menggunakan teknik algoritma non-numerik untuk memecahkan masalah yang kompleks, digunakan dalam bidang aplikasi kecerdasan buatan
contoh : game, expert sistem, neural network, dan lain-lain



Tambahan : Sebuah Software pasti memiliki copyrights atau hak pakai atau bahasa sederhana-nya adalah hak cipta/hak paten sebagai syarat bagi pengguna untuk memakai sebuah software. Berdasarkan cara mendapatkannya dan hak pemakaian, software dapat digolongkan:
a.     Shareware => Berbayar dan tanpa kode sumber 
b.     Freeware => Tidak berbayar (gratis) dan tanpa kode sumber 
c.      Free dan Open Source Software => Tidak berbayar dan disertai kode sumber




SOFTWARE ENGINEERING BODY OF KNOWLEDGE

SWEBOK Areas:
a.     Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak
b.     Software design mencakup proses penentuan arsitektur, komponen, antarmuka dan karakteristik lain dari perangkat lunak
c.      Software construction berhubungan dengan detil pengembangan perangkat lunak termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan
d.     Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak
e.      Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan
f.       Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu
g.     Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak
h.     Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL
i.       Software engineering process berhubungan dengan definisi, implementasi, pengukuran, pengelolaan, perubahan dan perbaikan proses RPL
j.       Software quality menitikberatkan pada kualitas dan daur hidup perangkat lunak


PENGEMBANGAN PERANGKAT LUNAK
Proses dimana persoalan/kebutuhan pemakaiditerjemahkan menjadi produk perangkat lunakmelalui suatu rangkaian aktivitas tertentu sesuai model proses, metode, danalat bantuyang digunakan.




Kebutuhan pemakai : Mewakili persoalan yang akan dibantu komputer
Pengembangan PL : Proses yang dilaksanakan dengan urut-urutan aktivitas tertentu
PL : Produk yang dihasilkan sebagai solusi persoalan


Elemen-elemen proses pengembangan :








MODEL PROSES PENGEMBANGAN
Cara atau strategi bagaimana perangkat lunak dibuat sedemikian rupa sehingga produk perangkat lunak tersebut dapat diwujudkan.
Beberapa model proses pengembangan PL:

  • Waterfall
  • Incremental
  • Prototyping Model
  • Spiral Model
  • Rational Unified Process (RUP)
  •  Extreme Programming (XP)









sumber :


Diberdayakan oleh Blogger.