Macam-macam Metode yang digunakan dalam Pengembangan/Pembuatan Software



            


           Halo semua! Pada kesempatan kali ini saya akan menambah ke-random-an saya dengan membuat artikel tentang macam-macam metode yang digunakan dalam pengembangan Software/perangkat lunak. Metode-metode yang akan saya jelaskan antara lain: Agile Software Development Mehtodology, Rapid Application Development, Dynamic System Development Model Methodology, Extreme Programing Methodology, Scrum Development Methodology. Dari namanya aja bikin pusing. Daripada terus-terusan pusing mending langsung baca aja artikelnya. Ehhh. Tunggu dulu, pertama-tama kalian harus tahu apa itu metodologi pengembangan perangkat lunak. Cekidott.
           Metodologi dalam perangkat lunak digunakan untuk merancang atau membangun suatu perangkat lunak, dengan perkembangan teknologi yang sangat pesat metodologi perangkat lunak juga terjadi perubahan atau penambahan requirements. Dari model waterfall sampai dengan model-model incremental. Semua metodologi yang berkembang sebelumnya tidak mampu menangani kemungkinan perubahan atau penambahan requirements. Metode pengembangan perangkat lunak telah dilacak kembali pada tahun 1957. Pada tahun tersebut EA Edmonds telah memperkenalkan proses pengembangan perangkat lunak adaptif. “Lightwight” merupakan metode pengembangan perangkat lunak yang berkembang pada tahun 1990, sebagai reaksi terhadap apa yang disebut metode “heavyweight”. Yang ditandai dengan kritik mereka terhadap metode waterfall.
            Metode pengembangan perangkat lunak (atau disebut juga model proses atau paradigma rekayasa perangkat lunak) adalah suatu strategi pengembangan yang memadukan proses, metode, dan perangkat (tools). Metode-metode pengembangan perangkat lunak,  memberikan teknik untuk membangun perangkat lunak yang berkaitan dengan serangkaian tugas yang luas yang menyangkut analisis kebutuhan, konstruksi program, desain, pengujian, dan pemeliharaan.
            Berikut merupakan metode-metode pengembangan yang berhasil saya rangkum :
1.     Agile Software Development Methodology
            Agile methods merupakan salah satu dari beberapa metode yang digunakan dalam pengembangan sooftware. Agile method adalah jenis pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun.
            Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana.
            Berikut siklus dalam metode Agile :


Kelebihan dari metode Agile
1.     Meningkatkan kepuasan kepada klien
2.     Pembangunan system dibuat lebih cepat
3.     Mengurangi resiko kegagalan implementasi software dari segi non-teknis
4.     Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.
Kekurangan dari metode Agile
1.     Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
2.     Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
3.     Tidak cocok dalam skala tim yang besar (>20 orang).
4.     Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.

2.     Rapid Application Development (RAD)
            RAD (Rapid Application Development) Adalah metodologi pengembangan perangkat lunak (SDLC) yang menggunakan pengabungan antara Prototype Model dengan Iterative Model. Prototipe adalah model kerja yang secara fungsional setara dengan komponen produk.
            Dalam model RAD (Rapid Application Development), modul fungsional dikembangkan secara paralel sebagai prototip dan terintegrasi untuk membuat produk yang lengkap untuk pengiriman produk yang lebih cepat. Dikarenakan tidak ada rincian planning yang detail, maka memudahkan untuk melakukan perubahan pada saat development berjalan.
            Fase-Fase dalam RAD:

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?
 Data modeling
            Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modelling 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.
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.
Aplication generation
            RAD mengasumsikan pemakaian teknik generasi ke empat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memkai lagi komponen program yang ada ( pada saat memungkinkan) atau menciptakan komponen yang bisa dipakai lagi (bila perlu). Pada semua kasus, alat – alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.
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
1.     Membeli sistem yang baru memungkinkan untuk lebih menghemat biaya ketimbang mengembangkan sendiri.
2.     Proses pengiriman menjadi lebih mudah, hal ini dikarenakan proses pembuatan lebih banyak menggunakan potongan-potongan script.
3.     Mudah untuk diamati karena menggunakan model prototype, sehingga user lebih mengerti akan sistem yang dikembangkan.
4.     Lebih fleksibel karena pengembang dapat melakukan proses desain ulang pada saat yang bersamaan.
5.     Keterlibatan user semakin meningkat karena merupakan bagian dari tim secara keseluruhan.
6.     Mempercepat waktu pengembangan sistem secara keseluruhan karena cenderung mengabaikan kualitas.
Kekurangan RAD
1.     Dengan melakukan pembelian belum tentu bisa menghemat biaya dibandingkan dengan mengembangkan sendiri.
2.     Membutuhkan biaya tersendiri untuk membeli peralatan-peralatan penunjang seperti misalnya software dan hardware.
3.     Kesulitan melakukan pengukuran mengenai kemajuan proses.
4.     Ketelitian menjadi berkurang karena tidak menggunakan metode yang formal dalam melakukan pengkodean.
5.     Lebih banyak terjadi kesalahan apabila hanya mengutamakan kecepatan dibandingkan dengan biaya dan kualitas.

3.     Dynamic System Development Model Methodology
            DSDM adalah suatu kerangka kerja awalnya didasarkan pada Rapid Appliation Development (RAD). DSDM mengutamakan keterlibatan pemakai seara berkesinambungan dengan pendekatan pengembangan seara berulang dan bertambah, tanggap terhadap perubahan, untuk membangun sistem perangkat lunak yang memenuhi kebutuhan bisnis tepat waktu dan tepat anggaran. DSDM merupakan salah satu metode Agile untuk pengembangan perangkat lunak, dan bagian dari Agile Alliance. DSDM pertama kali diperkenalkan pada tahun 1995, di mana merupakan satu-satunya publikasi penggunaan metode RAD di dunia.
            Sebagai perluasan dari RAD, DSDM memusatkan pada proyek sistem informasi yang diirikan oleh jadwal dan anggaran yang ketat. DSDM berupaya mengatasi penyebab-penyebab kegagalan proyek, di antaranya melebihi anggaran, terlambat dari jadwal, kurangnya keterlibatan pengguna, dan lemahnya komitmen dari para pimpinan. Kerangka kerja DSDM menyediakan dasar ideal bagi proses pengembangan dan penerapan sistem informasi, meliputi orang (misal organisasi, staf, keahlian), teknologi pendukung (misal teknologi informasi, otomatisasi kantor, komunikasi) dan proses yang menyatukan keduanya (dalam rangkaian strategi bisnis).  
DSDM terdiri dari 3 tahapan utama, dan 5 sub tahap :


1.     Sebelum proyek, di mana kandidat proyek diidentifikasi, pembiayaan proyek terpenuhi, dan jaminan proyek dipastikan. Penanganan hal-hal tersebut pada tahap ini menghindari masalah pada tahap-tahap berikutnya.

2.     Siklus hidup proyek, merupakan inti dari DSDM, yang terdiri dari 5 sub tahap yaitu : 1 studi kelayakan, 2 studi bisnis, 3 perulangan model fungsional, 4 perulangan perancangan dan pembuatan, 5 penerapan.

3.     Setelah proyek, yaitu memastikan sistem berjalan secara efektif dan efisien. Hal ini diwujudkan dengan perawatan, peningkatan dan perbaikan sesuai prinsip-prinsip DSDM.

            Perawatan dapat dilihat sebagai usaha meneruskan pengembangan berdasarkan sifat alami DSDM, yaitu perulangan dan pertambahan.

Kelebihan dari DSDM
1.     Menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan.
2.     Membangun software dengan cepat.
3.     DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP.
Kekurangan dari 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 backup and recovery, system performance dan system security kurang/tidak diperhatikan dan sering terlupakan.

4.     Extreme Programing Methodology
            Extreme Programming (XP) merupakan salah satu metode pengembangan software yang termasuk dalam Agile Software Development. XP menggunakan pendekatan object-oriented.
            Dalam XP, terdapat 5 nilai yang menjadi pondasi yaitu communication, simplicity, feedback, courage, dan respect. Komunikasi yang efektif antara pengembang perangkat lunak dan pihak-pihak yang terlibat sangatlah penting. Dalam XP, desain dijadikan kebutuhan intermediate. Desain dibuat sesederhana mungkin agar mudah mengimplementasikan code. Disini dapat terjadi perubahan struktur desain atau perubahan source code tanpa mengubah fungsi utamanya (refactoring). Feedback akan diberikan saat peningkatan dan pengimplementasian perangkat lunak.
            Berikut merupakan proses Extreme Programming menurut Pressman (2010):


            Planning. Tahap planning dimulai dengan membuat user stories yang menggambarkan output, fitur, dan fungsi-fungsi dari software yang akan dibuat. User stories tersebut kemudian diberikan bobot seperti prioritas dan dikelompokkan untuk selanjutnya dilakukan proses delivery secara incremental.
            Design. Design di Extreme Programming mengikuti prinsip Keep It Simple (KIS). Untuk design yang sulit, Extreme Programming akan menggunaan Spike Solution dimana pembuatan design dibuat langsung ke tujuannya. Extreme Programming juga mendukung adanya refactoring dimana software system diubah sedemikian rupa dengan cara mengubah stuktur kode dan menyederhanakannya namun hasil dari kode tidak berubah.
            Coding. Proses coding pada XP diawali dengan membangun serangkaian unit test. Setelah itu pengembang akan berfokus untuk mengimplementasikannya. Dalam Extreme Programming diperkenalkan istilah Pair Programming dimana proses penulisan program dilakukan secara berpasangan. Dua orang programmer saling bekerjasama di satu komputer untuk menulis program. Dengan melakukan ini akan didapat real-time problem solving dan real-time quality assurance.
            Testing. Tahap ini dilakukan pengujian kode pada unit test. Dalam Extreme Programming, diperkenalkan XP acceptance test atau biasa disebut customer test. Tes ini dilakukan oleh customer yang berfokus kepada fitur dan fungsi sistem secara keseluruhan. Acceptance test ini berasal dari user stories yang telah diimplementasikan.
Kelebihan dari XP
1.     Metode yang populer karena lebih santai dan non-restriktif.
2.     Biaya lebih murah.
3.     Mampu mengotomatiskan tes.
4.     Setiap feedback ditanggapi dengan melakukan tes, unit tes atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).
5.     Banyak ide baru dan berani mencobanya, berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki.
Kekurangan dari XP
1.     Cerita-cerita yang menunjukkan requirements 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
            Scrum adalah iteratif dan pengembangan perangkat lunak kerangka kerja tambahan tangkas untuk proyek-proyek perangkat lunak dan mengelola produk atau pengembangan aplikasi. Fokusnya adalah pada "strategi, pengembangan produk fleksibel holistik di mana tim pengembangan bekerja sebagai sebuah unit untuk mencapai tujuan bersama" sebagai lawan dari "pendekatan tradisional, berurutan".
            Dari penjelasan diatas telah kita ketahui bahwa scrum merupakan salah satu metodologi yang dapat digunakan untuk mengatur (manage) proses pembuatan software menggunakan pendekatan Agile.

            Untuk mengaplikasikan Scrum di kehidupan nyata, ada beberapa proses penting dalam Scrum yang perlu kamu ketahui. Di antaranya adalah product backlog, sprint planning meeting, daily scrum, sprint review meeting, dan sprint retrospective. Mari kita bahas istilah-istilah tersebut satu per satu!


      

Product backlog
            Ini adalah tahap pertama yang harus kamu lakukan. Product backlog bertujuan untuk menentukan prioritas apa saja yang harus dilakukan selama pengerjaan sprint, yaitu rapat perencanaan pembuatan perangkat lunak yang dilakukan sesuai dengan durasi yang telah disepakati. Product backlog melibatkan seluruh tim terkait, dari mulai Product Owner, Scrum Master, hingga tim pengembang.
Sprint planning meeting
            Sprint planning merupakan proses paling penting yang dilakukan setiap kali akan memulai sprint baru. Dalam proses ini, seluruh tim berkumpul untuk merumuskan tugas apa saja yang ingin dikerjakan dan dirilis dalam beberapa waktu ke depan.
Daily scrum
            Di fase ini, masing-masing anggota tim saling berbagi apa saja yang telah dikerjakan, dan apa yang akan dikerjakan di hari tersebut. Para anggota tim juga dapat melaporkan hambatan yang ditemui selama pengerjaan. Daily scrum dilakukan setiap hari selama sprint berlangsung.
Sprint review meeting
            Sprint review adalah waktunya bagi anggota tim untuk mendemonstrasikan apa saja yang berhasil diselesaikan dalam satu sprint. Sprint review dilakukan setelah satu kali pengerjaan sprint selesai.
Sprint retrospective
            Sprint retrospective dilakukan di akhir setiap sprint. Dalam meeting ini, masing-masing anggota tim (termasuk Scrum Master dan Product Owner) mengutarakan pendapat terkait kinerja tim selama menerapkan Scrum tanpa membahas sisi teknis dari proyek yang telah dikerjakan.

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.     Proses Scrum mampu menyatakan bahwa produk selesai kapan pun diperlukan.
Kekurangan dari scrum
1.     Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
2.     Lemah dalam perencanaan arsitektur

            Sekian artikel tentang macam-macam metode yang digunakan dalam pengembangan/pembuatan software. Saya harap artikel yang saya buat bisa bermanfaat pada diri saya sendiri dan juga orang lain.

-        Terima Kasih Telah Berkunjung, datang lagi yaaa…

Komentar

Postingan populer dari blog ini

Pengertian dan Macam-macam Sistem Operasi atau OS