Rabu, 25 Februari 2015

Rekayasa Perangkat Lunak

Pengertian
Menurut Wikipedia :  Satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak dan manajemen kualitas.
Menurut IEEE Computer Society :   Sebagai penerapan suatu pendekatan yang sistematis,
                        disiplin dan terkuantifikasi atas pengembangan, pengguna-
                        an dan pemeliharaan perangkat lunak, serta studi atas
                        pendekatan-pendekatan ini, yaitu penerapan pendekatan
                        engineering atas perangkat lunak.
Kesimpulan :              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.

Tujuan Rekayasa Perangkat Lunak
Tujuan rekayasa perangkat lunak yaitu :
1.      Memperoleh biaya produksi perangkat lunak yang rendah.
2.      Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu.
3.      Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform.
4.      Menghasilkan perangkat lunak yang biaya perawatannya rendah.

Kriteria dalam Merekayasa Perangkat Lunak
1.      Maintainability :          Dapat terus dirawat dan dipelihara.
2.      Dependability :            Dapat mengikuti perkembangan teknologi.
3.      Robust :                       Dapat mengikuti keinginan pengguna.
4.      Usability :                    Dapat memenuhi kebutuhan yang diinginkan.
5.      Efektif dan efisien dalam menggunakan energi dan penggunaannya.

Ruang Lingkup Rekayasa Perangkat Lunak
1.      Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak.
2.      Software desain mencakup proses penampilan aristektur, komponen, antarmuka, dan karakteristik lain dari perangkat lunak.
3.      Software construction berhubungan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan.
4.      Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak.
5.      Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan.
6.      Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.
7.      Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
8.      Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL.

Materi Rekayasa Perangkat Lunak :
Secara garis besar ada 6 materi, yaitu :
1.      Pengenalan rekayasa perangkat lunak :
Di dalam materi pengenalan rekayasa perangkat lunak yang pertama dipelajari adalah materi secara umum yaitu pengertian berdasarkan kesepakatan serta beberapa tokoh, definisi secara umum, sejarah, perkembangan, tokoh-tokohnya. Di dalam materi ini juga di jelaskan tentang perangkat lunak secara umum, mulai dari karakteristik suatu perangkat lunak, tujuan pembuatan dari beberapa sisi baik itu dari sisi pengguna, dari sisi sponsor atau pihak yang mendanai ataupun dari sisi pengembang.
2.      Konsep dasar rekayasa perangkat lunak :
Konsep Dasar Rekayasa Perangkat Lunak. Didalam materi ini di jelaskan tentang konsep-konsep dasar dalam mengembangkan suatu perangkat lunak.  Dijelaskan juga tentang rekayasa perangkat lunak di dalam dunia praktis atau lapangan. Di dalam materi ini juga di jelaskan tentang siklus suatu rekayasa perangkat lunak mulai dari pra produksi, pengembangan, pasca produksi hingga rekayasa atau yang biasa kita lakukan dalam software adalah patch (menutupi kekurangan).  Di sini juga dijelaskan mengenai tingkatan perangkat lunak, jenis-jenis perangkat lunak dan perkembangan perusahaan perangkat lunak.
3.      Metode pengembangan perangkat lunak :
Metodologi pengembangan perangkat lunak atau disebut juga model proses atau paradigma rekayasa perangkat lunak adalah suatu strategi pengembangan yang memadukan proses, metode, dan perangkat (tools). Didalam materi ini di jelaskan mengenai metode-metode pengembangan perangkat lunak yang pernah di pakai dan sering di pergunakan di dalam mengembangkan software diantaranya metode sekuensial linier, prototype, RAD, Fouth Generation Techniques (4GT) , spiral, metode Proses Perangkat Lunak Evolusioner (pertambahan, spiral, konkruen), dan metode formal.
4.      Analisi resiko :
Di dalam materi ini di jelaskan mengenai resiko-resiko yang akan di hadapi dalam pengembangan suatu perangkat lunak. Di sini dijelaskan semua mengenai jenis-jenis resiko kemudian bagaimana menanganinya atau memanagement suatu resiko. Dan Bagaimana suatu resiko itu dapat di manfaatkan sebagai referensi di dalam pengembangan perangkat lunak dan selanjutnya.
5.      Persiapan project perangkat lunak :
Persiapan Project Perangkat Lunak, di dalam materi ini menjelaskan apa saja yang perlu di siapkan di dalam mengembangkan suatu project perangkat lunak. materi ini menjelaskan tentang manajemen proyek suatu pengembangan perangkat lunak berdasarkan tahap-tahap pengembangan yang baik, mulai dari Initiating(proyek sedang dalam proses untuk dipilih/disetujui, disponsori, didanai, dan diluncurkan. Planning (perencanaan adalah proses yang berulang dan menggambarkan proses bagaimana proyek akan dilaksanakan hingga selesai), Executing (setelah proyek direncanakan, tim proyek memulai pekerjaannya), Controlling (selama tim proyek mengerjakan tugasnya, project manager mengontrolnya) dan yang terakhir adalah Closing (setelah proyek diselesaikan project manager akan menutup proyek software).
6.      Analisis desain :
Di dalam materi ini di jelaskan tentang sistem informasi, fase-fase analisis desain, maintenance sistem, case tools, metodologi alternatif.
7.      Testing dan implementasi :
Di jelaskan secara umum karakterisk strategi pengujian perangkat lunak, tahapan-tahapan proses pengujian, dijelaskan pula faktor-faktor apa saja yang di perlukan didalam pengujian suatu perangkat lunak. Kemudian pengimplementasian kepada user seperti apa dan bagaimana suatu rekayasa dianggap berhasil atau gagal.

Macam-macam Perangkat Lunak
Macam-macam perangkat lunak, antara lain :
1.      Perangkat Lunak Sistem :
Software yang mengelola perangkat keras dan perangkat lunak yang digunakan komputer.
Ex : DOS, Macintosh, Windows, dll.
2.      Perangkat Lunak Bahasa Pemrogaman :
Software yang berfungsi untuk membantu melakukan pembuatan program aplikasi komputer.
Ex : Visual basic, C++, dll.
3.      Perangkat Lunak Aplikasi :
Software yang berfungsi untuk membantu melakukan berbagai tugas perkantoran/ aktivitas sehari-hari.
Ex : Pengolah kata, Pengolah gambar, Lembar sebar, dll.

Contoh Perangkat Lunak

Model air terjun ( waterfall ) :
Biasa juga disebut siklus hidup perangkat lunak. Mengambil kegiatan dasar seperti spesifikasi, pengembangan, validasi, dan evolusi serta mempresentasikannya sebagai fase-fase proses yang berbeda seperti spesifikasi persyaratan, perancangan peraangkat lunak, implementasi, pengujian dan seterusnya.
Masalah dengan model waterfall :
1.      Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
2.      Hal ini mengakibatkan sulitnya untuk merespon perubahan kebutuhan pengguna ( user ).
3.      Model air terjun harus digunakan hanya ketika persyaratan dipahami dengan baik.
Kekurangan model waterfall :
1.      Pengguna hanya mendapatkan deskripsi yang panjang, rinci dan “agak membosankan” untuk dibaca.
2.      Alur linier, proses lambat
3.      Pengguna baru melihat produk setelah akhir tahapan.
4.      Personil tidak bekerja optimal, karena ada waktu tunggu sebuah tahapan selelsai.
Kelebihan model waterfall :
1.      Lebih disiplin.
2.      Dorongan bahwa dokumentasi selalu tersedia untuk tiap tahapan ( dokumen lengkap ).
3.      Dorongan bahwa setiap produk yang dihasilkan selalu dicek, maintenance mudah karena dokumen lengkap.

sumber :


Jumat, 03 Oktober 2014

PROSES EKSEKUSI PROGRAM

                                                                                                                                        
  1. Karena PC berisi angka ( program counter ) berisi angka 300, maka intruksi yang akan diambil adalah intruksi yang terletak di memori alamat 300, yaitu intruksi dengan kode 1940. Intruksi tersebut diambil adri memori kemudian di simpan di register intruksi.
  2. Misalkan kode 1940 merupakan intruksi dengan kode operasi 1,  diikuti dengan 940 yang merupakan alamat operand. Opcode 1 berarti intruksi untuk mengcopy data dari alamat operand ( dalam hal ini 940 ) ke akumulator.  Maka data yang terletak di alamat 940 dicopy ke accumulator untuk diproses dalam siklus esksekusi ini.
  3. Setelah itu isi PC ditambah satu ( incremented ) sehingga isinya menjadi 301. Artinya, intruksi berikutnya yang harus diambil dari memori dan dieksekusi terletak di memori alamat 301, yaitu intruksi dengan kode 5941. Intruksi tersebut mengandung opcode 5 dan alamat operand 941.
  4. Karena 5 berarti penjumlahan antara isi akumulator dengan isi memori yang alamatnya diberikan disebelah angka 5, maka isi akumulator dijumlahkan dengan isi memori alamat 941. Kemudian hasil penjumlahannyadikembalikan ke akumulator.
  5. Setlah PC ditambah  satu maka isinya menjadi 302, sehingga intruksi berikutnya yang diambil dari memori adalah 2941, yaitu opcode 2 dan operand 941.
  6. Arti 2941 adalah perintah untuk mengcopy isi akumulator ke memori alamat 941.