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)
- 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) :
- Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efisien pada komputer (fritz Bauer,1968)
- Penerapan pendekatan yang sistematis,disiplin, dan terstruktur untuk pengembangan, operasi, dan pemeliharaan perangkat lunak (IEEE,1993).
- Suatu disiplin yang mengintegrasikan proses/prosedur, metode, dan perangkat tools untuk pembangunan perangkat lunak komputer (Pressman,97 ).
- Merupakan aplikasi dari prinsip-prinsip sains untuk mengurutkan transformasi masalah menjasi solusi yang dapat bekerja dengan baik
Proses
Perangkat Lunak
Tahapan
proses perangkat lunak :
- Spesifikasi Perangkat Lunak : Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.
- Pengembangan Perangkat Lunak : Perangkat lunak mulai dirancang dan diimplementasikan. Jika sudah sesuai keinginan pelanggan, perangkat lunak mulai diproduksi
- Validasi Perangkat Lunak : Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak bekerja sesuai dengan apa yang diinginkan oleh pelanggan.
- 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 :
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 :
- 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.
- 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.
- 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.
- 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.
- 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 :
- Spesifikasi persyaratan : spesifikasi formal dalam bentuk notasi matematis
- Perancangan, implementasi, dan pengujian unit : pengembangan transformasial
- Semua komponen proses dibakukan agar mudah jika langsung diterapkan pada implementasi bahasa pemrograman.
- Perlu keterampilan khusus dan pelatihan untuk menerapkan teknik
- 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.
- 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:
- Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
- 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.
- 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.
- 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.
- 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.
- Pengujian Alpha : software digunakan sebagaimana mestinya, dengan pengembang software yang tetap mengawasi apabila terjadi kesalahan. Dengan kata lain pengujian alpha dilakukan dilingkungan yang terkontrol.
- 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
- 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.
- 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.
- 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.
- 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 .
- 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