-->

Pengembangan Rekayasa Perangkat Lunak


Pengembangan perangkat lunak (Software development) merupakan salah satu dari tahap rancangan system rinci/detail dari Siklus Hidup Pengembangan Sistem (Software Development Life Cycle atau SDLC).
Tim proyek system mungkin mulai mencari paket perangkat lunak komersial yang sesuai atau mendukung spesifikasi rancangan system dan berjalan pada rancangan arsitektur komputernya. Paket perangkat lunak komersial secara luas tersedia untuk aplikasi fungsi spesifik dan aplikasi bisnis yang telah ditetapkan secara baku. Tetapi untuk rancangan sistem yang terkait dengan kebutuhan khusus atau unik (memenuhi keperluan pemakai dan spesifikasi rancangan sistem) maka paket perangkat lunak komersial mungkin tidak sesuai atau mendukung kebutuhan pemakai secara langsung. Perangkat lunak yang diharapkan untuk mendukung rancangan sistem tersebut harus dibuat sendiri dari awal (scratch)

A. Perangkat Lunak Komersial dari Vendor

Paket (off-the-self) yang tersedia bisa diterapkan dalam berbagai kebutuhan bisnis. Beberapa paket bersifat generik dan multifungsional yang memungkinkan para pemakai memprogram sofware tersebut untuk kebutuhannya sendiri. Paket-paket tersebut mengotomisasi fungsi-fungsi bisnis dasar yang umumnya tidak terlalu bervariasi dari satu organisasi dengan organisasi lain. Contoh jenis paket adalah spreadsheet dan DBMS.

Keuntungan/kelebihan dari Perangkat Lunak Komersial :

1. Implementasi yang cepat

Software tersebut bersifat siap, teruji, dan terdokumentasi. Paket yang dibeli biasanya pengimplementasiannya jauh lebih cepat dari pada mengembangkan program yang sama secara in-house atau menyuruh kontraktor independen untuk mengembangkannya sehingga secara potensial membantu memecahkan backlog (penimbunan pekerjaan yang belum selesai).

2. Penghematan Biaya

Satu paket perangkat lunak komersial bisa dijual kepada banyak organisasi sehingga biaya pengembangan ditanggung oleh banyak pemakai, dan biaya total suatu paket akan lebih murah dari pada program pesanan yang sama.

3. Estimasi biaya dan waktu

Biaya atau harga paket komersial telah diketahui, dan tanggal pengimplementasian-nya mudah diestimasi. Sebaliknya program pesanan biasanya cenderung melampaui estimasi waktu dan biaya.

4. Reliabilitas

Sebelum diterbitkan di pasaran umum, paket perangkat lunak komersial pasti telah diuji secara teliti. Melalui penggunaan yang ekstensif oleh sejumlah organisasi, segalakesalahan yang dijumpai telah dideteksi dan dikoreksi sehingga peluang kesalahannya lebih sedikit.

Kerugian/kelemahan :

1. Kesesuaian Rancangan sistem yang tidak baik

Paket software komersial dibuat untuk berbagai organisasi, dan tidak untuk organisasi tertentu maka paket ini mungkin mempunyai beberapa fungsi yang tidak diperlukan atau mungkin tidak mempunyai fungsi yang diperlukan sehingga paket tersebut harus dimodifikasi. Jika vendor tidak membuat kode sumber (source code) yang bisa digunakan untuk penyesuaian dan tidak menyediakan layanan penyesuaian maka rancangan sistem mungkin harus diubah agar sesuai dengan paket tersebut. Jika hal ini terjadi sebaiknya mengembangkan program secara in-house agar programnya bisa memenuhi spesifikasi rancangan sistem yang tepat.

2. Ketergantungan Vendor

Jika organisasi memerlukan perubahan paketnya maka organisasi akan tergantung pada vendor dalam perolehan dukungannya, dan jika vendor telah tiada maka organisasi akan kesulitan mencari dukungannya.

3. Biaya tidak langsung dari kerusakan SDLC

Seringkali apa yang ingin dicapai, manajemen tidak melaksanakan SDLC menyeluruh atau mungkin melewati tahap SDLC, dan secara langsung menuju ke paket perangkat lunak komersial Strategi ini seringkali mengakibatkan paket perangkat lunak komersial tidak berjalan sesuai yang diharapkan dan masalah sistem serta organisasional yang terjadi sebelum implementasi paket tersebut tetap muncul sehingga menimbulkan kesulitan atau harus dibayar kemudian yaitu adanya peningkatan biaya implementasi, operasi, dan pemeliharaan.

B. Perangkat Lunak Pesanan (customized software)

Jika system yang sedang dikembangkan tidak bisa didukung oleh paket software maka harus memesan dari perusahaan jasa/kontraktor independen atau membangun sendiri perangkat lunak (in-house) agar sesuai dengan rancangan sistemnya.
Siklus Hidup Pengembangan Perangkat Lunak (Software Development Life Cycle)
Membangun perangkat lunak mengikuti tiga tahap SWDLC, yaitu :
Rancangan (Design)
Kode (Code)
Uji (Test)

1. Rancangan (Design)

Bagian dari rancangan sistem terinci yang akan dikonversi ke program aplikasi yang dapat digunakan sebagai pedoman oleh programmer dalam menulis program. Alat (tools) rancangan program yang pokok adalah :

¨ Bagan Terstruktur (Structure Chart) ¨ Diagram Warnier/Orr (W/O)

¨ Bahasa Inggris Terstruktur (Structure English) ¨ Diagram Jackson

¨ Tabel Keputusan (Decision Tabel)

¨ Pohon Keputusan (Decision Tree)

¨ Persamaan/mirip bahasa pemrograman (Pseudocode)

¨ Kamus Data (Data Dictionary)

2. Kode (Code)

Menulis statemen dalam bahasa pemrograman yang diasumsikan dibuat dan dijalankan oleh programmer dan tidak secara otomatis seperti yang dibangkitkan oleh paket CASE (Computer Aided Software Engineering). Beberapa paket CASE akan membangkitkan kode dari beberapa rancangan terinci sehingga menghapus adanya kebutuhan pengkode manusia (human coders).

3. Uji (Test)

Pengujian terhadap semua modul kode untuk mendeteksi dan menghapus kesalahan.
Mengorganisasi Proyek Pengembangan Perangkat Lumak
Perancang dan analis sistem terlibat dalam tim pengembangan perangkat lunak dan harus mengetahui bagaimana program ini dikode dan bagaimana hasil akhirnya. Untuk itu diperlukan keterampilan pengorganisasian dalam tim proyek. Pengorganisasian proyek pengembangan perangkat lunak memerlukan komunikasi, integrasi dan koordinasi yang baik. Pengorganisasian tim pemrograman menggunakan pendekatan organisasional.

Pendekatan Organisasional
Tiga cara untuk mengorganisasi tim pemrograman, yaitu :

1. Tim Pengembangan Program ( Program development team)

2. Tim programmer kepala (chief programmer team)

3. Tim pemrograman bersama (Egoless programming team)

1. Tim Pengembangan Program ( Program development team)

Tim pengembangan program dikelola oleh manajer tim atau seseorang yang terlibat dalam SDLC dari awal, dan didukung oleh perancang, pengkode, dan penguji (Gb.1.4 hal.14 Diktat kuliah) Jika perusahaan menggunakan aturan 40-20-40 (lihat gb.1.5 hal.15 Buku Diktat Pengantar Implementasi) maka orang-orang yang memiliki keterampilan lebih tinggi harus ditugaskan untuk perancangan dan pengujian. Bila rancangan lengkap, jelas dan akurat maka tugas pengkodean akan menjadi proses yang sederhana yang dapat dijalankan oleh setiap orang yang telah kenal dengan sintaks bahasa pemrograman. Konsep ini mendukung terciptanya teknologi CASE.

2. Tim programmer kepala (chief programmer team)

Tim ini dibentuk dari programmer kepala atau senior yang banyak pengalaman dan pengetahuan pemrograman. Programmer kepala dapat berkomunikasi secara efektif dengan analis dan perancang sistem, pemakai, dan berbagai teknisi.

Programmer kepala didukung oleh asisten utama yang bertugas sebagai komunikator dengan orang lain pada tim atau penyampai informasi dari gagasan programmer kepala. Kedua orang tersebut didukung oleh Programmer pendukung/ yunior bertugas membantu programmer kepala dan asisten utama untuk proyek besar yang tidak dapat ditangani sendiri. Para programmer pendukung biasanya mengkode modul-modul tingkat rendah. Tim ini juga didukung oleh pustakawan, administrator, editor, dan klerk program.

3. Tim pemrograman bersama (Egoless programming team)

Tim ini terbentuk dari seluruh rekan yang bersama-sama bertanggung jawab atas pengembangan perangkat lunak tanpa supervisi langsung/pimpinan.

METODE PENGEMBANGAN PERANGKAT LUNAK

Adapun metode pengembangan perangkat lunak yaitu :
Model Sekuensial Linier / Waterfall Method
Model Prototipe
Model RAD (Rapid Application Development)
Model Spiral

Tahapan Pengembangan Perangkat Lunak

1. Model Sekuensial Linier / Waterfall Method


Model Sekuensial Linier sering disebut Model Air Terjun merupakan paradigma rekayasa perangkat lunak yang paling tua dan paling banyak dipakai. Model ini mengusulkan sebuah pendekatan perkembangan perangkat lunak yang sistematik dan sekunsial yang dimulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain , kode, pengujian, dan pemeliharaan.


Rekayasa dan Pemodelan Sistem/Informasi

Karena perangkat lunak merupakan bagian dari suatu sistem maka langkah pertama dimulai dengan membangun syarat semua elemen sistem dan mengalokasikan ke perangkat lunak dengan memeperhatikan hubungannya dengan manusia, perangkat keras dan database.
Analisis Kebutuhan Perangkat Lunak

Proses menganalisis dan pengumpulan kebutuhan sistem yang sesuai dengan domain informasi tingkah laku, unjuk kerja, dan antar muka (interface) yang diperlukan. Kebutuhan-kebutuhan tersebut didokumentasikan dan dilihat lagi dengan pelanggan.
Desain

Proses desain akan menerjemahkan syarat kebutuhan ke sebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada : struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural.
Pengkodeaan (Coding)

Pengkodean merupakan prses menerjemahkan desain ke dalam suatu bahasa yang bisa dimengerti oleh komputer.
Pengujian.

Proses pengujian dilakukan pada logika internal untuk memastikan semua pernyataan sudah diuji. Pengujian eksternal fungsional untuk menemukan kesalahan-kesalahan dan memastikan bahwa input akan memberikan hasil yang aktual sesuai yang dibutuhkan
Pemeliharaan

Perangkat lunak yang sudah disampaikan kepada pelanggan pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan (periperal atau sistem operasi baru) baru, atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja.

2. Model Prototipe


Sebuah prototipe adalah bagian dari produk yang mengekspresikan logika maupun fisik antarmuka eksternal yang ditampilkan. Konsumen potensial menggunakan prototipe dan menyediakan masukan untuk tim pengembang sebelum pengembangan skal besar dimulai. Melihat dan mempercayai menjadi hal yang diharapkan untuk dicapai dalam prototipe. Dengan menggunakan pendekatan ini, konsumen dan tim pengembang dapat mengklarifikasi kebutuhan dan interpretasi mereka.

Tahapan-tahapan Prototyping

Tahapan-tahapan dalam Prototyping adalah sebagai berikut:

1. Pengumpulan kebutuhan

Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.

2. Membangun prototyping

Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).

3. Evaluasi protoptyping

Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai dengan keinginann pelanggan. Jika sudah sesuai maka langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulang langkah 1, 2 , dan 3.

4. Mengkodekan sistem

Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.

5. Menguji sistem

Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain.

6. Evaluasi Sistem

Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, langkah 7 dilakukan; jika tidak, ulangi langkah 4 dan

7. Menggunakan sistem

Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.


3. Model RAD
Rapid Aplication Development (RAD) adalah sebuah model proses perkembanganperangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen.

Tahapan-tahapan dalam RAD

1. Bussiness Modeling.

Fase ini untuk mencari aliran informasi yang dapat menjawab pertanyaan berikut:

Informasi apa yang menegndalikan proses bisnis?

Informasi apa yang dimunculkan?

Di mana informasi digunakan ?

Siapa yang memprosenya ?

2. Data Modeling.

Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modeling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (atribut) masing-masing objek diidentifikasi dan hubungan antar objek-objek tersebut didefinisikan.

3. Proses Modeling.

Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.

4. Aplication Generation.

Selain menggunakan bahasa pemrograman generasi ketiga, RAD juga memakai komponen program yang telah ada atau menciptakan komponen yang bisa dipakai lagi. Ala-alat bantu bisa dipakai untuk memfasilitasi konstruksi perangkat lunak.

5. Testing dan Turnover.

Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus diuji dan semua interface harus dilatih secara penuh.



4. Model Spiral

Model spiral pada awalnya diusulkan oleh Boehm, adalah model proses perangkat lunak evolusioner yang merangkai sifat iteratif dari prototype dengan cara kontrol dan aspek sistematis model sequensial linier. Model iteratif ditandai dengan tingkah laku yang memungkinkan pengembang mengembangkan versi perangkat lunak yang lebih lengkap secara bertahap. Perangkat lunak dikembangkan dalam deretan pertambahan. Selama awal iterasi, rilis inkremantal bisa berupa model/prototype kertas, kemudian sedikit demi sedikit dihasilkan versi sistem yang lebih lengkap.

Tahapan-Tahapan Model Spiral

Model spiral dibagi menjadi enam wilayah tugas yaitu:
Komunikasi pelanggan

Yaitu tugas-tugas untuk membangun komunikasi antara pelanggan dan kebutuhan – kebutuhan yang diinginkan oleh pelanggan
Perencanaan

Yaitu tugas-tugas untuk mendefinisikan sumber daya, ketepatan waktu, dan proyek informasi lain yg berhubungan.
Analisis Resiko

Yaitu tugas-tugas yang dibutuhkan untuk menaksir resikomanajemen dan teknis.
Perekayasaan

Yaitu tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari apikasi tersebut.
Konstruksi dan peluncuran

Yaitu tugas-tugas yang dibutuhkan untuk mengkonstruksi, menguji, memasang , dan memberi pelayanan kepada pemakai.
Evaluasi Pelanggan

Yaitu tugas-tugas untuk mendapatkan umpan balik dari pelanggan.



Sumber :

1. Rekayasa Perangkat Lunak (Roger S. Pressman)

2. Rekayasa Perangkat lunak (Janner Simamarta)

3. Analisis dan Desain Sistem Informasi (Jogyanto)



"Selamat Menunaikan Ibadah Puasa"

1434 H / 2013

LihatTutupKomentar

Ad Unit (Iklan) BIG