|
-
- Definisi
Rekayasa Perangkat Lunak Menurut Fritz
Bauer :
- "Penerapan dan pemanfaatan
prinsip-prinsip rekayasa untuk
menghasilkan perngkat lunak yang ekonomis
yang handal dan bekerja secara efisisen
pada mesin-mesin yang nyata"
-
- Karakteristik
Perangkat Lunak
- - Dikembangkan atau direkayasa, tidak
dibuat dalam pengertian pada umumnya.
- - Tidak 'lapuk' atau mengalami penyusutan
secara fisis.
- - Pada umumnya dibuat secara khusus,
tidak disusun dari komponen-komponen yang
telah ada.
-
- Problem
Perangkat Lunak
- - Perangkat lunak tidak berfungsi secara
baik (kualitas yang kurang).
- - Ketidaktepatan penjadwalan proses dan
biaya produksi.
- - Produktivitas yang belum dapat memenuhi
tuntutan kebutuhan pemakai.
- - Pemeliharaan yang sukar.
- - Perkembangan teknologi perangkat keras
di luar kemampuan programmer untuk
membuat perangkat lunak yang dapat
memanfaatkan potensi perangkat keras
secara maksimal.
-
- Elemen-elemen
Kunci dalam RPL
- - Metode : 'how to' yang bersifat
teknis
- Meliputi bidang-bidang perencanaan
proyek, estimasi, analisis persyaratan,
perancangan, coding, pengujian, dan
pemeliharaan.
- - Tool : memberikan dukungan automasi
bagi metode
- - Prosedur : mengintegrasikan metode dan
tool
-
- Siklus Klasik
(Model Air Terjun)
- Berdasarkan siklus konvensional dalam
bidang rekayasa lainnya, dengan
pendekatan sekuensial yang sistematis.
- Tahapan-tahapan dalam siklus klasik :
- - Analisis dan rekayasa sistem :
perangkat lunak merupakan bagian dari
sebuah sistem, untuk mendapatkan gambaran
yang meluas pada aras sistem.
- - Analisis persyaratan : fokus lebih
terarah ke perangkat lunak, berusaha
mengetahui aspek 'what', melibatkan
pemakai dan pengembang.
- - Perancangan : menerjemahkan persyaratan
menjadi suatu bentuk representasi yang
dapat dievaluasi kualitasnya sebelum
coding dilakukan.
- - Coding (penulisan program) :
penerjemahan rancangan ke dalam bentuk
yang dapat dimengerti komputer,
menggunakan bahasa pemrograman teretentu.
- - Pengujian : berfokus pada rincian
logikal dari perangkat lunak, bertujuan
mengungkap dan menghilangkan
kesalahan-kesalahan yang ada sehingga
perangkat lunak bekerja sesuai dengan
yang diharapkan.
- - Pemeliharaan : meliputi
kegiatan-kegiatan koreksi kesalahan dan
penyesuaian perangkat lunak terhadap
perubahan lingkungannya.
-
- Prototyping
- Bila pemakai belum siap dengan
persyaratan perangkat lunak secara
lengkap (rinci).
- Model perangkat lunak :
- - Model 'kertas' : ditujukan hanya agar
pemakai dapat mengerti interaksi antara
dia dengan perangkat lunak.
- - Model kerja : mengimplikasikan beberapa
fungsi perangkat lunak.
- - Program : sebagian atau semua fungsi
telah diimplementasikan, dan akan
dikembangkan dalam proses pengembangan.
-
- Problem : ketidaksadaran bahwa
prototipe bukan hasil yang diharapkan.
- - Pemakai : tidak sabar menunggu
perangkat lunak yang sebenarnya.
- - Pengembang : pemakaian teknik dan tools
yang tidak optimal pada prototipe yang
akhirnya tetap digunakan pada perangkat
lunak yang sesungguhnya.
-
- Model Spiral
- Menggabungkan keuntungan-keuntungan model
air terjun dan prototyping, dan
memasukkan aktivitas analisis resiko (risk
analysis).
- Melibatkan proses iterasi, tiap iterasi
bekerja pada satu 'level produk' (dari
level prototipe sampai pada level
perangkat lunak yang diinginkan). Tiap
perpindahan level didahului oleh analisis
resiko.
- Terdiri dari empat aktivitas utama :
- - Perencanaan : penentuan sasaran,
alternatif solusi, dan hambatan.
- - Analisis resiko : analisis alternatif
solusi dan identifikasi resiko.
- - Perekayasaan : pengembangan produk pada
'level berikutnya'.
- - Evaluasi oleh pemakai : diterapkan pada
hasil proses perekayasaan.
-
- Problem : menuntut keahlian dalam
bidang analisis resiko.
-
- 4GT
- Merupakan kumpulan tool perangkat lunak.
Memungkinkan penegembang menyebutkan
karakteristik perangkat lunak pada aras
yang lebih tinggi, dan tool-tool tersebut
akan membangkitkan kode program secara
otomatis.
- Proses mirip dengan model air terjun
(diawali dengan pengumpulan persyaratan
perangkat lunak).
- Beberapa bidang pengembangan perangkat
lunak yang telah dapat diautomatisasikan
:
- - query basis data (database query)
- - pembangkitan laporan (report
generation)
- - manipulasi data
- - definisi layar
- - kemampuan grafis aras tinggi
-
- Memory
Organization secara Umum
- Terdiri dari tiga memori :
- - Short Term Memory : kapasistas
terbatas, akses cepat. Merupakan daya
ingat manusia terhadap program komputer.
- - Working Memory : kapasitas lebih besar,
yaitu RAM.
- - Long Term Memory : kapasitas sangat
besar, akses lambat. Meliputi disk
storage (hard disk, optical disk,
disket).
-
- Verifikasi
- Are we building the product right ?
-
- Validasi
- Are we building the right product ?
-
- Human Factor in
Software Engineering
- Faktor-faktor manusia dalam pembuatan
software ditinjau dari perancangannya
sendiri dan pemakai merupakan hal
penting, karena :
- - Agar efektif para manajer software
harus mengerti para stafnya secara
individu, dan mengerti bagaimana
masing-masing individu tersebut
berinteraksi.
- - Sistem komputer digunakan oleh manusia,
jika keterbatasan dan kemampuan manusia
tidak diperhatikan dalam merancang sistem
maka orang tidak akan menggunakannya.
- - Produktivitas programmer adalah faktor
biaya yang sangat kritis pada perancangan
software, untuk itu mengerti
faktor-faktor manusia dapat membantu
untuk meningkatkan produktivitas dengan
tidak kehilangan biaya yang banyak.
-
- Alasan Sulitnya
Memilih Software Engineering
- Berdasarnya personality yang jujur,
memilih seorang programmer sangat sulit,
karena :
- - Personality is dinamic, not static :
kepribadian sesorang bisa berubah sejalan
dengan perkembangan karirnya.
- - Karena perbedaan pribadi ini perlu
kejelian dalam penempatan para
programmer, apakah dia di bagian
perancangan, penguji, dsb.
- - Personality/manusia dalam melakukan tes
masuk perusahaan kadang-kadang curang.
-
- Faktor Penting
Rekayasa Perangkat Lunak
- Dalam rekayasa software, ada beberapa
faktor penting kaitannya dengan human
factor dan ergonomic :
- - Privacy : seorang programmer memerlukan
tempat dimana dia bisa bekerja tanpa
interupsi.
- - Outside Awareness : orang cenderung
lebih suka dengan sinar/cahaya alami dan
pemandangan lingkungan luarnya yang alami
pula.
- - Personalization : manusia secara
individu mempunyai kebiasaan yang berbeda
dalam bekerja dan mempunyai pendapat yang
berbeda dalam dekorasi ruangannya.
-
- Knowledge
Modeling
- - Semantic : pengetahuan tentang
konsep-konsep, seperti bekerjanya suatu
pernyataan penugasan dalam suatu program.
Pengetahuan ini diperoleh melalui belajar
dan pengalaman.
- - Syntactic : pengetahuan tentang
representasi yang detil, seperti
bagaimana penulis deklarasi prosedur
dalam Pascal.
-
- Macam-macam
Software
- 1. System Software
- Sekumpulan program
yang ditulis untuk melayani program lain.
Termasuk di dalamnya operating system,
file management and editor, serta
utilities.
- 2. Real Time Software
- Software yang
memonitor, menganalisa, dan mengendalikan
kejadian-kejadian dunia nyata. Memiliki
komponen pengumpulan data, analisis, dan
pengendali.
- 3. Business Software
- Semua software yang
dibuat untuk kepentingan bisnis.
- 4. Engineering and Scientific Software
- Mempunyai
karakteristik algoritmanya lebih banyak
berisi rumus-rumus perhitungan matematis.
- 5. Embedded Software
- Software yang harus
dapat ditanam dalam ROM, dan biasanya
digunakan untuk mengendalikan produk
sehingga tercapai kepuasan pelanggan.
- 6. Personal Computer Software
- Software yang
dirancang untuk komputer PC.
- 7. Artificial Intelligence Software
- Software AI mempunyai
ciri khas menggunakan algoritma
non-numerik untuk memecahkan
masalah-masalah yang rumit yang tidak
bisa ditangani dengan komputas biasa
(analisis langsung).
- Bidang AI yang dengan cepat berkembang
antara lain : Expert System (Sistem
Pakar), Pattern Recognizer (Pengenalan
Pola), Theorem Proofing (Pembuktian
Teori), serta Game Playing.
-
- Well Engineered
Software
- Software dapat dikatakan mempunyai
sebutan WES apabila :
- - The software should be maintainable.
- - The software should be reliable.
- - The softwrae should be eficient.
- - The software should over an appropriate
user interface.
-
- Mitos Software
- Harapan dan kenyataan tidak selalu sala
baik dari sudut pandang manajer maupun
customer.
-
- Dokumentasi
- - Mempunyai program bantu (help).
- - Komentar dalam penulisan program.
- - Petunjuk cara menjalankan program.
- - Pustaka program.
-
- Analisis
- Memecah suatu masalah menjadi
bagian-bagian yang terkecil, sehingga
bagian-bagian tersebut dapat diteliti
satu per satu untuk diketahui
permasalahan sebenarnya.
-
- Tingkatan
Spesifikasi
- 1. Requirement Definition : pernyataan
bahasa natural (bahasa sehari-hari)
terhadap apa yang diharapkan user untuk
dapat dipenuhi.
- 2. Requirement Specification :
struktur/bentuk dokumen yang menjelaskan
pelayanan sistem lebih detil.
- 3. Software Specification : deskripsi
abstrak tentang suatu software yang
merupakan dasar untuk perancangan dan
implementasi.
-
- Arsitektur
Sistem
- Merupakan model yang merepresentasikan
hubungan antar elemen sistem dan menjadi
dasar bagi tahap analisis persyaratan dan
tahap perancangan.
- - Berawal dari template yang
disempurnakan secara bertahap.
- - Fungsi dan kinerja yang diharapkan,
beserta alokasinya ke elemen-elemen
sistem.
- - Input dan output.
- - Kekangan yang ada.
-
- Analisis
Persyaratan Perangkat Lunak
- Software Requirement Analysis (SRA)
berfungsi sebagai jembatan antara
pengalokasian fungsi pada perangkat lunak
dan perancangan perangkat lunak.
Memungkinkan didefinisikannya
fungsi-fungsi dan kinerja perangkat
lunak, antarmuka perangkat lunak dengan
elemen sistem lainnya, dan
kekangan-kekangan yang harus dipenuhi
oleh perangkat keras.
- Aktivitas SRA :
- - Pemahaman persoalan (dalam konteks
software).
- - Evaluasi dan sintesis.
- - Pemodelan (prototyping).
- - Spesifikasi perangkat lunak dan reviewnya.
-
- Requirement
Document Menurut Pressman
- Bentuk requirement document berisi :
- 1. Introduksi
- 2. Deskripsi informasi
- a. Representasi aliran
informasi
- b. Representasi isi
informasi
- 3. Deskripsi fungsi
- a. Partisi
fungsi-fungsi
- b. Deskripsi fungsi
- c. Deskripsi kendali
- 4. Deskripsi karakteristik dan kelakuan (behaviour)
- a. Keadaan sistem
- b. Events dan aksi
yang ditimbulkannya
- 5. Kriteria validasi
- a. Batas-batas kinerja
- b. Jenis-jenis
pengujian
- c. Respons yang
diharapkan
- 6. Lampiran-lampiran
-
- Requirement
Document Menurut Heninger
- Bentuk requirement document berisi :
- 1. Introduksi
- 2. Model sistem
- 3. Evolusi sistem
- 4. Functional requirement
- 5. Non-functional requirement
- 6. Glossary
-
- Tahapan
Perancangan Perangkat Lunak
- 1. Study and Understand Problem.
- 2. Identify Grouse Features of at Least
One Possible Solution.
- 3. Describe Each Abstraction Used in the
Solution.
-
- Dasar-dasar
Perancangan Perangkat Lunak
- Abstraksi :
- - Memungkinkan seseorang untuk
berkonsentrasi pada satu aras
generalisasi tanpa terlibat pada aras
detilnya.
- - Perancangan bekerja untuk membentuk
abstraksi data dan prosedural, yang
disempurnakan secara bertahap dari
tingkat umum menuju tingkat yang
spesifik.
- Modularitas :
- Berkaitan dengan arsitektur
perangkat lunak. Software terdiri dari
komponen-komponen yang disebut modul,
yang diintegrasikan untuk memenuhi
persyaratan yang diinginkan.
-
- Perancangan
Perangkat Lunak Besar
- Langkah-langkah perancangan perangkat
lunak dalam skala besar menurut Pressman
adalah :
- 1. Perancangan Arsitektur
- Mengidentifikasi dari
subsistem, dicari hubungan antara
subsistem dengan sistemnya, lalu
didokumentasikan.
- 2. Spesifikasi / Abstraksi
- Untuk setiap sub sistem,
spesifikasi abstraksi harus sudah bisa
memenuhi dan membatasi dimana produk
tersebut dibuat dan nantinya
dioperasikan.
- 3. Perancangan Antar Muka
- Untuk setiap
subsistem, antar muka dengan subsistem
lainnya harus dirancang dan
didokumentasikan. Interface ini jangan
sampai membingungkan user.
- 4. Perancangan Komponen
- Pada tahap ini
subsistem harus bisa memenuhi
bagian-bagian pekerjaan atau yang harus
dikerjakan komponen-komponen yang ada
dalam subsistem tersebut.
- 5. Perancangan Stuktur Data
- Struktur data yang
digunakan dalam implementasi sistem harus
dirancang secara khusus.
- 6. Perancangan Algoritma
- Algoritma yang
digunakan untuk bisa memenuhi persyaratan
nantinya dirancang secara rinci dan
spesifik.
-
- Kualitas
Perancangan Perangkat Lunak
- Diukur dengan dua metode :
- 1. Kohesi
- Modul yang kohesif
adalah modul yang mengerjakan satu tugas
saja. Diinginkan membuat modul dengan
kohesi yang tinggi.
- Menurut Constantine dan Yourdon terdapat
tingkatan kohesi mulai dari yang paling
rendah ke yang paling tinggi :
- a. Koinsidental
- Bagian dari komponen
data tidak berhubungan tertapi dijadikan
satu ke dalam sebuah komponen.
- b. Logical Association
- Komponen yang
melakukan fungsi-fungsi yang sama seperti
input, penanganan kesalahan (error
handing) diletakkan secara bersama
dalam komponen tunggal.
- c. Temporal
- Seluruh komponen yang
diaktifkan/dibangkitkan dalam satu waktu
yang berdiri sendiri seperti startup dam
shutdown Windows ditempatkan bersama pada
satu tempat.
- d. Prosedural
- Elemen-elemen dalam
komponen dibuat dalam pengendalian
tunggal namun berurutan.
- e. Komunikatif / Komunikasional
- Seluruh komponen dari
elemen yang beroperasi pada data yang
sama atau menghasilkan output data yang
sama.
- f. Sekuensial
- Keluaran dari salah
satu elemen di dalam komponen bertindak
sebagai input untuk beberapa elemen yang
lain.
- g. Fungsional
- Masing-masing dari
komponen diperlukan untuk eksekusi
fungsi-fungsi tunggal.
- 2. Kopling
- Merupakan ukuran interkoneksi antar
modul. Diinginkan membuat modul-modul
dengan kopling yang rendah.
- Suatu program jika koplingnya tinggi
berarti memiliki keterkaitan sangat kuat.
Pada kopling tinggi ini, kesalahan satu
submodul bisa menyebabkan semua modul
berhenti.
- Spektrum/tingkatan kopling dari yang
paling tinggi ke yang paling rendah :
- a. Isi
- b. Bersama
- c. Eksternal
- d. Kendali
- e. Stamp
- f. Data
- g. Tanpa kopling
-
- Pertimbangan
Coding
- Ada beberapa hal yang perlu
dipertimbangkan dalam pelaksanaan coding
:
- - Rancangan yang dihasilkan : seberapa
mudah menerjemahkannya ke dalam bahasa
pemrograman.
- - Efisiensi komputer (kecepatan dan
kebutuhan memori).
- - Portabilitas kode program.
- - Keberadaan tool-tool
pengembangan.
- - Kemudahan untuk dipelihara/dirawat.
-
- Pengujian
Perangkat Lunak
- Dalam tahap pengujian perangkat lunak,
ada beberapa pendelatan pelaksanaan tahap
ini :
- 1. Pengujian 'white box'
- - Menguji detil
prosedural : mengamati jalur-jalur
logikal yang dibentuk oleh struktur
pengendalian program (loop, percabangan).
- - Bisa mengungkap 100%
kesalahan logika yang mungkin muncul,
bersifat exhaustive : ledakan
kombinatorial untuk modul/program yang
besar dan kompleks.
- - Dilakukan pada awal
tahap pengujian.
- Aktivitas :
- a. Menguji tiap jalur
paling sedikit satu kali.
- b. Menguji tiap
kondisi percabangan untuk nilai 'benar'
dan 'salah'.
- c. Menguji loop pada
batas-batas loop dan pada daerah
operasionalnya.
- d. Menguji struktur
data internal untuk memastikan
kesahihannya.
- Metode :
pengujian jalur dasar (basis path),
pengujian kondisi, pengujian aliran data,
pengujian loop.
-
- 2. Pengujian 'black box'
- - Berfokus pada
persyaratan fungsional dari perangkat
lunak.
- - Dilakukan tidak pada
awal tahap pengujian.
- - Mengungkap
kesalahan-kesalahan pada fungsi-fungsi
yang salah/hilang, antarmuka, akses ke
basis data eksternal, kinerja, serta
inisialisasi dan terminasi program.
- Metode : equivalence
partitioning, analisis nilai batas,
teknik graf sebab akibat.
-
- Pemeliharaan
Perangkat Lunak
- Jenis-jenis pemeliharaan perangkat lunak
:
- - Korektif
- - Adaptif
- - Penyempurnaan
- - Preventif
-
- Aktivitas :
- - Pelaporan : laporan problem,
spesifikasi perubahan.
- - Aliran event dalam pemeliharaan.
- - Penyimpanan rekaman-rekaman selama
tahap pengembangan.
- - Evaluasi terhadap aktivitas-aktivitas
yang dilakukan dalam tahap pemeliharaan.
-
- <iYAN,291099>
Pilihan Mata Kuliah :
- Rekayasa
Perangkat Lunak
- Teknik
Kompilasi
-
Copyright(c) 1999 by
Yanuar Firdaus A.W
|
|