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 1.
2. 3. 4.
1. 2. 3.
Keuntungan Perangkat Lunak Komersil : Implementasi yang cepat Penghematan biaya Estimasi biaya dan waktu Reliabilitas Kekurangan Perangkat Lunak Komersil : Kesesuaian rancangan sistem yang tidak baik Ketergantungan vendor 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
1. 2. 3.
Tim proyek pengembangan perangkat lunak : perancangan dan analisis sistem. Pendekatan Organisasional Tim Pengembangan Program (Program Development Team) Tim Programmer Kepala (Chief Programmer Team) 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 4020-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 : Jalur Kode yang bisa dieksekusi (Line Of Executable Code atau LOEC) Titik Fungsi (Function Point)
1. 2.
Jalur Kode yang bisa Dieksekusi (LOEC) 1.
2. 3. 4.
Metrik LOEC bercakup pada pengkodean. Keuntungan menggunakan metrik LOEC sebagai ukuran produktivitas output perangkat lunak : Mudah ditetapkan dan dibahas secara jelas. Diakui secara luas. Mudah diukur. Mudah digunakan untuk estimasi.
Contoh LOEC
1. 2.
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 : Berapa orang dibutuhkan untuk menyelesaikan proyek tersebut ? 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)
1. 2. 3.
4. 5.
Metrik titik fungsi dirancang untuk mengatasi kelemahan metrik LOEC. Lima fungsi yang dianalisis untuk diukur profesional sistem adalah : Jumlah input Jumlah output Jumlah inquery yang diminta oleh end user Jumlah file logic yang diakses dan digunakan Jumlah interface ke aplikasi lain
Metrik Titik Fungsi (Function Point)
1.
2.
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 : Mengukur produktivitas perangkat lunak menggunakan cara seragam tanpa memandang bahasa yang digunakan. 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
1.
2. 3.
Menghasilkan perangkat lunak berkualitas tinggi pada tingkat produktivitas tinggi. Dimensi untuk Mengukur Kualitas Perangkat Lunak Faktor kinerja (sudut pandang end user) Faktor disain Faktor strategik
1.
2. 3. 4. 5.
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 : Menentapkan standar pengembangan sistem dan PL Mengevaluasi laporan terdokumentasi Menjalankan tahapan pemeriksaan rancangan sistem dan PL Melakukan tahapan pemeriksaan pengkodean 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 ?