Gallery

Minggu, 26 November 2017
Di postingan ini ,saya akan membahas tentang perbedaan seputar metode dalam pengembangan sebuah perangkat lunak.Oke langsung saja scroll kebawah gan.

Proses Pengembangan Perangkat Lunak (Software Development Process) adalah suatu penerapan struktur pada pengembangan suatu Perangkat Lunak (Software), yang bertujuan untuk mengembangkan sistem dan memberikan panduan untuk menyukseskan proyek pengembangan sistem melalui tahapan-tahapan tertentu. Dalam prosesnya, terdapat beberapa model pengembangan sistem perangkat lunak, diantaranya :

        1.AGILE SOFTWARE DEVELOPMENT METHODOLOGY

Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunakyang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada.

Beberapa model dari agile development methods,yaitu :

  • Acceptance Test Driven Development (ATDD)
  • Agile Modeling
  • Adaptive Software Development (ASD)
  • Agile Unified Process (AUP)
  • Continuous integration (CI)
  • Crystal Clear
  • Crystal Methods
  • Dynamic Systems Development Method (DSDM)
  • Extreme Programming (XP)
  • Feature Driven Development (FDD)
  • Graphical System Design (GSD)
  • Kanban
  • Lean software development
  • Rational Unified Process (RUP)
  • Scrum
  • Scrum-ban
  • Story-driven modeling
  • Test-driven development (TDD)
  • Velocity tracking
  • Software Development Rhythms
Fitur-fitur yang diberikan oleh Agile Software Development adalah sebagai berikut:
  1. Iterasi yang cepat dan pengiriman software yang berfungsi secara reguler memastikan kepuasan pelanggan.
  2. Perubahan yang telat dapat ditangani dengan mudah dan juga diterima secara terbuka.
  3. Perkembangan dinilai berdasarkan implementasi software.
  4. Komunikasi pelanggan dan pengguna ditekankan secara bertatap muka.
  5. Setiap pertemuan dengan anggota tim dilakukan secara bertatap muka.
  6. Setiap anggota tim pengembang adalah orang yang berkomitmen dan bermotivasi tinggi serta kompeten dan dapat dipercaya.
800px-Generic_diagram_of_an_agile_methodology_for_software_development
Diagram Metodologi Agile
Poin penting dari Metodologi Agile :
  1. Interaksi dan personel lebih penting dari pada proses dan alat. di dalam agile interaksi antar anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
  2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap. saat melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan lebih berguna daripada dokumentasi yang lengkap.
  3. Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak. salah satu ciri dari agile adalah klien menjadi bagian dari tim pengembangan perangkat lunak. Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika menggunakan agile. Karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus dibicarakan dan diimprovisasi disesuaikan dengan keinginan klien
  4. Respon terhadap perubahan lebih penting daripada mengikuti rencana. agile development methods berfokus terhadap kecepatan respon tim ketika klien menginginkan perubahan saat proses pembuatan perangkat lunak.
Waktu Penggunaan
Metode Agile cocok untuk proyek yang memberikan kepuasan pelanggan karena resiko kegagalan yang kecil dan lebih cepat dalam penyelesaian software serta perubahan yang cepat dari software yang dibangun untuk meningkatkan kualitas software yang lebih baik.
Kelebihan
  1. Meningkatkan rasio kepuasan pelanggan.
  2. Bisa melakukan review pelanggan mengenai software yang dibuat lebih awal.
  3. Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
  4. Besar kerugian baik secara material atau imaterial tidak terlalu besar jika terjadi kegagalan.
Kekurangan
  1. Total lama pengembangan menjadi lebih lama.
  2. Meningkatkan resiko kesalahan teknis.
  3. Proses pengembangan menjadi agak kurang terorganisir.

      2. RAPID APPLICATION DEVELOPMENT

Rapid application development  (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat). RAD menekankan pada siklus pembangunan pendek, singkat, dan cepat.
Rapid Application Development (RAD) adalah metodologi pengembangan perangkat lunak yang berfokus pada membangun aplikasi dalam waktu yang sangat singkat. Istilah ini menjadi kata kunci pemasaran yang umum menjelaskan aplikasi yang dapat dirancang dan dikembangkan dalam waktu 60­90 hari, tapi itu awalnya ditujukan untuk menggambarkan suatu proses pembangunan yang melibatkan application prototyping dan iterative development.

MODEL RAD

https://murtri.files.wordpress.com/2014/08/5.jpg?w=634
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Rapid Application Development (RAD), yaitu :
a) Bussiness modeling Aliran informasi di antara fungsi – fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan – pertanyaan berikut :
informasi apa yang mengendalikan proses bisnis?
  • Informasi apa yang di munculkan?
  • Siapa yang memunculkanya?
  • Ke mana informasi itu pergi?
  • Siapa yang memprosesnya?
 
b)Data modeling
  • Aliran informasi yang didefinisikan sebagai bagian dari fase business
  • modeling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut.
  • Karakteristik (disebut atribut) masing – masing objek diidentifikasi dan hubungan antara objek – objek tersebut didefinisikan.
  • Bagian dari pemodelan bisnis yang didefinisikan ke dalam sekumpulan objek data.
  • Karakteristik (atribut) dari setiap objek diidentifikasikan dan hubungannya .
 
c)Prosess modelling
  • Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis.
  • Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.
  • Objek data akan diimplementasikan pada fungsi bisnis.
  • Deskripsi proses dibangun untuk penambahan modifikasi, penghapusan, atau pengambilan kembali objek data.
 
d)Application generation
  • RAD mengasumsikan pemakaian teknik generasi ke empat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional
  • Pada semua kasus, alat – alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.
  • Melakukan penggunaan kembali komponen yang ada (jika mungkin).
  • Atau membuat kembali penggunaan kembali komponen jika dibutuhkan.
 
e)Testing and turnover
  • Karena proses RAD menekankan pada pemakaian kembali,banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian.
  • Tetapi komponen baru harus di uji dan semua interface harus dilatih secara penuh.
 
Kelebihan RAD (Rapid Application Development)
  1. Sangat berguna dilakukan pada kondisi user tidak memahami kebutuhankebutuhan apa saja yang digunakan pada proses pengembangan perangkat lunak.
  2. RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada (reusable object) sehingga pengembang tidak perlu membuat dari awal lagi dan waktu lebih singkat berkisar antara 60 hari­90 hari.
  3. Karena mempunyai kemampuan untuk menggunakan komponen yang sudah
    ada dan waktu yang lebih singkat maka membuat biaya menjadi lebih rendah
    dalam menggunakan RAD
Kekurangan RAD (Rapid Application Development)
  1. Proyek yang berskala besar, RAD memerlukan sumber daya manusia yang
    memadai untuk menciptakan jumlah tim yang baik.
  2. RAD menuntut pengembang dan pelanggan memiliki komitmen dalam aktivitas rapid fire yang diperlukan untuk melengkapi sebuah sistem dalam waktu yang singkat. Jika komitmen tersebut tidak ada maka proyek RAD akan gagal.

3.DYNAMIC SYSTEM DEVELOPMENT METHODOLOGY (DSDM)

Dynamic System Development Model Methodology (DSDM) adalah pada dasarnya merupakan suatu metodologi pengembangan perangkat lunak pada awalnya didasarkan pada Aplikasi Rapid Development metodologi. Pada tahun 2007 DSDM menjadi pendekatan umum untuk proyek pengiriman manajemen dan solusi. DSDM adalah iteratif dan inremental pendekatan yang menekankan pengguna kontinu / keterlibatan pelanggan.Tujuannya adalah untuk memberikan proyek-proyek tepat waktu dan menyesuaikan anggaran sementara untuk perubahan kebutuhan sepanjang jalan. DSDM adalah salah satu dari sejumlah metode Agile untuk mengembangkan perangkat lunak dan non-IT solusi, dan itu merupakan bagian dari Aliansi Agile.
 Hasil gambar untuk Dynamic System Development Model Methodology
Ada 9 prinsip yang penting untuk implementasi DSDM,yaitu :
1) Keterlibatan pengguna aktif – Imperatif.
2) Tim harus diberdayakan untuk mengambil keputusan.
3) Fokus pada pengiriman yang sering.
4) Kriteria untuk deliverable diterima (Fitness for Business).
5) Perkembangan Iteratif dan inkremental – Wajib.
6) Semua perubahan selama pengembangan harus reversibel.
7) Persyaratan dasar dilapisi pada tingkat tinggi.
8) Pengujian terintegrasi sepanjang siklus hidup.
9) Pendekatan kolaboratif dan kooperatif.
Waktu Penggunaan
Dynamic Sofware Development Method (DSDM) cocok untuk proyek yang membutuhkan waktu singkat dan tidak memerlukan kinerja tinggi, ini karena DSDM berdasar pada model RAD.
 Kelebihan Dynamic Software Development Method (DSDM)
  1. Menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototypingyang incremental dalam lingkungan yang terkondisikan
  2. Membangun softwaredengan cepat
  3. DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP
Kelemahan Dynamic Software Development Method(DSDM)
  1. Setiap iterasi bergantung pada prototype sebelumya
  2. Menentukan scope dari suatu prototype proyek tidak pernah selesai
  3. Dokumentasi sering kali tidak lengkap fokus pada pembuatan prototype
  4. Isu-isu mengenai system backupand recoverysystem performance dan system security kurang/tidak diperhatikan dan sering terlupakan

4. EXTREME PROGRAMING METHODOLOGY

Extreme Programming (XP) merupakan salah satu metodologi dalam rekayasa perangkat lunak dan juga merupakan satu dari beberapa agile software development methodologies yang berfokus pada coding sebagai aktivitas utama di semua tahap pada siklus pengembangan perangkat lunak (software development lifecycle). Metodologi ini mengedepankan proses pengembangan yang lebih responsive terhadap kebutuhan customer (”agile”) dibandingkan dengan metode-metode tradisional sambil membangun suatu software dengan kualitas yang lebih baik.
Hasil gambar untuk penjelasan tahapan Extreme Programing Methodology

Tahapan Dalam Etreme (XP) Programming, yaitu:
Aktivitas planning dimulai dengan membentuk user stories. Anggota XP team kemudian menilai setiap story dan menentukan cost — diukur dalam development week.
Planning. Customer dan XP team bekerja bersama untuk memutuskan bagaimana grup story untuk release berikutnya (software increment berikutnya) untuk dibangun oleh XP team. Jika komitmen telah dibuat, XP team akan membangun story-story dengan cara :
Semua story segera diimplemetasikan (dalam beberapa minggu)
1. Story dengan value tertinggi akan dipindahkan dari jadwal dan dimplementasikan pertama.
2. Story dengan resiko paling tinggi akan diimplemetasikan terlebih dulu. Setelah project pertama direlease dan didelivery, XP team memperhitungkan kecepatan project. Selama development, customer dapat menambah story, merubah value, membagi story atau menghapusnya.
Design. XP menggunakan CRC card, untuk mengenali dan mengatur object oriented class yang sesuai dengan software increment.
Coding. Sebelum membuat code, lebih baik membuat unit test tiap story untuk dimasukkan dalam software increment. XP menyarankan agar dua orang bekerja bersama pada satu komputer workstation untuk membuat code dari satu story (pair programming), untuk menyediakan real time problem solving dan jaminan real time quality. Setelah pair programming selesai, code diintegrasikan dengan kerja laiinnya (continuous integration).
Testing. Unit test yang telah dibuat harus diimplementasikan menggunakan suatu framework dan diatur ke dalam universal testing suite, integrasi dan validasi sistem dapat dilakukan setiap hari. Customer test (acceptance test) dilakukan oleh customer dan fokus pada keseluruhan fitur dan fungsional sistem. Acceptance test diperoleh dari customer stories yang telah diimplemetasikan sebagai bagian dari software release.
 Waktu Penggunaan
Penerapan dari Extreme Programing (XP) cocok untuk teknologi atau prototipe baru, dimana persyaratan berubah dengan cepat, atau beberapa pengembangan diperlukan untuk menemukan masalah pelaksanaan yang tak terduga.
Kelebihan Extreme Programming, yaitu:
  1. Meningkatkan kepuasan kepada klien
  2. Pembangunan system dibuat lebih cepat
  3. Menjalin komunikasi yang baik dengan client.
  4. Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kelemahan Extreme Programming, yaitu:
  1. Cerita-cerita yang menunjukkan requirements dari pelanggan kemungkinan besar tidak lengkap sehingga Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
  2. Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
  3. XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.

5.SCRUM DEVELOPMENT METHODOLOGY

Metodologi Scrum termasuk ke dalam kumpulan metode Pengembangan Perangkat Lunak Agile (Agile Software Development).Scrum adalah sebuah kerangka kerja untuk pengembangan secara inkremental dengan menggunakan satu atau lebih tim yang cross-functional dan self-organizing yang terdiri dari kurang lebih tujuh orang pada tiap-tiap tim. Scrum menggunakan iterasi tetap bernama Sprint, yang dijalankan dalam waktu dua minggu atau tiga puluh hari. Tim Scrum berusaha untuk membangun inkremen produk (perangkat lunak) yang siap digunakan dan telah diuji pada setiap proses iterasi ini.
PRINSIP METODOLOGI SCRUM
 
· 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

 https://ranjaniryan.files.wordpress.com/2015/12/image.png?w=634
Berikut ini uraian dari tahap-tahap pengembangan perangkat lunak dengan menggunakan metode Scrum :
1. Product Backlog
Bagian pertama ini adalah kumpulan dari hal-hal yang diperlukan dan yang harus tersedia dalam produk. Produk backlog berada dalam tanggung jawab product owner. Product Backlog adalah daftar utama dari semua fungsi yang diinginkan dalam produk. Metodologi Scrum tidak mengharuskan dokumentasi semua persyaratan pada awal proyek.
2. Sprint Backlog
Perencanaan Sprint dilakukan dalam pertemuan atau meeting antara pemilik produk dan tim developer yang akan berkolaborasi untuk memilih product backlog untuk dimasukan kedalam proses sprint. Hasil dari pertemuan tersebut adalah Sprint Backlog.
3. Sprint
Sprint adalah sebuah kerangka waktu yang berdurasi maksimal 1 bulan untuk mengembangkan produk yang berpontensi untuk dirilis. Dalam Sprint terdapat 2 bagian pekerjaan, yaitu :
a. Pertemuan Harian (Daily Standup Meeting)
Merupakan pertemuan dimana setiap 24 jam (1 hari), tim pengembangan bertemu untuk membahas proses pengembangan produk.
b. Refleksi Sprint
Merupakan pertemmuan yang dilakukan setiap bulannya, yang bertujuan untuk membahas hal dari Sprint Backlog yang telah berjalan dan telah berhasil dikerjakan, serta dapat memperbaiki dan meningkatkan kualitas produk pada Sprint yang berikutnya.
4. Increment
Increment merupakan hasil dari seluruh hal dalam Product Backlog yang telah selesai dikerjakan pada seluruh Sprint. PAda akhir Sprint, Increment harus sudah benar-benar selesai, yang berarti harus dalam keadaan yang useable.
Waktu Penggunaan
Scrum Development Methodology digunakan ketika tim programmer sedikit, yaitu 5-9 orang dan ketika pelanggan tidak terlalu paham dengan apa yang diinginkan.
Kelebihan dari scrum
  1. Keperluan berubah dengan cepat.
  2. Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain.
  3. Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat.
  4. Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun.
  5. Proses Scrum mampu menyatakan bahwa produk selesai kapan pun diperlukan.
Kekurangan sari scrum
  1. Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
  2. Lemah dalam perencanaan arsitektur
Terima kasih para reader yang sudah mengunjungi blog saya ini ,semoga artikel kali ini bermanfaat ,ya meskipun saya hanya copas dari blog lain ,tapi apa salahnya berbagi informasi kan. Sekian dari saya ,Salam Tekno.

Templateify

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae abtore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit

0 komentar