Software dan Karakteristiknya
Oleh : Ishak Kholil
Pendahuluan
Penulis mencoba mengangkat dalam tugas Software Engeneering, mengenai software dan karakternya. Karena penulis menganggap masalah ini perlu juka diketahui secara mendalam oleh para praktisi awal IT sebelum mengetahui dan mengenal IT lebih mendalam. Penulis mendapatkan tetang hal ini dari beberapa literatur yang pernah penulis baca.
Arti Software
1. Instruksi, Atau program komputer yang ketika dieksekusi akan memberi fungsi dan hasil yang diinginkan.
2. Struktur data, Yang memungkinkan program memanipulasi informasi
3. Dokumen, Yang menggambarkan operasi dan penggunaan program.
Sifat Dan Karakteristik Software
1. Software merupakan elemen sistem logik dan bukan elemen sistem fisik seperti hardware
2. Elemen itu tidak aus, tetapi bisa rusak.
3. Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik seperti hardware
4. Software itu tidak bisa dirakit.
Evolusi software
Tahun-tahun awal :
- Batch orientation
- Limmited distribution
- Custummer software
Era kedua :
- Multi user
- Real time
- Database
- Distibuted system
- Embedded intellegence
- Low cost hardware
- Consumer infact
Era keempat :
- Expert system
- A I Machine
- Parallel architecture
SOFTWARE ENGINEERING
Krisis software yang sering terjadi dalam organinasi tidak dapat hilang dalam satu malam, di mana tidak ada suatu pendekatan yang baik dalam mengatasi krisis software, namun gabungan dari metode untuk semua fase dalam pengembangan software seperti peralatan yang lebih baik untuk mengautomatisasi metode-metode ini, tehnik yang lebih baik untuk mengontrol kualitas, dan filosofi untuk koordinasi kontrol, serta manajemen dipelajari dalam suatu disiplin ilmu yang kita sebut software engineering
Arti Software Engineering :
Ilmu yang mempelajari tehnik pembuatan software yang baik dengan pendekatan tehnik (Engineering approach) atau menurut Fritz Badar, software engineering adalah disiplin ilmu yang menerapkan prinsip-prinsip engineering agar mendapatkan software yang ekonomis yang dapat dipercaya dan bekerja lebih efisien pada mesin yang sebenarnya.
Software engineering terdiri dari 3 elemen kunci, yaitu :
1. Metode,
2. Peralatan (tools),
3. Prosedur,
Dalam penguasaan atas model software engineering atau software engineering paradigm, dikenal ada 3 metode yang luas dipergunakan, yaitu :
1. Classic Life Cycle Pradigm - Model Water Fall - Model Siklus Hidup Klasik
Keterangan :
A. System Engineering and Analysis
Karena software merupakan bagian terbesar dari sistem, maka pekerjaan dimulai dengan cara menerapkan kebutuhan semua elemen sistem dan mengalokasikan sebagian kebutuhan tersebut ke software. Pandangan terhadap sistem adalah penting, terutama pada saat software harus berhubungan dengan elemen lain, seperti :
- Hardware
- Software
- Database
B. Analisis kebutuhan software
Suatu proses pengumpulan kebutuhan software untuk mengerti sifat-sifat program yang dibentuk software engineering, atau analis harus mengerti fungsi software yang diinginkan, performance dan interface terhadap elemen lainnya. Hasil dari analisis ini didokumentasikan dan direview / dibahas / ditinjau bersama-sama customer.
C. Design
Desain software sesungguhnya adalah proses multi step (proses yang terdiri dari banyak langkah) yang memfokuskan pada 3 atribut program yang berbeda, yaitu :
- Struktur data
- Arsitektur software
- Rincian prosedur
Proses desain menterjemahkan kebutuhan ke dalam representasi software yang dapat diukur kualitasnya sebelum mulai coding. Hasil dari desain ini didokumentasikan dan menjadi bagian dari konfigurasi software.
D. Coding, Desain harus diterjemahkan ke dalam bentuk yang dapat dibaca oleh mesin
E. Testing
Segera sesudah objek program dihasilkan, pengetesan program dimulai. Proses testing difokuskan pada logika internal software. Jaminan bahwa semua pernyataan atau statements sudah dites dan lingkungan external menjamin bahwa definisi input akan menghasilkan output yang diinginkan.
F. Maintenance
Software yang sudah dikirim ke customer data berubah karena
- Software mengalami error
- Software harus diadaptasi untuk menyesuaikan dengan lingkungan external, misalnya adanya sistem operasi baru atau peripheral baru.
- Software yang lebih disempurnakan karena adanya permintaan dari customer.
Masalah yang dihadapi dari model siklus hidup klasik adalah :
- Proyek yang sebenarnya jarang mengikuti aliran sequential yang ditawarkan model ini. Iterasi (Pengulangan) selalu terjadi dan menimbulkan masalah pda aplikasi yang dibentuk oleh model ini.
- Seringkali pada awalnya customer sulit menentukan semua kebutuhan secara explisit (jelas).
- Customer harus sabar karena versi program yang jalan tidak akan tersedia sampai proyek software selesai dalam waktu yang lama.
2. Prototype Paradigm
Keterangan :
Seringkali seorang customer sulit menentukan input yang lebih terinci, proses yang diinginkan dan output yang diharapkan. Tentu saja ini menyebabkan developer tidak yakin dengan efisiensi alogoritma yang dibuatnya, sulit menyesuaikan sistem operasi, serta interaksi manusia dan mesin yang harus diambil. Dalam hal seperti ini, pendekatan prototype untuk software engineering merupakan langkah yang terbaik. Prototype sebenarnya adalah suatu proses yang memungkinkan developer membuat sebuah model software.
Ada 2 bentuk dari model ini, yaitu :
A. Paper Prototype
Menggambarkan interaksi manusia dan mesin dalam sebuah bentuk yang memungkinkan user mengerti bagaimana interaksi itu terjadi.
B. Working Prototype
Adalah prototype yang mengimplementasikan beberapa bagian dari fungsi software yang diinginkan seperti pada pendekatan pengembangan software. Model ini dimulai dengan :
- Pengumpulan kebutuhan developer dan customer
- Menentukan semua tujuan software
- Mengidentifikasi kebutuhan-kebutuhan yang diketahui
Hasil dari pengumpulan kebutuhan diteruskan pada Quick Design. Quick Design ini memfokuskan pada representasi aspek-aspek software yang dapat dilihat oleh user, misalnya format input dan output, selanjutanya dari desain cepat diteruskan pada pembentukan prototype (langkah ke 3). Prototype ini dievaluasi oleh customer / user dan digunakan untuk memperbaiki kebutuhan-kebutuhan software. Proses iterasi terjadi agar prototype yang dihasilkan memenuhi kebutuhan customer, juga pada saat yang sama developer mengerti lebih baik tentang apa yang harus dikerjakan.
Masalah yang dihadapi oleh prototyping paradigm ini adalah :
- Customer hanya melihat pada apa yang dihasilkan oleh software, tidak peduli pada hal-hal yang berhubungan dengan kualitas software dan pemeliharaan jangka panjang.
- Developer seringkali menyetujui apa yang diterangkan oleh customer agar prototype dapat dihasilkan dengan cepat. Akibatnya timbul pemilihan sistem operasi / bahasa pemrograman yang tidak tepat.
3. Fourth Generation Tehnique Paradigm - Model tehnik generasi ke 4 / 4GT
Istilah Fourth Generation Technique (4GT) meliputi seperangkat peralatan software yang memungkinkan seorang developer software menerapkan beberapa karakteristik software pada tingkat yang tinggi, yang kemudian menghasilkan source code dan object code secara otomatis sesuai dengan spesifikasi yang ditentukan developer. Saat ini peralatan / tools 4GT adalah bahasa non prosedur untuk :
- DataBase Query
- Pembentukan laporan ( Report Generation )
- Manipulasi data
- Definisi dan interaksi layar (screen)
- Pembentukan object dan source ( Object and source generation )
- Kemampuan grafik yang tinggi, dan
- Kemampuan spreadsheet
Keterangan gambar :
- Model 4GT untuk software engineering dimulai dengan rangkaian pengumpulan kebutuhan. Idealnya, seorang customer menjelaskan kebutuhan-kebutuhan yang selanjutnay diterjemahkan ke dalam prototype. Tetapi ini tidak dapat dilakukan karena customer tidak yakin dengan apa yang diperlukan, tidak jelas dalam menetapkan fakta-fakta yang diketahui dan tidak dapat menentukan informasi yang diinginkan oleh peralatan 4GT.
- Untuk aplikasi kecil adalah mungkin bergerak langsung dari langkah pengumpulan kebutuhan ke implementasi yang menggunakan bahasa non prosedur fourth generation (generasi ke 4). Tetapi untuk proyek besar, pengembangan strategi desain sistem tetap diperlukan, sekalipun kita menggunakan 4GL. Penggunaan 4GT tanpa desain untuk proyek besar akan menyebabkan masalah yang sama yang ditemui dalam pengembangan software yang menggunakan pendekatan konvensional.
- Implementasi yang menggunakan 4GL memungkinkan developer software menjelaskan hasil yang diinginkan yang kemudian diterjemahkan ke dalam bentuk source code dan object code secara otomatis.
- Langkah yang terakhir adalah mengubah implementasi 4GT ke dalam sebuah product. Selanjutnya developer harus melakukan pengetesan, pengembangan dokumentasi dan pelaksanaan semua aktifitas lainnya yang diwujudkan dalam model software engineering.
Masalah yang dihadapi dalam model 4GT adalah adanya sebagian orang yang beranggapan bahwa :
A. peralatan 4GT tidak semudah penggunaan bahasa pemrograman,
B. source code yang dihasilkan oleh peralatan ini tidak efisien,
pemeliharaan sistem software besar yang dikembangkan dengan 4GT masih merupakan tanda tanya
@Penulis, Merupakan pengajar di AMIK BSI Jakarta