Software & Software Engineering
Rekayasa Perangkat Lunak – SIF317
Software Engineering: A Practitioner’s Approach, 7/e, Roger S. Pressman
Software Engineering 9/e, Ian Sommerville
Perangkat Lunak
•Perangkat lunak adalah (1) petunjuk (program
komputer) yang ketika dijalankan menyediakan fitur yang diinginkan, fungsi, dan kinerja; (2) struktur data yang memungkinkan program untuk memanipulasi
data/informasi dan (3) dokumentasi yang
Perangkat Lunak
Produk Perangkat lunak berdasarkan pemakai dibagi menjadi 2 macam sebagai berikut :
Produk Generik, yaitu sistem stand-alone standar yg diproduksi oleh
organisasi pengembang dan dijual ke pasar terbuka ke siapapun yg membelinya. Biasa disebut sebagai software shrink-wrapped.
Contoh : pengolah kata,Dll.
Produk Spesifik, yang dibuat dan dijual sesuai pesanan dari pemakai.
Produk pesanan (yang disesuaikan). Sistem yg dipesan oleh pelanggan tertentu. Dikembangkan khusus bagi pelanggan oleh kontraktor perangkat lunak.
Contoh : Sistem untuk mendukung proses bisnis tertentu dan sistem kontrol
Perangkat Lunak
Produk Perangkat lunak berdasarkan fungsional dibagi menjadi 4 macam, sebagai berikut :
Interfacing : Perangkat lunak ini menghubungkan suatu perangkat keras
tertentu, seperti hardware driver, interfaces dengan perangkat keras lain.
Contoh : Driver untuk Kamera, Handphone atau perangkat keras lainnya, Program interface seperti Sensor Suhu dengan LM555, PPI 8255, Komunikasi Serial RS232.
Operating System : Perangkat lunak yang menjalankan sistem komputer
dan merupakan interface dari sistem komputer dan program aplikasi yang berjalan diatasnya.
Perangkat Lunak
Program Aplikasi : program ini digunakan untuk keperluan tertentu, yang
tujuannya membantu pekerjaan manusia menjadi lebih mudah. Program ini yang banyak dibahas dalam pembuatan perangkat lunak.
Program Aplikasi ini tergantung pada kebutuhan dari program itu sendiri, seperti: Program Office, Program Graphics Design, Program Multimedia dan lain-lain
CASE (Computer-Aided Software Engineering) adalah berbagai macam
program yang digunakan untuk mendukung semua kegiatan perangkat lunak seperti analisis persyaratan, permodelan sistem, debugging, dan pengujian.
Karakteristik Perangkat Lunak
Perangkat lunak tidak akan susut atau aus, serta tidak
memerlukan suku cadang.
Perangkat lunak diperoleh melalui proses pengembangan/
rekayasa, bukan melalui fabrikasi dalam artian sebenarnya.
Dikembangkan melalui tahapan Perencanaan, Analisis,
Perancangan, Penulisan Program, Pengujian dan Pemeliharaan (Software Life Cycle)
Rancangan yang buruk berakibat pada peningkatan biaya
pemeliharaan perangkat lunak.
Kegagalan pada perangkat lunak disebabkan oleh kesalahan pada
Kelompok Software berdasarkan Fungsi
System Software, yaitu sekumpulan program yang dibuat untuk
melayani program lainnya. Misalnya : compiler, dan program manajemen utilities.
Real Time Software, yaitu Program yang memonitor atau menganalisa
atau mengontrol aktifitas sehari-hari secara real time.
Business Software, yaitu software yang digunakan dalam aplikasi bisnis
dimana software ini mampu mengakses satu atau beberapa database yang berisi informasi bisnis untuk membantu manajemen mengambil keputusan
Enginering and Scientific Software yaitu software yang digunakan
Kelompok Software berdasarkan Fungsi
Embeded Software yaitu software yang digunakan untuk mengontrol
proses dalam pabrik & biasanya disimpan didalam ROM (Read Only Memory). Misalnya: key pad untuk mengontrol microwave oven.
Personal Computer Software yaitu software untuk aplikasi komputer
untuk membantu pekerjaan sehari-hari. Misal: Wordprocessing, spreadsheet, computer graphic, multimedia, entertaintment, database management, personal and business financial application, akses database atau jaringan external, dan lain-lain.
Artificial Intelligent Software yaitu software untuk kecerdasan
Permasalahan yang dihadapi pemakai perangkat
lunak
Kompleksitas permasalahan yang dihadapi meningkat,
sejalan dengan perkembangan usaha dan organisasi
Banyaknya alternatif solusi yang ditawarkan pada
pemakai.
Teknologi sistem komputer yang berkembang dengan
cepat, terutama perangkat keras, berakibat masa pakai semakin singkat.
Perangkat lunak aplikasi harus terwujud dalam waktu
relatif singkat, pemakai tidak dapat menunggu terlalu lama.
Pemakai tidak dapat atau sukar untuk merumuskan
Software Aplikasi
•system software
•application software
•engineering/scientific software •embedded software
•product-line software
•WebApps (Web applications)
Hal Yang Menjadi Perhatian
Biaya Pengembangan, setiap rupiah yang dikeluarkan untuk mengembangkan
perangkat lunak harus jelas manfaat langsung dan tidak langsung dari perangkat lunak yang dihasilkan.
Produktivitas Pengembangan, Perangkat lunak harus dihasilkan dalam waktu
yang pendek, karena pengguna memerlukan solusi yang cepat. Sangat sukar bagi pemakai dalam menentukan spesifikasi perangkat lunak aplikasi yang diperlukan.
Kualitas Perangkat Lunak, Menentukan kehandalan sistem komputer.
Mempengaruhi unjuk kerja sistem. Menentukan apakah perangkat lunak mudah untuk dipelihara dan dikembangkan.
Pemeliharaan Perangkat Lunak, Fine Tuning. Memperbaiki, karena ada
Software—New Categories
•Open world computing—dimana-mana, terdistribusi
•Ubiquitous computing—jaringan nirkabel
•Netsourcing—web sebagai mesin komputasi
•Open source—”free” terbuka untuk dikembangkan
•Dan lain-lain: ▫Data mining
▫Grid computing
▫Cognitive machines
Legacy Software
Mengapa harus berubah?
▫Software harus disesuaikan untuk memenuhi kebutuhan
dan teknologi baru.
▫Software harus dirancang ulang agar layak dalam
lingkungan jaringan.
▫Software harus ditingkatkan agar ketika
diimplementasikan dapat dioperasikan dengan sistem lain
Framework Proses
•Komunikasi
•Perencanaan •Modeling
▫Analisis kebutuhan ▫Desain
•Konstruksi
▫Coding ▫Testing
Payung Aktifitas
• Manajemen proyek perangkat lunak
• Tinjauan teknis Formal
• Jaminan kualitas perangkat lunak
• Mengatur konfigurasi perangkat lunak
• Persiapan dan produksi
• Mengatur penggunaan
• Pengukuran