Introduction
Software yang baik harus memberikan yang diperlukan secara fungsional dan kinerja untuk pengguna dan harus akan dipertahankan, dapat diandalkan, dan dapat digunakan.
- Produk generik, yaitu sistem yang berdiri sendiri yang diproduksi oleh perusahaan pengembang/ penjual dan dijual di pasar terbuka untuk setiap pelanggan yang ingin membelinya.
- Produk yang disesuaikan (dipesan dulu), yaitu sistem yang dipesan secara khusus oleh pemesan tertentu.
Software engineering mempunyai dua alasan penting, yaitu :
- More and more, individu dan masyarakat sangat bergantung pada sistem perangkat lunak canggih. Kita harus mampu menghasilkan sistem yang dapat diandalkan dan dipercaya secara ekonomis dan cepat.
- Biasanya lebih murah, untuk sebagian besar jenis sistem, sebagian besar biaya yang dikeluarkan adalah biaya untuk mengubah perangkat lunak setelah itu baru mulai digunakan.
Karakteristik software
- Software dikembangkan atau direkayasa, tidak diproduksi dalam pengertian yang klasik.
- Software tidak usang/ rusak. Hanya saja software mengalami penurunan penggunaan seiring perkembangan zaman.
- Meskipun industri bergerak menuju assembly yang berbasis komponen, banyak software yang terus menerus dibangun.
Ada empat aktivitas fundamental yang paling umum untuk semua proses software, yaitu :
- Spesifikasi software, di mana pelanggan dan engineer mendefinisikan perangkat lunak yang akan diproduksi dan kendala pada operasi.
- Pengembangan software, di mana perangkat lunak ini dirancang dan diprogram.
- Validasi software, di mana software tersebut akan diperiksa untuk memastikan bahwa itu adalah apa yang pelanggan butuhkan.
- Evolusi software, di mana perangkat lunak tersebut dimodifikasi untuk memenuhi kebutuhan pelanggan yang berubah dan kebutuhan pasar.
- Stand-alone applications : sistem aplikasi yang berjalan di komputer lokal seperti PC, mencakup semua fungsi yang diperlukan dan tidak perlu terhubung ke jaringan.
- Interactive transaction-based applications : aplikasi yang mengeksekusi pada komputer remote dan yang diakses oleh pengguna dari PC mereka sendiri atau terminal.
- Embedded control systems : perangkat lunak sistem yang mengontrol dan mengelola hardware.
- Batch processing systems : sistem bisnis yang dirancang untuk proses data dalam batch besar.
- Entertainment systems : sistem yang terutama untuk penggunaan pribadi dan berfungsi sebagai penghibur pengguna.
- Systems for modeling and simulation : sistem yang dikembangkan oleh ilmuwan dan engineer untuk memodelkan proses fisik atau situasi yang termasuk banyak, terpisah, objek yang berinteraksi.
- Data collection systems : sistem yang mengumpulkan data dari lingkungan menggunakan satu set sensor dan mengirim data ke sistem lain untuk pemrosesan.
- Systems of systems : sistem yang terdiri dari beberapa software sistem.
Ada lima kerangka kerja kegiatan dalam software engineering, yaitu :
- Communication (komunikasi)
- Planning (perencanaan)
- Modeling (membuat model)
- Construction (pembangunan)
- Deployment (penyebaran)
Beberapa aktivitas yang dipayungi/dicakup oleh software engineering, yaitu :
- Software project tracking and control (memungkinkan tim untuk menilai kemajuan dan mengambil tindakan korektif untuk mengurus jadwal).
- Risk management (menilai resiko yang dapat mempengaruhi hasil dan kualitas proyek).
- Software quality assurance (kegiatan yang dibutuhkan untuk menjaga kualitas perangkat lunak).
- Technical reviews (menilai produk rekayasa kerja untuk mengungkap dan menghapus kesalahan sebelum mereka menuju ke aktivitas berikutnya).
- Measurement (mendefinisikan dan mengumpulkan langkah-langkah proses, proyek, dan produk untuk membantu tim dalam memberikan perangkat lunak pemenuhan kebutuhan pelanggan).
- Software configuration management (mengelola efek dari perubahan).
- Reusability managemnt (mendefinisikan kriteria untuk produk kerja menggunakan kembali dan membangun mekanisme untuk mencapai penggunaan kembali komponen).
- Work product preparation and production (kegiatan untuk membuat model, dokumen, log, form, list, dll).
Essence of practice
- Understand problem (komunikasi dan analisis).
- Plan a solution (merancang software).
- Carry out the plan (code generation).
- Examine the result of accuracy (uji coba dan jaminan kualitas).
Software practice core principles
- Software ada untuk memberikan nilai kepada para penggunanya.
- Keep it simple, stupid! (KISS).
- Visi yang jelas sangat penting untuk keberhasilan setiap proyek software.
- Selalu menentukan, merancang, dan mengimplementasikan, ketahui bahwa orang lain akan harus memahami apa yang telah Anda lakukan untuk melaksanakan tugas-tugasnya.
- Jadilah terbuka untuk perubahan masa depan, jangan mengkode diri ke sudut.
- Perencanaan ke depan untuk kembali mengurangi biaya dan meningkatkan nilai dari kedua komponen yang dapat digunakan kembali dan sistem yang dibutuhkan mereka.
- Menempatkan pemikiran yang lengkap sebelum tindakan apapun hampir selalu menghasilkan hasil yang lebih baik.
Software creation
- Hampir setiap proyek software diendapkan oleh kebutuhan bisnis (misalnya memperbaiki sistem yang cacat, sistem untuk beradaptasi dengan perubahan lingkungan, memperluas sistem yang ada, menciptakan sistem baru).
- Sering kali upaya rekayasa hanya akan berhasil jika software yang dibuat untuk proyek berhasil.
- Pasar hanya akan menerima produk adalah perangkat lunak tertanam di dalamnya memenuhi pelanggan yang dinyatakan atau kebutuhan yang tidak tertulis.
0 komentar:
Posting Komentar