Halaman


Jumat, 18 September 2015

Metode Adaptif dan Prediktif DSLC juga Current Trends in Development

Rekayasa Perangkat Lunak Lanjut
Nama    : Wa Ode Rahma A.U.M
NRP       : G651150631
 


1.       Perbedaan Traditional Adaptive dan Predictive SDLC Method.

SDLC adalah singkatan dari Software Development Life cycle atau biasa disebut sebagai proses pengembangan perangkat lunak. SDLC adalah proses yang digunakan untuk merancang, mengembangkan dan menguji software. SDLC bertujuan untuk menghasilkan software yang berkualitas tinggi yang memenuhi harapan pelanggan, target waktu, sumber daya dan biaya.

SDLC memiliki 2 jenis pengembangan atau pendekatan dalam menyelesaikan sebuah project yaitu:
·         Prediktif dimana dari awal sudah diprediksi dan diasumsikan dengan baik.
·         Adaptif dimana proyek di buat lebih fleksibel terhadap berbagai kemungkinan-kemungkinan, proyek tidak dapat di asumsikan secara detail dari awal.

SDLC pendekatan traditional (Prediktif)
-          Project planning, bertujuan untuk mengidentifikasi semua yang berkaitan dengan proyek mulai dari fisibility, jadwal pembuatan, sumber daya, waktu yang diperlukan hingga anggaran.
-          Analysis bertujuan untuk memahami dan mendokumentasikan semua kebutuhan yang dibutuhkan pada system.
-          Design bertujuan untuk mendesain solusi yang dibutuhkan system yang didefinisikan dan kemudian membuat keputusan terhadap hasil analisis.
-          Implementation yaitu membangun, menginstall dan menguji system sehingga dipercaya dapat dipakai.
-          Support bertujuan untuk memelihara kualitas system sehingga baik digunakan bertahun-tahun.
SDLC pendekatan Adaptif
-          Didasarkan pada model spiral.
-          Iterasi tahapan-tahapan pembuatan system sampai system selesai dibangun.
-          Prototype system dihasilkan pada akhir iterasi.
-          Digunakan untuk meminimasi resiko.
-          Masing-masing iterasi merupakan perbaikan dari hasil sebelumnya.
-          Asumsinya semua pekerjaan belum merupakan hasil akir yang sempurna pada tahapan yang pertama.
-          Pada proses iterasi terdapat proyek-proyek kecil pada setiap tahap iterasi.


2.       Current Trends in Development
a.       Extreme Programming (XP)
Extreme Programming (XP) adalah salah satu metode yang merupakan salah satu dari Angile Software Development Methodologies yang berfokus pada coding sebagai sebagai aktifitas utama pada semua tahapan. Nilai dasar yang terkandung pada XP adalah komunikasi (communication), kesederhanaan (simplicity), umpan balik (feedback), keberanian (courage) dan menghormati (respect).

Tujuan utama XP adalah menurunkan biaya dari adanya perubahan software. Dalam metodologi pengembangan sistem tradisional, kebutuhan sistem ditentukan pada tahap awal pengembangan proyek dan bersifat fixed. Hal ini berarti biaya terhadap adanya perubahan kebutuhan yang terjadi pada tahap selanjutnya akan menjadi mahal. XP diarahkan untuk menurunkan biaya dari adanya perubahan dengan memperkenalkan nilai-nilai basis dasar, prinsip dan praktis. Dengan menerapkan XP, pengembangan suatu sistem haruslah lebih fleksibel terhadap perubahan.

Menurut penggagas dari metode XP, Kent Beck mendefinisikan empat kunci utama (inti) dari XP yaitu:
1. Communication (Komunikasi)
Tugas utama developer dalam membangun suatu sistem perangkat lunak adalah mengkomunikasikan kebutuhan sistem kepada pengembang perangkat lunak. Komunikasi dalam XP dibangun dengan melakukan pemrograman berpasangan (pair programming). Developer didampingi oleh pihak klien dalam melakukan coding dan unit testing sehingga klien bisa terlibat langsung dalam pemrograman sambil berkomunikasi dengan developer. Tujuannya untuk memberikan pandangan pengembang sesuai dengan pandangan pengguna sistem.
2. Simplicity (Kesederhanaan)
XP mencoba untuk mencari solusi paling sederhana dan praktis. Perbedaan metode ini dengan metodologi pengembangan sistem konvensional lainnya terletak pada proses desain dan coding yang terfokus pada kebutuhan saat ini daripada kebutuhan besok, seminggu lagi atau sebulan lagi. Lebih baik melakukan hal yang sederhana dan mengembangkannya besok jika diperlukan.

3. Feedback (Masukan)
Hal ini diperlukan untuk mengetahui kemajuan dari proses dan kualitas dari aplikasi yang dibangun. Informasi ini harus dikumpulkan setiap interval waktu yang singkat secara konsisten. Ini dimaksudkan agar hal-hal yang menjadi masalah dalam proses pengembangan dapat diketahui sedini mungkin. Setiap feed back ditanggapi dengan melakukan tes, unit test atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).

4. Courage (Keberanian)
Berani mencoba ide baru. Berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki. Contoh dari courage adalah komitmen untuk selalu melakukan design dan coding untuk saat ini dan bukan untuk esok. Ketika ada kode yang terlalu rumit, sulit dibaca dan dipahami, tidak sesuai dengan kemauan pelanggan, dll maka seharusnya kode program seperti itu di refactor (kalau perlu dibangun ulang). Hal ini menjadikan pengembang merasa nyaman dengan refactoring program ketika diperlukan.

5. Respect (Menghormati)
Pentingnya respect terhadap anggota team lainnya karena dengan siklus pendek dan integrasi continue, programmer tidak boleh melakukan perubahan yang dapat merusak kompilasi dan menyebabkan keberadaan unit uji gagal atau memperlambat kerja team. Respects tiap individu akan selalu menghasilkan kualitas tinggi.

Keuntungan XP:
-          Menjalin komunikasi yang baik dengan client.
-           Meningkatkan komunikasi dan sifat saling menghargai antar developer.
       Kerugian XP:
-          Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
-          Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).

b.      Angile Modeling

Agile mempunyai pengertian, bahwa secara aktif dan berkesinambungan, antara pengembang dengan pelanggan harus senantiasa menjalin kerjasama dan komunikasi dengan baik.

Salah satu ciri dari Agile Software Development adalah tim yang tanggap terhadap perubahan. Karena perubahan adalah hal yang utama dalam pembangunan software: perubahan kebutuhan software, perubahan anggota tim, perubahan teknologi dll. Selain itu Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessman, antara developer dan managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang ditetapkan oleh Agile Alliance.
Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development:
1. kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus       menerus
2. menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
3. Penyerahan hasil/software dalam hitungan waktu dua minggu sampai dua bulan.
4. Bagian bisnis dan pembangun kerja sama tiap hari selama proyek berlangsung
5. Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukun dan yang dipercaya untuk dapat menyelesaikan proyek.
6. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien
7. Software yang berfungsi adalah ukuran utama dari kemajuan proyek
8. dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan
9. perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
10. kesederhanaan penting
11. arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri
12. secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.
Kedua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile.

Dengan prinsip-prinsip tersebur Agile Process Model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya:
1. kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya proyek.
2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan.
3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

Berikut ini adalah model-model proses yang termasuk agile process model :
1.    XP(Extreme Programming)
2.    Adaptive Software Development (ASD)
3.    Dynamic Systems Development Method
4.    SCRUM

c.       Scrum
Scrum merupakan suatu kerangka kerja. Jadi, bukannya menyediakan deskripsi rinci tentang bagaimana segala sesuatu yang harus dilakukan pada proyek seperti diserahkan kepada tim pengembangan perangkat lunak pada umumnya. Hal ini dilakukan supaya tim akan tahu bagaimana cara terbaik untuk memecahkan masalah yang mereka disajikan. Ada 3 elemen organisasi utama pada scrum yaitu product owner, Scrum master, dan the Scrum team. Scrum Master dapat dianggap sebagai pelatih bagi tim, membantu anggota tim menggunakan kerangka Scrum untuk tampil di tingkat tertinggi. Product Owner mewakili bisnis, pelanggan atau pengguna dan memandu tim ke arah pegembangan produk yang tepat. Sedangkan The Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9 orang. Untuk projek yang sangat besar, pekerjaan biasanya dibagi dan didelegasikan ke grup-grup kecil. Jika sangat dibutuhkan the scrum master juga dapat ikut membantu dalam koordinasi team.

Scrum tepat digunakan saat kondisi:
§  Keperluan berubah dengan cepat
§  Tim programmer sedikit, yaitu 5-9 orang
§  Pelanggan tidak terlalu paham dengan apa yang diinginkan

Scrum memiliki prinsip yaitu:
§  Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lainProses dapat beradaptasi terhadap perubahan teknis dan bisnis
§  Proses menghasilkan beberapa software increment
§  Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
§  Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
§  Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan

Kelebihan Scrum antara lain:
§  Keperluan berubah dengan cepat
§  Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain
§  Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat
§  Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
§  Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan

Kelemahan Scrum antara lain:
Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.


Sumber :
Systems Analysis and Design in a Changing World, 4th Edition
Umi Proboyekti, Bahan Ajar Rekayasa Perangkat Lunak Agile Software Development, pdf.

http://dhiekalantana.blog.unas.ac.id/2012/10/perbandingan-up-xp-scrum-agile/


Tidak ada komentar:

Posting Komentar

Spesifikasi:

tas kamera
kamera digital