rpl kelmpok 1.pdf

21
A. KONSEP DASAR REKAYASA PERANGKAT LUNAK a. Konsep Dasar Rekayasa Perangkat Lunak (Software Engineering) 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 (O’Brien, 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 berbeda- beda, 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

Upload: andika-oktadora-eka-putra

Post on 22-Dec-2015

92 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: RPL kelmpok 1.pdf

A. KONSEP DASAR REKAYASA PERANGKAT LUNAK a. Konsep Dasar Rekayasa Perangkat Lunak (Software

Engineering) 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 (O’Brien, 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 berbeda-

beda, 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

Page 2: RPL kelmpok 1.pdf

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.

Page 3: RPL kelmpok 1.pdf

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

Page 4: RPL kelmpok 1.pdf

Pengembang sistem seharusnya memelihara integritas dan

independensinya dalam membuat suatu keputusan profesional.

5. Manajemen

Manajer/pemimpin pengembangan sistem seharusnya mengikuti dan

mendorong pendekatan etis terhadap manajeman pengembangan sistem.

6. Profesi

Pengembang sistem seharusnya menaikkan integritas dan reputasinya

konsisten dengan kepentingan umum.

7. Rekan sejawat

Pengembang sistem seharusnya adil dan memberi dukungan kepada

rekan sejawatnya.

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

Page 5: RPL kelmpok 1.pdf

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 fitur-

fitur yang belum ada pada software. Pengembangan diperlukan

ketika adanya perubahan dari eksternal perusahaan (pergantian

sistem operasi atau perangkat lain).

Bagan dari Waterfall Model :

Page 6: RPL kelmpok 1.pdf

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.

Page 7: RPL kelmpok 1.pdf

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 pertanyaan-

pertanyaan (informasi apa yang mengendalikan proses bisnis?

Page 8: RPL kelmpok 1.pdf

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.

Page 9: RPL kelmpok 1.pdf

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

Jika pada saat pembangunan system terjadi kegagalan,kerugian dar

segi materi relative kecil.

Berikut beberapa model proses yang terdapat pada model Proses Agile :

a. Extreme Programming (XP)

Page 10: RPL kelmpok 1.pdf

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 :

Page 11: RPL kelmpok 1.pdf

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

Page 12: RPL kelmpok 1.pdf

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 :

Page 13: RPL kelmpok 1.pdf

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 :

Page 14: RPL kelmpok 1.pdf

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 :

Page 15: RPL kelmpok 1.pdf

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 :

Page 16: RPL kelmpok 1.pdf

- 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

Page 17: RPL kelmpok 1.pdf

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 sember-

sumber 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

Page 18: RPL kelmpok 1.pdf

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)

Page 19: RPL kelmpok 1.pdf

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 human-

machine 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

Page 20: RPL kelmpok 1.pdf

Pendekatan FP

Keputusan membuat atau membeli

Page 21: RPL kelmpok 1.pdf

Nilai biaya yang diharapkan

Sumber :

http://andgaa.web.id/4-metodologi-pengembangan-software-berbasis-sdlc-software-

development-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-dasar-

rekayasa.html

http://studyrelaxx.blogspot.com/2013/03/pengenalan-rekayasa-perangkat-lunak_12.html