Anda di halaman 1dari 35

Rekayasa Perangkat Lunak

Proses Perangkat Lunak

Antonius Wahyu Sudrajat, S.


Kom., M.T.I.
wayoe@stmik-mdp.net,
wahyue79@gmail.com
Kualitas Software
Menurut Robert L Glass (Glass, 2002), kualitas software adalah
mengenai sekumpulan atribut yang seharusnya dimiliki oleh suatu
produk software. Atribut-atribut tersebut adalah:
Portability. Kemudahan pemindahan software ke platform lain.
Reliability. Software dapat diandalkan untuk melakukan apa
yang seharusnya dilakukan.
Efficiency. Software dapat melakukan pekerjaan dengan waktu
kerja dan penggunaan resource yang ekonomis.
Human Engineering. Software dapat digunakan dengan
mudah dan nyaman.
Testability. Software mudah dievaluasi dengan melakukan
pengujian (testing).
Understandability. Software mudah dipahami sehingga
memudahkan proses pemeliharaan.
Modifiability. Software mudah dipelihara (maintain) dan
diubah.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Portability
Portability pada software, sangat tergantung
kepada teknologi yang digunakan.
Pemilihan teknologi didasari oleh
pertimbangan yang matang berdasarkan hasil
analisis terhadap calon pengguna.
Jika calon pengguna menggunakan platform
yang heterogen, maka portability adalah hal
yang sangat penting.
Namun portability akan berkurang
prioritasnya ketika calon pengguna
menggunakan spesifikasi teknologi yang
seragam.
Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.
Reliability
Reliability adalah atribut yang tidak dapat ditawar.
Hal ini dapat dicapai dengan melakukan proses
analisis kebutuhan calon pengguna dengan baik.
Dengan menganalisa masalah calon pengguna, lalu
menyimpulkan solusi dari maka engineer dapat
lebih menjamin reliability dari suatu software.
Selain dari sisi analisis kebutuhan, pengujian sistem
dengan mekanisme yang baik juga dapat
meningkatkan reliability software.
Pengujian sistem adalah fase untuk memastikan
bahwa sistem sudah dapat berjalan sesuai dengan
yang diharapkan.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Efficiency
Efficiency adalah atribut yang seringkali tidak diperhatikan.
Umumnya hal tersebut terjadi, karena tim pengembang
fokus kepada spesifikasi fungsional sistem.
Ketika spesifikasi fungsional sudah terpenuhi, maka modul
software dianggap telah mencapai kualitas yang baik.
Efficiency seringkali tidak terasa dibutuhkan pada aplikasi
sistem informasi yang tidak melakukan proses yang rumit.
Namun untuk proses yang rumit, efficiency menjadi hal yang
sangat penting untuk diperhatikan.
Efficiency dapat dicapai dengan disain yang baik dan code
review terhadap hasil implementasi disain yang dilakukan.
Selain itu, pada saat pengujian (testing), perlu dilakukan
stress testing, suatu proses pengujian yang menekankan
pada kemampuan software pada saat melakukan proses
pada keadaan yang tersulit (e.g. data yang sangat banyak).

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Human engineering
Human engineering dapat dicapai
dengan melakukan perancangan antar
muka software dengan baik.
Hal ini juga berkaitan dengan efficiency
jika software melakukan proses yang
rumit, karena pengguna akan merasa
tidak nyaman jika proses yang
dilakukan terlalu lama.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Testability
Testability akan berpengaruh terhadap
reliability.
Engineer dapat menyimpulkan bahwa
suatu software sudah cukup reliable
untuk direlease adalah berdasarkan
hasil pengujian.
Karena itu, testability adalah atribut
yang sangat penting dalam
pengembagan software.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Understandability dan
modifiability
Understandability dan modifiability. Kedua atribut tersebut
bisa diacapai dengan melakukan proses disain yang baik dan
kontrol terhadap kode yang dihasilkan oleh programmer.
Pada pengembangan software, terdapat suatu framework
yang digunakan oleh seluruh engineer dalam
mengembangkan modul.
Kode program yang dihasilkan perlu direview agar dapat
dipastikan bahwa programmer telah menulis kode sesuai
dengan standar yang sudah ditetepakan di framework.
Dengan perancangan dan penulisan kode yang sesuai
dengan standar yang ada, maka disain dan kode yang
dihasilkan oleh engineer akan mudah untuk dipahami oleh
engineer lain. Hal ini menjadi atribut yang sangat penting
untuk diperhatikan, terutama jika engineer yang
mengerjakan sering berganti

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Atribut dari kualitas
software
Atribut dari kualitas software menurut Karl Wiegers terdiri dari 12
atribut dengan tambahan satu atribut yang berkaitan dengan user serta
satu atribut yang berkaitan dengan sitem itu sendiri. Atribut kualitas
software yaitu:
Reliability, sejauh mana suatu software dapat diharapkan untuk
melaksanakan fungsinya dengan ketelitian yang benar.
Usability, kemampuan software yang dapat digunakan oleh users,
meliputi faktor manusia dan penggunaan dokumen.
Integrity, sejauh mana suatu software dalam memfasilitasi kombinasi
informasi dari departemen lain .
Efficiency, sejauh mana suatu software dalam menjalankan proses
data.
Portability, sejauh mana suatu software dapat berpindah dari satu
lingkungan operasi pada lingkungan operasi lainnya.
Reusability, sejauh mana suatu software dapat mengkonversi
komponen perangkat lunak untuk digunakan dalam aplikasi lainnya.
Interoperability, menunjukkan seberapa mudahnya suatu software
dapat bertukar data atau layanan dengan software lainnya.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Atribut dari kualitas
software
Maintainability, sejauh mana suatu software dalam
perawatannya.
Flexibility, sejauh mana suatu software dapat beradaptasi
dengan berbagai kebutuhan dari para pengguna serta
dalam perubahan suatu kondisi.
Testability, menunjukkan seberapa mudah suatu software
dalam menunjukkan suatu kesalahan.
Robustness, seberapa baik suatu software dalam
menanggapi suatu kondisi yang tidak terduga.
Installability, sejauh mana suatu software dapat
dikembangkan kembali suatu waktu.
Safety, sejauh mana suatu software dalam berinteraksi
dengan penggunanya seperti keamanan data.
Availability, ukuran waktu mulai dari perencanaan sampai
software benar-benar tersedia dan dapat digunakan
sepenuhnya untuk beroperasi.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Paremeter Perangkat Lunak Yang
Berkualitas Berdasarkan Sudut
Pandang
Sisi Sponsor :
Tujuan utama sponsor adalah menghasilkan dan atau menghemat uang. Sponsor
ingin menggunakan perangkat lunak tersebut untuk meningkatkan produktivitas
organisasi. Sponsor mengharapkan untuk dapat menghasilkan sebuah layanan
dengan biaya yang rendah tetapi masuk akal. Karena itu sistem yang dibuat
harus handal, fleksibel dan efisien. Selain itu biaya dari pemeliharaan, modifikasi
dan peningkatan dari sistem tersebut harus serendah mungkin.
Sisi Pemakai :
Bagi pemakai perangkat lunak adalah alat untuk membantu menyelesaikan
tugas-tugasnya. Karena itu perangkat lunak harus menyediakan fungsi-fungsi
yang dibutuhkan oleh pemakai. Perangkat lunak juga harus handal dan efisien,
perangkat lunak harus dapat menghasilkan output yang konsisten. Selain itu
pemakai harus merasa perangkat lunak yang dibuat mudah untuk dipelajari,
mudah digunakan dan mudah untuk diingat.
Sisi Maintainer/modifier :
Yang diinginkan oleh maintainer/modifier adalah perangkat lunak tersebut
memiliki sangat sedikit error pada saat penginstallan pertama (catatan : sangat
kecil kemungkinannya untuk menghasilkan perangkat lunak yang 100 % bebas
dari bug). Selain itu perangkat lunak tersebut harus terdokumentasi dengan baik.
Source code juga harus mudah dibaca, terstruktur dan dirancang dengan baik
dan bersifat modular.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Paremeter Perangkat Lunak Yang
Berkualitas Berdasarkan Sudut
Pandang

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Masalah-masalah perangkat
lunak
Masalah-masalah perangkat lunak
Perangkat lunak telah diselesaikan dan diserahkan (delivered) tetapi
tidak pernah digunakan (47%).
Pemakai (user) sudah membayar untuk perangkat lunak tetapi tidak
pernah jadi dan diserahkan (29,7%).
Perangkat lunak digunakan setelah dilakukan modifikasi (3%).
Perangkat lunak digunakan sebagaimana mestinya (2%).
Selain itu faktor pendukung kehadiran rekayasa perangkat lunak
adalah :
Ketidak mampuan untuk memprediksi waktu, usaha dan biaya pada
pengembangan perangkat lunak.
Kualitas perangkat lunak yang kurang baik.
Perubahan perbandingan (rasio) harga perangkat keras dan perangkat
lunak.
Kemajuan teknologi perangkat keras.
Kemajuan teknik perangkat lunak.
Kebutuhan yang meningkat terhadap perangkat lunak.
Kebutuhan akan perangkat lunak yang lebih besar dan kompleks.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Atribut-atribut PL yang
baik
Perangkat Lunak seharusnya memberikan
user kebutuhan fungsionalitas dan kinerja
yang :
1. Dapat dipelihara (Maintanability) PL harus
dapat memenuhi perubahan kebutuhan user.
2. Dapat diandalkan (Dependability) PL harus
dapat dipercaya dan tidak menyebabkan
kerusakan fisik atau ekonomi jika terjadi
kegagalan sistem.
3. Efisien PL harus efisien dalam penggunaan
sumber daya sistem.
4. Kemampuan pemakaian (Usability) PL harus
dapat dipakai sesuai dengan yang direncanakan.
Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.
Faktor dan Ukuran Kualitas
Perangkat Lunak ( McCall )

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Faktor dan Ukuran Kualitas
Perangkat Lunak ( McCall )
Berfokus pada tiga hal pokok :
Karakteristik operasional
kemampuan mengatasi perubahan
Kemampuan beradaptasi pada lingkungan
baru

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Faktor dan Ukuran Kualitas
Perangkat Lunak ( McCall )
Karakteristik Operasional
CORRECTNESS ukuran apakah perangkat lunak yang dihasilkan
memenuhi spesifikasi yang diharuskan dan maksud/tujuan
pemakai.
RELIABILITY ukuran yang menyatakan nilai kemungkinan suatu
program bekerja dengan baik menurut spesifikasi yang
dipersyaratkan dalam kurun waktu tertentu
EFFICIENCY ukuran yang menyatakan banyaknya sumber daya
yang diperlukan untuk proses komputasi dan instruksi yang
terdapat pada program untuk menjalankan suatu fungsi
tertentu.
INTEGRITY ukuran yang manyatakan sejauh mana pemakai
atau akses dari pemakai yang tidak berwenang terhadap
program dan data dapat dikendalikan.
USABILITY ukuran sejauh mana usaha yang diperlukan untuk
mempelajari mengoperasikan, menyiapkan data masukan dan
menginterprestasikan keluaran suatu program.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Faktor dan Ukuran Kualitas
Perangkat Lunak ( McCall )
Karakteristik Kamampuan terhadap
Perubahan
MAINTAINABILITY : usaha yang diperlukan
untuk mencari dan menemukan kesalahan
program serta memperbaikinya.
FLEXIBILITY : usaha yang diperlukan untuk
memodifikasi program yang telah jadi atau
telah jalan.
TESTABILITY : usaha yang diperlukan untuk
menguji suatu program, apakah sesuai
dengan fungsi yang
diharapkan/dipersyaratkan.
Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.
Karakteristik Kamampuan Beradaptasi
PORTABILITY : usaha yang diperlukan untuk
mentransfer suatu program dari satu perangkat
keras dan/atau perangkat lunak ke lainnya.
REUSABILITY : tolok ukur yang menggambarkan
seberapa banyak bagian dari program dapat
dipergunakan kembali pada program yang
lainnya.
INTEROPERABILITY : usaha yang diperlukan
untuk menghubungkan suatu program dengan
sistem komputer/program lain.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Proses perangkat lunak

Proses perangkat lunak adalah sebuah


kerangka kerja untuk membangun
perangkat lunak yang berkualitas
tinggi

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Proses Pengembangan
Software
Sekumpulan aktifitas yang saling terkait
untuk spesifikasi, desain,implementasi
dan testing perangkat lunak.
Proses perangkat lunak sangat rumit
dan,seperti semua proses intelektual.
Bergantung pada penilaian manusia.
Karena dibutuhkan penilaian dan
kreatifitas. Keberhasilan usaha untuk
mengotomasi proses perangkat lunak
menjadi terbatas.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Proses Pengembangan
Software
Sekumpulan aktifitas terstruktur yang dibutuhkan untuk
mengembangkan sistem software, yang meliputi kegiatan :
Spesifikasi perangkat lunak : Fungsionalitas perangkat
lunak dan batasan kemampuan operasinya harus
didefinisikan
Pengembangan (Desain&Implementasi) perangkat
lunak : Perangkat lunak yang memenuhi spesifikasi harus
di produksi
Validasi perangkat lunak, Perangkat lunak harus
divalidasi untuk menjamin bahwa perangkat lunak bekerja
sesuai dengan apa yang diinginkan oleh pelanggan
Evolusi perangkat lunak : Perangkat lunak harus
berkembang kembali untuk memenuhi kebutuhan
pelanggan

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


System Development
Proses
Pengembangan
Spesifikasi Validasi Evolusi
(Desain&Implement
perangkat perangkat perangkat
asi) perangkat
lunak lunak lunak
lunak
Proses Pengembangan Perangkat Lunak

Sistem yang ada

Permasalahan
Kesempatan
Instruksi

Pengembangan Sistem

Memecahkan masalah
meraih kesempatan
memenuhi instruksi

System Development Proses Sistem yang baru

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Proses Software
Evolusi perangkat lunak : Perangkat lunak
harus berkembang kembali untuk memenuhi
kebutuhan pelanggan
Model proses software adalah representasi
abstrak dari proses. Merupakan gambaran
dari proses dari beberapa perspektif tertentu.
Model proses software adalah representasi
abstrak dari proses. Merupakan gambaran
dari proses dari beberapa perspektif tertentu.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Proses perangkat lunak
Penjelasan Gambar adalah :
Proses : mendefinisikan kerangka
kerja (frame work), sehingga
pembangunan perangkat lunak
dapat dilakukan secara sistematis
Metode : mendefinisikan
bagaimana perangkat lunak
dibangun, meliputi metode-metode
yang digunakan dalam melakukan
analisis kebutuhan, perancangan,
implementasi dan pengujian. Ex :
metode terstruktur, metode
berorientasi objek, dan lain-lain
Alat Bantu : perangkat yang
bersifat otomatis maupun semi
otomatis yang berfungsi
mendukung tiap tahap
pembangunan perangkat lunak

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Karakteristik Proses
Perangkat Lunak
Karakteristik Proses Perangkat Lunak terdiri dari:
Understandability, membuat proses secara eksplisit didefinisikan dan
bagaimana sehingga mudah untuk mengerti definisi proses
Visibility, Aktifitas proses menghasilkan hasil yang jelas sehingga
tahapan proses yang dilakukan terlihat
Supportability, Aktifitas Proses dapat didukung atas CASE tools
Acceptability, Penerimaan atas proses yang terdefinisi dan yang
digunakan oleh Engineer selama pembangunan Produk Perangkat
Lunak.
Reliability, Proses didesain dalam suatu metode untuk dihindarkan
dari kesalahan
Robustness, Proses dapat meneruskan dalam masalah yang tidak
diharpkan terjadi
Maintainabiity, Proses yang merefleksi atas perubahan thd
permintaan atau perbaikan proses yang diidentifikasi
Rapidity, bagaimana cepat dapat berjalan atas proses pengiriman
atau implementasi sebuah sistem dari Spesifikasi yang ada sampai
selesai

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Model proses
Perangkat Lunak
Model proses perangkat lunak merupakan
representasi abstrak dari proses perangkat
lunak
Setiap model proses merepresentasikan
proses dari sudut pandang tertentu
sehingga hanya memberikan informasi
parsial mengenai proses tersebut.
Proses-proses yang berbeda digunakan
untuk mengembangkan bagian yang
berbeda pada sistem

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Beberapa metodologi atau model SDLC antara
lain adalah:
Waterfall
Iterasi
RAD
Spiral
FAST
Agile
Scrum
Extreme Programming
Rapid prototyping
Iterative and incremental
Rational Unified Process
Dynamic Systems Development Method
Synchronize and stablize

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Proses Pengembangan
Perangkat Lunak
Waterfall
RAD
Spiral
Prototype
Iteratif
FAST
Extreme Programming
RUP (Rational Unified Process)
Agile Software Development
Scrum Metodologi

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Proses Pengembangan
Perangkat Lunak
RAD Aji
Spiral Teo
Extreme Programming Andi
RUP (Rational Unified Process) Harde
Agile Software Development deo
Scrum Metodologi cun

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Tugas
Nama Metodologi :
Deskripsi Metodologi :
Tahapan
Tahapan Elaboration
Tujuan :
Metode yang digunakan
Pelaku
Keluaran (Output)
Dokumen
Tahapan A
Sama diatas
Tahapan A
Sama diatas
Tahapan A
Sama diatas
Aturan kerja
Kelebihan
Kelemahan/kekurangan

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Mempersiapkan Sumberdaya manusia
yang berkompeten dibidang
pengembangan sistem informasi,
pegelolaan database, manajemen
proyek teknologi informasi, audit
sistem informasi, yang mampu
memberikan solusi bisnis dengan
memanfaatkan teknologi informasi.

Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.


Tren Teknologi
Informasi
Human-centric : pekerjaan kita sehari-hari
akan menjadi lebih baik
Real-time insight : menyatunya dunia fisik
dan digital yang menghasilkan analisis dan
informasi secara cepat
Business without border : pelaku bisnis bisa
memakai teknologi tanpa batasan yang
menghambat bisnis tradisionalnya
More on "I", less in "T" : informasi, bukan
teknologi yang mendorong kita
Everything connected : semua mesin akan
saling terhubung dan mengalirkan informasi
Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.
Tren Teknologi
Informasi
Trading places : ketersediaan toko online dan mobile
dengan mekanisme sederhana
Outside in : informasi dan data pribadi milik manusia
akan memiliki nilai uang
Choice : organisasi harus bisa menghadirkan banyak
pilihan
Social working : media sosial akan menjadi sarana
utama untuk berkolaborasi
Crowding out : menggerakkan tenaga kerja melalui
web berdasarkan penugasan tanpa biaya tetap
Reshaping organization : perubahan disruptif
mengubah cara bisnis beroperasi
Long live mobile : mobilitas semakin alamiah dan
dipersatukan oleh personal cloud
Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.
Rekayasa Perangkat Lunak Antonius Wahyu Sudrajat, S.