estimasi perangkat lunak

Post on 04-Dec-2015

47 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Estimasi Perangkat LunakSoftware Measurement

hasandc@staff.uns.ac.id

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

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

Proses Estimasi Secara Umum

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

Model Estimasi

• Function Point,

• Use Case Point,

• ………..

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

Function Points

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

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

Contoh Kasus:

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

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

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

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

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

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

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

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

• 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

Stage 2:

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

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

• 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

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

Use Case Points

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

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

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

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

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).

• 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).

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).

• 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

• UUCP = UUCW + UAW

• UUCP = 560 + 40 = 600

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

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

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

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

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

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.

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.

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

top related