Pages

Subscribe:

Labels

Sabtu, 15 Desember 2012

Sejarah Rekayasa Perangkat Lunak


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 !vml]–>Tabel 1 : perkembangan Rekayasa Perangkat Lunak
<!–[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
<!–[if !vml]–>

<!–[endif]–>

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
<!–[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.
<!–[if !supportLists]–>· <!–[endif]–>Para ahli sistem (system engineers) terlibat dalam spesifikasi sistem, desain arsitektural, integrasi dan peluncurannya.

0 komentar:

Posting Komentar