Anda di halaman 1dari 21

A.

KONSEP DASAR REKAYASA PERANGKAT LUNAK


a. Konsep Dasar
Engineering)

Rekayasa

Perangkat

Lunak

(Software

Arti dan definisi perangkat lunak


Perangkat lunak atau software merupakan alat yang tidak terlihat yang
berisi instruksi-instruksi untuk mempermudah pekerjaan manusia.
Instruksi-instruksi tersebut ditulis oleh manusia untuk mengaktifkan fungsi
dari perangkat keras komputer. Pada dasarnya, perangkat lunak berbeda
dengan program komputer. Perangkat lunak adalah seluruh perintah yang
digunakan untuk memproses informasi yang berupa program atau
prosedur. Program adalah kumpulan perintah yang dimengerti oleh
komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh
pengguna dalam memproses informasi (OBrien, 1999). Pengertian RPL
sendiri adalah suatu disiplin ilmu yang membahas semua aspek [roduksi
perangkat lunak, mulai dari tahap awal, yaitu analisa kebutuhan pengguna,
menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean,
pengujian sampai pemeliharaan sistem setelah digunakan.
Konsep dasar rekayasa perangkat lunak mempunya dua hal pokok,
yaitu lunak (software) dan komponen perekayasa. Menurut IEEE (Institute
of Electrical and Electronics Engineers), perangkat lunak (softwara)
merupakan kumpulan dari object yang membentuk konfigurasi yang
didalamnya termasuk program, dokumen, dan data. Sedangkan perekayasa
software bertugas mengembangkan produk perangkat lunak yang
dibedakan menjadi 2 tipe, yaitu:
- Produk generik : dibangun untuk dijual ke pengguna yang berbedabeda, misalnya perangkat lunak untuk PC seperti Excel atau Word.
- Produk pesanan (Bespoke/custome) : untuk pengguna
khusus/pemesan sesuai kebutuhannya.
Terdapat empat kegiatan proses dasar, meliputi :
Spesifikasi perangkat lunak : fungsionalitas perangkat lunak
dan batasan kemampuan operasinya harus didefinisikan.
Pengembangan perangkat lunak : pengembangan terhadap
produk perangkat lunak yang memenuhi spesifikasi perangkat
lunak.
Validasi perangkat lunak : perangkat lunak harus diva;idasi
untuk menjamin bahwa perangkat lunak melakukan apa yang
diinginkan oleh user.
Evolusi perangkat lunak : perangkat lunak harus berkembang
untuk memenuhi kebutuhan pelanggan yang berubah-ubah.
Tahap-tahap dalam pembuatan perangkat lunak :
Fase analisa kelayakan dan eksplorasi konsep .
Mengidentifikasi kebutuhan untuk melakukan proyek
otomatisasi proses dan menganalisa kelayakan proyek.
Fase
spesifikasi
persyaratan.
Menganalisa
dan
mendokumentasikan persyaratan sistem. Dokumentasi yang
dilakukan adalah apa yang akan dilakukan oleh sistem yang

diproyeksikan, unsur apa yang akan diperlukan oleh produk


[erangkat lunak serta karakteristik apa yang harus dimiliki oleh
unsur produk.
Fase desain. Mendesain sistem dan mendokumentasikan sistem
dengan menentukan cara pembuatan sistem software untuk
memenuhi persyaratannya.
Fase implementasi. Menulis perangkat lunak.
Fase pengujian. Mencoba perangkat lunak untuk mengetahui
apakah telah memnuhi persyaratannya.
Fase perawatan. Mengikuti penempatan produk perangkat
lunak, membetulkan kesalahan, mengubah, dan memperluas
sistem
Jenis-jenis Perangkat lunak
Jenis-jenis perangkat lunak (Pressman, 2005) :
System software. Prorgam yang dibuat untuk melayani program
lain (kompiler dll).
Application software. Standalone untuk menyelesaikan tugas
yang spesifik.
Engineering/scientific software. Software untuk keperluan
pengetahuan (orbit planet, volkanologi, simulasi, dll)
Embedded software. Software untuk memonitor dan
mengontrol perangkat lunak yang terintegrasi (sistem skala
bahan bakar pada kendaraan, speedometer, dll).
Product-line software. Software dalam lingkungan tertentu
untuk melakukan beberapa task (komponen office seperti word
processor, spreadsheet, entertainment, grafis, dll).
Web-applications. Hypertext document yang dipublikasikan
melalui internet.
Artificial intelligence software. Software yang memiliki
kecerdasam (prediksi, pengambilan keputusam, rekognisi dll,
misalnya game, robot identifikasi voice maupun image).
Kategori perangkat lunak secara umum dikelompokkan menjadi:
Perangkat lunak sistem. Sekumpulan program yang ditulis
untuk melayani program-program yang lain, seperti kompiler,
editor, dan utilitas pengatur file.
Perangkat
lunak
real-time
program-program
yang
memonitor/menganalisa/mengontrol kejadian dunia nyata pada
saat terjadinya (real time event).
Perangkat lunak bisnis. Memroses informasi bisnis seperti
payroll, inventory.
Perangkat lunak teknik dan ilmu pengetahuan. Ditandai dengan
penggunaan algoritma number cruching.
Embedded software. Produk yang ada dalam ROM (Read Only
Memory) dan dipakai untuk mengontrol hasil dan sistem untuk
keperluan konsumen dan pasar industri.
Perangkat lunak komputer personal sesuai kebutuhan personal
seperti pengolah kata, angka, dan manajemen database.

Perangkat lunak kecerdasan buatan. Menggunakan algoritma


non-numeris untuk memecahkan masalah kompleks yang tidak
sesuai untuk per hitungan atau analisis secara langsung.
Perangkat lunak yang beredar luas dipasaran :
Perangkat lunak aplikasi > software untuk membuat tutorial
(Microsoft Office, Winamp, Adobe Reader, Photoshop).
Perangkat lunak bahasa pemrograman > bahasa buatan yang
terdiri dari sintaks dan kata kunci yang telah ditetapkan (C++,
Java, Cobol, C).
Perangkat lunak sistem operasi > terdiri dari sistem operasi
(Microsoft Windows, Mac OSX, Linux, sistem operasi android
untuk smartphone).
Perangkat lunak middleware > terdiri dari layanan yang
berinteraksi dengan perangkat lunak apllikasi atau software
jenis lain pada komputer, contohnya werserver dan server
aplikasi (webserver : Apache HTT Server, Microsoft Internet
Information services (IIS), dan Sun Java System Web Server,
aplikasi server : search engine (Google, Bing, Yahoo)).
Perangkat lunak device driver > untuk mengontrol hard disk,
printer, DVD/CD drive, monitor atau keseluruhan hardware
terhadap komputer.

b. Tanggung Jawab Profesional Dan Etika


Secara umum, perilaku etis yang diharapkan dari para profesional
komputer:
Jujur dan adil; memegang kerahasiaan; memelihara kompetensi
profesi; memahami hukum yang terkait; menghargai dan
melindungi kerahasiaan pribadi; menghindari merugikan pihak
lain; dan menghargai hak milik.
Berbagai contoh kode etik profesi komputer:
IEEE-CS/ACM (Software Engineering Code of Ethics and Professional
Practice)
ACM Code of Ethics and Professional Conduct
British Computer Society Code of Conduct and Code of Good Practice
IEEE-CS/ACM, dikembangkan berdasarkan 8 prinsip:
1. Kepentingan umum
Pengembang sistem seharusnya bertindak konsisten dengan kepentingan
umum.
2. Klien dan atasan
Pengembang sistem seharusnya bertindak dalam cara memberikan
perhatian terbesar pada klien atau atasannya.
3. Produk
Pengembang sistem seharusnya meyakinkan bahwa produknya dan
segala perubahannya memnuhi standar profesional tertinggi yang
mungkin.
4. Keputusan

5.

6.

7.

8.

Pengembang sistem
seharusnya
memelihara
integritas
dan
independensinya dalam membuat suatu keputusan profesional.
Manajemen
Manajer/pemimpin pengembangan sistem seharusnya mengikuti dan
mendorong pendekatan etis terhadap manajeman pengembangan sistem.
Profesi
Pengembang sistem seharusnya menaikkan integritas dan reputasinya
konsisten dengan kepentingan umum.
Rekan sejawat
Pengembang sistem seharusnya adil dan memberi dukungan kepada
rekan sejawatnya.
Diri sendiri
Pengembang sistem seharusnya belajar terus terkait dengan praktik
profesinya dan seharusnya mendukung pendekatan etis dalam praktik
profesinya.

Pedoman tambahan untuk profesional TI


Pahami apa itu keberhasilan. Pengembang (terutama) dan pengguna
sistem komputer harus melihat keberhasilan sebagai sesuatu yang
melampaui sekedar penulisan kode program
Kembangkan untuk pengguna. Untuk menghasilkan sistem yang berguna
dan aman, pengguna harus dilibatkan dalam tahap-tahap pengembangan
sistem.
Rencanakan dan jadwalkan secara seksama. Memperhatikan kedetilan,
lakukan dengan seksama dan hati-hati sewaktu membuat perencanaan dan
penjadwalan proyek serta sewaktu membuatkan penawaran.
Mengkaji penggunaan kembali perangkat lunak. Jangan mengasumsikan
bahwa perangkat lunak yang sudah ada aman dan dapat digunakan
kembali
Melindungi. Perlu jaminan yang meyakinkan akan keamanan sistem
Jujur.
Jujur dan terbuka mengenai kemampuan, keamanan, dan
keterbatasan dari perangkat lunak.
Menghadapi masalah profesional yang terkait etika
Brainstorming
Daftarkan risiko, isu, masalah, dan akibat yang ada
Daftarkan pihak-pihak yang terlibat
Daftarkan tindakan/perbuatan yang mungkin
Analisis
Identifikasi tanggung jawab dari pembuat keputusan
Identifikasi hak-hak dari pihak-pihak yang terlibat
Pertimbangkan dampak dari pilihan-pilihan tindakan terhadap
pihak-pihak tersebut.
Temukan pedoman dalam kode etik profesi anda (jika ada).
Kategorikan tiap pilihan tindakan sebagai wajib secara etis,
dilarang secara etis, atau dapat diterima secara etis
Pertimbangkan manfaat dari tiap pilihan tindakan, dan pilihlah
salah satu

c. Siklus Hidup Perangkat Lunak (SWDLC / Software Development


Life Cycle)
Software Development Life Cycle (SDLC) adalah sebuah siklus hidup
pengembangan perangkat lunak yang terdiri dari beberapa tahapan-tahapan
penting dalam membangun perangkat lunak yang dilihat dari segi
pengembangannya. Proses membangun sistem dibagi menjadi beberapa langkah
besar yang masing-masing dikerjakan oleh tim yang berbeda. SDLC tidak hanya
penting untuk proses produksi software tetapijuga penting untuk proses
maintenance software itu sendiri.
Terdapat empat metodologi penting dalam pengentahuan software berbasis
SDLC, yaitu :
1. Waterfall Model (Classis Life Cycle)
Model yang paling banyak digunakan karena melakukan pendekatan
secara sistematis dan urut mulai dari level kebutuhan sistem menuju ke
tahap analisis, desain, coding, testing/verification, dan maintenance. Roger
S. Pressman memecah model ini menjadi 6 tahapan, yaitu:
System / Information engineering and Modelling (Project
Definition) : diawali dengan mencari kebutuhan dari keseluruhan
sistem yang akan diaplikasiakn ke dalam bentuk software. Kenapa?
Karena software harus berinteraksi dengan elemen seperti
hardware, database.
Software Requirements Analysis : pencarian kebutuhan
diintensifkan dan difokuskan pada software untuk mengetahui sifat
dari program yang akan dibuat, maka para software engineer harus
mengerti tentang domain informasi dari software (misal fungsi
yang dibutuhkan, user interface) hal ini harus didokumentasikan
dan ditujukkan kepada pelanggan.
Desain : proses untuk mengubah kebutuhan-kebutuhan diatas
menjadi representasi ke dalam bentuk blueprint software
sebelum coding dimulai. Hal ini harus didokumentasikan sebagai
konfigurasi dari software.
Coding : desain diubah ke bentuk yang dimengerti oleh mesin,
yaitu ke dalam bahasa pemrograman. Tahap ini merupakan
implementasi dari tahap desain yang secara teknis dikerjakan oleh
programmer
Testing/verification : sesuatu yang dibuat harus diujicobakan, agar
software bebas dari error, dan hasilnya sesuai dengan kebutuhan
yang sudah didefinisikan sebelumnya.
Maintenance : pemeliharaan software harus termasuk dengan
pengembangan, karena pada software akan ditemukan errors kecil
yang tidak ditemukan sebelumnya serta adanya penambahan fiturfitur yang belum ada pada software. Pengembangan diperlukan
ketika adanya perubahan dari eksternal perusahaan (pergantian
sistem operasi atau perangkat lain).
Bagan dari Waterfall Model :

Keuntungan :
Estimasi proses lebih
baik
Jadwal lebih menentu
Proses menjadi teratur

Kelemahan :
Bersifat kaku
Membutuhkan daftar
kebutuhan yang
lengkap di awal.

2. Prototype Model
Pendekatan yang secara langsung mendemonstrasikan bagaimana sebuah
perangkat lunak atau komponen-komponen perangkat lunak bekerja dalam
lingkungannya sebelum tahapan konstruksi aktual dilakukan (Howard,
1997). Beberapa model prototype :
Reusable prototype : prototype yang ditransformasikan menjadi
produk final.
Throwaway prototype : prototype yang dibuang begitu selesai
menjalankan maksudnya.
Input/output prototype : prototype yang terbatas antar muka
pengguna (user interface)
Processing prototype : prototype yang meliputi perawatan file dasar
dan proses-proses transaksi.
System prototype : prototype yang berupa model lengkap dari
perangkat lunak
Proses pada model prototyping :
Pengumpulan kebutuhan : developer dan klien bertemu dan
menentukan tujuan umum, kebutuhan diketahui dan gambaran
bagian-bagian yang dibutuhkan berikutnya. Di tahap ini, tidak
membicarakan detil kebutuhan.
Perancangan : rancangan mewakili semua aspek software yang
diketahui dan menjadi dasar dari prototype.

Evaluasi prototype : klien mengevaluasi prototype yang dibuat dan


digunakan untuk memperjelaskebutuhan software.
Bagan dari Prototype Model :

Keuntungan :

Pemodelan membutuhkan partisipasi aktif dari end-user.


Perubahan dan iterai merupakan konsekuensi alami dari
pengembangan sistem sehingga end-user memiliki keinginan
merubah pola pikirnya.
Prorotyping adalah model aktif, tidak pasif, sehingga end-user
dapat melihat, merasakan, dan mengalaminya.
Kesalahan dapat dideteksi sejak dini.
Dapat meningkatkan kreatifitas karena membolehkan adanya
feedback dari end-user.
Mempercepat beberapa fase hidup dari programmer.

Kelemahan :

Memungkinkan terjadinya pengembalian terhadap kode,


implementasi, dan perbaikan siklus hidup yang digunakan untuk
mendonasi sistem informasi.
Tidak menolak kebutuhan dari fase analisis sistem.
Dapat mengurangi kreatifitas perancangan.

3. RAD (Rapid application Development) Model


Model yang tergolong dalam teknik bertingkat (incremental). RAD
menekankan pada siklus pembangunan pendek, singkat, dan cepat. RAD
mengadopsi model waterfall dan pembanguan dalam waktu singkat dicapai
dengan menerapkan component based construction. RAD menggunakan
metode berulang (iteratif) dalam mengembangkan sistem dimana model
bekerja (working model sistem dikonstruksikan di awal tahap
pengembangan dengan tujuan menetapkan kebutuhan (requirement) user
Fase-fase pada RAD :
Business modelling : aliran informasi diantara fungsi-fungsi bisnis
dimodelkan dengan suatu cara untuk menjawab pertanyaanpertanyaan (informasi apa yang mengendalikan proses bisnis?

Informasi apa yang dimunculkan? Siapa yang memunculkannya?


Kemana informasi itu pergi? Siapa yang memrosesnya?)
Data modelling : menyaring sebagian dari fase business modelling
ke dalam serangkaian objek data yang dibutuhkan untuk menopang
bisbis tersebut (karakteristik/atribut dari masing-masing objek
diidentifikasikan dan hubungan antara objek-objek tersebut
didefinisikan).
Prosess modelling : mentransformasikan fase dta modelling untuk
mencapai aliran informasi yang perlu bagi implementasi sebuah
fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah,
memodifikasi, menghapus, atau mendapatkan kembali sebuah
objek data.
Application modelling : RAD mengasumsikan pemakaian teknik
4G (generasi keempat). Selain menciptakan Perangkat Lunak
dengan bahasa pemrograman generasi ketiga yang konvensional,
RAD lebih banyak memproses kerja untuk memakai lagi
komponen program atau menciptakan komponen yang bisa dipakai
lagi.
Testing and turn over : karena menekankan pada reusability,
banyak komponen program yang telah diuji sehingga mengurangi
keseluruhan waktu pengujian. Tapi komponen baru harus diuji dan
semua interface harus dilatih secara penuh.

Bagan dari RAD Model :

Kelemahan :

Membutuhkan sumber daya yang besar.

Proyek dapat gagal karena waktu yang disepakati tidak dipenuhi.


Sistem tidak bisa dimodularisasi, tidak cocok untuk model RAD.
Resiko teknis tinggi karena kurang cocok untuk model RAD.

4. Agile Software Development


Jenis pengembangan sistem jangka pendek yang memerlukan adaptsi cepat
dan pengembang terhadap perubahan dalam bentuk apapun. Interaksi dan
personel lebih penting dari pada proses dan alat (software lebih penting
daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting
daripada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih
penting daripada mengikuti rencana. Menurut Agile Alliance, ada 12
prinsip yang mendorong keberhasilan dalam penerapan Agile Software
Development, yaitu :
Kepuasan

klien adalah prioritas utama dengan menghasilkan produk


lebih awal dan terus menerus.
Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
Penyerahan hasil/software dalam hitungan waktu beberapa minggu
sampai beberapa bulan.
Pihak bisnis dan pengembang harus bekerja sama setiap hari selama
pengembangan berjalan.
Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi
yang bekerja dalam lingkungan yang mendukun dan yang dipercaya
untuk dapat menyelesaikan proyek.
Komunikasi dengan berhadapan langsung adalah komunikasi yang
efektif dan efisien
Software yang berfungsi adalah ukuran utama dari kemajuan proyek
Dukungan yang stabil dari sponsor, pembangun, dan pengguna
diperlukan untuk menjaga perkembangan yang berkesinambungan
Perhatian kepada kehebatan teknis dan desain yang bagus
meningkatkan sifat agile
Kesederhanaan penting
Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang
mengatur dirinya sendiri
Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif
dan segera melakukannya.
Kelebihan :
Meningkatkan kepuasan kepada klien
Pembangunan system dibuat lebih cepat
Mengurangi resiko kegagalan implementasi

software dari segi non-

teknis
pada saat pembangunan system terjadi kegagalan,kerugian dar
segi materi relative kecil.

Jika

Berikut beberapa model proses yang terdapat pada model Proses Agile :
a. Extreme Programming (XP)

Dipublikasikan oleh Kenn Beck pada tahun 1999 dengan menggunakan


pendekatan OOP (Object Oriented Programming), terdiri dari aktivitas
perencanaan, aktivitas desain, aktivitas pengkodean dan aktivitas
pengujian. Skemanya adalah sebagai berikut :
b. Adaptive Software Development (ASD)
Di usulkan oleh Jim Highsmith sebagai tehnik untuk membangun
software dan sistem yang komplek, filosofi dari ASD adalah kolaborasi
manusia dan tim yang mengatur diri sendiri, aktivitas pada proses ASD
adalah speculation, collaboration & learning. Skemanya adalah sebagai
berikut:

Konsep Agile Adaptive Software Development (ASD)


c. Dinamic System Development Method
Menyajikan kerangka kerja (framework) untuk membangun dan
memelihara sistem dalam waktu yang terbatas melalui penggunaan
prototyping yang incremental dalam lingkungan yang terkondisikan.
Aktifitas pada DInamic System development method adalah Feasibility
Study, Business Study, Functional Model Iteration, Desain & Build
iteration, Implementation, skema dari model ini adalah sebagai berikut :

Konsep Agile Dinamic System Development


d. SCRUM
Diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990-an,
Pengembangan berikutnya dilakukan oleh Schwaber dan Beedle, Scrum
memiliki prinsip:

ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya,


dan emberdayakan satu sama lain
proses dapat beradaptasi terhadap perubahan teknis dan bisnis

proses menghasilkan beberapa software increment


pembangunan dan orang yang membangun dibagi dalam tim yang
kecil
dokumentasi dan pengujian terus menerus dilakukan setelah software
dibangun
proses scrum mampu menyatakan bahwa produk selesai kapanpun
diperlukan
Pada metode SCRUM terdapat aktivitas yang dijalankan sebagai berikut:
Backlog, Sprints, Scrum Meetings, Demo. Skema dari SCRUM adalah
sebagai berikut:

Konsep Agile SCRUM


e. Agile Modelling
AM adalah suatu metodologi yang praktis untuk dokumentasi dan
pemodelan sistem software. AM adalah kumpulan nilai-nilai, prinsip dan
praktek-praktek untuk memodelkan software agar dapat diaplikasian pada
software development proyek secara efektif. Prinsip dalam Agile
Modelling adalah sebagai berikut:

membuat model dengan tujuan


mengunakan multiple models
travel light
isi lebih penting dari pada penampilan
memahami model dan alat yang yang digunakan untuk membuat
software
adaptasi secara lokal
Skema dari agile modeling adalah sebagai berikut :

Konsep Agile Agile Modelling


Selain keempat metodologi diatas, masih ada beberapa metodologi yang
sering digunakan, yaitu :
Spiral Model
Fase-fase :
Planning : perencenaan dari perangkat lunak itu sendiri
(waktu pengerjaan, sumber daya yang dibutuhkan,
informasi yang menyangkut pengerjaan proyek).
Analisa Resiko : resiko yang mungkin terjadi baik secara
teknik maupun secara menejerial.
Engineering : pembuatan dari perangkat lunak itu sendiri.
Constructional and Release : perangkat lunak telah siap
diintalasikan ke pengguna.
Costumer Evaluation : adanya umpan balik dari pengguna
sekaligus sebagai dasar untuk pengembangan perangkat
lunak berikutnya.
Skema dari spiral model :

Proses perangkat lunak CCMI


Proses perangkat lunak yang dianggap sebagai modem saat ini
adalah CCMI (Capability Maturity Model Integration) yang
menganggap bahwa sebuah perangkat lunak harus terus-menerus
mengalami pematangan proses hingga tiba saatnya untuk
melakukan optimasi perangkat lunak itu sendiri. Tujuan utamanya
adalah mencari relasi antar proses yang saling terintegrasi dan
memiliki tahapan-tahapan tertentu dalam pelaksanaannya.
Tahapan CCMI :
Inisialisasi : organisasi masih belum dianggap stabil dalam
menjalankan proses.
Pengaturan : organisasi telah yakin terhadap proses yang
telah dijalankan dan mulai menerapkan kebijakan baru
sebagai dampak dari implementasi perangkat lunak yang
ada.
Pendefinisian : proses yang terjadi mulai disikapi secara
pro aktif oleh para pengguna dengan mulai mencari relasi
antar satu proses dengan proses yang lain.
Penganturan Secara Kuantitatif : hasil dari perangkat lunak
telah mampu diukur secara kuantitatif. Artinya, perangkat
lunak yang dihasilkan mulai dapat diandalkan dengan
adanya ukuran ukuran yang dinyatakan dengan angka
tertentu.
Optimasi : seluruh unsur organisasi tela dapat memikirkan
pengembangan lebih lanjut dari perangkat lunak yang ada.
Skema dari CCMI :

B. PERENCANAAN PROYEK PERANGKAT LUNAK


a. Observasi Pada Estimasi
Estimasi yang diperlukan dalam perancangan proyek perangkat lunak di
antaranya adalah sumber daya, biaya, dan jadwal sebagai usaha dalam
pengembangan perangkat lunak, mengakses informasi historis yang baik, dan
keberanian untuk melakukan pengukuran kuantitatif bila hanya data kualitatif saja
yang ada. Berikut adalah yang menimbulkan ketidakpastian dalam estimasi :
- Project complexity (kompleksitas proyek) berpengaruh kuat terhadap
ketidakpastian yang inheren dalam perencanaan. Komplekitas ini
merupakan pengukuran relatif yang dipengaruhi oleh kebiasaan dengan
usaha yang dilakukan sebelumnya.
- Project size (Ukuran proyek) Merupakan faktor penting yang dapat
mempengaruhi akurasi estimasi. Bila ukuran bertambah maka
ketergantungan di antara berbagai elemen perangkat lunak akan meningkat
dengan cepat.
- Structural uncertainty (Ketidakpastian struktural) Tingkat ketidakpastian
strutural juga berpengaruh dalam risiko estimasi. Dengan melihat kembali,
kita dapat mengingat lagi hal-hal yang terjadi dan dapat menghindari
tempat-tempat dimana masalah muncul.

b. Tujuan Perencanaan Proyek


Menyediakan sebuah kerangka kerja yang memungkinkan manajer membuat
estimasi yang dapat dipertanggungjawabkan terhadap sumber daya, biaya dan
jadwal pada awal proyek yang dibatasi oleh waktu.

c. Ruang Lingkup Perangkat Lunak


Ruang lingkup perangkat lunak menggambarkan :
Fungsi : yang digambarkan dalam statemen, dievaluasi untuk memberikan
awalan yang lebih detail pada saat memulai estimasi.
Kinerja : melingkupi pemrosesan dan kebutuhan waktu respon.
Batasan : mengidentifikasi batas yang ditempatkan pada perangkat lunak
oleh perangkat keras eksternal, memori, atau sistem lain.
Interface
Interface meliputi :

- Perangkat keras yang akan dipakai untuk mengerjakan perangkat


lunak dan peralatan secara tidak langsung mengontrol perangkat
lunak.
- Perangkat lunak yang telah ada digabungkan dengan perangkat
lunak yang baru.
- Pemakai yang akan menggunakan perangkat lunak melalui terminal
atau Input/Output.
- Prosedur pemakaian perangkat lunak.
Reliabilitas : pengukuran untuk reliability jarang dilakukan karena sulit
diterjemahkan ke domain perangkat lunak. Reability merupakankeandalan
perangkat lunak yang dihasilkan.
Informasi yang dibutuhkan pada awal pertemuan antara pelanggan dan
pengembang :

Pertanyaan berfokus pada pelanggan dengan tujuan keseluruhan serta


keuntungan (siapa dibelakang permintaan kerja ini? Siapa yang akan
memakai solusi ini? Apakah keuntungan ekonomi dari solusi yang sukses?
Adakah sumber daya lain bagi solusi ini?)
Pertanyaan yang memungkinkan analis memahamu masalaha dan
pelanggan menyuarakan persepsi tentang solusi (bagaimana
anda(pelanggan) menandai output yang baik yang dihasilkan oleh solusi
yang baik? Masalah apa yang dituju solusi ini? Dapatkah anda
menggambarkan lingkungan dimana solusi akan dipakai? Adalah batasan
atau isu kinerja khusu yang akan mempengaruhi?).

Konsep sebuah interface diiinterpretasi untuk menentukan :


Hardware yang mengeksekusi perangkat lunak dan device yang dikontrol
secara tidak langsung oleh perangkat lunak.
Software yang sudah ada harus dihubungkan dengan perangkat lunak yang
baru.
Manusia yang menggunakan perangkat lunak melalui keyboard atau I/O
lain.
Prosedur.

d. Sumber Daya
Sumber daya digambarkan sebagai suatu piramida : di dasar, perangkat keras
maupun lunak, sedangkan di atas adalah sumber daya manusia.
Sumber daya dispesifikasikan dengan 4 karaktristik :
Deksripsi sumber daya
Pernyataan ketersediaan
Waktu secara kronologis sumber daya yang digunakan
Durasi waktu aplikasi sumber daya
Time window
Macam-macam sumber daya :
Sumber daya manusia

Perencanaan sumber daya manusia memulai dengan mengevaluasi ruang


lingkup serta memilih kecakapan yang dibutuhkan untuk mnyelesaikan
pengembangan. Baik posisi organisasi maupun specialty. Jumlah orang
yang diperlukan untuk sebuah proyek perangkat lunak dapat ditentukan
setelah estimasi usaha pengembangan dibuat.
Sumber daya perangkat lunak reusable
Kreasi dan penggunaan kembali blok bangunan perangkat lunak yang
seharusnya dikatalog menjadi referensi yang mudah, distandarisasi untuk
aplikasi yang mudah, dan divalidasi untuk integrasi yang mudah. Ada
empat kategori sumber daya perangkat lunak yang harus dipertimbngkan
pada saat perencanaan berlangsung, yaitu :
Komponen off-the-self Perangkat lunak yang ada dapat diperoleh
dari bagian ketiga atau telah dikembangkan secara internal untuk
proyek sebelumnya.
Komponen full-experience Spesifikasi, kode, desain atau pengujian
data yang sudah ada yang dikembangkan pada proyek yang lalu
yang serupa dengan perangkat lunak yang akan dibangun pada
proyek saat ini.
Komponen partial-experience Aplikasi, kode, desain, atau data
pengujiaan yang ada pada proyek yang lalu yang dihubungkan
dengan perangkat lunak yang dibangun untuk proyek saat ini, tetapi
akan membutuhkan modifikasi substansial.
Komponen baru Komponen perangkat lunak yang harus dibangun
oleh tim perangkat lunak khususnya adalah untuk kebutuhan proyek
sekarang.
Lebih baik mengkhususkan syarat sumber daya perangkat lunak dari
awal. Dengan cara ini evaluasi teknis dari semua alternatif dapat
dilakukan dan akuisisi secara berkala dapat terjadi.
Sumber daya lingkungan :
Lingkungan yang mendukung poyek perangkat lunak, yang disebut juga
software engineering environment (SEE), menggabungkan perangkat
lunak dan perangkat keras. Karena sebagian besar organisasi perangkat
lunak memiliki konstituen ganda yang memerlukan akses ke SEE, maka
perencana proyek harus menentukan jendela waktu yang dibutuhkan bagi
perangkat keras dan perangkat lunak serta membuktikan bahwa sembersumber daya tersebut dapat diperoleh. Pada saat sebuah sistem berbasis
komputer akan direkayasa, tim perangkat lunak mungkin membutuhkan
akses ke elemen perangkat keras yang sedang dikembangkan oleh tim
rekayasa yang lain.

e. Estimasi Proyek Perangkat Lunak


Biaya perangkat lunak terdiri dari presentase kecil pada biaya sistem berbasis
komputer secara keseluruhan. Kesalahan estimasi biaya yang besar dapat
memberikan perbedaan antara keuntungan dan kerugian. Estimasi proyek
perangkat lunak dapat ditranformasi dari suatu seni yang misterius ke dalam
langkah-langkah yang sistematis yang memberikan estimasi dengan risiko yang

dapat
diterima.
Sejumlah pilihan untuk mencapai estimasi biaya dan usaha yang dapat
dipertanggung jawabkan :
1. Menunda etimasi sampai akhir proyek.
2. Mendasarkan etimasi pada proyek-proyek yang mirip yang sudah pernah
dilakukan sebelumnya.
3. Menggunakan teknik dekomposisi yang relatif sederhana untuk
melakukan estimasi biaya dan usaha proyek.
4. Menggunakan satu atau lebih model empiris bagi estimasi usaha dan biaya
perangkat lunak.
Dengan memahami ruang lingkup perangkat lunak, seorang perancang proyek
perangkat lunak dapat membuat estimasi untuk effort dan biaya dalam
pembuatan perangkat lunak yang baru. Tiga teknik estimasi yang digunakan :
Decomposition techniques
Untuk setiap subfungsi hasil dari dekomposisi, diestimasi LOC & FP
kemudian dikombinasikan untuk mendapat estimasi global. LOC &
Fpndigunakan sebagai :

Variabel estimasi yang digunakan untuk ukuran masing-masing


elemen pada perangkat lunak
Pengukuran baseline dari proyek lama yang dikonjugasi dengan
variabel estimasi untuk membuat proyeksi biaya dan effort.

Empirical estimation models


Model estimasi (estimation model) menggunakan formula yang
diturunkan secara empiris untuk memprediksi data yang digunakan pada
tahap perencanaan. Model sumber daya terdiri atas satu atau lebih
persamaan-persamaan yang diturunkan secara empiris dimana dapat
memprediksi effort, durasi proyek, dan data proyek lainnya.
Empat kelas model estimasi :

Static single-variable models, contoh COCOMO (Construction


Cost Model)
Static multivariables models
Dynamic multivariables models, contoh Putnam Estimation
Model
Theoretical models

Automated tools
Mengimplementasikan model empiris yang spesifik.
Contoh > Ruang lingkup software untuk aplikasi Computer-Aided
Design (CAD)

The CAD software will accept 2 or 3 dimensional geometric data from


an engineer. The engineer will interact and control the CAD system
through a user interface that will exhibit characteristic of good humanmachine interface design. All geometric data and othe supporting
information will be mainteined in a CAD database. Design analysis
modules will be developed to produce required output which will be
displayed on a variety of graphics devices. The software will be
designed to control and interact with peripheral devices that include a
mouse, digitizer, laser printer, and plotter.
Fungsi-fungsi:

User interface and control facilities (UICF)


2 dimensional geomatric analysis (2DGA)
3 dimensional geometric analysis (3DGA)
Database Management (DMM)
Computer graphics display facilities (CGDF)
Peripheral Control (PC)
Design analysis modules (DAM)

Functional Decomposition

Pendekatan LOC

Pendekatan FP

Keputusan membuat atau membeli

Nilai biaya yang diharapkan

Sumber :
http://andgaa.web.id/4-metodologi-pengembangan-software-berbasis-sdlc-softwaredevelopment-life-cycle/
http://yanufati.blogspot.com/2013/01/definisi-model-rad.html
http://blogging.co.id/mengenal-perangkat-lunak-komputer-dan-jenis-jenisnya
http://fikriearief.wordpress.com/2013/10/25/konsep-dasar-rekayasa-perangkat-lunak/
http://yasinissoftwareengineering.blogspot.com/2012/06/pengertian-dasar-dasarrekayasa.html
http://studyrelaxx.blogspot.com/2013/03/pengenalan-rekayasa-perangkat-lunak_12.html

Anda mungkin juga menyukai