estimasi perangkat lunak

32
Estimasi Perangkat Lunak Software Measurement [email protected]

Upload: nur-ichsan

Post on 04-Dec-2015

47 views

Category:

Documents


5 download

DESCRIPTION

Estimasi Perangkat Lunak menggunakan Function Points dan juga Class Points...

TRANSCRIPT

Page 1: Estimasi Perangkat Lunak

Estimasi Perangkat LunakSoftware Measurement

[email protected]

Page 2: Estimasi Perangkat Lunak

Estimasi

• Dalam proyek pengembangan perangkat lunak, adalah hal yang penting untuk mencari satuan yang dapat merepresentasikan ukurandari software yang akan dibuat.

“If you can’t measure it,

you can’t manage it”

Tom DeMarco, 1982

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 2

Page 3: Estimasi Perangkat Lunak

Apa yang diestimasi?

• Measure the efficacy of processes. What works, what doesn't.Process

• Assess the status of projects. Track risk. Identify problem areas. Adjust work flow.Project

• Measure predefined product attributes (generally related to ISO9126 Software Characteristics)Product

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 3

Page 4: Estimasi Perangkat Lunak

Proses Estimasi Secara Umum

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 4

Page 5: Estimasi Perangkat Lunak

Model Estimasi

• Function Point,

• Use Case Point,

• ………..

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 5

Page 6: Estimasi Perangkat Lunak

Function Points

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 6

Page 7: Estimasi Perangkat Lunak

Sejarah

Function Point diperkenalkan pertama kali oleh Allan J. Albrecht di pertengahan tahun 1970-an.

Pada tahun 1984 Albrecht melakukan menyempurnakan metode Function Point.

Induk organisasinya adalah Function Point Internasional User Group (IFPUG).

Function Point telah digunakan dalam pengembangan perangkat lunak lebih dari 40 tahun sebagai standar model estimasi perangkat lunak.

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 7

Page 8: Estimasi Perangkat Lunak

Contoh Kasus:

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 8

Page 9: Estimasi Perangkat Lunak

Langkah-Langkah Estimasi

Stage 1:• Hitung Crude Function Points (CFP).

Stage 2:

• Hitung Relative Complexity Adjustment Factor (RCAF) project. Nilai RCAF bervariasi antara 0-5.

Stage 3:

• Hitung nilai Function Points (FP):

• FP = CFP x (0.65 + 0.01 x RCAF)

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 9

Page 10: Estimasi Perangkat Lunak

External inputs

• Berkaitan dengan interface yang digunakan user untuk memasukkandata pada aplikasi

• Tidak termasuk input untuk online queries.

External outputs

• Berkaitan dengan luaran/output yang dihasilkan, seperti laporan, list, customer invoice, pesankesalahan, ataupun detail padalayar.

• Tidak termasuk hasil online queries.

External enqueries

• Luaran pencarian/queries padadata tersimpan

Internal/logical files

• Sekumpulan file/table sebagaipenyimpan data atau database relational

External interfaces

• computer–readable output/inputs melalui jalur komunikasi, contohnya: aplikasi parkir denganRFID memerlukan RFID receiver, aplikasi kasir dengan barcode scanner, dll.

Stage 1:• Hitung Crude Function Points (CFP).

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 10

Page 11: Estimasi Perangkat Lunak

Stage 1:• Hitung Crude Function Points (CFP).

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 11

Page 12: Estimasi Perangkat Lunak

Jumlah external input – 2

Jumlah external output – 3

Jumlah online queries – 3

Jumlah logical files – 2

Jumlah external interfaces – 2.

Stage 1:• Hitung Crude Function Points (CFP).

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 12

Page 13: Estimasi Perangkat Lunak

Stage 1:• Hitung Crude Function Points (CFP).

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 13

Page 14: Estimasi Perangkat Lunak

• Not present or No influence0

• Insignificant influence1

• Moderate influence2

• Average influence3

• Significant influence4

• Strong influence throughout5

Stage 2:

• Hitung Relative Complexity Adjustment Factor (RCAF) project. Dengan skala 0-5

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 14

Page 15: Estimasi Perangkat Lunak

Stage 2:

• Hitung Relative Complexity Adjustment Factor (RCAF) project. Dengan skala 0-5

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 15

Page 16: Estimasi Perangkat Lunak

• FP = 81 x (0.65 + 0.01 x 41)

= 85.86

Jika, project dibangun menggunakan Bahasa Pemrograman Visual Basic, maka estimasi

Kilo Line Of Code (KLOC) = (85.86 * 32) / 1000 = 2.748 KLOC.

* 0.65 dan 0.01 ketetapan dari IFPUG

Stage 3:

• Hitung nilai Function Points (FP):

• FP = CFP x (0.65 + 0.01 x RCAF)

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 16

Page 17: Estimasi Perangkat Lunak

Jika Model Project yang dikerjakan adalah Sistem Informasi, maka:

• Estimasi biaya pengembangan perangkat lunak adalah

Rp. 150.000 * 85.86 = Rp. 12.879.000,-

• Estimasi waktu pengembangan adalah1 jam * 85.86 = 85.86 jam ~ 11/2 hari = 5.5 hari ~ 6 hari

* asumsi waktu kerja 8 jam perhari, 5 hari seminggu, dan 20 hari dalam sebulan

Stage 3:

• Hitung nilai Function Points (FP):

• FP = CFP x (0.65 + 0.01 x RCAF)

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 17

Page 18: Estimasi Perangkat Lunak

Use Case Points

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 18

Page 19: Estimasi Perangkat Lunak

Sejarah

Use Case Point diperkenalkan pertama kali oleh Gustav Karner di tahun 1993.

Induk organisasinya adalah Rational Software UML.

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 19

Page 20: Estimasi Perangkat Lunak

Perspektif

The number and complexity of the use cases in the system

The number and complexity of the actors on the system

Various non-functional requirements (such as portability, performance, maintainability) that are not written as use cases

The environment in which the project will be developed (such as the language, the team’s motivation, and so on)

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 20

Page 21: Estimasi Perangkat Lunak

Langkah-Langkah Estimasi

Stage 1:

• Hitung Unadjusted Use Case Weight (UUCW).

Stage 2:

• Hitung Unadjusted Actor Weight (UAW).

Stage 3:

• Hitung Unadjusted Use Case Points (UUCP). Rumus UUCP = UUCW + UAW

Stage 4:

• Hitung Technical Complexity Factor (TCF).Rumus TCF = 0.6 + (0.01 x Tfactor)

Stage 5:

• Hitung Environment Factor (EF). Rumus EF = 1.4 + (-0.03 x Efactor)

Stage 6:

• Menghitung Use Case Point (UCP). UCP = UUCW x TCF x EF

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 21

Page 22: Estimasi Perangkat Lunak

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 22

Use Case Complexity

Jumlah Transaksi

Bobot

Simple <= 3 5

Average 4 – 7 10

Complex > 7 15

Narrative tersebut termasuk dalam

kategori Complex.

Karena terdiri dari lebih dari 7 transaksi.

Stage 1:•Hitung Unadjusted Use Case Weight (UUCW).

Page 23: Estimasi Perangkat Lunak

• Berdasarkan tabel sebelumnya, jika ada project X dengan 40 Simple, 21 Average, dan 10 Complex Use Cases; maka tabel UUCW adalah sebagai berikut:

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 23

Use Case Complexity

Bobot Jumlah Use Case Bobot x Jumlah Use Case

Simple 5 40 200

Average 10 21 210

Complex 15 10 150

Total 560

Stage 1:•Hitung Unadjusted Use Case Weight (UUCW).

Page 24: Estimasi Perangkat Lunak

Simple• Sistem lain yang berinteraksi melalui API .

• Bobotnya 1.

Average

• Sistem lain yang berinteraksi ƳŜƭŀƭdzƛ protokol: TCP/IP, HTTP, SOAP, dll.

• Manusia melalui antar muka teks (console).

• Bobotnya 2.

Complex • Manusia melalui antar muka berbasis grafis

(graphical user interface).

• Bobotnya 3.

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 24

Stage 2:•Hitung Unadjusted Actor Weight (UAW).

Page 25: Estimasi Perangkat Lunak

• Berdasarkan tipe aktor, jika ada project X dengan tipe aktor Simple sebanyak 8, Average 7, dan Complex 6; maka total UAW adalah:

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 25

Stage 2:•Hitung Unadjusted Actor Weight (UAW).

Tipe Aktor Bobot Jumlah Aktor Bobot x Jumlah Aktor

Simple 1 8 8

Average 2 7 14

Complex 3 6 18

Total 40

Page 26: Estimasi Perangkat Lunak

• UUCP = UUCW + UAW

• UUCP = 560 + 40 = 600

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 26

Stage 3:•Hitung Unadjusted Use Case Points (UUCP).

Page 27: Estimasi Perangkat Lunak

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 27

Stage 4:• Hitung Technical Complexity Factor (TCF). Dengan skala 0-5.

• Not present or No influence0

• Insignificant influence1

• Moderate influence2

• Average influence3

• Significant influence4

• Strong influence throughout5

Page 28: Estimasi Perangkat Lunak

Factor Bobot Assesment Bobot x Assesment

Distributed system 2 3 6

Performance objectives 2 3 6

End-user efficiency 1 3 3

Complex processing 1 2 2

Reusable code 1 0 0

Easy to install 0.5 0 0

Easy to use 0.5 4 2

Portable 2 2 4

Easy to change 1 5 5

Concurrent use 1 5 5

Security 1 5 5

Access for third parties 1 3 3

Training needs 1 0 1

Total (Technical Factors) 42

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 28

Stage 4:• Hitung Technical Complexity Factor (TCF). Dengan skala 0-5.

TCF = 0.6 + (0.01 x Tfactor)TCF = 0.6 + (0.01 x 42) = 1.02

Page 29: Estimasi Perangkat Lunak

Factor Bobot Assesment Bobot x Assesment

Familiar with the development process 1.5 3 4.5

Application experience 0.5 4 2

Object-oriented experience 1 4 4

Lead analyst capability 0.5 4 2

Motivation 1 5 5

Stable requirements 2 1 2

Part-time staff -1 0 0

Difficult programming language -1 2 -2

Total (Environmental Factors) 17.5

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 29

Stage 5: •Hitung Enviromental Complexity

Page 30: Estimasi Perangkat Lunak

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 30

Stage 6:

• Hitung Use Case Points (UCP). UCP = UUCW x TCF x EF

UCP = 600 x 1.02 x 0.89 = 545

• Estimasi Durasi Project:• Project tersebut memiliki 545 use case points.

• Rata-rata yang dibutuhkan untuk mengerjakan setiap use case adalah berkisar 20 – 28 jam.

• Totalnya 10 developer (programmer, tester, DBA, designer, dll) yang bekerja pada project ini.

Page 31: Estimasi Perangkat Lunak

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 31

Stage 6:

• Hitung Use Case Points (UCP). UCP = UUCW x TCF x EF

UCP = 600 x 1.02 x 0.89 = 545

• Estimasi pengerjaan project adalah 10.900 s/d 15.260 jam (545 x 20 = 10.900 dan 545 x 28 = 15.260).

• Estimasi pengerjaan efektif masing-masing developer adalah 30 jam/minggu dimana waktu lainnya digunakan untuk overhead; menjawab email, rapat koordinasi, dll (10 x 30 = 300 jam/minggu).

• 10.900/300 ~ 38 dan 15.260/300 ~ 52 berkisar antara 38 s/d 52 minggu.

Page 32: Estimasi Perangkat Lunak

Referensi

• Prof. Mohamed Batouche, Software Quality Metrics, http://ksu.edu.sa

• Mike Cohn, Estimating With Use Case Points, http://mountaingoatsoftware.com

• John Smith, The Estimation of Effort Based on Use Cases, Rational Software, 2003

• Gautam Banerjee, Use Case Points: An Estimation Aproach, 2002

Rekayasa Perangkat Lunak - Informatika UNS (HasanDC@UNS) 32