REKAYASA PERANGKAT LUNAK (RPL)


REKAYASA PERANGKAT LUNAK(RPL)

A.  SEJARAH RPL
Rekayasa perangkat lunak telah berkembang sejak pertama kali diciptakan pada tahun 1940-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.

1945 - 1965: Awal
Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal 1960-an. Saat itu, masih terdapat debat tajam mengenai aspek engineering dari pengembangan perangkat lunak.
Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan dampak kuat terhadap perkembangan rekayasa perangkat lunak. Banyak yang menganggap bahwa dua konferensi inilah yang menandai awal resmi profesi rekayasa perangkat lunak.

1965 - 1985: krisis perangkat lunak
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 krisis 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.

1985 - kini: tidak ada senjata pamungkas
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.

Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa tidak ada satu teknologi atau praktek yang sanggup mencapai 10 kali lipat perbaikan dalam produktivitas pengembangan perangkat lunak dalam tempo 10 tahun. Sebagian berpendapat, no silver bullet berarti profesi rekayasa perangkat lunak dianggap telah gagal. Namun sebagian yang lain justru beranggapan, hal ini menandakan bahwa bidang profesi rekayasa perangkat lunak telah cukup matang, karena dalam bidang profesi lainnya pun, tidak ada teknik pamungkas yang dapat digunakan dalam berbagai kondisi.

B.  DEFINISI REKAYASA PERANGKAT LUNAK
Berikut adalah beberapa definisi dari istilah Rekayasa Perangkat Lunak :
Ø  Menurut Stephen R.Schach
Sebuah disiplin dimana dalam menghasilkan perangkat lunak bebas dari kesalahan dan dalam pengiriman anggaran tepat waktu serta memuaskan keinginan pemakai.
Ø  Menurut Fritz Bauer
Penetapan dan penggunaan prinsip rekayasa dalam rangka memperoleh perangkat lunak yang dapat dipercaya dan dapat bekerja secara efisien pada mesin nyata.
Ø  Menurut IEEE 610.12
Sebuah studi pendekatan dan aplikasi secara sistematis, disiplin pengembangan operasi dan pemeliharaan PL yang kesemuanya itu merupakan aplikasi rekayasa yang berkaitan dengan PL.
Ø  Menurut Wikipedia ,“Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software“. Secara ringkasnya adalah bahwa SE mencakup pembuatan, pengembangan, dan pemeliharaan suatu software.
Pembuatan meliputi bagaimana suatu software dibuat mulai dari user requirements, spesifikasi, desain, testing, dokumentasi (misal berupa manual pembuatan program), dan sebagainya. Sedangkan pengembangan adalah untuk menambah fitur-fitur baru yang belum ada pada versi sebelumnya. Pemeliharaan digunakan untuk memperbaiki bugs atau errors yang tidak ketahuan ketika dalam tahap pembuatan. Pemeliharaan ini biasanya dapat berupa Service Pack, dan sebagainya.
Faktor-faktor yang melatarbelakangi munculnya RPL :
-          Ketidakmampuan organisasi memprediksi waktu, usaha dan beaya u/ membangun perangkat lunak
-           Perubahan nisbah/rasio beaya perangkat keras thd harga perangkat lunak
-          Kemajuan pesat perangkat keras
-          Kemajuan dalam teknik-teknik pembuatan perangkat lunak
-          Tuntutan yang lebih tinggi thd jumlah perangkat lunak
-          Tuntutan yang lebih tinggi thd mutu perangkat lunak
-          Meningkatnya peran pemeliharaan
C.  TUJUAN RPL
Secara umum tujuan RPL tidak berbeda dengan bidang rekayasa yang lain. Mari kita perhatikan Gambar 1.2. berikut ini. 
Dari Gambar 1.2 dapat diartikan bahwa bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian yang tepat. Secara lebih khusus kita dapat menyatakan tujuan RPL adalah :
a)      Memperoleh biaya produksi perangkat lunak yang rendah.
b)      Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu.
c)      Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform.
d)      Menghasilkan perangkat lunak yang biaya perawatannya rendah.

D.  FUNGSI RPL
1.      Agar seseorang dapat mengembangkan perangkat lunak yang bermanfaat bagi user
2.      Agar seseorang mampu mengembangkan perangkat lunak yang sudah ada menjadi lebih baik lagi
3.      Menciptakan sebuah perangkat lunak yang ramah dan user friendly
4.  Agar sebuah system perangkat lunak bisa diintegrasikan dengan peralatan mekanikal yang ada,sehingga menjadi lebih bermanfaat
5.  Agar seseorang mampu untuk melakukan perawatan dan maintanence dari perangkat lunak yang sudah ada

 E.  ELEMEN KUNCI RPL
a)    Metode   : how to‟ yang bersifat teknis. Meliputi bidang-bidang perencanaan proyek,                                 estimasi, analisis persyaratan, perancangan, coding, pengujian dan pemeliharaan.
b)   Tools      : memberikan dukungan automasi bagi metode dikenal dengan CASE
c)    Prosedur : mengintegrasikan metode dan tool untuk mendefinisikan kapan suatu metode akan  
                  digunakan, hasil yang diharapkan, pengendalian untuk menjamin kualitas                                    hasil,  milestone yang dapat digunakan untuk mengevaluasi kemajuan 

F.  RUANG LINGKUP RPL
Sesuai definisi yang telah disampaikan sebelumnya, maka ruang lingkup RPL dapat digambarkan sebagai berikut.

·   Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan      perangkat lunak.
·  Software design mencakup proses penentuan arsitektur, komponen, antarmuka, dan karakteristik lain dari perangkat lunak.
·      Software construction berhubungan dengan detil 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.
·   Software engineering process berhubungan dengan definisi, implementasi, pengukuran, pengelolaan, perubahan dan perbaikan proses RPL.
·        Software quality menitikberatkan pada kualitas dan daur hidup perangkat lunak.

G.  REKAYASA PERANGKAT LUNAK DAN DISIPLIN ILMU KOMPUTER
     Disiplin ilmu komputer (Computer Science) lahir pada awal-awal tahun 1940-an yang merupakan integrasi dari teori algoritma, logika matematika dan ditemukannya cara penyimpanan program secara elektronik pada komputer. Sejak itu ilmu komputer mengalami perkembangan yang terus menerus sehingga cakupannya menjadi semakin meluas. Cakupan pengetahuan dalam ilmu komputer seringkali didiskripsikan sebagai suatu studi sistematis pada proses-proses algoritma yang menjelaskan dan mentransformasikan informasi (Denning, 2000). Termasuk di sini adalah teori, analisis, disain, efisiensi, penerapan dan aplikasinya. Ada beberapa model pengelompokkan sub-bidang ilmu dalam disiplin ilmu komputer seperti terlihat pada Gambar 1.4, 1.5 dan 1.6.
Berdasarkan pengelompokkan Denning (2000) dan Wikipedia (2007), RPL merupakan sub-bidang ilmu komputer yang setara dengan sub-bidang lainnya. Sedangkan menurut ACM (Association for Computing Machinery), RPL merupakan bagian dari Section D (Perangkat Lunak). Meskipun terlihat terpisahpisah, namun dalam penerapannya, sub-bidang RPL selalu membutuhkan dukungan dari sub-bidang lain, terutama sub-bidang Algoritma dan Struktur Data, Bahasa Pemrograman, Basis Data, Sistem Operasi dan Jaringan, dan Sistem Informasi.

H.  REKAYASA PERANGKAT LUNAK DAN DISIPLIN ILMU LAIN
       Cakupan ruang lingkup yang cukup luas, membuat RPL sangat terkait dengan disiplin bidang ilmu lain. Tidak saja dengan sub-bidang dalam disiplin ilmu komputer namun dengan beberapa disiplin ilmu lain di luar ilmu komputer. Hubungan keterkaitan RPL dengan ilmu lain dapat dilihat pada Gambar 1.7.


Bidang ilmu manajemen meliputi akutansi, finansial, pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan dan strategi bisnis.
o    Bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis       numerik dan matematika diskrit.
o       Bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek, seperti  ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko, dan penjadwalan proyek.
o   Bidang ilmu manajemen kualitas meliputi pengembangan sistem kualitas, manajemen   resiko  dan keandalan, perbaikan kualitas, dan metode-metode kuantitatif.
o  Bidang ilmu ergonomika menyangkut hubungan (interaksi) antara manusia dengan   komponen-komponen lain dalam sistem komputer.
o    Bidang ilmu rekayasa sistem meliputi teori sistem, analisis biayakeuntungan, pemodelan, simulasi, proses dan operasi bisnis.

I.  POSISI REKAYASA PERANGKAT LUNAK
  Ø  Cakupan ruang lingkup yang cukup luas, membuat RPL sangat terkait dengan disiplin bidang ilmu lain.
  Ø  Tidak saja dengan sub-bidang dalam disiplin ilmu komputer namun dengan beberapa disiplin ilmu lain di luar ilmu komputer.

  ¨  Bidang ilmu manajemen meliputi akutansi, finansial, pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan dan strategi bisnis.

  ¨  Bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis numerik dan matematika diskrit.
  ¨  Bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko, dan penjadwalan proyek.  
  ¨  Bidang ilmu manajemen kualitas meliputi pengembangan sistem kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan metode-metode kuantitatif.
  ¨  Bidang ilmu ergonomika menyangkut hubungan (interaksi) antara manusia dengan komponen-komponen lain dalam sistem komputer.
      ¨  Bidang ilmu rekayasa sistem meliputi teori sistem, analisis biayakeuntungan, pemodelan, simulasi, proses dan operasi bisnis.

  J.PERKEMBANGAN REKAYASA PERANGKAT LUNAK
     Meskipun baru dicetuskan pada tahun 1968, namun RPL telah memiliki sejarah yang cukup panjang, Gambar 1.8 menyajikan intisari perkembangan RPL. Dari sisi disiplin ilmu, RPL masih relatif muda dan akan terus berkembang. Arah perkembangan yang saat ini sedang dikembangkan antara lain meliputi : Agile Software Development, Experimental Software Development, Model-Driven. Software Development dan Software Product Lines.



K.  BAGAIMANA SEHARUSNYA DITERAPKAN RPL
Cakupan RPL :
1.      Produk = Software
Ø  Programs
Ø  Documents
Ø  Data
2.      Proses bagaimana membangun perangkat lunak
§    Management process
§    Technical process

L.  PRODUK RPL
·          Produk diperoleh melalui tahapan
Pengembangan = Software Development Life Cycle (SDLC)
·          Contoh siklus hidup (SDLC):
– Waterfall model
– V model
– Spiral model
– Fountain model
– Prototyping

M.  PROSES RPL
Ø  Technical Process, digambarkan sebagai metode yang akan diterapkan dalam tahap tertentu dari SDLC
– Analysis methods
– Design methods
– Programming methods
– Testing methods
Ø  Metode teknis ini yang memunculkan paradigma seperti berorientasi terstruktur, objek, aspek, dll

A.     Kapan diterapkan RPL :
-          Pre-project
-          Project Initiation
-          Project Realisation
-          Software Delivery & Maintenance
B.     Siapa yang terlibat RPL
a)     Manager
– Project Manager
– Configuration Manager
– Quality Assurance Manager
b)   Software Developer:
– Analyst
– Designer
– Programmer
c)    Support
– Administration
– Technical Support for Customer (help desk,customer care)
– Welfare (Kesejahteraan)
C.     Tanggung Jawab Profesional dan Etis
-  RPL melibatkan tanggung jawab yang lebih besar dari sekedar penerapan keahlian teknis.
- Rekayasawan perangkat lunak harus berlaku secara jujur dan etis jika ingin dihargai sebagai profesional.
-  Perilaku etis lebih dari sekedar menjunjung tinggi hukum.
D.     Tanggung Jawab Profesional
-       Kerahasiaan
     Rekayasawan harus menghargai kerahasiaan pegawai atau kliennya.
-       Kompeten
Rekayasawan tidak boleh memberi gambaran yang salah tentang tingkat kompetensinya. Mereka tidak boleh secara sadar menerima pekerjaan yang diluar kompetensinya.
E.      Apa saja tantangan utama yang dihadapi RPL?
-       Heterogeneity (keberagaman)
Mengembangkan teknik untuk membangun perangkat lunak yang dapat mengatasi  platform dan lingkungan eksekusi.
-      Delivery (pengiriman)
     Mengembangkan teknik yang mengakibatkan pengiriman perangkat lunak lebih cepat.
-      Trust (kepercayaan)
Mengembangkan teknik yang menunjukkan bahwa perangkat lunak dapat dipercaya oleh para penggunanya.



























Komentar

Postingan populer dari blog ini

22.Model WATERFALL

8.Model SDLC Incremental

20.Model ITERATIVE