
Rekayasa
perangkat lunak telah berkembang sejak pertama kali diciptakan pada
tahun 1950-an hingga kini. Fokus utama pengembangannya adalah untuk
mengembangkan praktek dan teknologi untuk meningkatkan produktivitas
para praktisi pengembang perangkat lunak dan kualitas aplikasi yang
dapat digunakan oleh pemakai.
Pada
tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para
praktisi pengembangan perangkat lunak. Banyak projek yang gagal, hingga
masa ini disebut sebagai perangkat lunak. Kasus kegagalan pengembangan
perangkat lunak terjadi mulai dari projek yang melebihi anggaran, hingga
kasus yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus
yang terkenal antara lain meledaknya roket Ariane akibat kegagalan
perangkat lunak.
Selama
bertahun-tahun, para peneliti memfokuskan usahanya untuk menemukan
teknik jitu untuk memecahkan masalah krisis perangkat lunak. Berbagai
teknik, metode, alat, proses diciptakan dan diklaim sebagai senjata
pamungkas untuk memecahkan kasus ini. Mulai dari pemrograman
terstruktur, pemrograman berorientasi object, perangkat pembantu
pengembangan perangkat lunak (CASE tools), berbagai standar,
UML hingga metode formal diagung-agungkan sebagai senjata pamungkas
untuk menghasilkan software yang benar, sesuai anggaran dan tepat waktu.
Dari
perkembangan perangkat lunak, kita bisa membayangkan bagaimana
perkembangan interaksi manusia dengan perangkat lunak. Bentuk paling
primitif dari perangkat lunak, menggunakan aljabar Boolean, yang di
representasikan sebagai binary digit (bit), yaitu 1 (benar / on) atau 0
(salah / off), cari ini sudah pasti sangat menyulitkan, sehingga orang
mulai mengelompokkan bit tersebut menjadi nible (4 bit), byte (8 bit),
word (2 byte), double word (32 bit).
Kelompok-kelompok
bit ini di susun ke dalam struktur instruksi seperti penyimpanan,
transfer, operasi aritmatika, operasi logika, dan bentuk bit ini di ubah
menjadi kode-kode yang di kenal sebagai assembler. Kode-kode mesin
sendiri masih cukup menyulitkan karena tuntutan untuk dapat menghapal
kode tersebut dan format (aturan) penulisannya yang cukup membingungkan,
dari masalah ini kemudian lahir bahasa pemrograman tingkat tinggi yang
seperti bahasa manusia (bahasa Inggris). Saat ini pembuatan perangkat
lunak sudah menjadi suatu proses produksi
yang sangat kompleks, dengan urutan proses yang panjang dengan
melibatkan puluhan bahkan ratusan orang dalam pembuatannya.
Era Pioner
Bentuk
perangkat lunak pada awalnya adalah sambungan-sambungan kabel ke antar
bagian dalam komputer. Cara lain dalam mengakses komputer adalah
menggunakan punched card yaitu kartu yang di lubangi. Penggunaan
komputer saat itu masih dilakukan secara langsung, sebuah program untuk
sebuah mesin untuk tujuan tertentu. Pada era ini, perangkat lunak
merupakan satu kesatuan dengan perangkat kerasnya. Penggunaan komputer
dilakukan secara langsung dan hasil yang selesai di kerjakan komputer
berupa print out. Proses yang di lakukan di dalam komputer berupa baris
instruksi yang secara berurutan di proses.
Era Stabil
Pada
era stabil penggunaan komputer sudah banyak di gunakan, tidak hanya
oleh kalangan peneliti dan akademi saja, tetapi juga oleh kalangan
industri / perusahaan. Perusahaan perangkat lunak bermunculan, dan
sebuah perangkat lunak dapat menjalankan beberapa fungsi, dari ini
perangkat lunak mulai bergeser menjadi sebuah produk. Baris-baris
perintah perangkat lunak yang di jalankan oleh komputer bukan lagi
satu-satu, tapi sudah seperti banyak proses yang di lakukan secara
serempak (multi tasking). Sebuah perangkat lunak mampu
menyelesaikan banyak pengguna (multi user) secara cepat/langsung (real
time). Pada era ini mulai di kenal sistem basis data, yang memisahkan
antara program (pemroses) dengan data (yang di proses).
Era Mikro
Sejalan
dengan semakin luasnya PC dan jaringan komputer di era ini, perangkat
lunak juga berkembang untuk memenuhi kebutuhan perorangan. Perangkat
lunak dapat di bedakan menjadi perangkat lunak sistem yang bertugas
menangani internal dan perangkat lunak aplikasi yang di gunakan secara
langsung oleh penggunannya untuk keperluan tertentu. Automatisasi yang
ada di dalam perangkat lunak mengarah ke suatu jenis kecerdasan buatan.
Era Modern
Saat
ini perangkat lunak sudah terdapat di mana-mana, tidak hanya pada
sebuah superkomputer dengan 25 prosesornya, sebuah komputer genggampun
telah di lengkapi dengan perangkat lunak yang dapat di sinkronkan dengan
PC. Tidak hanya komputer, bahkan peralatan seperti telepon, TV, hingga
ke mesin cuci, AC dan microwave, telah di tanamkan perangkat lunak untuk
mengatur operasi peralatan itu. Dan yang hebatnya lagi adalah setiap
peralatan itu akan mengarah pada suatu saat kelak akan dapat saling
terhubung. Pembuatan sebuah perangkat lunak bukan lagi pekerjaan
segelentir orang, tetapi telah menjadi pekerjaan banyak orang, dengan
beberapa tahapan proses yang melibatkan berbagai disiplin ilmu dalam
perancangannya. Tingkat kecerdasan yang di tunjukkan oleh perangkat
lunak pun semakin meningkat, selain permasalahan teknis, perangkat lunak
sekarang mulai bisa mengenal suara dan gambar.
Era Pioner
|
Era Stabil
|
Era Mikro
|
Era Modern
|
Proses batch Desktop
|
Multi User
|
Sistem tersebar
|
Sistem Desktop
|
Distribusi terbatas teknologi objek
|
Real Time
|
Penanaman kecerdasan
|
Teknologi Objek
|
1950
|
1960
|
1970
|
1980
|
1990
|
2000
|
Era Pioner
|
Era Stabil
|
Era Mikro
|
Era Modern
|
<!–[if !supportLists]–>B. <!–[endif]–>Rekayasa Sistem
Rekayasa
Perangkat Lunak terjadi sebagai konsekuensi dari suatu proses yang
disebut dengan rekayasa sistem. Rekayasa Sistem memfokuskan diri pada
berbagai elemen analisis, perancangan dan pengorganisasianm
elemen-elemen tersebut ke dalam suatu sistem yang dapat menjadi sebuah
produk, jasa, atau teknologi untuk mentransformasi informasi atau
kontrol. Proses Rekayasa Sistem disebut Rekayasa Informasi apabila
konteks kerja rekayasa berfokus pada perusahaan bisnis. Dimana pada saat
produk akan dibuat proses ini disebut rekayasa produk. Di dalam buku
ini disepkati bahwa bentukl Rekayasa Sistem adalah umum dan dapat
digunakan baik untuk Rekayasa Informasi maupun Rekayasa Produk.
Rekayasa
Sistem bekerja unutk mengalokasikan suatu peran bagi Perangkat Lunak
komputer dan unutk mebangun hubungan yang mengikat perangkat lunak ke
dalam elemen sistem berbasis komputer lainnya.
Definisi Sistem
Terdapat dua kelompok pendekatan
dalam mendefinisikan sistem, yaitu yang menekankan pada prosedurnya dan
yang menekankan pada komponen atau elemennya. Pendekatan sistem yang
lebih menekankan pada prosedur mendefinisikan sistem sebagai berikut ini
: Suatu sistem adalah suatu jaringan kerja dari prosedur-prosedur
yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu
kegiatan atau untuk menyelesaikan suatu sasaran yang tertentu.
Pendekatan sistem yang merupakan jaringan kerja dari prosedur lebih
menekankan urut-urutan operasi didalam sistem.
Pendekatan sistem yang lebih menekankan pada elemen atau komponennya mendefinisikan sistem sebagai berikut : Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu.
Pendekatan
sistem yang merupakan kumpulan dari elemen-elemen atau
komponen-komponen atau subsistem-subsistem merupakan definisi yang lebih
luas dan lebih banyak diterima karena pada kenyataannya suatu sistem
terdiri dari beberapa subsitem atau sistem-sistem bagian.
Komponen-komponen atau subsistem-subsistem dalam suatu sistem tidak
dapat berdiri sendiri, semuanya saling berinteraksi dan saling
berhubungan membentuk satu kesatuan sehingga sasaran sistem dapat
tercapai.
B.1. Karakteristik Sistem
Suatu
sistem menpunyai karakteristik atau sifat-sifat tertentu, yaitu
mempunyai komponen-komponen (components), batas (boundary), lingkungan
luar sistem (environments), penghubung (interface), masukan (input),
keluaran (output), pengolah (process), dan sasaran (objectives) atau
tujuan (goal).
a. Komponen Sistem
Suatu
sistem terdiri dari sejumlah komponen yang saling berinteraksi, yang
artinya saling bekerjasama membentuk suatu kesatuan. Komponen-komponen
sistem atau elemen-elemen sistem dapat berupa subsistem atau
bagian-bagian dari sistem. Setiap sistem tidak perduli betapapun
kecilnya, selalu mengandung komponen-komponen atau subsistem-subsistem.
Setiap subsistem mempunyai sifat-sifat dari subsistem untuk menjalankan
suatu fungsi tertentu dan mempengaruhi proses sistem secara keseluruhan.
Suatu sistem dapat mempunyai suatu sistem yang lebih besar disebut
dengan supra sistem, misalnya suatu perusahaan dapat disebut sebagai
suatu sistem sedang industri yang merupakan sistem yang lebih besar
dapat disebut dengan supra sistem. Kalau dipandang industri sebagai
suatu sistem, maka perusahaan dapat disebut sebagai subsistem. Demikian juga bila perusahaan dipandang sebagai suatu sistem, maka sistem akuntansi adalah subsistemnya. Kalau
sistem akuntansi dipandang sebagai suatu sistem, maka perusahaan adalah
supra sistem dan industri adalah supra dari supra sistem.
b. Batas sistem
Batas
sistem (boundary) merupakan daerah yang membatasi antara suatu sistem
dengan sistem yang lainnya atau dengan lingkungan luarnya. Batas sistem
ini memungkinkan suatu sistem dipasang sebagai suatu kesatuan. Batas
suatu sistem menunjukkan ruang lingkup (scope) dari sistem tersebut.
c. Lingkungan luar sistem
Lingkungan luar (environment) dari suatu sistem adalah apapun diluar batas dari sistem yang mempengaruhi operasi sistem. Lingkungan luar sistem dapat bersifat
menguntungkan dan dapat bersifat merugikan sistem tersebut. Lingkungan
luar yang menguntungkan merupakan energi dari sistem dan dengan demikian
harus tetap dijaga dan dipelihara. Sedang lingkungan luar yang
merugikan harus ditahan dan dikendalikan, kalau tidak maka akan
mengganggu kelangsungan hidup dari sistem.
d. Penghubung sistem
Penghubung
(interface) merupakan media penghubung antara satu subsistem dengan
subsistem lainnya. Melalui penghubung ini memungkinkan sumber-sumber
daya mengalir dari satu subsistem ke subsistem yang lain. Keluaran
(output) dari satu subsistem akan menjadi satu masukan (input) bagi
subsistem yang lain dan akan melalui penghubung. Dengan penghubung satu subsistem dapat berintegrasi dengan subsistem yang lainnya membentuk satu kesatuan.
e. Masukan sistem
Masukan (input) adalah
energi yang dimasukkan kedalam sistem. Masukan dapat berupa masukan
peralatan (maintenence input) dan masukan sinyal (signal input).
Mantenance input adalah energi yang diproses agar didapatkan keluaran.
Sebagai contoh didalam sistem komputer, program adalah maintenance input
yang digunakan untuk mengoperasikan komputernya sedangkan data adalah
signal input untuk diolah menjadi informasi.
f. Keluaran sistem
Suatu
sistem dapat mempunyai suatu bagian pengolah yang akan merubah masukan
menjadi keluaran. Suatu sistem produksi akan mengolah masukan berupa
bahan baku dan bahan-bahan yang lain menjadi keluaran berupa barang
jadi. Sistem akuntansi akan mengolah transaksi menjadi laporan keuangan
dan laporan-laporan lain yang dibutuhkan oleh menejemen.
g.Sasaran sistem
Suatu
sistem pasti mempunyai tujuan (goal) atau sasaran (objektif). Kalau
sistem tidak mempunyai sasaran, maka operasi sistem tidak akan ada
gunanya. Sasaran dari sistem sangat menentukan sekali, masukan yang
dibutuhkan sistem dan keluaran yang akan dihasilkan sistem.
Klasifikasi sistem
Sistem dapat diklasifikasikan dari beberapa sudut pandang, diantaranya sebagai berikut ini :
<!–[if !supportLists]–>a) <!–[endif]–>Sistem
abstrak dan sistem fisik. Sistem abstrak adalah sistem yang berupa
pemikiran atau ide-ide yang tidak tampak secara fisik. Misalnya sistem
teologia, yaitu sistem yang berupa pemikiran-pemikiran hubungan antara
manusia dengan tuhan. Sistem fisik merupan sistem yang ada secara fisik misalnya sistem komputer, sistem akuntansi dan sistem produksi.
<!–[if !supportLists]–>b) <!–[endif]–>Sistem
alamiah (natural sistem) dan sistem buatan manusia (human made sistem).
Sistem alamiah adalah sistem yang terjadi melalui proses alam, misalnya
sistem perputaran bumi. Sistem buatan manusia adalah sistem yang
dirancang oleh manusia. Sistem buatan manusia yang melibatkan interaksi
antara manusia dengan mesin disebut dengan human machine sistem atau ada
yang menyebut dengan man machine sistem, karena menyangkut penggunaan
komputer yang berinteraksi dengan manusia.
<!–[if !supportLists]–>c) <!–[endif]–>Sistem
tertentu (deterministic sistem) dan sistem tak tentu (probabilistic
sistem). Sistem tertentu beroperasi tertentu dengan tingkah laku yang
sudah dapat diprediksi. Inteaksi diantara bagian-bagiannya dapat
dideteksi dengan pasti, sehingga keluaran dari sistem dapat diramalkan.
Sistem komputer adalah contoh dari sistem tertentu yang tingkah lakunya
dapat dipastikan berdasarkan program-program yang dijalankan. Sistem tak tentu adalah sistem yang kondisi masa depannya tidak dapat diprediksi karena mengandung unsur probabilitas.
<!–[if !supportLists]–>d) <!–[endif]–>Sistem
tertutup (closed sistem) dan sistem terbuka (open sistem). Sistem
tertutup merupakan sistem yang tidak berhubungan dan tidak terpengaruh
oleh lingkungan luarnya. Sistem ini bekerja secara otomatis tanpa adanya
turut campur tangan dari pihak diluarnya. Secara teoritis sistem
tertutup ada, tetapi kenyataan tidak ada sistem yang benar-benar
tertutup yang ada hanyalah relatively closed sistem (secara relatif
tertutup, tidak benar-benar tertutup), sedang sistem terbuka adalah
sistem yang berhubungan dan terpengaruh oleh lingkungan luarnya. Sistem
ini menerima masukan dan menghasilkan keluaran untuk lingkungan luar
atau subsistem yang lainnya, karena sistem sifatnya terbuka dan
tepengaruh oleh lingkungan luarnya, maka suatu sistem harus mempunyai
sistem pengendalian yang baik. Sistem-sistem yang baik harus dirancang
sedemikian rupa, sehingga secara relatif tertutup karena sistem tertutup
akan bekerja secara otomatis dan terbuka untuk pengaruh yang baik saja.
Sistem Berbasis komputer
Sistem
Berbasis komputer adalah serangkaian atau tatanan elemen-elemen yang
diatur untuk mencapai tujuan yang ditentgukan sebelumnya melalui proses
informasi. Tujuannya adalah untuk mendukung berbagai fungsi bisnis atau
unutk mengembangkan suatu produk yang dapat dijual untuk mneghasilkan
keuntungan bisnis.
Sistem
berbasis komputer menggunakan berbagai elemen sistem : perangkat lunak,
perangkat keras, manusia, database, dokumentasi serta prosedur.
Rekayasa Sistem
Rekayasa
Sistem adalah sebuah proses pemodelan. Tanpa melihat pokok
permasalahnnya, rekayasa melingkupi sekumpulan metode top down dan
bottom up dimana suatu rekayasa sistem diilustrasikan sebagai sebuah
hirarki proses. Dimulai dengan sebuah pandangan menyeluruh mengenai
bisnis atau produk yang digunakan/diuji, hingga suatu kebutuhan unutk
sistem dapat diketemukan (misal data, perangkat keras, perangkat lunak,
dsb). Seorang perekayasa sistem membatasi elemen-elemen pembangun sistem
berbasais komputer tertentu dalam konteks keseluruhan hirarki rekayasa
sistem.
Di
dalam proses penciptaan pemodelan, perekayasa sistem menciptakan model
yang membatasi proses yang melayani kebutuhan, menggambarkan tingkah
laku proses dan sumsi dimana tingkah laku tersebut didasarkan, membatasi
input exogeneous ( menghubungkan satu elemen dengan elemen lainnya pada
tingkat yang sama atau tingkat yang lain) dan endogeneous
(menghubunhkan komponen individual dari elemen pada sebuah paragdigma
tertentu ) kepada model, serta merepresentasikan semua hubungan
(termasuk output) yag memungkinkan perekayasa memahami paradigma
tersebut secara baik.
Untuk membangun sebuah model sistem perekayasa sebaiknya mempertimbangkan hal-hal sebagai berikut :
<!–[if !supportLists]–>- <!–[endif]–>asumsi
yang mengurangi permutasi dan variasi yang mengkin terjadi, yang
mengakibatkan sebuah model dapat mencerminkan masalah dengan baik dan
benar
<!–[if !supportLists]–>- <!–[endif]–>Penyerdahanaan sehingga memungkinkan model diciptakan dengan waktu y tepat.
<!–[if !supportLists]–>- <!–[endif]–>Pembatasan, sehingga dapat membantu dalam hal membatasi sistem
<!–[if !supportLists]–>- <!–[endif]–>Batasan dimana dapat menunjukkan cara dimana model diciptakan serta pendekatan yang dilakukan saat model diimplementasikan.
<!–[if !supportLists]–>- <!–[endif]–>Preferensi yang menunjukkan arsitektur yang dipilih untuk
semua data, fungsi dan teknologi. Dimana kepuasan pelanggan seringkali
didasarkan pada tingkat dimana pendekatan yang dipilih akan
direalisasikan.
Sebuah
Sistem dapat dimodelkan sebagai sebuah pemindahan informasi dengan
menggunakan pemahaman input-proses-output. Di dalam rekayasa sistem
pemahaman tersebut terdapat tambahan dua komponen yaitu interface
pemakai memproses dan memelihara selftes. Berikut gambar pemahaman
pemindahan informasi dalam rekayasa sistem :
Pemrosesan interface user
|
Pemeliharaan & selftest
|
Pemrosesan Input
|
Pemrosesan Output
|
Fungsi Proses dan Kontrol
|
Rekayasa
sistem membutuhkan komunikasi yang intens antara poelanggan dan
perkayasa informasi atu sistem. Pelanggan harus memahami sasaran dapat
menyatakannya dengan jelas. Perekayasa sistem harus tahu pertanyaan apa
yang harus dijawab, nasihat apa yang harus diberikan serta penelitian
seperti apa yang harus dilakukan. Bila komunikasi berhasil dan sebuah
model lengkap dari sebuah sistem sudah dibuat berarti dasar yang solid
sudah dibangun bagi konstruksi sistem tersebut.
<!–[if !supportLists]–>C. <!–[endif]–>Rekayasa Perangkat Lunak
Rekayasa
Perangkat Lunak merupakan disiplin ilmu rekayasa atau teknik yang
berkaitan dengan semua aspek dalam membuat perangkat lunak (PL), dimana
RPL harus mengikuti pendekatan yang sistematis dan teratur dan
menggunakan alat dan teknik yang cocok sesuai dengan masalah yang akan
dipecahkan, batasan pembangunan dan sesumber yang tersedia
Sedangkan
perangkat lunak itu sendiri merupakan program komputer dan dokumentasi
yang berkaitan seperti dokumen kebutuhan, rancangan, dan user manual
dimana produk PL bisa dibangun untuk pengguna khusus atau umum, yaitu :
(1) Generic; dibangun untuk dijual ke pengguna yang berbeda-beda
misalnya PL untuk PC seperti Excel atau Word dan (2)Bespoke/custom;
untuk pengguna khusus/pemesan sesuai kebutuhannya. PL baru bisa dibuat
dengan membangun program baru, konfigurasi sistem PL atau gunakan lagi
(reuse) program yang sudah ada.
Perangkat
lunak lebih merupakan elemen logika dan b ukan merupakan elemen sistem
fisik, sehingga perangkat lunak mempunyai ciri yang berbeda dengan
perangkat keras, berikut ini karakteristik dari sebuah perangkat lunak :
<!–[if !supportLists]–>- <!–[endif]–>Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk klasik
<!–[if !supportLists]–>- <!–[endif]–>Perangkat Lunak tidak pernah usang
<!–[if !supportLists]–>- <!–[endif]–>Sebagian besar perangkat lunak dibuat secara custom-built dan tidak dapat dirakikt dari komponen yang sudah ada
Pentingnya Rekayasa Perangkat Lunak dan Perangkat Lunak
<!–[if !supportLists]–>· <!–[endif]–>Semua negara maju ekonominya bergantung pada perangkat lunak (PL) Makin banyak sistem yang dikendalikan oleh PL
<!–[if !supportLists]–>· <!–[endif]–>RPL berkaitan dengan teori,metode & alat untuk pembangunan PL secara pofesional.
<!–[if !supportLists]–>· <!–[endif]–>Pengeluaran dana untuk PL di negara maju sangat besar.
<!–[if !supportLists]–>· <!–[endif]–>Harga PL sering lebih mendominasi harga sistem komputer. Harga PL pada PC sering lebih mahal dari pada harga perangkat kerasnya.
<!–[if !supportLists]–>· <!–[endif]–>Biaya pemeliharaan PL lebih mahal dibanding biaya pembuatannya.
<!–[if !supportLists]–>· <!–[endif]–>RPL berkaitan dengan biaya efektif pembuatan PL.
Beda RPL dan Ilmu Komputer
<!–[if !supportLists]–>· <!–[endif]–>Ilmu komputer berkaitan dengan teori dan konsep-konsep dasar; RPL berkaitan
dengan praktek pembangunan PL
dengan praktek pembangunan PL
<!–[if !supportLists]–>· <!–[endif]–>Teori ilmu komputer masih kurang sebagai penyangga RPL.
Beda RPL dan Rekayasa Sistem
<!–[if !supportLists]–>· <!–[endif]–>Rekayasa sistem berkaitan dengan semua aspek dalam pembangunan sistem
berbasis komputer termasuk hardware, rekayasa PL dan proses. RPL adalah bagian dari rekayasa sistem yang meliputi pembangunan PL, infrasktruktur, kontrol, aplikasi dan database pada sistem.
berbasis komputer termasuk hardware, rekayasa PL dan proses. RPL adalah bagian dari rekayasa sistem yang meliputi pembangunan PL, infrasktruktur, kontrol, aplikasi dan database pada sistem.
<!–[if !supportLists]–>· <!–[endif]–>Para ahli sistem (system engineers) terlibat dalam spesifikasi sistem, desain arsitektural, integrasi dan peluncurannya.









