Rabu, 25 Februari 2015

Rekayasa Perangkat Lunak (Software Engineering)

Rekayasa Perangkat Lunak

(Software Engineering)


SOFTWARE ENGINEERING

Software engineering atau yang biasa kita sebut dengan rekayasa perangkat lunak dilakukan oleh seorang software engineer yang berpengetahuan dalam pembuatan software dengan tatacara yang ditentukan.
Rekayasa Perangkat Lunak berasal dari dua kata yaitu Rekayasa dan Perangkat Lunak. Dua kata tersebut memiki arti sebagai berikut :

Rekayasa : Upaya pembentukan produk berkualitas melalui pendekatan yang sistematis yang berdasarkan sains dan matematika dalam merancang, menghasilkan dan mengoperasikan struktur, mesin, proses atau sistem
Perangkat Lunak : Program komputer, prosedur, aturan, dan dokumentasi yang berkaitan dengannya serta data yang berkaitan dengan operasi suatu sistem komputer.” [IEEE93]

Sehingga, definisi dari Rekayasa Perangkat Lunak adalah suatu proses rancang bangun perangkat lunak yang menggunakan kaidah-kaidah ilmu, seperti prinsip, konsep, dan metode sehingga dihasilkan perangkat lunak yang berkualitas (dapat digunakan dan beroperasi dengan benar, bermanfaat, serta sesuai dengan kebutuhan yang diinginkan.
Rekayasa perangkat lunak atau Software Engineering adalah suatu bidang ilmu yang mendalami pengembangan perangkat lunak, baik dalam pembuatan, pemeliharaan, manajemen perangkat lunak itu sendiri.

IEEE Computer Society mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.
Rekayasa perangkat lunak adalah pengubahan perangkat lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip rekayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.
Menurut Roger S. Pressman Software is (1)instructions (computer programs) that when executed provide desired function and performance,(2) data structures that enable the programs to adequately manipulate information,and (3) documents that describe the operation and use of the programs.


The Software Engineering Body of Knowledge (SWEBOK) membagi rekayasa perangkat lunak ke dalam 10 area pengetahuan, yaitu:

1.   Kebutuhan perangkat lunak,
2.   Perancangan perangkat lunak
3.   Konstruksi perangkat lunak,
4.   Pengujian perangkat lunak,
5.   Pemeliharaan perangkat lunak,
6.   Manajemen konfigurasi perangkat lunak,
7.   Manajemen perangkat lunak,
8.   Proses perangkat lunak,
9.   Metode dan tool perangkat lunak,
10. Kualitas perangkat lunak.

Jenis-jenis Perangkat Lunak:

1. Perangkat Lunak Sistem
2. Perangkat Lunak Real-Time
3. Perangkat Lunak Bisnis
4. Perangkat Lunak Teknik Dan Ilmu Pengetahuan
5. embedded software
6. Perangkat Lunak Komputer Personal
7. Perangkat Lunak Kecerdasan Buatan

Kriteria Dalam Merekayasa Perangkat Lunak:

1.      Dapat terus dirawat dan dipelihara (maintainability)
2.     Dapat mengikuti perkembangan teknologi (dependability)
3.     Dapat mengikuti keinginan pengguna (robust).
4.     Efektif dan efisien dalam menggunakan energi dan penggunaannya.
5.     Dapat memenuhi kebutuhan yang diinginkan (usability).

Ruang Lingkup Rekayasa Perangkat Lunak

  • Software desain mencakup proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak.
  • Software construction berhubungan dengan detail pengembangan perangkat lunak, termasuk. algoritma, pengkodean, pengujian dan pencarian kesalahan.
  • Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak.
  • Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan.
  • Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.
  • Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
  • Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL.
BIDANG ILMU YANG TERKAIT DALAM REKAYASA PERANGKAT LUNAK
  1. Bidang ilmu manajemen meliputi akutansi, finansial, pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan dan strategi bisnis. 
  2. Bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis numerik dan matematika diskrit. 
  3. Bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko, dan penjadwalan proyek. 
  4. Bidang ilmu manajemen kualitas meliputi pengembangan sistem kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan metode-metode kuantitatif. 
  5. Bidang ilmu ergonomika menyangkut hubungan (interaksi) antara manusia dengan komponen-komponen lain dalam sistem komputer. 
  6. Bidang ilmu rekayasa sistem meliputi teori sistem, analisis biaya keuntungan, pemodelan, simulasi, proses dan operasi bisnis.
Fase pada Software Engineering

Pekerjaan yang berkaitan dengan rekayasa perangkat lunak dapat dikategorikan kedalam 3 fase generik. Setiap fase memiliki tujuan yang berbeda:

Definition phase, fokus ke apa. Selama fase ini seorang software engineer menncoba untuk mengidentifikasi informasi untuk diproses, apa fungsi-fungsi yang akan dibuat, sistem apa yang akan diterapkan, desain apa yang harus dibuat sehingga menghasilkan software yang bagus.

Development phase, fokus ke bagaimana. Dalam arsitektur perangkat lunak, bagaimana detail prosedural diimplementasikan, bagaimana interface dibangun, bagaimana desain engineer ditransalate kedalam sebuah bahasa program, dan bagaimana testing dilakukan. Umumnya ada 3 kegiatan yang selalu dilakukan software engineer ya itu : desain software, code generation, testing software.

Support phase, fokus ke perubahan. Fase ini isinya adalah pengulangan fase definisi dan development. Terjadi karena adanya perubahan yang memungkinkan baik dari user ataupun faktor lain. Lingkup dari aktifitas ini meliputi (umbrella activities):
1. tracking dan kontrol software
2. review rormal teknis
3. jaminan kualitas software
4. manajemen pengaturan software
5. dokumentasi persiapan dan pembuatan
6. manajemen penggunaan kembali
7. pengukuran
8. manajemen resiko

PROSES, METODE, dan TOOL(alat)

Rekayasa perangkat lunak merupakan teknologi yang berlapis-lapis.
Manajemen kualitas dan kesamaan pendirian akan mengembangkan software itu dan akhirnya mengarah pada software yang berkualitas.
Salah satu landasan dalam software engineering adalah Proses.
Merupakan elemen penting yang menyatukan lapisan lainnya dan memungkinkan pengembangan yang rasional dan tepat waktu dari software.
Metode, merupakan cara yang dilakukan untuk membangun suatu software.
Mencakup analisis kebutuhan, desain, konstruksi program, pengujian, dan support.
Prinsip yang dilakukan oleh software engineer bergantung pada jenis masalah yang akan dibuat kedalam bentuk model.
Tools memberikan support untuk lapisan proses dan metode.
Saat alat-alat saling terintegrasi, memungkinkan informasi yang dibuat oleh tool dapat digunakan oleh tool yang lain, sistem untuk pengembangan software, yang biasa di sebut Computer-aided software engineering telah terbentuk.

PROSES SOFTWARE

Software Engineering Institute (SEI) telah mengembangkan model yang komperehensif didasarkan pada kumpulan kegunaan software yang harusnya bisa hadir sebagai suatu organisasi yang mencapai proses kematangan software. Pendekatan SEI menetapkan lima tahapan tingkat kematangan suatu software sebagai berikut :

  1. Inisialisasi.  Proses software sangatlah panjang dan bahkan membuat stakeholder kualahan. Stakeholder adalah siapa saja yang ikut dalam proses software(manager, analist, programmer, user, dan client).  Sedikit proses yang didefinisikan dan keberhasilan dari software proses tergantung pada kemampuan individu.
  2. Dapat diulang. Manajemen dasar proyek dibentuk untuk mengetahui dan mengukur biaya, jadwal, dan kegunaan. Tujuannya adalah untuk memberikan kemudahan jika terdapat masalah atau proyek yang hampir sama.
  3. Jelas. Proses software untuk manajemen dan engineering (perekayasaan) akan didokumnetasi, distandardkan, dan di integrasi kedalam suatu organisasi besar dalam proses software.
  4. Teratur. Detail dari proses software dan kualitas produk telah diketahui. Keduanya diketahui seberapa besar ukurannya dengan menggunakan pengukuran yang detail.
  5. Optimal. Proses perbaikan yang berlanjut terus yang berasal dari feedback pada proses dan testing. Pada tahap ini berarti sudah menyakup tahap-tahap sebelumnya. Begitu juga pada tahap 4, berarti sudah menyakup tahap ke 3 begitu seterusnya.

Sumber Referensi :


  • Software Engineering A PRACTITIONER’S APPROACH 5TH EDITION Roger S. Pressman, Ph.D.
  • Software Engineering A PRACTITIONER’S APPROACH 7TH EDITION Roger S. Pressman, Ph.D.
  • www.google.com


Tidak ada komentar:

Posting Komentar