• Tidak ada hasil yang ditemukan

RPL - Software Engineering halaman : 1

N/A
N/A
Protected

Academic year: 2022

Membagikan "RPL - Software Engineering halaman : 1"

Copied!
123
0
0

Teks penuh

(1)
(2)

BAB I

SOFTWARE ENGINEERING Arti Software Engineering :

Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.

IEEE Computer Society mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.

Istilah software engineering, pertama kali digunakan pada akhir tahun 1950-an dan sekitar awal 1960-an. Pada tahun 1968, NATO menyelenggarakan konferensi tentang software engineering di Jerman dan kemudian dilanjutkan pada tahun 1969. Meski penggunaan kata software engineering masukan konferensi tersebut menimbulkan debat tajam tentang aspek engineering dari pengembangan perangkat lunak, banyak pihak yang menganggap konferensi tersebutlah yang menjadi awal tumbuhnya profesi rekayasa perangkat lunak

Dalam membuat softrare yang baik, ada beberapa cara : 1. Fase Perencanaan (Planning) :

a) Rencana software

b) Analisa kebutuhan software

c) Analisa cost banefit (Salah satu bagian dari studi kelayakan) 2. Fase Pengembangan (Development) :

a) Coding b) Testing

Macam-macam test program : i) Unit test (Test per modul)

ii) Integreated test (Test penggabungan dari modul-modul yang telah diuji) iii) Validated test (Diuji dengan data sebenarnya)

iv) System test (Test dilakukan dengan lingkungan sebenarnya) v) Topdown test (Test gabungan dari atas ke bawah)

vi) Bottom up test (Test gabungan dari bawah ke atas) 3. Fase Pemeliharaan (Maintenance) :

Jenis-jenis maintenance a) Koreksi (Corection) b) Adaptasi (Adaptive)

Software dikembangkan sesuai dengan tuntutan perkembangan jaman

(3)

c) Adaptasi yang berkembang pada dewasa ini terbagi atas : i) Sistem Operasi

 Pengarahan sistem operasi yang bersifat multi user. Contoh : UNIX

 Sistem operasi yang bersifat jaringan. Contoh : NOVELL ii) RDBMS - Relational DataBase Management System

 Berkembang dalam bentuk bahasa SQL (Structure Query Language).

iii) Bahasa

Mengarah pada perkembangan bahasa generasi ke empat (4GL - Fourth Generation Language)

Bahasa 4GL adalah suatu bahasa yang dibuat untuk meningkatkan produktifitas programmer dan end user. Contoh :

a) INFORMIX - Dapat dijalankan pada PC dengan minimum RAM 4MB + 640KB dan disk storage > 40MB

b) ORACLE c) INGRES

d) AS / SET - Digunakan pada IBM AS 400 e) POWER HOUSE - digunakan pada HR 3000 iv) Perfective

Menyempurnakan software yang ada biasanya dilakukan karena permintaan / saran / kritik user.

(4)

SOFTWARE AND SOFTWARE ENGINEERING

Selama tiga dekade pertama dari era komputerisasi, tantangan utama adalah mengembangkan hardware komputer yang dapat mengurangi biaya pengolahan dan penyimpanan data. Selama dekade tahun 1980 an, kemajuan yang pesat dari mikro elektronik menghasilkan kemampuan komputer yang lebih baik pada tingkat biaya yang lebih rendah. Namun masalah sekarang berbeda.

Tantangan utama adalah mengurangi biaya dan memperbaiki kualitas solusi berbasis komputer (Solusi yang diimplementasikan dengan mempergunakan software). Software merupakan faktor kunci dalam keberhasilan suatu usaha, software dapat membedakan satu perusahaan dari perusahan saingannya.

EVOLUSI PERKEMBANGAN SOFTWARE Evolusi software

1950 1960 1970 1980 1990 2000

Tahun-tahun awal :

 Batch orientation

 Limmited distribution

 Custummer software

Era kedua :

 Multi user

 Real time

 Database

Era ketiga

 Distibuted system

 Embedded intellegence

 Low cost hardware

 Consumer infact

Era keempat :

 Expert system

 A I Machine

 Parallel architecture

TAHUN-TAHUN PERTAMA :

 Batch Orientation

Suatu orientasi di mana proses dilakukan setelah data dikumpulkan dalam satuan waktu tertentu, atau proses dilakukan setelah data terkumpul, lawan dari batch adalah ONLINE atau Interactive Process.

Keuntungan dari Interactive adalah mendapatkan data yang selalu up to date.

 Limmited distribution

Suatu penyebaran software yang terbatas pada perusahaan-perusahaan tertentu.

 Custom software

Software yang dikembangkan berdaasarkan perusahaan-perusahaan tertentu.

(5)

 Multi user

Suatu sistem di mana satu komputer digunakan oleh beberapa user pada saat yang sama.

 Real Time

Suatu sistem yang dapat mengumpulkan, menganalisa dan mentransformasikan data dari berbagai sumber, mengontrol proses dan menghasilkan output dalam mili second.

 Database

Perkembangan yang pesat dari alat penyimpan data yang OnLine menyebabkan muncul generasi pertama DBMS (DataBase Management System).

 Product Software

Adalah software yang dikembangkan untuk dijual kepada masyarakat luas.

ERA KETIGA :

 Distributed system

Suatu sistem yang tidak hanya dipusatkan pada komputer induk (Host computer), daerah atau bidang lainnya yang juga memiliki komputer yang ukurannya lebih kecil dari komputer induk.

Lawan dari distributed system adalah Centralized System.

 Embedded Intelegence

Suatu product yang diberi tambahan “Intellegence” dan biasanya ditambahkan mikroprocessor yang mutakhir. Contohnya adalah automobil, robot, peralatan diagnostic serum darah.

 Low Cost Hardware

harga hardware yang semakin rendah, ini dimungkinkan karena munculnya Personal Computer.

 Consummer Inpact

Adanya perkembangan komputer yang murah menyebabkan banyaknya software yang dikembangkan, software ini memberi dampak yang besar terhadap masyarakat.

ERA KEEMPAT :

 Expert system

Suatu penerapan A.I. (Artificial Intellegence) pada bidang-bidang tertentu, misalnya bidang kedokteran, komunikasi, dll.

 AI Machine

Suatu mesin yang dapat meniru kerja dari sebagian otak manusia. Misalnya mesin robot, komputer catur.

 Parallel Architecture

Arsitektur komputer yang memungkinkan proses kerja LAN paralel, yang dimungkinkan adanya prosesor berbeda dalam satu komputer

(6)

1. Instruksi

Atau program komputer yang ketika dieksekusi akan memberi fungsi dan hasil yang diinginkan.

2. Struktur data

Yang memungkinkan program memanipulasi informasi 3. Dokumen

Yang menggambarkan operasi dan penggunaan program.

SIFAT DAN KARAKTERISTIK SOFTWARE

1. Software merupakan elemen sistem logik dan bukan elemen sistem fisik seperti hardware 2. Elemen itu tidak aus, tetapi bisa rusak.

3. Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik seperti hardware 4. Software itu tidak bisa dirakit.

KOMPONEN SOFTWARE 1. Bentuk bahasa Terbagi 2, yaitu

A. High Level, contoh PASCAL, COBOL, FORTRAN.

B. Middle Level, contoh C 2. Bentuk translator

Terbagi 3 , yaitu : A. Interpreter

Menerjemahkan dari bahasa tingkat tinggi ke bahasa tingkat rendah secara satu persatu (statemen demi statemen)

B. Compiler

Menerjemahkan secara keseluruhan, proses lebih cepat dari interpreter C. Assembler

Menerjemahkan dari bahasa rakitan ke bahasa mesin 3. Bentuk mesin :

LANGUAGE FORM

T RANSLAT OR

MACHINE LANGUAGE

HIGH LEVEL MIDDLE LEVEL

(7)

1. Sistem Software

Adalah sekumpulan program yang ditulis untuk melayani atau menunjang program lainnya.

Beberapa sistem software seperti compiler, editor, komponen-komponen sistem operasi, driver dan prosesor telekomunikasi.

2. Real Time software

Software yang mengukur, menganalisis dan mengontrol kejadian yang sesungguhnya terjadi di dunia. Elemen-elemen real time software terdiri dari :

A. Komponen pengumpul data

Yang mengumpulkan dan menyusun informasi dari lingkungan external.

B. Komponen analisis

Yang mentransformasikan informasi yang diperlukan oleh aplikasi C. Komponen kontrol

Yang memberikan respon kepada lingkungan external D. Komponen monitor

Yang mengkoordinasi semua komponen-komponen lainnya, sehingga respons real time yang berkisar 1 milisecond sampai 1 menit dapat dipertahankan.

Perlu dicatat bahwa istilah real time berbeda dari istilah interactive atau time sharing. Sistem real time harus memberikan respons pada waktu yang ditentukan, sedangkan pada sistem interactive atau time sharing respons time biasanya melebihi batas waktu yang ditentukan tanpa merusak hasil.

3. Business software

Software yang palinmg banyak digunakan dalam bidang aplikasi software. Software ini digunakan oleh manajemen untuk mengambil kepitusan ( Decision Making ) dalam bidang bisnis. Contoh :

 DAC EASY ACCOUNTING

 FINANCE MANAJER

4. Engineering and sciencetific software

Software yang dicirikan dengan algoritma numerik, aplikasinya berkisar dari astronomi sampai vulkanologi, dari analis ketegangan otomotif sampai dinamika orbit ruang angkasa. Software ini banyak digunakan dalam bidang engineering dan science. Contoh

 CAD / CAM ( Computer Aided Design / Computer Aided Manufacture - Ssimulasi sistem )

(8)

Suatu software disimpan dalam memori tetap - ROM - Read Only Memory, dan digunakan untuk mengontrol product dan sistem software ini dijalankan dengan berbagai fungsi terbatas.

6. PC software (Personal Computer)

Software yang banyak digunakan di komputer pribadi (PC). Contoh :

 Word Processing : WS, WP

 Spreadsheet : Lotus, Supercalc

 Computer Graphics : Printshop, Print Magic

 Games : Paoman, Load Runner

 DBMS : Dbase III+, Foxbase, Clipper

 Network : LAN, Novell

7. Artificial Intelegence software

Software yang banyak menggunakan algoritma non numerik dalam memecahkan masalah kompleks yang tidak dapat dianalisis dengan analisis komputasi biasa. Saat ini bidang AI yang paling aktif adalah expert system atau knowledge base system. Bidang aplikasi lain dari software AI adalah pengenalan citra dan suara ( image and voice pattern recognition ), teorema pembuktian dan permainan / games.

KRISIS SOFTWARE

Adalah sekumpulan masalah yang ditemukan dalam pengembangan software computer. Masalahnya tidak hanya terbatas pada software yang tidak berfungsi sebagaimana mestinya, tetapi krisis software ini terdiri dari masalah yang berhubungan dengan :

1. Bagaimana mengembangkan software

2. Bagaimana memelihara software ynag ada, yang berkembang dalam jumlah besar 3. Bagaimana mengimbangi permintaan software yang makin besar.

MASALAH

Krisis software oleh beberapa masalah :

1. Estimasi jadual dan biaya yang seringkali tidak tepat

2. Produktivitas orang-orang software yang tidak dapat mengimbangi permintaan software 3. Kualitas software yang kurang baik.

Penyebab :

Masalah yang berhubungan dengan krisis software disebabkan oleh : 1. Karakteristik software itu sendiri

(9)

oleh karena itu mengukur software harus merupakan suatu kesatuan, tidak seperti hardware.

Software yang bersifat tidak aus ini menyebabkan kesalahan yang terjadi pada software.

Umumnya terjadi pada tahap pengembangan. Manajer tingkat menengah dan tingkat atas yang tidak mempunyai latar belakang software, seringkali diberi tanggung jawab untuk mengembangkan software. Padahal tidak semua manajer itu dapat me-manage semua proyek.

Praktisnya : software programmer atau software engineering mendapatkan latihan formal yang sedikit dalam hal tehnik baru pengembangan software.

2. Kegagalan mereka yang bertanggung jawab dalam pengembangan software.

MITOS SOFTWARE 1. Mitos managements

A. Kita tidak perlu mengubah pendekatan terhadap pengembangan software, karena jenis pemrograman yang kita lakukan sekarang ini sudah kita lakukan 10 tahun yang lalu.

Realitasnya : Walau hasil program sama, produktivitas dan kualitas software harus ditingkatkan dengan menggunakan pendekatan software developments

B. Kita sudah mempunyai buku yang berisi standarisasi dan prosedur untuk pembentukan software.

Realitasnya : Memang buku tersebut ada, tetapi apakah buku tersebut sudah dibaca atau buku tersebut sudah ketinggalan jaman ( out of date ).

C. Jika kita tertinggal dari jadwal yang ditetapkan, kita menambah beberapa programmer saja.

Konsep ini sering disebut Mongolian harde concept.

2. Mitos Langganan / Customer

A. Pernyataan tujuan umum sudah cukup untuk memulai penulisan program. Penjelasan yang lebih rinci akan menyusul kemudian.

Realitasnya : Definisi awal yang buruk adalah penyebab utama kegagalan terhadap usaha- usaha pembentukkan software. Penjelasan yang formal dan terinci tentang informasi fungsi performance interface, hambatan desain dan kriteria validasi adalah penting. Karakteristik di atas dapat ditentukan hanya setelah adanya komunikasi antara customer dan developer.

B. Kebutuhan proyek yang terus menerus berubah dapat dengan mudah diatasi karena software itu bersifat fleksibel. Kenyataannya memang benar bahwa kebutuhan software berubah, tetapi dampak dari perubahan berbeda dari waktu ke waktu.

(10)

1 kali

1,5 - 6 kali

60 - 100 kali

Definition Developm ent Maintenance

Waktu penyeles aian

Kesimpulan : Jika perubahan mendekati akhir penyelesaian, maka biaya akan lebih besar.

3. Mitos Praktisi

A. Tidak ada metode untuk analisis disain dan testing terhadap suatu pekerjaan, cukup menuju ke depan terminal dan mulai coding.

Realitasnya : Metode untuk analisis desain dan testing diperlukan dalam pengembangan software.

B. Segera setelah software digunakan, pemeliharaan dapat diminimalisasikan dan diatasi dengan cara “CATCH AS CATCH CAM”.

Realitasnya : Diperlukan budget yang besar dalam maintenance software. Pemeliharaan software harus diorganisir, direncanakan dan dikontrol seolah-olah sebagai suatu proyek besar dalam sebuah organisasi.

MODEL SOFTWARE ENGINEERING

Krisis software tidak dapat hilang dalam satu satu malam, di mana tidak ada suatu pendekatan yang baik dalam mengatasi krisis software, namun gabungan dari metode untuk semua fase dalam pengembangan siftware seperti peralatan yang lebih baik untuk mengautomatisasi metode-metode ini, tehnik yang lebih baik untuk mengontrol kualitas, dan filosofi untuk koordinasi kontrol, serta manajemen dipelajari dalam suatu disiplin ilmu yang kita sebut software engineering.

Definisi :

Menurut Fritz Badar, software engineering adalah disiplin ilmu yang menerapkan prinsip-prinsip engineering agar mendapatkan software yang ekonomis yang dapat dipercaya dan bekerja lebih efisien pada mesin yang sebenarnya.

Software engineering terdiri dari 3 elemen kunci, yaitu : 1. Metode,

2. Peralatan (tools), 3. Prosedur,

yang memungkinkan manajer mengontrol proses pengembangan software dan memberikan praktisi dasar yang baik untuk pembentukan software berkualitas tinggi.

(11)

1. Metode Software Enginnering

Metode software engineering memberikan tehnik-tehnik bagaimana membentuk software.

Metode ini terdiri dari serangkaian tugas :

 Perencanaan & estimasi proyek

 Analisis kebutuhan sistem dan software

 Desain struktur data

 Arsitektur program dan prosedur algoritma

 Coding

 Testing dan pemeliharaan 2. Peralatan Software Engineering

Peralatan software engineering memberikan dukungan atau semiautomasi untuk metode.

Contohnya :

 CASE (Case Aided Software Engineering), yaitu suatu software yang menggabungkan software, hardware, dan database software engineering untuk menghasilkan suatu lingkungan software engineering.

 Database Software Engineering, adalah sebuah struktur data yang berisi informasi penting tentang analisis, desain, kode dan testing.

 Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE 3. Prosedur Software Engineering

Terdiri dari :

 urut-urutan di mana metode tersebut diterapkan

 dokumen

 laporan-laporan

 formulir-formulir yang diperlukan

 mengontrol kualitas software

 mengkoordinasi perubahan yang terjadi pada software

Dalam penguasaan atas model software engineering atau software engineering paradigm, dikenal ada 3 metode yang luas dipergunakan, yaitu :

(12)

SIST EM ENGINEERING ANALYS

DESIGN CODE

T EST ING

M AINT ENANCE

Keterangan :

A. System Engineering and Analysis

Karena software merupakan bagian terbesar dari sistem, maka pekerjaan dimulai dengan cara menerapkan kebutuhan semua elemen sistem dan mengalokasikan sebagian kebutuhan tersebut ke software. Pandangan terhadap sistem adalah penting, terutama pada saat software harus berhubungan dengan elemen lain, seperti :

 Hardware

 Software

 Database

B. Analisis kebutuhan software

Suatu proses pengumpulan kebutuhan software untuk mengerti sifat-sifat program yang dibentuk software engineering, atau analis harus mengerti fungsi software yang diinginkan, performance dan interface terhadap elemen lainnya. Hasil dari analisis ini didokumentasikan dan direview / dibahas / ditinjau bersama-sama customer.

C. Design

Desain software sesungguhnya adalah proses multi step (proses yang terdiri dari banyak langkah) yang memfokuskan pada 3 atribut program yang berbeda, yaitu :

 Struktur data

 Arsitektur software

 Rincian prosedur

Proses desain menterjemahkan kebutuhan ke dalam representasi software yang dapat diukur kualitasnya sebelum mulai coding. Hasil dari desain ini didokumentasikan dan menjadi bagian dari konfigurasi software.

D. Coding

Desain harus diterjemahkan ke dalam bentuk yang dapat dibaca oleh mesin E. Testing

Segera sesudah objek program dihasilkan, pengetesan program dimulai. Proses testing difokuskan pada logika internal software. Jaminan bahwa semua pernyataan atau statements sudah dites dan lingkungan external menjamin bahwa definisi input akan menghasilkan output yang diinginkan.

F. Maintenance

Software yang sudah dikirim ke customer data berubah karena

 Software mengalami error

(13)

external, misalnya adanya sistem operasi baru atau peripheral baru.

 Software yang lebih disempurnakan karena adanya permintaan dari customer.

Masalah yang dihadapi dari model siklus hidup klasik adalah :

 Proyek yang sebenarnya jarang mengikuti aliran sequential yang ditawarkan model ini. Iterasi (Pengulangan) selalu terjadi dan menimbulkan masalah pda aplikasi yang dibentuk oleh model ini.

 Seringkali pada awalnya customer sulit menentukan semua kebutuhan secara explisit (jelas).

 Customer harus sabar karena versi program yang jalan tidak akan tersedia sampai proyek software selesai dalam waktu yang lama.

2. Prototype Paradigm

REQUIMENT S GAT HERING

"QUICK DESIGN"

BUILD PROT OT YPE

EVALUAT ED AND REFINEMENT S ENGINEER PRODUCT

Keterangan :

Seringkali seorang customer sulit menentukan input yang lebih terinci, proses yang diinginkan dan output yang diharapkan. Tentu saja ini menyebabkan developer tidak yakin dengan efisiensi alogoritma yang dibuatnya, sulit menyesuaikan sistem operasi, serta interaksi manusia dan mesin yang harus diambil. Dalam hal seperti ini, pendekatan prototype untuk software engineering merupakan langkah yang terbaik. Prototype sebenarnya adalah suatu proses yang memungkinkan developer membuat sebuah model software.

Ada 2 bentuk dari model ini, yaitu : A. Paper Prototype

Menggambarkan interaksi manusia dan mesin dalam sebuah bentuk yang memungkinkan user mengerti bagaimana interaksi itu terjadi.

B. Working Prototype

Adalah prototype yang mengimplementasikan beberapa bagian dari fungsi software yang diinginkan seperti pada pendekatan pengembangan software. Model ini dimulai dengan :

 Pengumpulan kebutuhan developer dan customer

 Menentukan semua tujuan software

 Mengidentifikasi kebutuhan-kebutuhan yang diketahui

(14)

Design ini memfokuskan pada representasi aspek-aspek software yang dapat dilihat oleh user, misalnya format input dan output, selanjutanya dari desain cepat diteruskan pada pembentukan prototype (langkah ke 3). Prototype ini dievaluasi oleh customer / user dan digunakan untuk memperbaiki kebutuhan-kebutuhan software. Proses iterasi terjadi agar prototype yang dihasilkan memenuhi kebutuhan customer, juga pada saat yang sama developer mengerti lebih baik tentang apa yang harus dikerjakan.

Masalah yang dihadapi oleh prototyping paradigm ini adalah :

 Customer hanya melihat pada apa yang dihasilkan oleh software, tidak peduli pada hal-hal yang berhubungan dengan kualitas software dan pemeliharaan jangka panjang.

 Developer seringkali menyetujui apa yang diterangkan oleh customer agar prototype dapat dihasilkan dengan cepat. Akibatnya timbul pemilihan sistem operasi / bahasa pemrograman yang tidak tepat.

3. Fourth Generation Tehnique Paradigm - Model tehnik generasi ke 4 / 4GT

REQUIMENT S GAT HERING

"DESIGN ST RATEGICS"

IM PLEMENT AT ION USING 4GT PRODUCT

Istilah Fourth Generation Technique (4GT) meliputi seperangkat peralatan software yang memungkinkan seorang developer software menerapkan beberapa karakteristik software pada tingkat yang tinggi, yang kemudian menghasilkan source code dan object code secara otomatis sesuai dengan spesifikasi yang ditentukan developer. Saat ini peralatan / tools 4GT adalah bahasa non prosedur untuk :

 DataBase Query

 Pembentukan laporan ( Report Generation )

 Manipulasi data

 Definisi dan interaksi layar (screen)

 Pembentukan object dan source ( Object and source generation )

 Kemampuan grafik yang tinggi, dan

 Kemampuan spreadsheet Keterangan gambar :

 Model 4GT untuk software engineering dimulai dengan rangkaian pengumpulan kebutuhan.

Idealnya, seorang customer menjelaskan kebutuhan-kebutuhan yang selanjutnay diterjemahkan ke dalam prototype. Tetapi ini tidak dapat dilakukan karena customer tidak yakin dengan apa yang diperlukan, tidak jelas dalam menetapkan fakta-fakta yang diketahui dan tidak dapat menentukan informasi yang diinginkan oleh peralatan 4GT.

 Untuk aplikasi kecil adalah mungkin bergerak langsung dari langkah pengumpulan kebutuhan ke implementasi yang menggunakan bahasa non prosedur fourth generation (generasi ke 4).

(15)

diperlukan, sekalipun kita menggunakan 4GL. Penggunaan 4GT tanpa desain untuk proyek besar akan menyebabkan masalah yang sama yang ditemui dalam pengembangan software yang menggunakan pendekatan konvensional.

 Implementasi yang menggunakan 4GL memungkinkan developer software menjelaskan hasil yang diinginkan yang kemudian diterjemahkan ke dalam bentuk source code dan object code secara otomatis.

 Langkah yang terakhir adalah mengubah implementasi 4GT ke dalam sebuah product.

Selanjutnya developer harus melakukan pengetesan, pengembangan dokumentasi dan pelaksanaan semua aktifitas lainnya yang diwujudkan dalam model software engineering.

Masalah yang dihadapi dalam model 4GT adalah adanya sebagian orang yang beranggapan bahwa : A. peralatan 4GT tidak semudah penggunaan bahasa pemrograman,

B. source code yang dihasilkan oleh peralatan ini tidak efisien,

C. pemeliharaan sistem software besar yang dikembangkan dengan 4GT masih merupakan tanda tanya.

4. Model Kombinasi - Combining Paradigm

REQUIMENTS GATHERINGS

PROTOTYPING

PROTOTYPE APPLY

4GL

EVALUATE

ENGINEER PRODUCT

CLASSIC LIFE CYCLE DAPAT LANGSUNG JIKA PENDEKATANNYA JELAS

Keterangan :

Model ini menggabungkan keuntungan-keuntungan dari beberapa model sebelumnya. Seperti pada model sebelumnya, model kombinasi ini dimulai dengan langkah pengumpulan kebutuhan.

Pendekatan yang dapat diambil adalah pendekatan siklus hidup klasik (Analisis sistem dan analisis kebutuhan software) atau dapat juga menggunakan pendekatan seperti prototyping jika definisi masalahnya tidak terlalu formal.

Jika kebutuhan untuk fungsi dan performance software diketahui dan dimengerti, pendekatan yang dianjurkan adalah model siklus hidup klasik. Sebaliknya, jika aplikasi software menuntut interaksi yang sering antara manusia dan mesin, membutuhkan algoritma yang tidak dapat dibuktikan, atau membutuhkan tehnik output / kontrol, maka pendekatan yang dianjurkan adalah model prototyping.

Pada kasus seperti ini, 4GL dapat digunakan untuk mendapat prototype dengan cepat. Segera sesudah prototype dievaluasi dan disempurnakan, langkah desain dan implementasi dalam siklus hidup klasik diterapkan.

Dari model yang disebut di atas dapat diambil suatu kesimpulan, bahwa proses pengembangan software terdiri dari 3 fase, yaitu :

1. Fase Definisi

2. Fase Pengembangan (Development)

(16)

1. Fase Definisi

Fase definisi memfokuskan pada “What”. Selama definisi ini, developer software berusaha untuk :

 Mengidentifikasi informasi apa yang dikerjakan proses

 Fungsi dan performance apa yang diinginkan

 Interface apa yang dibutuhkan

 Hambatan desain apa yang ada, dan

 Kriteria validasi apa yang dibutuhkan untuk menetapkan keberhasilan sistem.

A. Sistem Analis

Sistem analis menetapkan peranan dari setiap elemen dalam sistem berbasis komputer, terutama mengalokasikan peranan software.

B. Sistem Software Planning

Dalam sistem ini, setelah lingkungan software dialokasikan, maka langkah dari sistem software planning ini adalah :

 Pengalokasian sumber / resource

 Estimasi biaya

 Penetapan tugas pekerjaan dan jadual.

C. Requirement Analysis

Penetapan lingkup untuk software memberikan petunjuk / arah. Namun definisi yang lebih rinci dari informasi dan fungsi software diperlukan sebelum pekerjaan dimulai.

2. Fase Pengembangan

Fase pengembangan berfokus pada “How”. Selama pengembangan, developer software berusaha menjelaskan :

 Bagaimana struktur data dan arsitektur software yang didesain

 Bagaimana rincian prosedur diimplementasikan ( diterapkan )

 Bagaimana desain diterjemahkan ke dalam bahasa pemrograman atau bahasa non prosedur, dan

 Bagaimana pengetesan akan dilaksanakan.

A. Desain software ( Software Design )

Desain menterjemahkan kebutuhan-kebutuhan software ke dalam sekumpulan representasi (grafik, tabel, diagram, atau bahasa yang menjelaskan struktur data, arsitektur software dan prosedur algoritma).

B. Coding

Representasi desain harus diterjemahkan ke dalam bahasa tiruan / artificial language yang menghasilkan perintah-perintah yang dapat dieksekusi oleh komputer.

C. Software Testing

(17)

dieksekusi oleh mesin, software perlu ditest untuk menemukan kesalahan ( merupakan fungsi logika dan implementasi ).

3. Fase Pemeliharaan

Fase pemelihaaan berfokus pada “Change” atau perubahan. Ini dapat disebabkan : A. Perubahan karena software error ( Corective Maintenance )

B. Perubahan karena software disesuaikan / diadaptasi dengan lingkungan external, misalnya munculnya CPU baru, sistem operasi baru ( Adaptive Maintenance )

C. Perubahan software yang disebabkan customer / user meminta fungsi tambahan, misalnya fungsi grafik, fungsi matematik, dll ( Perfective Maintenance )

(18)

COMPUTER SYSTEM ENGINEERING

Computer system engineering (Rekayasa Sistem Komputer) terdiri atas 2 bagian, yaitu :

 Hardware engineering

 Software engineering

Setiap disiplin ini berusaha menunjukkan pengembangan sistem berbasis komputer tehnik engineering. Untuk hardware komputer telah sedemikian maju dan relatif jenuh. Sebaliknya software komputer mulai berkembang, dan saat ini menggantikan peranan hardware sebagai elemen sistem yang sulit direncanakan, sedikit kemungkinan untuk berhasil dengan biaya rendah dan waktu yang cepat, serta paling sukar untuk dikelola.

Apa Sistem itu ?

Sistem adalah sekumpulan elemen yang saling berinteraksi untuk mencapai suatu tujuan. Sedangkan Computer Based System diorganisir untuk mendapatkan beberapa metode, prosedur atau pengontrolan dengan cara mengelola informasi.

Elemen-elemen dari sistem berbasis komputer adalah : 1. Software

Program komputer, struktur data dan dokumentasi yang saling berhubungan dan memberikan efek pada metode, prosedur dan kontrol yang diinginkan.

2. Hardware

Peralatan elektronik, (misalnya CPU, memory) yang memberikan kemampuan komputasi serta peralatan elektromedia (misalnya sensor, motor, pompa) yang memberikan fungsi external.

3. People / Brainware

User dan operator dari hardware dan software 4. Database

Sekumpulan informasi yang besar, yang diorganisir agar dapat diakses oleh software dan merupakan bagian integral dari fungsi sistem.

5. Prosedur

Langkah-langkah yang menetapkan pemakaian khusus untuk setiap elemen sistem.

INPUT OUTPUT

DATABASE

PROCEDURE

HARDWARE

SOFTWARE

PEOPLE DOCUMENT

SYSTEM

Keterangan :

(19)

sistem yang diinginkan, ditemukan, dianalisis, dan dialokasikan ke elemen-elemen sistem individu.

Computer System Engineering disebut juga Sistem Analis, dimulai dengan : 1. Penetapan tujuan customer

2. Hambatan-hambatan dan representasi fungsi performance yang dapat dialokasikan ke masing- masing elemen sistem.

Segera setelah fungsi performance, hambatan dan interface ditetapkan, system engineering selanjutnya melakukan pekerjaan alokasi. Selama pengalokasian fungsi diserahkan kepada satu / lebih elemen sistem (misalnya software, hardware, people, dll) seringkali alokasi alternatif diusulkan dan dievaluasi.

Fungsi yang dialokasikan maksudnya adalah menentukan mana yang masuk ke hardware, ke software dan ke brainware

Berikut ini adalah kriteria pemilihan konfigurasi sistem berdasarkan alokasi fungsi dan performance ke elemen sistem :

1. Project Consideration - Pertimbangan Proyek

 Dapatkah konfigurasi dihasilkan dengan biaya dan jadual yang ditetapkan lebih awal ? 2. Business Consideration - Pertimbangan Bisnis

 Dapatkah konfigurasi memberikan solusi yang paling menguntungkan ?

 Dapatkah dipasarkan dengan sukses ?

 Pertimbangan ini yang paling penting.

3. Technical Consideration - Pertimbangan tehnik

 Apakah ada tehnologi untuk mengembangkan semua elemen sistem ?

 Dapatkah fungsi performance dijamin ?

 Dapatkah konfigurasi dipelihara dengan cukup baik ? 4. Manufacturing Evaluation - Evaluasi Pabrikasi

 Apakah fasilitas dan peralatan manufaktur tersedia ?

 Apakah ada komponen yang diperlukan dengan segera ?

 Apakah jaminan kualitas dapat dipercaya ?

5. Human Issues - Hal-hal yang berhubungan dengan manusia

 Apakah tenaga kerja terlatih untuk pengembangan dan manufaktur tersedia ?

 Apakah customer mengerti dengan apa yang akan dicapai oleh sistem ? 6. Environmental Interface - Berhubungan dengan lingkungan

 Apakah konfigurasi yang diusulkan sudah cukup berhubungan dengan lingkungan external dari sistem ?

 Apakah komunikasi mesin  manusia dan manusia  mesin sudah ditangani dengan baik ? 7. Legal Consideration - Pertimbangan hukum

 Apakah pertimbangan yang dihasilkan sudah dilindungi oleh hukum ?

(20)

Computer System Engineering selalu mengalokasikan satu / lebih fungsi sistem ke hardware komputer.

Elemen-elemen hardware

1. CPU - Cenral Processing Units

2. Adalah unit yang melakukan pekerjaan aritmatik, logika, dan fungsi pengontrol serta berinteraksi dengan komponen lainnya. Sekarang ini, beberapa arsitektur komputer ditambahkan ko-prosesor untuk melakukan fungsi pengolahan khusus ( fungsi kalkulasi ) sehingga performance CPU dapat ditingkatkan.

3. BUS

4. Adalah alat komunikasi yang menghubungkan elemen satu dengan elemen lainnya untuk pengiriman instruksi, data dan informasi pengontrolan.

5. Memory

6. Memory memberikan tempat penyimpanan instruksi dan data yang dapat diakses langsung / tidak langsung melalui perintah yang dieksekusi oleh CPU dan ko-prosesornya.

Memory terbagi menjadi 2 bagian, yaitu :

A. Memori Primer / Primary Memory / Main Memory

Adalah memory yang terdapat di dalam komputer, terdiri atas 2 bagian yaitu : i. RAM - Random Access Memory

Untuk menyimpan data / instruksi yang bersifat temporary ii. ROM - Read Only Memory / Firmware

Untuk menyimpan perintah dan / atau data yang permanen.

ROM terbagi atas 2 golongan

a. PROM - Programmabel Read Only Memory

Memory ROM yang dapat ditulis / diprogram dan dapat dihapus dengan cara :

 EEPROM - Eraseble Electrical Programmabel ROM Dihapus dengan kejutan listrik tertentu

 UVPROM - Ultra Violet Programmabel ROM Dihapus dengan sinar ultra violet

b. MASK ROM

ROM yang terjual sudah diprogram pada saat dibuat oleh pabriknya.

B. Memory Sekunder

Sifat yang menonjol dari memory jenis ini adalah : i. Waktu akses lambat

ii. Kapasitas besar sekali dibandingkan dengan memory primer

iii. Waktu akses berkisar milidetik dengan kapasitas antara 400.000 sampai 1 billion byte iv. Contoh : Floppy disk, harddisk, hardcard, optical disk

APLIKASI HARDWARE

Dapat dikelompokan dalam 3 bagian besar, yaitu : 1. Pengelolahan informasi

2. Pengontrolan proses dan aplikasi real time

(21)

REKAYASA HARDWARE

Untuk komputer digital yang dikembangkan dari perancangan elektronik, proses perancangannya terdiri dari 3 tahap :

1. Perencanaan dan spesifikasi

2. Perencanaan dan implementasi prototype 3. Manufaktur distribusi dan pelayanan

Segera / sesudah analisis dan definisi dijalankan, fungsi dialokasikan ke hardware.

Fase I : Perencanaan dan Spesifikasi

HARDWARE FUNCTION

DEVELOPMENT PLANNING

COST SCHEDULE

REVIEW

DETAILED REQUIRMENT

ANALYSIS

HARDWARE SPECIFICATION

REVIEW

Fase I terdiri dari :

1. Perencanaan pengembangan 2. Analisis hardware

Perencanaan pengembangan dilaksanakan untuk menetapkan lingkup-lingkup dari usaha-usaha terhadap hardware, oleh karena itu menimbulkan beberapa pertanyaan, antara lain :

1. Jenis hardware apa yang terbaik untuk fungsi yang ditentukan?

2. Hardware yang mana yang tersedia untuk dijual, bagaimana biayanya, jenis interface yang diperlukan, dan apa yang harus dilakukan untuk merancang dan membangun ?

Fase II : Perencanaan dan Implementasi Prototype

DESIGN

ANALYSIS REVIEW BUILT & TEST

PROTOTYPE REVIEW MANUFACTURING

ANALYSIS

PROTOTYPE ( BELUM SEMPURNA ) DESIGN DRIVING

Kebutuhan analisis dan konfigurasi hardware mulai dirancang, dilakukan tinjauan tehnis demi mendapatkan spesifikasi rancangan yang benar. Komponen mulai dibuat dan prototype mulai diralat.

Prototype diuji untuk menjamin bahwa prototype telah memenuhi semua persyaratan. Namun prototype sering menghadapi ketidakmiripan dengan prosedur yang dibuat. Karena itu perlu adanya spesifikasi pabrikasi

(22)

Fase III : Manufacture Distribution dan Pelayanan

MANUFACTURE QUALITY

ASSURANCE

NETWORK REVIEW

DISTRIBUTION MAINTENANCE ORANIZATION

SPARE PART

PRODUCTS

Mulai dihasilkan prosedur-prosedur dengan penekanan pada kualitas produk. Dengan mekanisme distribusi produk terhadap fase ini, juga dibentuk bagian perbaikan dan maintenance

perencanaan sistem

Tahap perencanaan dari siklus hidup software adalah suatu proses definisi, analis, spesifikasi, estimasi dan review.

SYSTEM DEFINITION BUSINESS

NEEDS

SOFTWARE PLAN

REQUIRE- MENT ANALYSIS HARDWARE

FUNCTIONS

SOFTWARE FUNCTIONS

COST SCHEDULE RESOURCES

SOFTWARE SCOPE

Definisi sistem merupakan langkah pertama dalam fase perencanaan.

Tujuan dari definisi sistem ini adalah :

1. Evaluasi konsep sistem : feasibility, cost benefit, dan businness needs 2. Jelaskan interface, function, dan performance sistem

3. Alokasi fungsi pada hardware, software dan elemen tambahan.

Tujuan dari perencanaan software adalah mengestimasi biaya dan waktu pengembangan. Untuk mencapai ini, lingkup software harus dimengerti dengan sempurna, dan sumber harus ditentukan dengan tepat.

Analisis kebutuhan software memperjelas : 1. Software interfaces

2. Atribut fungsional

3. Karakteristik performance 4. Kendala desain

5. Kriteria validasi

(23)

1. Berapa besar usaha yang akan diberikan pda fase perencanaan ?

 10 s/d 20 % dari usaha keseluruhan proyek diberikan pada perencanaan dan analisis kebutuhan software.

2. Siapa yang mengerjakannya ?

 Analis yang berpengalaman dan terlatih memperkerjakan hampir semua pekerjaan yang berhubungan dengan fase perencanaan. Untuk proyek yang sangat besar, dapat dibentuk sebuah tim analis.

3. Mengapa begitu sulit ?

 Konsep yang tidak jelas harus ditransformasikan ke dalam elemen yang jelas.

feasibility studi ( studi kelayakan )

Semua proyek layak bila sumber dan waktunya tidak terbatas. Kenyataannya, pengembangan sistem berbasis komputer dibatasi oleh sumber dan waktu.

Ada 4 bidang utama yang menjadi konsentrasi dari feasibility studi, yaitu : 1. Economic Feasibility :

Evaluasi biaya (cost) dan manfaat (benefit) dalam pengembangan sistem.

2. Tehcnical feasibilitu :

Studi tentang fungsi, performance, dan hambatan yang berpengaruh terhadap kemampuan mendapatkan sistem yang baik.

3. Legal Feasibility :

Penentuan berbagai pelanggaran, kewajiban yang dapat terjadi dari pengembangan sistem.

4. Alternative :

Evaluasi sebagai alternatif untuk mengembangkan sistem

Analisis cost benefit

Menggambarkan biaya pengembangan proyek dan mempertimbangkan keuntungan sistem, baik yang tangible maupun intangible (dapat diukur dan tidak dapat diukur).

Analis cost benefit ini tergantung dari karakteristik sistem yang akan dikembangkan, ukuran relatif proyek (besar kecil proyek), dan ROI (Return On Invesment) yang diharapkan dari proyek.

Keuntungan dari sistem baru selalu dibandingkan dengan keuntungan dari sistem yang ada.

Contoh soal :

Suatu CAD (Computer Aided Design) akan menggantikan cara manual dalam membuat gambar- gambah tehnik. Misalkan :

 t = waktu rata-rata menggambar = 4 jam

 c = biaya gambar perjam = $20

 n = banyaknya gambar pertahun = 8000

 p = persentase gambar yang dihasilkan dengan sistem CAD = 60%

Penurunan waktu gambar menjadi 1/4 nya dengan adanya sistem CAD.

(24)

Biaya yang dapat ditekan (dihemat) sebesar :

96,000/thn

= 60%

8000 20 4 4

= 1 4

= 1tcnp     Bila untuk sistem CAD harus dikeluarkan biaya sebesar :

 biaya pengembangan / membeli = $204,000,

 biaya pemeliharaan = $32,000 per tahun,

maka masa pengembalian / payback periode dari proyek CAD ini adalah : Biaya pengeluaran (cost ) = biaya penghematan ( benefit )

204,000 + x  32,000 = 96,000  x 64,000  x = 204,000

x = 3.2 tahun

Ini berarti setelah 3.2 tahun, barulah proyek CAD ini memberikan titik impas (break even). Setelah ini barulah memberikan keuntungan.

Grafik :

3.2 204

307

MASA KEUNTUNGAN (PROFIT)

MASA KERUGIAN (LOSS)

BREAK EVEN POINT

PENGHEMATAN DENGAN SISTEM CAD

BIAYA DENGAN SISTEM CAD

BIAYA PENGHEMATAN (DALAM RIBUAN)

PAYBACK PERIODE (MASA PENGEMBALIAN)

TAHUN

PERENCANAAN software

Untuk melaksanakan pengembangan proyek software dan berhasil, kita harus mengerti : 1. Ruang lingkup pekerjaan yang dilakukan

2. Sumber yang diinginkan 3. Usaha dan biaya

4. Jadual yang dikehendaki Perencanaan software adalah :

(25)

dalam proses rekayasa software yang akan memberikan pengertian kepada 4 hal di atas.

Perencanaan software mengkombinasikan 2 tugas, yaitu : 1. Riset

2. Estimasi

Tujuan perencanaan software :

Memberikan suatu kerangka yang memungkinkan manajer membuat estimasi yang beralasan tentang sumber, biaya dan jadual.

Contoh soal :

Dari usaha ini, dihasilkan 2,900 LOC (banyaknya baris program). 200 LOC digunakan simulasi, dan testing tidak termasuk bagian dari software yang dioperasikan.

Produktivitasnya : 2700 LOC 9.0 per orang per bulan

= 300 LOC per orang per bulan.

Ada 4 orang software engineering yang masing-masing mampu menghasilkan 4000 LOC per tahun.

Bila mereka dipekerjakan dalam 1 team, maka proyek ada 6 jalur komunikasi yang mungkin (communication path). Setiap jalur komunikasi memerlukan waktu yang seharusnya digunakan untuk pengembangan Loding sebesaar 240 LOC per tahun.

Bila proyek 1 tahun tersebut mengalami keterlambatan jadwal dan tinggal 1 bulan lagi, perlu penambahan 3 orang lagi kedalam team tersebut.

Bila dianggap terjadi pengurangan produktivitas team, untuk setiap jalur komunikasi adalah sama, baik untuk pegawai lama dan baru.

Hitung berapa produktivitas team sebelum dan sesudah penambahan 3 orang tersebut, sekaligus jangka waktunya berbeda !!!

Jawab :

Jalur komunikasi 4 orang  ada 6 jalur (lihat gambar).

Produktivitas sebelum penambahan : = ( 4  4,000 ) - ( 240  6 ) = 16,000 - 1,440 = 14,560 LOC per tahun

Produktivitas setelah penambahan :

 Jika jalur komunikasinya berbeda :

= (4 4000) (3 4000 ) ( ) 12 2 6 240 15 240

12 2

      x

TUGAS USAHA,

per orang per bulan

Requirement 1.5

Design 3.0

Code 1.0

Test 3.5

Usaha yang dihasilkan

9.0

(26)

= 18000 - 2040

= 16960

 Jika jalur komunikasinya dianggap sama :

= (4 4000) (3 4000 ) ( ) 12 2 6 240 15

   

= 16000 + 2000 - ( 1440 + 3600 )

= 18000 - 5040

= 12960

proses desain software

Desain dalam fase pengembangan merupakan langkah pertama, di mana fase pengembangan merupakan fase kedua dalam siklus hidup software.

Segera sesudah kebutuhan software ditetapkan, dimulailah fase pengembangan yang terdiri dari 4 langkah berbeda :

1. Desain awal (preliminary design) 2. Detailed Design (Desain primeir) 3. Coding

4. Testing

Aliran informasi selama fase pengembangan dapat dilihat pada gambar di bawah ini.

FUNCTIONAL REQUIREMENT

PRELIMINARY DESIGN

INFORMATION

FLOW & STRUCTURE DETAILED DESIGN

SOFTWARE STRUCTURE

CODE & UNIT TEST SOFTWARE

PROCEDURE

TESTING TESTED

MODULS

INTEGRATED VALIDATED SOFTWARE

Kebutuhan software & aliran informasi ( Structure Information Software ) memulai langkah desain awal dengan menggunakan 1 dari beberapa metode desain struktur software untuk dikembangkan.

Struktur software yang juga disebut Arsitektur Software ini menjelaskan tentang hubungan antar elemen utama dari sebuah program. Desain terinci menterjemahkan elemen-elemen struktural ke dalam penjelasan software ( prosedur software ).

Source Code dihasilkan dan pengetesan awal dilakukan selama langkah pengkodean dan pengetesan unit hasilnya berupa model-model program yang sudah ditest.

Langkah terakhir dalam fase pengembangan adalah dilakukannya pengetesan integrasi dan validasi.

Fase pengembangan paling sedikit menyerap 75% dari biaya software baru. Ini berarti pengambilan keputusan dalam fase ini akan sangat mempengaruhi keberhasilan dalam implementasi software dan kemudahan dalam pemeliharaan software.

(27)

LANGKAH SEBELUMNYA DARI

"PRELIMINARY DESIGN"

ERROR YANG DILEWATKAN

ERROR YANG DIPERKUAT DENGAN FAKTOR PENGUAT X

ERROR BARU YANG DIHASILKAN

PERSENTASE EFISIENSI ERROR

YANG DAPAT DIDETEKSI

ERROR YANG DITERUSKAN KE LANGKAH BERIKUTNYA

DAM digunakan untuk memberikan gambaran tentang pembentukan dan pendeteksian error selama desain awal dari Desain Terinci dan Pengkodean.

Dengan model ini, kita dapat membandingkan besarnya biaya yang dikeluarkan dengan adanya error, baik untuk review maupun tanpa review.

(28)

Contoh DAM tanpa REVIEW :

Cara Kerja :

2. 6 + ( 4  1,5 ) + 25 = 37 37  0% = 0

37 - 0 = 37

3. 40 + ( 27  3 ) + 25 = 116 116  20% = 2320% = 23,2  23 116 - 23 = 93

4. 93 + 0 + 0

93  50% = 4650% = 46,5  46 93 - 46 = 47

5. 46 + 0 + 0 = 46 46  50% = 2300% = 23 46 - 23 = 23

6. 23 + 0 + 0 = 23

23  50% = 1150% = 11,5  11 23 - 11 = 12

Contoh DAM dengan REVIEW :

0 10

70%

2 1*1.5

25

50%

5 10*3

25

60%

24 0 0

50%

12 0 0

50%

6 0 0

50%

6 24 12

5

10 15 2

1 3 (1)

PRELIMINARY DESIGN

(2) DETAILED

DESIGN

(3) CODE / UNIT

TEST

(4) INTEGRATED

TEST

(5) VALIDATED

TEST

(6) SYSTEM TEST

(14) (36) (12) (6) (3)

(7)

3 ERROR LATEN 0

10

%

6 4*1.5 X=1.5

25

0%

10 27*3

X=3 25

20%

93 0 0

50%

46 0 0

50%

23 0 0

50%

23 93 46

10

27 37 6

4 10 (1)

PRELIMINARY DESIGN

(2) DETAILED

DESIGN

(3) CODE / UNIT

TEST

(4) INTEGRATED

TEST

(5) VALIDATED

TEST

(6) SYSTEM TEST

(0) (0) (23) (47) (23) (12)

11

(29)

1. ( 10 + 0 )  70% = 7

2. 5 + ( 1  1,5 ) + 25 = 28,5 28,5  50% = 1425% = 14,25  14 28,5 - 14 = 14,5  15

3. ( 10  3 ) + 5 + 25 = 60 60  60% = 3600% = 26 60 - 36 = 24

4. 0 + 0 + 24 = 24 24  50% = 1200% = 12 24 - 12 = 12

5. 12 + 0 + 0 = 12 12  50% = 600% = 6 12 - 6 = 6

6. 6 + 0 + 0 = 6 6  50% = 3 6 - 3 = 3

(30)

KEGIATAN BIAYA per ERROR

NON REVIEW REVIEW

Selama desain 1 0 x 1 = 0 21 x 1 = 21

Sebelum test ( coding ) 5 23 x 5 = 115 36 x 5 = 180 Selama test ( validated & integrated

test )

10 82 x 10 = 820 21 x 10 = 210 Setelah dipasarkan ( error laten ) 100 11 x 100 =

1100

3 x 100 = 300

Total biaya 2035 711

(31)

Soal Latihan no. 1 : Diketahui :

5 software engineering masing-masing mampu menyelesaikan 4000 LOC per tahun bila bekerja secara individu. Mereka bekerja sama dalam 1 team. Bila proyek 1 tahun tersebut mengalami keterlambatan dan tinggal 1 bulan lagi, perlu tambahan 1 software engineering lagi ke dalam team tersebut. Pengurangan produktivitas team untuk setiap jalur komunikasi adalah sama ( 200 LOC per tahun ) untuk menunjuk adanya proses belajar bagi staff baru.

Ditanya :

Hitung produktivitas team sebelum dan sesudah penambahan seorang software engineering !!!

Jawab :

 Sebelum :

= ( 4000 x 5 ) - ( 10 x 200 )

= 20000 - 2000 = 18000 LOC / tahun

 Sesudah

 Jalur sama :

= (5 4000 1 4000 ) ( )

12 1 10 200 5 200

     

= { (20000+333,3) - 3000 }

= 20333,3 - 3000 = 17333,3 LOC / tahun

 Jalur beda :

= 20333 3 2000 5 200 12 1 , (   )

= 20333,3 - 2083,3 = 18250 LOC / tahun

(32)

Soal Latihan No. 2a :

Gambar dan buatlah perbandingan biaya, baik untuk Review maupun NonReview dari ilustrasi berikut ini:

1. Pada tahap rancangan awal : A. Kesalahan yang timbul = 10 B. Efisiensi dengan review = 70%

2. Pada tahap rancangan terinci :

A. Sebanyak 50%, kesalahan dilewatkan, sisanya diperkuat dengan faktor penguat = 2

B. Kesalahan baru yang muncul = 25 C. Efisiensi dengan review = 50%

3. Pada tahap coding / unit test

A. sebanyak 40% kesalahan dilewatkan, dan sisanya diperkuat dengan faktor penguat 3.

B. Efisiensi dengan review 80%, dan non review 50%.

C. Kesalahan baru yang muncul = 20%.

4. Pada tahap selanjutnya dilakukan perbaikan dengan efisiensi masing-masing = 50%

5. Biaya yang harus ditanggung untuk setiap kesalahan adalah : A. Selama rancangan = 2 satuan harga

B. Sebelum test = 5 satuan harga C. Selama test = 20 satuan harga

D. Setelah dipasarkan = 60 satuan harga Jawab :

TABEL PERBANDINGAN BIAYA ANTARA DENGAN REVIEW & NON REVIEW

KEGIATAN BIAYA per

ERROR

NON REVIEW REVIEW Selama desain

Sebelum test ( coding )

Selama test ( validated & integrated test )

Setelah dipasarkan ( error laten ) Total biaya

(33)

Soal Latihan No. 2b :

Gambar dan buatlah perbandingan biaya, baik untuk Review maupun NonReview dari ilustrasi berikut ini:

1. Pada tahap rancangan awal : A. Kesalahan yang timbul = 10 B. Efisiensi dengan review = 80%

2. Pada tahap rancangan terinci :

A. Sebanyak 60%, kesalahan dilewatkan, sisanya diperkuat dengan faktor penguat = 3

B. Kesalahan baru yang muncul = 20 C. Efisiensi dengan review = 40%

3. Pada tahap coding / unit test

A. sebanyak 30% kesalahan dilewatkan, dan sisanya diperkuat dengan faktor penguat 2.

B. Efisiensi dengan review 75%, dan non review 45%.

C. Kesalahan baru yang muncul = 25%.

4. Pada tahap selanjutnya dilakukan perbaikan dengan efisiensi masing-masing = 60%

5. Biaya yang harus ditanggung untuk setiap kesalahan adalah : A. Selama rancangan = 3 satuan harga

B. Sebelum test = 10 satuan harga C. Selama test = 30 satuan harga

D. Setelah dipasarkan = 70 satuan harga Jawab :

TABEL PERBANDINGAN BIAYA ANTARA DENGAN REVIEW & NON REVIEW

KEGIATAN BIAYA per

ERROR

NON REVIEW REVIEW Selama desain

Sebelum test ( coding )

Selama test ( validated & integrated test )

Setelah dipasarkan ( error laten ) Total biaya

(34)

BAB III KONSEP MANAJEMEN PROYEK 3.1 SPEKTRUM MANAJEMEN

Manajemen proyek Perangkat Lunak (PL) yang efektif berfokus pada 3 P, dimana harus berurut yaitu

PEOPLE : Elemen terpenting dari suksesnya proyek PRODUCT /

PROBLEM

: Software yang dikembangkan

PROCESS : Suatu kerangka kerja dari suatu aktifitas dan kumpulan tugas untuk memgembangkan PL

PROJECT (tambahan)

: Penggabungan semua kerja untuk membuat produk menjadi kenyataan

3.2 PEOPLE ( MANUSIA)

SEI telah mengembangkan suatu model kematangan kemampuan manajemen manusia (People Management Capability Manurity Model ( PM – CMM ) ) untuk mempertinggi kesiapan organisasi PL dalam membuat aplikasi yang semakin kompleks sehingga menarik, menumbuhkan, memotivasi, menyebarkan dan memelihara bakat yang dibutuhkan untuk mengembangkan kemapuan mengembankan PL mereka.

Model kematangan manajemen manusia membatasi pada Rekruitmen

Seleksi

Manajemen unjuk kerja Pelatihan

Kompensasi

Pemgembangan karir Desain kerja & organisasi Perkembangan karir tim / kultur Manusia dalam pengembangan PL terdiri dari :

a. Player (Pemain)

- Manajer Senior menentukan isu bisnis yang mempengaruhi dalam proyek

- Manajer Proyek merencanakan, memotivasi, mengorga- nisir,mengontrol aplikasi/produk

(35)

- Pelaksana mempunyai ketrampilan teknik untuk merekayasa aplikasi

- Pelanggan menentukan jenis kebutuhan bagi PL yang akan dibuat

- Pemakai akhir yang berinteraksi dengan PL yang dibuat

b. Team Leader (Pimpinana Tim)

Manajemen proyek merupakan kegiatan manusia intensif sehingga memerlukan praktisi yang cakap.

Model Kepemimpinan (MOI yaitu Motivasi, Organisasi, gagasan & Inovasi) menurut Jerry Weinberg.

Karakteristik yang menentukan manajer proyek efektif yaitu - Pemecahan Masalah - Prestasi

- Identitas manajerial - Pengaruh & pembentukan tim

(36)

c. The Software Team ( Tim PL)

Sumber daya manusia kepada sebuah proyek yang akan membutuhkan n manusia yang bekerja selama k tahun , ada beberapa alternatif untuk menentukan sumber daya tersebut :

- n orang mengerjakan tugas fungsional berbeda sebanyak m dengan sedikit kombinasi kerja & koordinasi tanggung jawab manajer proyek - n orang mengerjakan tugas fungsional berbeda sebanyak m (m<n) ,

seorang pemimpin tim ad hoc dapat dipilih, koordinasi bertanggung jawab manajer PL

- n orang diatur di dalam tim , setiap orang mengerjakan >= 1 tugas fungsional, setiap tim mempunyai sebuah struktur spesifik yang ditentukan untuk semua tim yang bekerja pada sebuah proyek, koordinasi dikontrol oleh tim itu sendiri dan oleh manajer proyek PL ( sistem ini paling produktif)

Mantei, mengusulkan 3 organisasi tim yaitu:

 Demokrasi terdesentralisasi (DD)

Tidak memiliki pimpinan permanen dan koordinator dipilih untuk tugas pendek bila tugas berbeda maka pimpinan berbeda. Keputusan diambil oleh konsensus kelompok dan komunikasi secara horizontal

 Terkontrol terdesentralisasi (CD)

Tim memiliki pimpinan tertentu dan memiliki pimpinan skunder untuk sub-sub masalah. Pemecahan masalah merupakan aktifitas dari kelompok dan implentasi pemecahan pada sub-sub kelompok. Komunikasi antar kelompok dan orang bersifat horizontal tetapi komunikasi secara vertical berjalan bila hirarki kontrol berjalan .

 Terkontrol tersentralisasi (CC)

Pemecahan tingkat puncak dan internal tim oleh pimpinan tim.

Komunikasi dilakukan secara vertical.

7 faktor proyek yang harus dipertimbangkan dalam rencanakan tim RPL yaitu :

(37)

1. Kesulitan pada masalah

2. Ukuran program yang dihasilkan (LOC / function) 3. Waktu tim (umur)

4. Tingkat dimana dapat dimodularitasi 5. Kualitas serta keandalan

6. Kepastian tanggal penyampaian 7. Tingkat sosiabilitas / komunikasi

PENGARUH KARAKTERISTIK PROYEK PADA STRUKTUR TIM

Tipe Tim DD CD CC

Tingkat Kesulitan

o Tinggi x

o Rendah x x

Ukuran

o Besar x x

o Kecil x

Umur Tim

o Singkat x x

o Panjang x

Modularitas

o Tinggi x x

o Rendah x

Keandalan

o Tinggi x x

o Rendah x

Tanggal Pengiriman

o Ketat/pasti x

o Longgar x x

Sosiabilitas

o Tinggi x

o Rendah x x

Constantine, mengusulkan 4 paradigma organisasional bagi tim RPL 1. Paradigma Tertutup

Membentuk hirarki otoritas tradisional ( mirip tim CC) tetapi kurang inovatif 2. Paradigma Random

Membentuk tim longgar & tergantung pada inisiatif individual tim, untuk inovasi sangat baik(unggul) bila unjuk kerja tim teratur.

(38)

3. Paradigma Terbuka

Membentuk tim dengan cara tertentu sehingga banyak kontrol, inovasi banyak . Cocok untuk masalah yang kompleks tetapi tidak seefesien tim lainnya

4. Paradigma Sinkron

Mengorganisasikan tim untuk bekerja pada bagian-bagian kecil masalah dengan komunikasi aktif pada tim

d. Coordinatian & Communication Issue (masalah koordinasi & komunikasi)

Proyek PL mengalami kesulitan dikarenakan :

 Skala usaha pengembangan yang besar sehingga kesulitan dalam mengkoordinasi anggota tim & Kompleksitas yang semakin besar

 Ketidakpastian mengakibatkan perubahan terus menurus pada proyek

 Interoperabilitas merupakan ciri dari sistem dan menyesuaikan dengan batasan sistem

Kraul & Streeter menguji sekumpulan teknik koordinasi proyek yang dibagi atas

 Pendekatan impersonal, formal penyampaian & dokumen RPL (memo, laporan dll)

 Prosedure interpersonal, formal aktifitas jaminan kualitas yang diterapkan kepada produk kerja RPL (status pengkajian , perancangan &

inpeksi kode)

 Prosedure interpersonal, informal pertemuan kelompok untuk menyebarkan informasi & pemecahan masalah serta pengembangan staf

 Komunikasi teknik, surat elektronis, web sites, teleconferens, papan buletin elektronik

 Jaringan interpersonal diskusi informal pada orang diluar proyek untuk mendapatkan pengalaman sehinnga mendukung kerja proyek

(39)

3.3 PROBLEM / PRODUCT

Analisis yang mendetail mengenai kebutuhan PL akan memberikan informasi untuk menghitung perkiraan kuantitatif & perencanaan organisasi. Tetapi itu sulit karena informasi yang diberikan customer tidak lengkap.

Ruang lingkup masalah dibatasi dengan : - Konteks

PL yang dibangun memenuhi sistem, produk / konteks bisnis yang lebih besar serta batasan yang menentukan hasilnya

- Tujuan informasi

Objek pelanggan yang dihasilkan sbg output dr PL yang dapat digunakan sebagai input

- Fungsi & unjuk kerja

PL digunakan untuk mentransformasikan input menjadi output

Pernyataan ruang lingkup dibatasi (data jumlah pemakai simultan, ukuran pengiriman, waktu mak respon ), batasan /& jangka waktu dicatat (biaya produk membatasi jumlah memori) & factor mitigasi (algoritma yang dibutuhkan software aplikasi (pemograman))

Dekomposisi Masalah / pembagian masalah diterapkan pada : - Fungsionalitas yang disampaikan

- Proses yang dipakai

3.4 PROCESS

Proses PL memberikan suatu kerangka kerja dimana rencana komprehensip bagi pengembangan PL yang dapat dibangun dengan

- Sejumlah kumpulan tugas yang berbeda, kemampuan penyampaian & jaminan kualitas

- Aktifitas pelindung, jaminan kualitas PL, manajemen konfigurasi PL &

pengukuran

(40)

Model PROSES : 1. Sekunsial Linier

Classic Life Cycle / model air terjun 2. Prototipe

Perencanaan kilat untuk konstruksi oleh prototype 3. Rapid Aplication Development (RAD)

Model sekunsial linier yang menekankan siklus pengembangan yang sangat pendek dengan pendekatan konstruksi berbasis komponen

4. Inkremental (Pertambahan)

Menggabungkan elemen-elemen model sekunsial linier dengan filosopi prototype iterative khusus untuk staffing

5. Spiral

Merangkai sifat iterative dari prototype dengan cara kontrol & aspek sistematis dari sekunsial linier

6. Rakitan Komponen

Paradigma orientrasi obyek menekankan kreasi kelas yang mengenkapsulasi data & algoritma yang dipakai untuk memanipulasi data (gabungan dengan karakter spiral)

7. Perkembangan Komponen

Sering dipakai untuk mengembangkan aplikasi client server Aktifitas dibagi menjadi :

- dimensi sistem : desain, assembly & pemakai - dimensi komponen : desain & realisasi

8. Metode Formal

Mengkhususkan, mengembangkan, & menverifikasi sistem berbasis komputer dengan notasi matematis yang tepat (Clean room RPL)

9. Teknik Generasi Keempat

Serangkaian alat bantu PL yang secara otomatis memunculkan kode sumber yang berdasarkan pada spesifikasi perekayasaan

1,2 3 (konvensional) sisanya evolusioner

Harus ditentukan model paling banyak memawakili pelanggan, karakteristik produk

& lingkungan proyek

Serangkaian aktifitas kerja PL : 1. Komunikasi pelanggan 2. Perencanaan

3. Analisa Resiko 4. Rekayasa

(41)

5. Konstruksi dan rilis 6. Evaluasi Pelanggan Dekomposisi Proses

Bila batasan waktu yang ketat diberikan dan masalah dapat dipecah-pecah, model RAD mungkin pilihan yang paling tepat.

Tugas kerja yang actual bervariasi sehingga dekomposi proses dimulai pada saat bagaimana menyesesaikan kerja proses secara umum.

3.5 PROYEK

Profesional industri sering mengacu pada aturan 90-90 yaitu pada saat mendiskusikan proyek PL yang sukar maka 90 % dr sistem yang pertama menyerap 90 % dari usaha & waktu yang diberikan. 10 %terakhir mengambil 90 % lain dari usaha & waktu yang diberikan.

Dr penyataan tersebut proyek mengalami kesulitan yaitu 1. Kemajuan mengalami kecacatan

2. Tidak ada cara untuk mengkalibrasi kemajuan karena tidak memperoleh matrik kuantitatif

3. Rencana proyek belum dirancang untuk menakomodasi sumber daya yang diperlukan pada akhir sebuah proyek

4. Resiko-resiko belum mempertimbangkan secara eksplisit serta belum dibuat rencana untuk mengurangi, mengatur & memonitor

5. Jadual yang ada tidak realistis & cacat

Untuk mengatasi masalah tersebut maka diperlukan waktu pada awal proyek untuk membangun rencana yang realistis guna memonitor rencana proyek selama berjalan

& pada keseluruhan proyek serta mengontrol kualitas serta perubahannya.

(42)

BAB 4

PROSES PERANGKAT LUNAK & METRIK PROYEK

Lord Kelvin berkata :

Bila Anda dapat mengukur apa yg sedang Anda bicarakan dan mengekspresikannya dalam angka, berarti Anda memahaminya.

Tujuan pengukuran perangkat lunak adalah :

 Untuk menyatakan kualitas produk

 Untuk menilai kulitas manusia yg terlibat dalam pembuatan produk.

 Untuk menilai keuntungan pemakaian metode & alat bantu yg baru.

 Sebagai dasar untuk melakukan perkiraan.

 Untuk membantu penyesuaian pemakaian alat bantu yg baru atau pelatihan tambahan.

Metrik perangkat lunak mengacu pada pengukuran perangkat lunak komputer.

Pengukuran digunakan untuk membantu perhitungan, kontrol kualitas, perkiraan produktivitas, & kontrol proyek, serta untuk membantu mengambil keputusan taktis pada saat proyek sudah berjalan.

PENGUKURAN, METRIK, DAN INDIKATOR Measure (mengukur) :

Mengindikasikan kuantitatif dari luasan, jumlah, dimensi, kapasitas, atau ukuran dari atribut sebuah proses atau produk.

Measurement (pengukuran) :

KEGIATAN MENENTUKAN SEBUAH MEASURE (PENGUKURAN)

Metrics (metrik) :

Ukuran kuantitatif dari tingkat dimana sebuah sistem, komponen, atau proses memiliki atribut tertentu.

RPL mengumpulkan pengukuran & mengembangkan metrik sehingga diperoleh suatu indicator.

Indicator (indicator) :

Sebuah metrik atau kombinasi dari metrik yg memberikan pengetahuan kedalam proses PL, sebuah proyek PL, atau produk itu sendiri.

Referensi

Dokumen terkait

Sesungguhnya Pasal 149 UUK dan PKPU telah menentukan secara pasti tanpa alasan apapun yang menjadi dasar pertimbangan MA pada kasasi sedangkan dasar pertimbangan

Namun, pada analisis statistik status gizi terhadap kelompok diagnosis DBD didapatkan bahwa tidak terdapat perbedaan bermakna status gizi terhadap kelompok diagnosis DBD

Menurut Undang-Undang No.2 Tahun 2008 tentang partai politik, khususnya Pasal 11 Ayat 5 yaitu dimana salah satu fungsi partai politik adalah sebagai sarana rekrutmen politik dalam

Seringkali pihak penyusun menentukan syarat- syarat yang cukup memberatkan apalagi kontrak tersebut disajikan dalam bentuk kontrak standart (perjanjian di bawah

SQL Server 2005 Integration Services atau biasa disingkat dengan SSIS adalah sebuah tool yang digunakan untuk melakukan proses Extract, Transform, and Load (ETL) dan

Dari hasil penelitian menunjukkan bahwa, 1 tingkat ekonomi berpengaruh terhadap religiusitas masyarakat Desa Ngadas Kecamatan Poncokusumo Kabupaten Malang sebesar 0,237, hal ini

Hasil penelitian ini secara empiris berbeda dari hasil penelitian sebelumnya yang dilakukan oleh Sumarni (2011) pada variabel turnover intention dan kinerja

sistem infrmasi perpustakaan berbasis web ini menggunakan database MySG4 sebagai tempat penyimpanan data* sehingga gampang dikella dan terstruktur  dengan