19/11/2012
Contoh WBS
Manajemen Proyek Minggu 4 Danny Kriestanto, S.Kom., M.Eng
Contoh WBS
Contoh WBS
Lines of Codes
Lines of Codes
• Mengestimasi dengan menghitung semua instruksi source-code dengan mengabaikan komentar dan baris kosong (misalnya dengan menghitung banyaknya perintah yang diakhiri dengan tanda semicolon) • LoC dapat dengan lebih mudah dikerjakan jika sebuah proyek dapat dipecah dalam bentuk WBS dalam tingkatan paling rendah
• Taksiran dalam bentuk:
• Nilai Optimis (NO) • Nilai Realistis (NR) • Nilai Pesimistis (NP) • (NO + (4 X NR) + NP) / 6 = Jumlah baris kode
1
19/11/2012
Contoh
Petunjuk
• Contoh: Diberikan obyek window yang didekati dengan WBS. Obyek ini diperkirakan antara 250 hingga 500 baris kode dengan keyakinan mendekati 350.
• Pastikan bahwa tiap-tiap " baris kode program" yang terhitung berisi hanya satu statemen program ( jika dua statemen yang executable berada pada satu baris, yang dipisahkan oleh suatu titik koma, maka dihitung menjadi dua; • jika satu statemen yang executable ada atau tersebar ke dua / beberapa baris, maka dihitung satu. Bahasa pemrograman menyediakan pilihan pengkodean untuk bermacam-macam keperluan, tetapi biasanya tetap mudah untuk menentukan satu statemen tunggal yang executable karena compiler atau interpreter melakukan hal yang sama.
=> (250 + (4 X 350) + 500)/6 = 358 LoC = 0,358 KLoC
Petunjuk
Petunjuk
• Hitung semua setoran , termasuk statemen-statemen yang executable - pemakai akhir tidak akan secara langsung menggunakan setiap statemen, tapi suatu produk bisa memerlukannya sebagai pendukungnya (seperti utilitas) • Menghitung definisi data sekali saja • Jangan menghitung baris yang mengandung komentar • jangan menghitung kode debug atau kode yang bersifat temporer lainnya seperti perangkat lunak pengujian, kasus uji, peranti bantu pengembangan, peranti bantu prototipe, dan seterusnya
• Hitung tiap-tiap definisi permintaaan, pemanggilan, atau pemasukan ( kadang-kadang disebut compiler directive) dari suatu makro sebagai bagian dari program yang memakainya ( jangan menghitung statemen program yang dipakai ulang)
Lines of Codes Index Converter
Lines of Codes Index Converter
Bahasa Basic Assembler Autocoder
Basic Assembler SLOC (Level) 1 1
Rerata SLOC per Function Point 320 320
• Terjemahkan banyaknya baris dari kode program ke baris bahasa asembler padanannya sedemikian sehingga mungkin dapat dibuat perbandingannya terhadap proyek-proyek lain
Mixed Languages(default)
3
105
Pascal
3.5
91
COBOL (ANSI 85)
3.5
91
4
80
MODULA-2
4.5
80
PL/ I
4.5
80
4
80
RPG
Macro Assembler
1.5
213
C
2.5
128 – 150
DOS Batch Files
2.5
128
FORTRAN 95
4.5
71
3
107
BASIC (ANSI)
5
64
107
FORTH
5
64
LISP
5
64
Basic LOTUS Macro
3
Concurrent PASCAL
ALGOL
3
105 -106
5
64
COBOL
3
105 – 107
LOGO
5.5
58
FORTRAN
3
105 – 106
Ext Common LISP
5.75
56
JOVIAL
3
105 – 107
PROLOG
2
19/11/2012
Lines of Codes Index Converter RPG III
Lines of Codes Index Converter
5.75
56
C++
6
53
FOXPRO 2.5
9.5
34
JAVA
6
53
APL
10
32
6
53
SAS
10
32
6.5
49
DELPHI
11
29
CICS
7
46
Object-oriented default
11
29
SIMULA
7
46
OBJECTIVE-C
12
27
Database Language
8
40
Oracle Developer / 2000
14
23
CLIPPER DB dan Dbase III
8
40
SMALLTALK
15
21
INFORMIX
8
40
Awk
15
21
ORACLE dan SYBASE
8
40
EIFFEL
15
21
8.5
38
UNIX shell Script (PERL)
15
21
4th Generation Default
16
20
YACC Ada 95
Access Dbase IV
9
36
FileMaker Pro
9
36
9
35
Decision
Support
Languages
Lines of Codes Index Converter
Petunjuk
Aplication Builder
16
20
COBRA
16
20
Crystal Reports
16
20
Datatrieve
16
CLIPPER
17
19
SQL
25
13 – 16
HTML 3.0
22
15
IEF / IEW
23
14
EASYTRIEVE+
25
13
SQL (ANSI)
25
13
EXCELL
50
6
QUATRO PRO
51
6
Graphic Icon Languages
75
4
• Setiap konversi dari satu bahasa pemrograman ke bahasa pemrograman lain harus dilakukan dengan konversi ke Bahasa Assembler terlebih dahulu
20
Kelebihan LoC
Kelemahan LoC
• Umum digunakan
• Kesulitan menaksir perangkat lunak baru
• Memungkinkan adanya perbandingan matriks ukuran dan produktivitas antar kelompok pengembang
• Instruksi program berbeda menurut jenis bahasa pemrograman, metode desain, dan gaya serta kemampuan programmer
• Berhubungan langsung dengan produk akhir • Mudah diukur
• Tidak adanya standarisasi organisasi, seperti ISO
• Mengukur perangkat lunak dari sudut pandang pengembang
• Melibatkan banyak biaya yang mungkin tidak dipertimbangkan (spt biaya kebutuhan spesifikasi, dan dokumen pemakai yang tidak termasuk dalam pengkodean)
• Ukuran perkiraan dapat dengan mudah dibandingkan dengan ukuran riil
3
19/11/2012
Kelemahan LoC • Programmer sangat mungkin menerima bayaran lebih untuk baris kode yang banyak, sebaliknya desainer sangat menerima bayaran yang kecil. • Perhitungan LoC seharusnya membedakan kode yang dihasilkan dengan kode yang berdasarkan fungsinya, bukannya menghitung langsung banyaknya baris kode.
Function POINT • Dibuat untuk mengatasi kelemahan-kelemahan LoC • Pertama kali dicetuskan oleh A.J. Albrecht pada tahun 1970 • Distandarisasi oleh IFPUG • Pada tahun 1987 digunakan oleh pemerintah Inggris dan pelatihannya dilakukan tahun 1994 untuk versi 4.0.
• LoC tidak dapat digunakan apabila platform atau bahasa pemrograman dibedakan. • Hanya ada dua cara membedakan jumlah LoC untuk perangkat lunak baru: 1. menganalogikan dengan perangkat lunak yang telah ada. 2. Meminta opini pakar
Prinsip FP • Melengkapi unit standar dari pengukuran • Berdasarkan pada pandangan eksternal pemakai terhadap sistem • Pengukuran kerja produktif bersama dengan pengukuran usaha kerja akan menghasilkan pengukuran produktivitas • Model estimasi yang mendasarkan pengukuran function-point untuk produktivitas • Tujuannya adalah membangun pengukuran relatif dari nilai fungsi hasil yang akan diserahkan, terlepas dari teknologi atau pendekatan yang digunakan
Langkah-Langkah 1. 2. 3. 4. 5. 6.
Kumpulkan dokumen dari sudut pandang user Klasifikasikan ke dalam 5 tipe fungsi Siapkan lembar kerja untuk masing-masing fungsi Gunakan faktor pembobotan untuk setiap fungsi Jumlahkan ke dalam function Count (FC) Gunakan nilai dari 0-5 untuk masing-masing dari 14 karakteristik (N) 7. Jumlahkan ke dalam Processing Complexity (CF) 8. Hitung AFP = FP x CF 9. Konversikan ke LOC
Prinsip FP • Secara umum pendekatan dilakukan berdasar perhitungan (bobot yang merefleksikan nilai tipe fungsi ) dari • External input (data screen, ligt-pen, switch, transaksi dari aplikasi lain) • External output (screen report, terminal report, screen message, transaksi untuk aplikasi lain) • Logical internal file (Data base, user table, message table, logical internal table) • File atau struktur data • External interface file (share data base, logical internal file yang dapat diakses dari / ke aplikasi lain) • External inquiry (user inquiry tanpa update file, help message and screen, pemilihan menu screen)
Petunjuk Menghitung FP (1) 1. Hitung Jumlah fungsi untuk tiap kategori 2. Terapkan faktor Pembobotan 3. Terapkan faktor lingkungan 4. Kalkulasi kompleksitas 5. Hitung FP
6. Konversi
4
19/11/2012
3. Terapkan Faktor Lingkungan
Rating (0,1,2,3,4,5)
Komunikasi Data
Petunjuk Menghitung FP (2)
Pemrosesan terdistribusi Kebutuhan Performansi Batasan Konfigurasi
Tabel Lembar Kerja Worksheet
Rating Transaksi Online Inquiry dan / atau Entry Efisiensi pemakai akhir
Langkah 1. Menghitung Jumlah Fungsi dalam tiap-tiap kategori
Online update
Langkah 2. Menerapkan faktor pembobotan kompleksitas
Pemrosesan Kompleks
Function Point
Reusability
Sederhana
Menengah
Kompleks
Jumlah Output
____ x 4
____ x 5
____ x 7
Digunakan dibeberapa site
Jumlah Input
____ x 3
____ x 4
____ x 6
Potensial terhadap perubahan fungsi
Jumlah Inquiry Output
____ x 4
____ x 5
____ x 7
Kemudahan konversi / Install Kemudahan Operasi
Total (N) :
Langkah 4. Kalkulasi Faktor Kompleksitas (CF) CF = 0.65 + (0.01 x N) =
Jumlah Inquiry Input
____ x 3
____ x 4
____ x 6
Jumlah File
____ x 7
____ x 10
____ x 15
Jumlah Interface
____ x 5
____ x 7
Langkah 5. Menghitung Kesesuaian Function Point (AFP) AFP = FP x CF Langkah 6. Konversi ke LOC (Optional) LOC = AFP x LOC/AFP
____ x 10 Total Function Point :
Petunjuk Menghitung FP (4)
Petunjuk Menghitung FP (4)
• External Output adalah berbagai hal yang diproduksi oleh perangkat lunak (data screen, data report, pesan kesalahan, dst)
• External Input adalah sesuatu yang diterima perangkat lunak dari luar sistem
• Output adalah unit informasi yang dihasilkan perangkat lunak kepada pemakai
• Input merupakan unit informasi yang diberikan pemakai untuk sistem
Merujuk 1-5 Data Merujuk 1-5 Data
Merujuk
6-19 Merujuk lebih dari 20
Data
data
Merujuk 0 – 1 File
Sederhana (4)
Sederhana (4)
Menengah (5)
Merujuk 2 atau 3 File
Sederhana (4)
Menengah (5)
Kompleks (7)
Merujuk 4 atau lebih File
Menengah (5)
Kompleks (7)
Kompleks(7)
Petunjuk Menghitung FP (5) • External Inquiry adalah instruksi khusus agar perangkat lunak merespon, membentuk, menurunkan sesuatu akibat masukan yang diberikan. (contoh sederhananya: button untuk proses) • Inquiry mengakses langsung ke database, namun bukan merupakan query.
Merujuk
6-19 Merujuk lebih dari 20
Data
data
Merujuk 0 – 1 File
Sederhana (3)
Sederhana (3)
Menengah (4)
Merujuk 2 atau 3 File
Sederhana (3)
Menengah (4)
Kompleks (6)
Merujuk 4 atau lebih File
Menengah (4)
Kompleks (6)
Kompleks(6)
Petunjuk Menghitung FP (6) Bagian Output (Catatan: Pilih Merujuk 1-5 Data
Merujuk 6-19 Data
Nilai Tertinggi : Output atau
Merujuk lebih dari 20 data
Input
Merujuk 0 – 1 File
Sederhana (4)
Sederhana (4)
Menengah (5)
Merujuk 2 atau 3 File
Sederhana (4)
Menengah (5)
Kompleks (7)
Merujuk 4 atau lebih File
Menengah (5)
Kompleks (7)
Kompleks(7)
Merujuk 6-19 Data
Merujuk lebih dari 20
Bagian Input (Catatan: Pilih Merujuk 1-5 Data Nilai Tertinggi : Output atau
data
Input) Merujuk 0 – 1 File
Sederhana (3)
Sederhana (3)
Menengah (4)
Merujuk 2 atau 3 File
Sederhana (3)
Menengah (4)
Kompleks (6)
Merujuk 4 atau lebih File
Menengah (4)
Kompleks (6)
Kompleks(6)
5
19/11/2012
Cara Menghitung FP (7)
Cara Menghitung FP (8)
• Menghitung Struktur data: • Hal-hal yang harus diingat ketika menghitung struktur data / File meliputi :
Catatan: Hitung File dan Merujuk
• File internal adalah File yang secara logik berada dalam program (mudahnya: jumlah tabel dari sebuah skema) • Struktur data dikenal sebagai “file” adalah kelompok data user utama yang secara permanen disimpan dalam lingkungan sisitem perangkat lunak • Struktur data dijangkau pemakai melalui input, output, inquiry, atau interface
Faktor Pembobotan Analisis File pada Function Point 1-19 Merujuk
Relasi secara logik bukan tipe Item Data
20-50 Merujuk lebih dari
Item Data
50 Item Data
Relasi / Format 1 record lojik Sederhana (7)
Sederhana (7)
Menengah (10)
Relasi / Format 2-5 record Sederhana (7)
Menengah (10)
Kompleks (15)
Kompleks (15)
Kompleks(15)
record secara fisik
lojik 6 atau lebih record lojik
Cara Menghitung FP (9) • Ketika menghitung interface, beberapa hal yang harus diingat adalah : • File eksternal adalah file turunan mesin yang digunakan program • Interface adalah data (dan kontrol) yang disimpan diluar lingkungan perangkat lunak sistem yang dievaluasi • Pada tipe program menggunakan client/server, ‘konektor’ antara program dan database adalah sebuah interface.
• Struktur data bersama diantara sistem-sistem dihitung sebagai interface dan juga struktur data • Hitung tiap-tiap data dan aliran kontrol menurut arahnya sebagai interface unik
Cara Menghitung FP (10) Faktor Pembobotan Analisis Interface pada Function Point Catatan: secara
Jumlah logik
Relasi Merujuk
bukan
• Faktor Lingkungan Faktor lingkungan
Rating (0,1,2,3,4,5)
Komunikasi data
Informasi data atau kendali dikirim atau diterima melalui fasilitas komunikasi data. Sistem online dipengaruhi oleh komunikasi data.
1-19 Merujuk
tipe Item Data
20-50 Merujuk lebih dari
Item Data
50 Item Data
Relasi / Format 1 record lojik Sederhana (5)
Sederhana (5)
Menengah (7)
Relasi / Format 2-5 record Sederhana (5)
Menengah (7)
Kompleks (10)
Kompleks (10)
Kompleks(10)
record secara fisik
lojik 6 atau lebih record lojik
Cara Menghitung FP (11)
Menengah (10)
Menengah (7)
Cara Menghitung FP (12) Online Inquiry dan/ atau Entry
Terlalu Interaktif
Efisiensi pemakai akhir
Pertimbangan faktor manusia perlu ditambahkan
Online Update
Update database dinamis, database terdistribusi
Pemrosesan kompleks
keamanan yang tinggi, proses transaksi yang berat, algoritma yang kompleks, interupsi logika kendali
Pemrosesan Terdistribusi
Aplikasi menggunakan data yang disimpan, diakses atau diproses
Reusability
Kode yang didesain untuk dapat dipakai ulang harus berkualitas tinggi
Kemudahan Konversi / install
Konversi dan instalasi memerlukan dokumen perencanaan yang telah diuji
Kemudahan operasi
Efektif tetapi tetap mudah untuk melakukan prosedur start, backup, error
pada suatu storage lain atau memproses sistem lain selain dari sistem yang digunakan pada sistem utama tersebut. Kebutuhan Performansi
permintaan user yang telah disetujui dibuat dengan throughput luar biasa tinggi atau memiliki respon waktu yang cepat
Batasan Konfigurasi Rating Transaksi
recovery dan shutdown. Aktifitas manual dibuat minimal
Aplikasi akan dijalankan pada konfigurasi yang ketat,berat atau padat
Digunakan dibeberapa site
Trafik jaringan tinggi, layar penuh dengan informasi dan grafik,
Potensial terhadap perubahan fungsi Bersifat modular, table-driven, user-maintened, kapabilitas query fleksibel,
frekuensi transmisi layar tinggi
Account meliputi fungsi bisnis yang berbeda-beda
dan seterusnya
6
19/11/2012
Cara Menghitung FP (13) • Tabel perbandingan dengan sistem skor tinggi
Cara Menghitung FP (14) Rating Transaksi yang tinggi
Suatu program bank yang harus membentuk jutaan transaksi semalaman untuk menyeimbangkan semua saldo sebelum hari esok
Faktor Lingkungan
Contoh sistem dengan Skor tinggi
Komunikasi data kompleks
Suatu program pada bank multinasional yang harus menangani
Entry data online
Persetujuan program penggadaian dimana para juru ketik memasukkan data secara interaktif ke sistem komputer dari lembar aplikasi yang diisi oleh pemilik
transfer uang elektronis dari suatu institusi ke seluruh dunia
barang
Pemrosesan Terdistribusi
Sebuah mesin pencarian web dimana pemrosesan dibentuk oleh
Desain User-friendly
lebih dari selusin server yang bekerja sebagai tandem
Perangkat lunak anjungan komputer dengan layar sentuh dimana konsumen pada suatu stasiun kereta api dapat membeli karcis menggunakan kartu kredit mereka
Sasaran Performansi tinggi
Sebuah sistem kendali trafik udara yang harus menyediakan keakuratan posisi pesawt dari radar data tiap saat dan terus menerus
Update Data online
Sistem perusahaan penerbangan di mana agen perjalanan dapat membooking penerbangan dan memilih
tempat duduk. Perangkat lunak harus mampu
mengunci dan kemudian memodifikasi arsip tertentu di database untuk
Penggunaan konfigurasi yang Sebuah sistem universitas dimana ratusan siswa registrasi untuk berat
memastikan bahwa tempat duduk yang sama tidak dijual dua kali
suatu kelas secara bersamaan
Cara Menghitung FP (15) Pemrosesan Kompleks
Perangkat lunak medis yang mencek berbagai gejala dan membuat
Cara Menghitung FP (16) Banyak site
keputusan logis untuk sampai pada suatu diagnosa awal
perangkat lunak pembayaran gaji untuk suatu korporasi perusahaan
multinasional yang harus mempertimbangkan karakteristik yang berbeda dari berbagai negara-negara, termasuk pajak pendapatan
Reusability
suatu pengolah pekerjaan yang harus dirancang sedemikian sehingga menu toolbarsnya dapat disatukan ke dalam aplikasi yang lain, seperti spreadsheet atau pembangkit laporan
dan mata uang Fleksibilitas
suatu program peramalan keuangan yang dilakukan secara bulanan, triwulanan, atau proyeksi tahunan dengan kualitas sama persis dengan manajer bisnis tertentu yang mungkin memerlukan informasi
Kemudahan Instalasi
suatu aplikasi peralatan pengendali yang akan menginstal peralatan
yang dipecah berdasarkan lini produk dan daerah geografis
minyak lepas pantai Kemudahan operasional
suatu program untuk meneliti angka-angka yang sangat besar dari historis arsip keuangan yang harus memproses informasi dengan cara
meminimkan langkah dimana operator komputer harus membaca dan menulis lagi pada file lain untuk memuat data tersebut
Cara Menghitung FP (17) • Kalkulasi Faktor Kompleksitas • Gunakan rumus berikut:
CF = 0.65 + (0.01 x N) • Dimana N adalah pembobotan faktor lingkungan
• Untuk rumus LOC = AFP x LOC/AFP, dapat digunakan tabel pada halaman 11-15, dengan ketentuan: konversi menggunakan kolom paling kanan.
7