Senin, 12 Februari 2018

TUGAS 1 MPPL kelas D

WAHYU IVAN SATYAGRAHA - 5115100155

Terdapat beberapa pengertian mengenai software process menurut para ahli :
1. Menurut Reidar Conradi pada bukunya yang berjudul Software Process Technology: 7th European Workshop, Software Process adalah Proses perangkat lunak yang direpresentasikan sebagai sebuah proses program dan dapat mengeksekusi secara otomatis.

2. Menurut Ian Sommerville pada bukunya yang berjudul Software Engineering (9th Edition), Software Process adalah Pendekatan sistematis yang digunakan dalam rekayasa perangkat lunak serta merupakan sebuah aktifitas terurut yang menuju kepada produksi dari pembuatan produk rekayasa perangkat lunak.
3. Sedangkan menurut M Deploy pada tulisannya yang berjudul Software Engineering Process, Software process adalah serangkaian langkah-langkah yang terurut untuk membuat sebuah produk rekayasa perangkat lunak. Software process adalah suatu hirarki yang tiap langkah dapat memiliki sub-sub langkah dalam proses rekayasa perangkat lunak.

Terdapat 4 aktifitas umum yang mendasar pada semua proses rekayasa perangkat lunak, yaitu:
Software specification, yaitu pengguna dan perekayasa menentukan perangkat lunak yang akan dibuat dan dibatasi pada proyek tersebut.
Software development, dimana perangkat lunak tersebut dirancang dan diprogram.
Software validation, dimana perangkat lunak di cek apakah sudah memenuhi apa yang dibutuhkan oleh pengguna
Software evolution, dimana perangkat lunak diubah,diperbaiki untuk mengatasi perubahan pengguna dan mengikuti perkembangan jaman.

Dalam software process terdapat beberapa model, yaitu:
1.      Waterfall, Model ini adalah model yang pertama kali muncul pada tahun 1970an diperkenalkan oleh Winston W. Royce. Model ini memisahkan fase spesifikasi dengan fase pengembangan.

Ada 5 proses penting dalam model Waterfall:
1. Requirement analysis and definition (analis kebutuhan)
2. System and software design (perancangan sistem dan software)
3. Implementation and unit testing (implementasi dan testing)
4. Integration and system testing (integrasi dan pengujian sistem)
5. Operation and maintenance (operasi dan perawatan)

2.      RAD (Rapid Application Development), Rapid Application Development (RAD) adalah sebuah strategi pengembangan sistem yang menekankan kecepatan dalam pengembangan melalui keterlibatan pengguna dalam pembangunan secara cepat, iteratif, dan incremental dari suatu serangkaian prototype dari suatu sistem yang dapat berkembang menjadi suatu sistem akhir atau versi tertentu.


3.      Prototyping Model, Pada model ini, user berperan aktif dalam pembuatan software. model ini digunakan apabila developer kesulitan dalam pengumpulan kebutuhan dan user juga tidak dapat menggambarkan software yang diinginkannya, atau dimana user sering menambah dan mengubah apa yang diinginkannya. 

Untuk lebih memahami mengenai pembuatan suatu software dari segi harga dan SDM, saya mengambil studi kasus pembuatan layanan mobile banking milik salah satu bank terkemuka di Indonesia. Untuk biaya pembuatan software mobile banking tersebut, Secara garis besar, ada 3 hal pengeluaran biaya (project cost), yaitu hardware, software, dan service. Total ke 3 hal tersebut membutuhkan biaya ratusan hingga milyaran rupiah tergantung dari jumlah orang yang terlibat, gaji tiap pegawai, dan timeline dari proyek pembuatan software tersebut.
Terdapat 6 jobdesk di dalam proyek pembuatan software mobile banking tersebut. Dengan jumlah tim 100 – 200 orang tergantung kebijakan dari proyek. Ke-6 jobdesk dan tugas nya adalah sebagai berikut :

Project Manager :
1.      Memberikan saran dan panduan mengenai penerapan fungsional dan teknis sistem kepada Pelanggan
2.      Memberitahukan, membimbing dan mendukung proyek tim dalam pelaksanaan, penggunaan dan pemeliharaan sistem
3.      Membuat dokumentasi yang tepat mengenai desain, fungsi dan panduan sistem

Technical Lead (Developer) :
1.      Mengidentifikasi dan menyelesaikan masalah teknis dan memberikan alternatif solusi teknis kepada Tim
2.      Memimpin perancangan dan finalisasi dokumen desain teknis TI dan menandatangani nya
3.      Mengatur dan persiapkan dukungan yang dibutuhkan oleh tim untuk mendefinisikan, mengembangkan, menguji, memindahkan dan menyebarkan sistem

Developer :
1.      Mengembangkan dan menyesuaikan program dan antarmuka yang dibutuhkan oleh proyek.
2.      Mengidentifikasi dan melaporkan masalah segera ke Project Manager .
3.      Mempersiapkan, berpartisipasi atau memberikan masukan dan panduan mengenai kegiatan desain teknis.

QA Lead :
1.      Membuat dan menyimpan dokumentasi kontrol QA
2.      menguji ulasan, pengendalian mutu, dan laporan pengujian lainnya untuk akurasi, kelengkapan dan kepatuhan terhadap persyaratan.
3.      Berkolaborasi dengan perwakilan QA klien untuk memastikan kepuasan pelanggan terhadap produk dan layanan perusahaan

QA (Tester) :
1.      Bertanggung jawab dan mengembangkan Dokumentasi Sistem (Skenario Uji, Script Uji, Rencana Uji, Panduan Pengguna) berdasarkan Standar Pedoman Dokumentasi
2.      Menyelidiki keluhan pelanggan dan ketidaksesuaian produk
3.      Melaporkan adanya temuan dan berkoordinasi dengan Developer untuk perbaikan

Bussiness Analyst :
1.      Mendefinisikan, membuat, dan memelihara parameter sistem
2.      Terus-menerus memelihara dan memperbarui Dokumen Spesifikasi Fungsional sepanjang Siklus Hidup Proyek

3.      Melakukan dan memahami kebutuhan pengguna bisnis