Rekaya perangkat lunak adalah bidang rekayasa yang berkaitan dengan semua aspek produksi perangkat lunak dari tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah itu telah mulai digunakan.
- Menggerakkan pengambilan keputusan bisnis
- Dasar penyelidikan ilmiah modern
- Rekayasa pemecah masalah
Berdasarkan fungsi
- Perangkat lunak sistem (OS, Compiler, Interpreter)
- Perangkat lunakn aplikasi (DBMS, Spreadsheet)
Berdasarkan pemakai
- Generik : digunakan secara umum
- Spesifik: dibuat berdasarkan pesanan
- Menggantikan tugas manusia
- Memperkuat peran manusia
- Restrukturisasi peran manusia
- Hiburan dan permainan
- Kinerja sesuai funsgi yang dibutuhkan
- Mempunyai daya guna yang tinggi
- Reliable
- Maintainable
- Efficient
- Antarmuka menarik
- Tahan lama
- Rekayasa sistem berkaitan dengan semua aspek dalam pembangunan sistem berbasis komputer termasuk hardware, rekayasa PL dan proses
- RPL adalah bagian dari rekayasa sistem yang meliputi pembangunan PL, infrastruktur, kontrol, aplikasi dan database pada sistem
- Kebanyakan software tidak dapat digunakan
- Kebanyakan software tidak stabil dan tidak aman
- Kebanyakan software tidak dapat diandalkan
- PADAHAL, 'dunia' dijalankan oleh software
- Manager (Project manager, QA manager)
- Software Developer (Analyst, Designer, Programmer)
- Support (Administration, CS)
Perangkat lunak sistem untuk memberikan dukungan otomatis untuk kegiatan proses perangkat lunak.
Penggunaan CASE tools:
- Graphical editors
- Data dictionaries
- GUI builders
- Debugger
- Debugger
- Heteroeneity
- Deivery
- Trust
Pengembangan perangkat lunak adalah sebuah proses pembelajaran iteratif dan produk yang dihasilkan merupakan perwujudan dari pengetahuan yang dikumpulkan, disaring, dan ditata selama proses berlangsung
- Client (pihak yang meminta)
- Developer (pihak yang membuat)
- User (pihak pemakai)
- Fokus kualitas : maintainability, dependability, usability, efficiency
- Proses : pengembangan secara sistematis
- Metode : metode yang digunakan
- Tools : perangkat yang mendukung tiap tahap pengembangan
Suatu representasi proses perangkat lunakn yang disederhanakan, dipresentasikan dari perspektif khusus.
Fungsi:
- menentukan tahap yang diperlukan
- menentukan urutan pelaksanaan
- menentukan kriteria
- Waterfall
- V model
- Spiral
- Rapid prototyping
- Prototyping
- Spesifikasi, desain dan implementasi saling berdaun
- Sistem dikembangkan sebagai rangkaian versi dengan pemangku kepentingan yang terlibat
- Antarmuka pengguna yang sering idkembangkan IDE
- Extreme Programming (XP)
- Adaptive Software Development (ASD)
- Scrum Methodology
- Kanban
- Dynamic Systems Development Method (DSDM)
- Crystal
- Feature Driven Development (FDD)
- Agile Modeling (AM)
- Rational Unified Process
Proses menetapkan layanan yang dibutuhkan konsumen terhadap sistem dan batasan operasi dan pengembangan
Latar belakang:
- Client tahu apa yang dibutuhkan
- Client dapat mengungkapkan apa yang diinginkannya
- Client memiliki pemahaman yang baik mengenai funsgi dan fitur yang akan dirancang
- Inception
Mendefinisikan ruang lingkup masalah
- Elicitation
Membantu pelanggan mendefinisikan apa yang dibutuhkan
- Elaboration
Memurnikan dan mengubah kebutuhan dasar
- Negotiation
Perbaikan konflik antara pihak yang bersangkutan
- Specification
- Validation
Memastikan semua kebutuhan telah dicantumkan
- Management
- Kuesioner
- Form
- Dokumen
- Benchmarking (melihat sistem lain yang memiliki permasalahan yang sama)
- Pengamatan lapangan
- Skenario
Menggambarkan fungsionalitas atau layanan sistem.
Contoh:
- User dapat mencari semua kumpulan database inisial atau memilih subset dari database tersebut
- Sistem menyediakan tampilan yang tepat untuk user
- Setiap pesanan dapat dialokasikan sebagai identifier yang unik untuk meng-copy daerah penyimpan account permanen
Batasan layanan atau fungsi yang ditawarkan sistem seperti batasan, waktu, batasan pengembangan proses, standarisasi, dll.
Contoh:
- Sistem seharusnya tidak tertutup untuk segala informasi personal tentang konsumen
Datang dari domain aplikasi dari sistem dan yang menyatakan karakteristik dari domain tersebut.
Contoh:
- Terdapat antarmuka standar untuk semua database
Memodelkan kebutuhan sistem
Tujuan:
- Mendeskripsikan keinginan pelanggan
- Mengembangkan dasar atau perancangan PL
- Membuat serangkaian kebutuhan yang bisa divalidasi saat selesai
- Identifikasi fungsi-fungsi yang mentransformasikan objek data
- Identifikasi bagaimana aliran data yang terdapat pada sistem
- Identifikasi entitas yang memproduksi data
- definisi objek data
- deskripsi atribut data
- definisi keterhubungan data