Kamis, 12 Januari 2012

Rekayas Perangkat Lunak SOFTWARE vs SOFTWARE ENGINEERING

A. Software
Software atau perangkat lunak dapat diartikan sebagai sekumpulan logam yang tak berguna atau aplikasi yang digunakan untuk menyimpan, memproses dan menampilkan kembali sebuah informasi. Perangkat lunak dapat dibagi menjadi dua macam, yakni program sistem dan program aplikasi.
Program sistem adalah program yang digunakan untuk mengelola operasi komputer. Program sistem ini dan yang paling utama adalah sistem operasi (Operating System) yang berfungsi untuk mengendalikan semua sumber daya dan sekaligus menyediakan sekumpulan layanan sehingga user dapat memanfaatkan seumber daya tersebut.
Program aplikasi adalah program yang dibuat untuk membantu menyelesaikan masalah-masalah yang dihadapi oleh seorang user. Program aplikasi yang sering bisa dijumpai adalah seperti Microsoft Office, Corel Draw, Adobe Photoshop, dan lain-lain.
Sebagai tambahan sebuah komputer hanyalah terdiri dari mesin dan transistor yang tak memiliki fungsi apa selama masih belum ada software sistem dan software aplikasi. Sejatinya software adalah jembatan user dengan mesin (hardware). Sebuah komputer memiliki prosesor, memori, terminal, disk, dan lain-lain yang merupakan sebuah perangkat keras yang sangat kompleks. Oleh karena itu untuk mengelola itu diperlukan sebuah program untuk mengatur dan mengelola hardware tersebut sehingga dapat diperintah sesuai dengan keinginan manusia.
Software digunakan untuk mengelola semua bagian komputer dan tampil ke depan pengguna sebagai sebuh antarmuka (interface) atau sebagai virtual machine yang lebih mudah untuk dipahami dan diprogram yang kemudian dikenal sebagai pemrograman sistem atau lebih mudahnya disebut sistem operasi. Diatas program sistem terdapat program aplikasi yang dibuat oleh produsen software yang bisa digunakan sebagai problem solving yang dihadapi oleh user.
B. Software Engineering
Software Engineering atau rekayasa perangkat lunak adalah sebuak teknik pengembangan software yang bertujuan untuk merekayasa produk yang meliputi perencanaan, analisa, desain, implementasi, pengujian, dan pemeliharaan. Teknik ini digunakan agar dapat memperbaiki kualitas perangkat lunak yang dikembangkan.
Software engineering dikembangkan dengan teknik dan rekayasa yang ketat, hal ini digunakan untuk penyempurnaan. Sehingga dalam hal ini terjadi siklus yang bisa digunakan atau pedoman dalam pengembangan software.
Teknik yang digunakan dalam rekayasa ini antara lain adalah Waterfall dan Prototype. kedua metode ini memungkinkan seseorang yang mengembangkan atau membuat sebuah software lebih matang untuk dipasarkan.
C. Perbedaan Software & Software Engineering
Software merupakan alat yang digunakan untuk membantu user dalam berinteraksi dengan hardware. Intinya software merupakan tools yang dibuat agar user bisa mengoperasikan dan memerintah hardware sesuai dengan keinginannya.
Untuk membuat alat tersebut diperlukan teknik yang jitu dan sesuai dengan progresifitas sains dan teknologi kontemporer yakni dengan merekayasa software yang akan dibuat. Tanpa adanya rekayas atau perancangan sistem terlebih dahulu mungkin software akan tidak karuan dan bisa dipastikan tidak terlalu laku di pasaran.
Intinya software ibarat sebuah dayung perahu yang seseorang harus tahu teknik menggunakan dayung tersebut agar bisai menjalankan perahu sampai pada tujuan. Teknik mendayung, bagimana mendayung ketika ombak besar, dan lain sebagainya harus direncanakan terlebih dahulu sebelum seseorang naik perahu.
D. Aktifitas Perkembangan Software
Perencanaan dan estimasi dalam proyek pengembangan aplikasi enterprise adalah dua aktivitas penting yang saling terkait namun memiliki perbedaan mendasar. Perencanaan adalah proses yang berorientasi pada hasil, sedangkan estimasi adalah proses analitik yang berorientasi pada akurasi.
Estimasi dapat memberikan fondasi yang kuat terhadap suatu proses perencanaan karena melibatkan target bisnis, komitmen dan kontrol. Namun proses estimasi seringkali diabaikan sehingga berpotensi mengakibatkan kerugian, terutama dalam proyek yang dikerjakan oleh ISV (outsourcing).
Dalam pengemabangan software perencanaan adalah hal yang paling utama. Perencanaan yang tidak disertai estimasi akurat hanya berisi prediksi dan asumsi tentang hasil yang ingin dicapai. Estimasi yang baik dalam proyek pengembangan software adalah yang dapat memberi gambaran jelas tentang realitas proyek sehingga PM atau stakeholder bisa mengambil keputusan yang tepat untuk mencapai target. Saya melihat banyak sekali kegagalan proyek outsourcing pengembangan software akibat tidak memiliki estimasi yang akurat. Kegagalan ini bahkan dapat “dirasakan” mulai saat Independent Software Vendor (ISV) outsourcing memberikan proposal penawaran. Berikut ini adalah contoh aktifitas yang biasanya hanya berupa rencana tanpa disertai estimasi akurat:
- Identifikasi bagian kritikal (kompleksitas utama) dalam proyek
- Penentuan ukuran proyek (jumlah anggota tim pengembang)
- Pembuatan jadwal kerja pengembangan aplikasi
- Struktur tim dan pembagian kerja dalam tim pengembang
- Penentuan prioritas fitur aplikasi yang dikembangkan
- Pembagian fase proyek ke dalam siklus iterasi
Proses pengembangan software adalah aktifitas yang melibatkan people, process dan tools. Setelahmemeriksa kelayakan ISV dari sisi people’s skill, yang perlu diperhatikan adalah prosess dan tools. Untuk pengembangan software dengan model outsourcing secara efektif, enterprise perlu menyediakan standar panduan proses (process guidance) yang terintegrasi dengan tools yang handal. Biasanya saya memiliki 5 indikator utama dalam menilai kesehatan suatu proyek outsourcing:
1. Standar Software Requirement Enginering
2. Standar panduan proses untuk model tim dan model proses iterasi (Process Guidance)
3. Infrastruktur Kolaborasi dan Estimasi
4. Infrastruktur untuk Software Configuration Management
  1. Infrastruktur untuk Software Quality Management
Walaupun tidak ada pendekatan (model dan metodologi) yang sempurna dalam pengembangan software, aplikasi line of business (LOB) di enterprise memiliki pattern yang serupa. Saya memilih 5 indikator tersebut dengan asumsi bahwa kontrol dan kualitas adalah prioritas utama dalam proyek outsourcing.

Tidak ada komentar:

Posting Komentar