Rekayasa Perangkat Lunak
Sementara itu IEEE mendefinisikan software engineering sebagai: Aplikasi yang sistematis, tertata, mampu untuk dikembangkan, dioperasikan, dirawat dan diperbaiki, itulah sebuah aplikasi software engenering.dan mempelajarinya
Komponen Software Engenering :
Komponen adalah pokok bahasan yang sangat menarik jika kita membicarakan masalah reuse. Membangun software yang bersifat reusable akan sangat sulit dikarenakan desain komponen yang tidak baik. Hal ini dapat mengakibatkan komponen yang satu dengan yang lain sulit untuk dipisahkan. Di dalam membangun dan memelihara komponen dibutuhkan kejelasan pengertian dari dan antar komponen. Suatu komponen dapat saja memiliki hubungan external atau ketergantungan antar komponen (komponen dependence). Untuk itu diperlukan sebuah tools yang dapat melihat komponen dependence.
- Metode,
- Peralatan (tools),
- Prosedur,
- Metode Software Enginnering
- Perencanaan & estimasi proyek
- Analisis kebutuhan sistem dan software
- Desain struktur data
- Arsitektur program dan prosedur algoritma
- Coding
- Testing dan pemeliharaan
- Peralatan Software Engineering
- CASE (Case Aided Software Engineering), yaitu suatu software yang menggabungkan software, hardware, dan database software engineering untuk menghasilkan suatu lingkungan software engineering.
- Database Software Engineering, adalah sebuah struktur data yang berisi informasi penting tentang analisis, desain, kode dan testing.
- Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE
- Prosedur Software Engineering
- urut-urutan di mana metode tersebut diterapkan
- dokumen
- laporan-laporan
- formulir-formulir yang diperlukan
- mengontrol kualitas software
- mengkoordinasi perubahan yang terjadi pada software
- Classic Life Cycle Pradigm – Model Water Fall – Model Siklus Hidup Klasik
-
- System Engineering and Analysis
-
- Hardware
- Software
- Database
-
- Analisis kebutuhan software
-
-
- Design
-
- Struktur data
- Arsitektur software
- Rincian prosedur
-
- Coding
-
-
- Testing
-
-
- Maintenance
-
- Software mengalami error
- Software harus diadaptasi untuk menyesuaikan dengan lingkungan external, misalnya adanya sistem operasi baru atau peripheral baru.
- Software yang lebih disempurnakan karena adanya permintaan dari customer.
- Proyek yang sebenarnya jarang mengikuti aliran sequential yang ditawarkan model ini. Iterasi (Pengulangan) selalu terjadi dan menimbulkan masalah pda aplikasi yang dibentuk oleh model ini.
- Seringkali pada awalnya customer sulit menentukan semua kebutuhan secara explisit (jelas).
- Customer harus sabar karena versi program yang jalan tidak akan tersedia sampai proyek software selesai dalam waktu yang lama.
- Prototype Paradigm
-
- Paper Prototype
-
-
- Working Prototype
-
- Pengumpulan kebutuhan developer dan customer
- Menentukan semua tujuan software
- Mengidentifikasi kebutuhan-kebutuhan yang diketahui
- Customer hanya melihat pada apa yang dihasilkan oleh software, tidak peduli pada hal-hal yang berhubungan dengan kualitas software dan pemeliharaan jangka panjang.
- Developer seringkali menyetujui apa yang diterangkan oleh customer agar prototype dapat dihasilkan dengan cepat. Akibatnya timbul pemilihan sistem operasi / bahasa pemrograman yang tidak tepat.
- Fourth Generation Tehnique Paradigm – Model tehnik generasi ke 4 / 4GT
- DataBase Query
- Pembentukan laporan ( Report Generation )
- Manipulasi data
- Definisi dan interaksi layar (screen)
- Pembentukan object dan source ( Object and source generation )
- Kemampuan grafik yang tinggi, dan
- Kemampuan spreadsheet
- Model 4GT untuk software engineering dimulai dengan rangkaian pengumpulan kebutuhan. Idealnya, seorang customer menjelaskan kebutuhan-kebutuhan yang selanjutnay diterjemahkan ke dalam prototype. Tetapi ini tidak dapat dilakukan karena customer tidak yakin dengan apa yang diperlukan, tidak jelas dalam menetapkan fakta-fakta yang diketahui dan tidak dapat menentukan informasi yang diinginkan oleh peralatan 4GT.
- Untuk aplikasi kecil adalah mungkin bergerak langsung dari langkah pengumpulan kebutuhan ke implementasi yang menggunakan bahasa non prosedur fourth generation (generasi ke 4). Tetapi untuk proyek besar, pengembangan strategi desain sistem tetap diperlukan, sekalipun kita menggunakan 4GL. Penggunaan 4GT tanpa desain untuk proyek besar akan menyebabkan masalah yang sama yang ditemui dalam pengembangan software yang menggunakan pendekatan konvensional.
- Implementasi yang menggunakan 4GL memungkinkan developer software menjelaskan hasil yang diinginkan yang kemudian diterjemahkan ke dalam bentuk source code dan object code secara otomatis.
- Langkah yang terakhir adalah mengubah implementasi 4GT ke dalam sebuah product. Selanjutnya developer harus melakukan pengetesan, pengembangan dokumentasi dan pelaksanaan semua aktifitas lainnya yang diwujudkan dalam model software engineering.
-
- peralatan 4GT tidak semudah penggunaan bahasa pemrograman,
- source code yang dihasilkan oleh peralatan ini tidak efisien,
- pemeliharaan sistem software besar yang dikembangkan dengan 4GT masih merupakan tanda tanya.
-
- Model Kombinasi – Combining Paradigm
- Fase Definisi
- Fase Pengembangan (Development)
- Fase Pemeliharaan (Maintenance)
- Fase Definisi
- Mengidentifikasi informasi apa yang dikerjakan proses
- Fungsi dan performance apa yang diinginkan
- Interface apa yang dibutuhkan
- Hambatan desain apa yang ada, dan
- Kriteria validasi apa yang dibutuhkan untuk menetapkan keberhasilan sistem.
-
- Sistem Analis
-
-
- Sistem Software Planning
-
- Pengalokasian sumber / resource
- Estimasi biaya
- Penetapan tugas pekerjaan dan jadual.
-
- Requirement Analysis
-
- Fase Pengembangan
- Bagaimana struktur data dan arsitektur software yang didesain
- Bagaimana rincian prosedur diimplementasikan ( diterapkan )
- Bagaimana desain diterjemahkan ke dalam bahasa pemrograman atau bahasa non prosedur, dan
- Bagaimana pengetesan akan dilaksanakan.
-
- Desain software ( Software Design )
-
-
- Coding
-
-
- Software Testing
-
- Fase Pemeliharaan
-
- Perubahan karena software error ( Corective Maintenance )
- Perubahan karena software disesuaikan / diadaptasi dengan lingkungan external, misalnya munculnya CPU baru, sistem operasi baru ( Adaptive Maintenance )
- Perubahan software yang disebabkan customer / user meminta fungsi tambahan, misalnya fungsi grafik, fungsi matematik, dll ( Perfective Maintenance)
-