Pengembangan Perangkat Lunak Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma
Tujuan Pembelajaran Memahami langkah-langkah agar dapat mengorganisir pengembangan perangkat lunak.
Materi Perkuliahan Sumber perangkat lunak aplikasi. Mengorganisir proyek pengembangan perangkat lunak. Merancang dan memprogram perangkat lunak. Mengukur produktivitas dalam pengembangan perangkat lunak. Memproduksi perangkat lunak berkualitas tinggi. Merencanakan proyek siklus hidup pengembangan perangkat lunak.
Pengembangan Perangkat Lunak Pengembangan perangkat lunak (Software development) adalah tahapan desain terinci atau detail dalam SDLC. Tim proyek sistem mencari paket perangkat lunak komersil yang sesuai atau mendukung perancangan sistem. Perangkat lunak yang dibuat sendiri dari awal (scratch).
Sumber Perangkat Lunak Aplikasi Perangkat Lunak Komersil dari Vendor Perangkat Lunak Pesanan (Customized Software) dikembangkan secara In-House
Perangkat Lunak Komersil dari Vendor Paket perangkat lunak aplikasi yang ada dapat diterapkan pada berbagai kebutuhan bisnis. Paket perangkat lunak aplikasi bersifat generik dan multifungsional serta tidak bervariasi.
Perangkat Lunak Komersil Keuntungan Perangkat Lunak Komersil : 1. Implementasi yang cepat 2. Penghematan biaya 3. Estimasi biaya dan waktu 4. Reliabilitas Kekurangan Perangkat Lunak Komersil : 1. Kesesuaian rancangan sistem yang tidak baik 2. Ketergantungan vendor 3. Biaya tidak langsung dari kerusakan SDLC
Permohonan Proposal Berorientasi Kinerja Request For Proposal (RFP) digunakan untuk menyeleksi vendor dan paket perangkat lunak komersil yang tepat serta sesuai. Faktor evaluasi mencakup pemenuhan spesifikasi rancangan detail untuk output, input, proses, database, waktu dan biaya serta benchmark (prototyping) pada setiap paket dari vendor.
Penilaian Paket Vendor Benchmark Kinerja pengoperasian (Operating performance) Dokumentasi Mudah dipelajari Mudah digunakan Pengendalian dan penanganan kesalahan Dukungan (Support)
Menyeleksi Paket Vendor Paket software dari vendor yang menawarkan manfaat besar dan biaya murah. Bobot relatif ditentukan dari penilaian setiap faktor kinerja umum dengan total 100.
Contoh Penilaian Kinerja Umum Faktor Kinerja Umum Bobot Vendor A Vendor B Nilai Nilai Penilaian vendor 10 6 8 Kinerja pengoperasian 20 7 8 Dokumentasi 10 8 9 Kemudahan belajar 20 7 6 Kemudahan pemakaian 10 5 6 Kendali dan penanganan kesalahan 20 4 6 Dukungan 10 7 8 Biaya atau harga paket vendor A adalah $22.700 Biaya atau harga paket vendor B adalah $27.690 Berapa skor masing-masing vendor? Paket mana yang dipilih?
X Faktor Kinerja Umum Bobot Vendor A Vendor B Nilai Skor Nilai Skor Penilaian vendor 10 6 60 8 80 Kinerja pengoperasian 20 7 140 8 160 Dokumentasi 10 8 80 9 90 Kemudahan belajar 20 7 140 + 6 120 Kemudahan pemakaian 10 5 50 6 60 Kendali dan penanganan kesalahan 20 4 80 6 120 Dukungan 10 7 70 8 80 Total 100 620 710
/ Biaya total Angka Penilaian Total Vendor Biaya per angka penilaian Vendor A $ 22.700 620 $ 37 Vendor B $ 27.690 710 $ 39
Soal Penilaian Kinerja Vendor Faktor Kinerja Umum Bobot Vendor A Vendor B Vendor C Nilai Nilai Nilai Penilaian vendor 20 25 8 5 Kinerja pengoperasian 25 23 12 15 Dokumentasi 10 10 19 24 Kemudahan belajar 15 15 22 15 Kemudahan pemakaian 5 35 13 10 Kendali dan penanganan kesalahan 15 20 16 8 Dukungan 10 8 17 7 Biaya atau harga paket vendor A adalah Rp. 520.000 Biaya atau harga paket vendor B adalah Rp. 320.000 Biaya atau harga paket vendor C adalah Rp. 420.000 Nilai skor masing-masing vendor? Paket mana yang dipilih?
Perangkat Lunak Pesanan (Customized Software)/In-House Paket perangkat lunak yang tidak didukung oleh paket software yang ada. Paket perangkat lunak yang memesan sendiri dari perusahaan jasa/kontraktor independen atau membangun sendiri perangkat lunak (in-house) sesuai dengan rancangan sistem. Paket perangkat lunak yang dibangun mengikuti tahapan SWDLC (Design, Code, Test).
Mengorganisasi Proyek Pengembangan Perangkat Lunak Tim proyek pengembangan perangkat lunak : perancangan dan analisis sistem. Pendekatan Organisasional 1. Tim Pengembangan Program (Program Development Team) 2. Tim Programmer Kepala (Chief Programmer Team) 3. Tim Pemrograman Bersama (Egoles Programming Team)
Tim Pengembangan Program (Program Development Team) Tim pengembangan program dikelola oleh manajer tim atau seseorang yang terlibat dalam SDLC dari awal. Tim pengembangan program didukung oleh perancang, pengkode dan penguji dengan aturan 40-20-40 (2-1-2).
Tim Programmer Kepala (Chief Programmer Team) Tim programmer kepala dibentuk dari programmer kepala atau senior yang memiliki banyak pengalaman dan pengetahuan pemrograman. Programmer kepala didukung oleh asisten utama yang bertugas sebagai komunikator pada tim atau sebagai penyampai informasi dari programmer kepala.
Tim Pemrograman Bersama (Egoless programming Team) Tim yang terbentuk dari seluruh rekan yang bersamasama bertanggung jawab atas pengembangan perangkat lunak tanpa supervisi langsung/pimpinan.
Perbedaan Pendekatan Tiga Tim Tim pengembangan program mengembangkan dengan aturan 40-20-40 dengan menekankan pada perancangan dan pengujian. Tim programmer kepala dan team pemrograman bersama menekankan pada fungsi pengkodean.
Jumlah Interface dan Lintasan Komunikasi Tim Pengembangan Program Total interface dan lintasan komunikasi ada 5 dan 1 interface manajemen.
Jumlah Interface dan Lintasan Komunikasi Team Programmer Kepala
Jumlah Interface dan Lintasan Komunikasi Team Pemrogram Bersama Jumlah interface dan lintasan komunikasi = n(n-1)/2
Mengukur Produktivitas Dalam Pengembangan Perangkat Lunak Mengukur Produktivitas : Input yang dikonsumsi dapat diukur, sedangkan output yang dihasilkan tidak mudah diukur. Mengukur output pengembangan perangkat lunak dengan menggunakan teknik metrik. Metrik yang digunakan adalah : 1. Jalur Kode yang bisa dieksekusi (Line Of Executable Code atau LOEC) 2. Titik Fungsi (Function Point)
Jalur Kode yang bisa Dieksekusi (LOEC) Metrik LOEC bercakup pada pengkodean. Keuntungan menggunakan metrik LOEC sebagai ukuran produktivitas output perangkat lunak : 1. Mudah ditetapkan dan dibahas secara jelas. 2. Diakui secara luas. 3. Mudah diukur. 4. Mudah digunakan untuk estimasi.
Contoh LOEC Program yang diusulkan berisi 100K LOEC. Jika 2K LOEC dihasilkan satu orang per bulan. Inputan yang diperlukan untuk mendukung satu orang per bulan sebesar $ 9.000. Maka : 1. Berapa orang dibutuhkan untuk menyelesaikan proyek tersebut? 2. Biaya yang dikeluarkan untuk menyelesaikan proyek tersebut?
Jawab : Maka untuk menyelesaikan proyek tersebut diperlukan 50 orang perbulan dengan membutuhkan biaya sebesar $450.000
Metrik Titik Fungsi (Function Point) Metrik titik fungsi dirancang untuk mengatasi kelemahan metrik LOEC. Lima fungsi yang dianalisis untuk diukur profesional sistem adalah : 1. Jumlah input 2. Jumlah output 3. Jumlah inquery yang diminta oleh end user 4. Jumlah file logic yang diakses dan digunakan 5. Jumlah interface ke aplikasi lain
Metrik Titik Fungsi (Function Point) Metrik titik fungsi mengukur yang diberikan oleh tim pengembang perangkat lunak kepada end user. Metrik mencakup perancangan, pengkodean dan pengujian. Metrik mengukur efisiensi dan efektifitas. Keuntungan metrik titik fungsi adalah : 1. Mengukur produktivitas perangkat lunak menggunakan cara seragam tanpa memandang bahasa yang digunakan. 2. Mengukur efisiensi dan efektivitas. Efisiensi : sumber yang dikonsumsi, efektivitas : kualitas program.
Contoh Menghitung Titik Fungsi Titik Fungsi Tingkat Kompleksitas Rendah Sedang Tinggi Input 12 3 12 Output 10 15 14 Inquery 10 16 17 File 9 20 10 Interface 12 20 20 Derajat kompleksitas : 1. Rendah untuk Input = 2, Output dan Inquery = 3, File dan Interface = 4 2. Sedang untuk Input dan Output = 5, Inquery dan Interface = 6, File = 7 3. Tinggi untuk Input dan Inquery = 8. Output = 9, File dan Interface = 10
Pertanyaan : Jumlah total titik fungsi? Tingkat produktivitas pengembangan? Jika jumlah person-month = 8 titik fungsi Biaya satu person-month? Jika satu person-month mengkonsumsi $10.000 Biaya yang dihemat? Jika biaya per person-month meningkat menjadi $12.000 dan jumlah person-month meningkat menjadi 62 titik fungsi per person-month.
Titik Fungsi Tingkat Kompleksitas Total Rendah Sedang Tinggi Input 12 x 2 = 24 3 x 5 = 15 12 x 8 = 96 135 Output 10 x 3 = 30 15 x 5 = 75 14 x 9 = 126 231 Inquery 10 x 3 = 30 16 x 6 = 96 17 x 8 = 136 262 File 9 x 4 = 36 20 x 7 = 140 10 x 10 = 100 276 Interface 12 x 4 = 48 20 x 6 = 120 20 x 10 = 200 368 Total Titik Fungsi 1272 + +
Jumlah total titik fungsi = 1272 Jumlah person-month = 8 titik fungsi (dari soal) Jika satu person-month mengkonsumsi $10.000 maka biaya proyek = $10.000 x 159 = $1.590.000
Jika biaya per person-month meningkat dari $10.000 menjadi $12.000 Jumlah person-month meningkat menjadi 62 titik fungsi per person-month. Jika satu person-month mengkonsumsi $12.000 maka biaya proyek = $246.000 ($12.000 x 20,5) Penghematan biaya = $1.344.000 ($1.590.000 - $ 246.000)
Contoh Soal Titik Fungsi Titik Fungsi Tingkat Kompleksitas Tinggi Sedang Rendah Input 35 25 25 Output 25 15 15 Inquery 30 10 10 File 10 10 25 Interface 20 25 30 Derajat Kompleksitas : (Rendah=1), (Sedang=5), (Tinggi=10) Jumlah total titik fungsi? Tingkat produktivitas pengembangan? Jika jumlah personmonth = 10 titik fungsi Biaya satu person-month? Jika satu person-month mengkonsumsi Rp. 2.500
Jika dilakukan instalasi teknologi CASE sehingga mengadopsi CASE dengan biaya per person-month meningkat 10% dari titik fungsi dan diikuti dengan tingkat produktifitas pengembangan yang meningkat sebesar 20%. Maka biaya yang dapat dihemat dari peningkatan CASE?
Memproduksi Perangkat Lunak Berkualitas Tinggi Menghasilkan perangkat lunak berkualitas tinggi pada tingkat produktivitas tinggi. Dimensi untuk Mengukur Kualitas Perangkat Lunak 1. Faktor kinerja (sudut pandang end user) 2. Faktor disain 3. Faktor strategik
Jamian Kualitas (Quality Assurance atau QA) : pemonitoran terus menerus terhadap tahapan pengembangan sistem dan PL. Teknik pencegahan kesalahan. Pengendali Kualitas (Quality Control) : berfokus pada produk mengenai apa yang dihasilkan, evaluasi sistem dan PL setelah dikembangkan. Teknik penghapusan kesalahan. Tugas QA : 1. Menentapkan standar pengembangan sistem dan PL 2. Mengevaluasi laporan terdokumentasi 3. Menjalankan tahapan pemeriksaan rancangan sistem dan PL 4. Melakukan tahapan pemeriksaan pengkodean 5. Menjalankan pengujian
Merencanakan Proyek Siklus Hidup Pengembangan Perangkat Lunak (SWDLC) Manajer proyek menjadwal dan memonitor semua tugas untuk menyelesaikan SWDLC dengan teknik tinjauan dan evaluasi program PERT (Program Evaluation Review and Technic) PERT digunakan untuk menentukan rangkaian atau urutan pelaksanaan tugas pengembangan perangkat lunak untuk mengestimasi lamanya waktu yang diperlukan dari awal sampai selesainya pelaksanaan tugas. Jalur kritis (critical path) adalah lamanya proyek yang terdiri atas serangkaian tugas yang dijalankan secara urut.
Contoh Perencanaan PERT Node Aktivitas Aktivitas Pendahulu Durasi 0,1 A - 4 0,2 B - 8 0,3 C - 7 1,4 D A 15 2,4 E B 6 2,5 F B 12 3,6 G C 9 6,7 H G,L 11 4,8 I D,E 3 5,8 J F 10 7,8 K H 5 5,6 L (dummy) F 0
Bentuk Diagram PERT Dengan ketentuan (Aktivitas,Lama Kegiatan) masingmasing adalah : (A,4) ; (B,8) ; (C,7) ; (D,15) ; (E,6) ; (F,12) ; (G,9) ; (H,11) ; (I,3) ; (J,10) ; (K,5) ; (L,0)
Pertanyaan Dengan menggunakan metode Forward Pass berapakan nilai Early Start (ES) untuk simpul kejadian 6? Dengan menggunakan metode Backward Pass berapakan nilai Latest Finish (LF) untuk simpul kejadian 2? Jalur mana yang merupakan Jalur Kritis? Berapa Jalur Kritis dari diagram PERT tersebut?
Contoh Pemanfaatan PERT Dengan ketentuan (Kejadian, Waktu Estimasi) masingmasing adalah : (A,10) ; (B,8) ; (C,12) ; (D,22) ; (E,27) ; (F,7) ; (G,15) ; (H,8) ; (I,20) ; (J,15)
Pertanyaan Dengan menggunakan metode Forward Pass berapakan nilai Early Start (ES) untuk simpul kejadian 5? Dengan menggunakan metode Backward Pass berapakan nilai Latest Finish (LF) untuk simpul kejadian 5? Jalur mana yang merupakan Jalur Kritis? Berapa Jalur Kritis dari diagram PERT tersebut?