Follow Us @soratemplates

Jumat, 08 Maret 2013

Pengenalan Rekayasa Perangkat Lunak

Definisi Rekayasa 

Engineering  : rekayasa.
-        Pemakaian ‘science’ untuk mnyelesaikan ‘masalah praktis’.
-        Dari tidak ada menjadi ada.

Definisi Perangkat  Lunak

Software : perangkat lunak.
-        Kumpulan program komputer dengan fungsi tertentu.
-        Instruksi (program komputer) yang bila dieksekusi dapat menjalankan fungsi tertentu.
-        Struktur data yang dapat membuat program memanipulasi informasi.
-        Dokumen yang menjelaskan operasi dan penggunaan program (Pressman,1997)
-       Program komputer, prosedur,aturan, dan dokumentasi yang berkaitan serta data, yang bertalian dengan    operasi suatu sistem komputer (IEEE,1993)
  
 Pengertian Rekayasa Perangkat Lunak (software engineering) :
  1. Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efisien pada komputer (fritz Bauer,1968)
  2. Penerapan pendekatan yang sistematis,disiplin, dan terstruktur untuk pengembangan, operasi, dan pemeliharaan perangkat lunak (IEEE,1993).
  3. Suatu disiplin yang mengintegrasikan proses/prosedur, metode, dan perangkat tools untuk pembangunan  perangkat lunak komputer (Pressman,97 ).
  4. Merupakan aplikasi dari prinsip-prinsip sains untuk mengurutkan transformasi masalah menjasi solusi yang dapat bekerja dengan baik
Proses Perangkat Lunak
Tahapan proses perangkat lunak :
  1. Spesifikasi Perangkat Lunak : Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.
  2. Pengembangan Perangkat Lunak : Perangkat lunak mulai dirancang dan diimplementasikan. Jika sudah sesuai keinginan pelanggan, perangkat lunak mulai diproduksi
  3. Validasi Perangkat Lunak : Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak bekerja sesuai dengan apa yang diinginkan oleh pelanggan.
  4. Evolusi Perangkat Lunak : Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan.  
    Model Proses  Rekayasa Perangkat Lunak
Sebuah model proses rekayasa perangkat lunak adalah representasi abstrak dari proses yang menyajikan uraian proses dari beberapa perspektif tertentu. Banyak model yang telah dikembangkan untuk membantu proses pengambangan perangkat lunak, yang umumnya mengacu pada model proses pengembangan System Development Life Cycle (SDLC).

Model Proses Generik 
 
Model proses generic adalah proses pengembangan perangkat lunak, yang menggambarkan organisasi dari proses perangkat lunak.

Contoh model proses generic :  
 
The waterfall model 
Model siklus hidup (life cycle model) adalah model utama dan dasar dari banyak model. Disebut waterfall karena diagram tahapan prosesnya mirip dengan air terjun. Tahapan-tahapan The Waterfall Model :

  1. Requirement analysis : Seluruh kebutuhan software harus bisa didapatkan dalam fase ini, termasuk didalamnya kegunaan software yang diharapkan pengguna dan batasan software. Informasi ini biasanya dapat diperoleh melalui wawancara, survey atau diskusi. Informasi tersebut dianalisis untuk mendapatkan dokumentasi kebutuhan pengguna untuk digunakan pada tahap selanjutnya.
  2. System Design : Tahap ini dilakukan sebelum melakukan coding. Tahap ini bertujuan untuk memberikan gambaran apa yang seharusnya dikerjakan dan bagaimana tampilannya. Tahap ini membantu dalam menspesifikasikan kebutuhan hardware dan sistem serta mendefinisikan arsitektur sistem secara keseluruhan.
  3. Implementation: Dalam tahap ini dilakukan pemrograman. Pembuatan software dipecah menjadi modul-modul kecil yang nantinya akan digabungkan dalam tahap berikutnya. Selain itu dalam tahap ini juga dilakukan pemeriksaaan terhadap modul yang dibuat, apakah sudah memenuhi fungsi yang diinginkan atau belum.
  4. Integration & Testing : Di tahap ini dilakukan penggabungan modul-modul yang sudah dibuat dan dilakukan pengujian ini dilakukan untuk mengetahui apakah software yang dibuat telah sesuai dengan desainnya dan masih terdapat kesalahan atau tidak.
  5. Operation & Maintenance : Ini merupakan tahap terakhir dalam model waterfall. Software yang sudah jadi dijalankan serta dilakukan pemeliharaan. Pemeliharaan termasuk dalam memperbaiki kesalahan yang tidak ditemukan pada langkah sebelumnya. Perbaikan implementasi unit sistem dan peningkatan jasa sistem sebagai kebutuhan baru.
Masalah umum yang dihadapi dalam model waterfall yaitu tidak bisa mengubah partisi dari proyek menjadi tahap yang berbeda. Hal ini membuat sulit untuk merespon kebutuhan pelanggan berubah. Oleh karena itu, model ini hanya sesuai ketika persyaratan dipahami.

1.   Evolutionary Development Model: Pengembangan eksplorasi yang mana merubah system dengan fitur-fitur tambahan dari user. Sedangkan prototype yang dibuang memahami syarat user untuk mendapatkan definisi persyaratan yang lebih baik. Tujuannya adalah untuk bekerja dengan pelanggan dan mengembangkan sebuah sistem akhir dari spesifikasi garis awal.
Antara lain : masalah dalam pengembangan evolusioner dimana prosesnya tidak dapat dilihat, system sering kali mempunyai struktur yang tidak baik, mungkin di perlukan alat bantu khusus. Model pengembangan evolusioner ini cocok untuk aplikasi yang kecil dan life-cyle yang pendek.

Masalah yang sering terjadi dalam Evolutionary Development Model :
-        Kurangnya visibilitas proses
-        Sistem ini sering tidak terstruktur
-        Keahlian khusus (misalnya dalam bahasa untuk prototipe cepat) mungkin diperlukan
Penerapan :
-        Untuk sistem interaktif yang kecil atau menengah
-        Untuk bagian dari sistem besar (misalnya user interface)
-        Untuk sistem jangka pendek

1.    Formal systems development : hampir sama dengan model air terjun. bedanya proses pengembangannya didasarkan pada transformasi matematis dari spesifikasi program yang dapat dijalankan.

Tahapan Formal systems development :
  1.  Spesifikasi persyaratan : spesifikasi formal dalam bentuk notasi matematis 
  2. Perancangan, implementasi, dan pengujian unit : pengembangan transformasial 
  3. Semua komponen proses dibakukan agar mudah jika langsung diterapkan pada implementasi bahasa pemrograman.
 Masalah yang sering terjadi dalam Formal systems development:
  1. Perlu keterampilan khusus dan pelatihan untuk menerapkan teknik
  2.  Sulit untuk secara resmi menentukan beberapa aspek dari sistem seperti user interface
 Pengembangan yang Evolusioner 
Model ini berdasarkan pada ide pengembangan pada implementasi awal yang akan menghasilkan komentar pemakai sehingga dapat dilakukan perbaikan melalui banyak versi sampai sistem yang mencukupi dapat dikembangan.

Tipe Model Pengembangan yang Evolusioner
1.  Pemprograman evolusioner  : Sistem dikembangkan melalui penambahan features sesuai yang diusulkan oleh pemakai.
  1. Pemodelan : mengetahui kebutuhan-kebutuhan pemakai dan mengembangkan difinisi kebutuhan yang lebih baik untuk sistem.
Jenis Pengembangan yang Evolusioner

-        Pengembangan eksploratori yang bertujuan bekerja dengan pelanggan untuk menyelidiki persyaratan mereka dan mengirimkan sistem akhir.
-        Prototype yang dapat dibuang (throw-away) yang bertujuan untuk memahami persyaratan pelanggan dan dengan demikian mengembangkan definisi persyaratan yang lebih baik untuk sistem

Masalah Evolusioner : 
-        Proses tidak visible : manager-manager membutuhkan "deliverables" yang teratur untuk mengukur kemajuan. Jika sistem dikembangkan dengan cepat akan terjadi pemborosan pada pembuatan dokumen yang menggambarkan setiap versi sistem.
-        Sistem-sistem biasanya kurang terstruktur : kecenderungan perubahan yang terus menerus akan mengurangi stuktrur dari perangkat lunak. Evolusi perangkat lunak terlihat sulit dan mahal.
-        Ketrampilan khusus jarang dimiliki : tidak jelas batasan ketrampilan yang normal dalam rekayasa perangkat lunak yang mungkin dapat digunakan secara efektif dalam model pengembangan ini. Kebanyakan sistem yang dikembangkan melalui cara ini telah diimplementasikan oleh kelompok kecil yang memiliki ketrampilan yang tinggi dan motivasi yang kuat.
 
Pemrograman dan Debug
Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram (programmer).

Bahasa Pemrograman
Bahasa pemrograman  merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:
  1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
  2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
  3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
  4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb. 
Beberapa bahasa pemrograman yaitu : assembly, C atau C++,Java,Pascal,Visual Basic

Debug
Debug merupakan salah satu aktivitas yang dilakukan saat pengujian sebuah program. Debug berarti mendeteksi, menempatkan, dan memindahkan semua kesalahan pada sebuah program komputer. Kesalahan bisa berupa kesalahan sintaks atau logika. Kesalah sintaks disebabkan oleh kesalahan tipografi dan penggunaan bahasa pemograman yang tidak benar. Kesalahan logika disebabkan penggunaan struktur kontrol  yang salah. Debug sering dilakukan dengan IDE seperti Visual Studio, NetBeans, dan Eclipse. Standalone debugger seperti gdb juga digunakan, dan ini kurang sering menyediakan lingkungan visual, biasanya menggunakan baris perintah.

Validasi Perangkat Lunak

Validasi software merupakan pengujian yang dilakukan setelah semua kesalahan pada program selesai diperbaiki  dengan menilai  apakah program sudah  sesuai dengan yang diharapkan pemakai.

  1. Pengujian Beta dan Alpha : apabila software dibuat untuk pelanggan maka dapat dilakukan eceptance test sehingga memungkinkan pelanggan untuk menvalidasi seluruh keperluan. Test ini dilakukan karena memungkinkan pelanggan menemukan kesalahan yang lebih rinci dan membiasakan pelanggan memahami software yang telah dibuat.  
  2. Pengujian Alpha : software digunakan sebagaimana mestinya, dengan pengembang software yang tetap mengawasi apabila terjadi kesalahan. Dengan kata lain pengujian alpha dilakukan dilingkungan yang terkontrol.  
  3. Pengujian Beta : dilakukan dari sisi end-user,baik seorang maupun beberapa orang, dimana pihak pengembang tidak berada bersama para user tersebut. Atau dengan kata lain, ujicoba dilakukan dalam lingkungan yang tidak terkontrol oleh pengembang.

Evolusi Sistem

  1. Fokus awal pada data (EDP) : pengolahan data elektronik (EDP) sistem ini merupakan jenis sistem yang pertama kali di impelementasikan.Sistem informasi ini digunakan untuk menghimpun , menyimpan dan memproses data transaksi serta sering kali mengendalikan keputusan yang merupakan bagian dari transasksi. Misalnya mencarikan rute pesawat terbang yang terbaik sesuai dengan kebutuhan pelanggan.
  2. Fokus baru pada informasi (SIM) : konsep SIM menyadari bahwa aplikasi komputer harus diterapkan untuk tujuan utama menghasilkan informasi manajemen. Konsep ini segera diterima oleh perusahaan besar karena dengan adanya Manajemen Informasi perusahaan akan mudah mendapatkan Informasi yang akurat dan tepat guna mendukung dalam pengambilan keputusan dalam perusahaan tersebut. 
  3. Fokus revisi pada pendukung keputusan (DSS) : sistem pendukung keputusan (Decision support system) adalah sistem informasi interaktif yang menyediakan informasi, pemodelan dan pemanipulasian data yang digunakan untuk membantu pengambilan keputusan pada situasi yang tidak terstruktur.DSS  memungkinkan pengambil keputusan melakukan berbagai analisis dengan menggunakan model-model yang tersedia. 
  4. Fokus pada Komunikasi (OA) : pada waktu DSS berkembang , perhatian juga difokuskan pada otomatisasi kantor (office automation/OA) OA memudahkan komunikasi dan meningkatkan produktivitas diantara para manajer dan pekerja kantor . 
  5. Fokus potensial pada Konsultasi (AI/ES) : sistem yang menggambarkan segala macam sistem yang menerapkan kecerdasan buatan untuk pemecahan masalah dinamakan dengan sistem berbasis pengetahuan (knowledge-bases systems).
 






 



 









Tidak ada komentar:

Posting Komentar