Rekayasa Piranti Lunak (SL201)
BAB I
PENDAHULUAN
Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.
IEEE Computer Society mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.
rekayasa perangkat lunak adalah pengubahan perangkat lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip reakayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.
kriteria yang dapat digunakan sebagai acuan dalam merekayasa perangkat lunak:
1. dapat terus dirawat dan dipelihara(maintainability)
2. dapat mengikuti perkembangan teknologi(dependability)
3. dapat mengikuti keinginan pengguna(robust)
4. efektif dan efisien dalam menggunakan energi dan penggunaannya
5. dapat memenuhi kebutuhan yang diinginkan(usability)
SILABUS
TUJUAN
Agar mahasiswa mampu adaptable terhadap suatu perubahan dan fleksibel. Dalam arti, jika terjadi perubahan, maka perubahan tersebut bisa diminimalisasi dan diisolir. Perubahan tidak merembet kemana-mana. Yang jelas, software akan sering berubah, seiring dengan perkembangan Zaman dan requirement-requirement baru.
BAB II
LANDASAN TEORI
SATUAN ACARA PENGAJARAN
Kode : SL801
Mata Kuliah : Rekayasa Piranti Lunak
Beban Kredit : SKS
Jenjang : S1
Jurusan : SI/TI/MI
Waktu Tatap Muka : 2 X 50 Menit
Waktu Tugas Mandiri : 2 ( 2 X 50 Menit )
Metode Kuliah : Tatap muka,Tugas,Presentasi
Alat : RME, Multimedia Projector, Komputer dan Whiteboard
Evaluasi : Kehadiran, Tugas, UTS, UAS
Dosen :
TIU : Mahasiswa dapat memahami jenis-jenis komputer, sistem kerja komputer, perangkat komputer, arus informasi menggunakan komputer, informasi dalam dunia maya perkembangan hardware dan software terkini, serta prospek pengembangan komputer di masa mendatang.
TIK : Mahasiswa dapat memahami jenis-jenis komputer, sistem kerja komputer, perangkat komputer, arus informasi menggunakan komputer, informasi dalam dunia maya perkembangan hardware dan software terkini, serta prospek pengembangan komputer di masa mendatang.
DAFTAR PUSTAKA
?Sumber Utama :
BAB III
PEMBAHASAN MATERI
Rekayasa Piranti Lunak
PERTEMUAN 1
Pentingnya Rekayasa Perangkat Lunak dan Perangkat Lunak
Semua negara maju ekonominya bergantung pada perangkat lunak (PL). Makin banyak sistem yang dikendalikan oleh PL. RPL berkaitan dengan teori, metode dan alat untuk pembangunan PL secara profesional. Pengeluaran dana untuk PL di negara maju sangat besar. Harga PL seringlebih mendominasi harga sistem komputer. Harga PL pada PC sering lebih mahal dari pada harga perangkat kerasnya. Biaya pemeliharaan PL lebih mahal dibanding biaya pembuatannya. RPL berkaitan dengan biaya efektif pembuatan PL.
PERTEMUAN 2
SOFTWARE PROCESS MODEL I
Linear Sequential Model / Waterfall Model
Model ini adalah model klasik yang bersifat sistematis, berurutan dalam membangun software. Berikut ini ada dua gambaran dari waterfall model. Sekalipun keduanya menggunakan nama-nama fase yang berbeda, namun sama dalam intinya.
Fase-fase dalam Waterfall Model menurut referensi Pressman:
PERTEMUAN 3
Software Process (Lanjutan)
Prototyping ModelKadang-kadang klien hanya memberikan beberapa kebutuhan umum software tanpa detil input, proses atau detil output.
Di lain waktu mungkin dimanati mpembangun (developer) tidak yakin terhadap efisiensi dari algoritma yang digunakan, tingkat adaptasi terhadap sistem operasi atau rancangan form user interface.
Ketika situasi seperti ini terjadi model prototyping sangat membantu proses pembangunan software.
PERTEMUAN 4
Manajemen Proyek Perangkat Lunak
Manajemen proyek perangkat lunak merupakan bagian yang penting dalam pembangunan perangkat lunak. Sekalipun tidak bersifat teknis seperti pengkodean, hal-hal dalam manajemen proyek PL ini mampu menentukan apakah proyek akan berjalan dengan baik sehingga menghasilkan produk yang baik. Hal-hal yang berkaitan dengan manajemen adalah pengelolaan personel dan koordinasi tim, proses, pengukuran proyek termasuk menentukan harga dari PL, penjadwalan dan sebagainya. Dalam pembahasan berikut, hanya sebagian kecil dari manajemen yang akan dibahas untuk memberi gambaran tentang hal-hal manajemen yang berlaku dan diterapkan dalam pembangunan PL.
PERTEMUAN 5
Software Quality Assurance
Software Quality Assurance (SQA) meliputi pendekatan manajemen kualitas, teknologi software engineering yang efektif, pertemuan peninjauan teknis selama proses software berlangsung, strategi pengujian bertingkat, mengendalikan dokumentasi software dan perubahan yang terjadi, prosedur untuk memastikan kesesuaian dengan standar pembangunan software (jika ada standar yang digunakan) mekanisme pelaporan dan mengukuran.
PERTEMUAN 6
Software Requirement
Requirement tidak hanya ditulis oleh pembangun, tapi sebelumnya justru ditulis oleh klien yang memesan software. Klien menuliskan requirement dalam bentuk yang masih abstrak tentang. kebutuhannya. Kemudian requirement tersebut diserahkan kepada tim pembangun. Saat sudah ada persetujuan pembangun pun kemudian menuliskan kemampuan sistem yang bisa dipahami oleh klien, ini pund isebut requirement.
• Requirement adalah gambaran dari layanan (services) dan batasan bagi sistem yang akan dibangun.
• Atau requirement adalah pernyataan/gambaran pelayanan yang disediakan oleh sistem, batasan-batasan dari sistem dan bisa juga berupa definisi matematis fungsi-fungsisi stem. Requirement berfungsi ganda yaitu:
• Menjadi dasar penawaran suatu kontrak –> harus terbuka untuk masukan
• Menjadi dasar kontrak –> harus didefinisikan secara detil
• Proses menemukan, menganalisis, mendokumentasikan dan pengujian layanan-layanan dan batasan tersebut disebut Requirement Engineering.
Pengumpulan requirement
• Interviews : Memberi informasi yang terbaik,mahal
• Questionnaires: Bagus jika banyak orang terlibat dan tersebar, respon cenderung kurang baik
• Observation: Akurat jika dilakukan dengan baik, mahal
• Searching :Informasi terbatas, cenderung tidak menampilkan hal-hal yang mungkin jadi masalah
Beberapa macam requirement
User requirement (kebutuhan pengguna)
Pernyataan tentang layanan yang disediakan sistem dan tentang batasan-batasan operasionalnya. Pernyataan ini dapat dilengkapi dengan gambar/diagram yang dapat dimengerti dengan mudah.
System requirement (kebutuhan sistem)
Sekumpulan layanan/kemampuan sistem dan batasan-batasannya yang ditulis secara detil. System requirement document sering disebut functional specification (spesifikasi fungsional), harus menjelaskan dengan tepat dan detil.
Ini bisa berlaku sebagai kontrak antara klien dan pembangun.
Software design specification (spesifikasi rancangan PL)
Gambaran abstrak dari rancangan software yang menjadi dasar bagi perancangan dan implementasi yang lebih detil.
Beberapa macam requirement
Ketiga jenis requirement tersebut diperlukan dalam pembangunan software karena masing-masing memberi pengertian kepihak yang berbeda kepentingan. Pembaca dari ketiga requirement tersebut bisa dijelaskan dengan gambar berikut :
Jenis Requirement dan pembacanya
PERTEMUAN 7
Konsep Desain Software
Analisis dan Desain Model
Setelah kebutuhan dikumpulkan, analisis terhadap kebutuhan dilakukan dengan menggunakan beberapa alat (tools) seperti :
DFD (Data Flow Diagram)
ERD (Entity Relationship Diagram)
STD (State Transition Diagram).
Data Dictionary
menjadi bekal dasa runtuk menganalisis kebutuhan.
Berisi gambaran dari semua objek data yang diperlukan dan dihasilkan oleh software nantinya.
Diagram-diagram tersebut mempunyai karakteristik masing-masing.
DFD memberi gambaran bagaimana data berubah sejalan dengan alirannya dalam sistem dan menggambarkan fungsi-fungsi yang mengubah data-data tadi.
ERD menggambarkan relasi antara objek data.
STD menggambarkan bagaimana kerja sistem melalui kondisi (state) dan kejadian yang menyebabkan kondisi berubah.
STD juga menggambarkan aksi yang dilakukan karena kejadian tertentu.
PERTEMUAN 8
User Interface Design (UID)
Pengantar
Tujuan dari UID adalah merancang interface yang efektif untuk sistem perangkat lunak. Efektif artinya siap digunakan, dan hasilnya sesuai dg kebutuhan. Kebutuhan disini adalah kebutuhan penggunanya.
Pengguna sering menilai sistem dari interface, bukan dari fungsinya melainkan dari user interfacenya. Jika desain user interfacenya yang buruk, maka itu sering jadi alasan untuk tidak menggunakan software. Selain itu interface yang buruk sebabkan pengguna membuat kesalahan fatal.
Saat ini interface yang banyak digunakan dalam software adalah GUI (Graphical User Interface). GUI memberikan keuntungan seperti:
gampang dipelajari oleh pengguna yang pengalaman dalam menggunakan komputer cukup minim
berpindah dari satu layar ke layar yang lain tanpa kehilangan informasi dimungkinkan
akses penuh pada layar dengan segera untuk beberapa macam tugas/keperluan
Beberapa karakteristik dari GUI dan penjelasannya dapat dilihat pada Tabel 1.
Tabel 1: Karakteristik dari GUI
PERTEMUAN 9
REAL TIME DATABASE
MANAJEMEN DATA TERDISTRIBUSI
Pendahuluan
Konsep DDTMS (Distributed Data Transaction Managemen system) : Sekumpulan modul-modul software dimana pengaturan semua distribusi data (file dan database) dan menggabungkan beberapa transaksi yang berhubungan dan tersebar pada banyak komputer.
Tantangan Disain dan implementasi dari DDTMS :
Bagaimana cara mengakses datasecara langsung dlm jaringan.
Bagaimana cara mengupdate dan menangani data di jaringan.
Bagaimana cara menjaga kebersamaan dan ketetapan data.
Bagaimana menyusun transaksi dan meningkatkan respon.
SISTEM SENTRALISASI
Data Base Management system (DBMS) adalah : Paket software yang menangani akses data dan memanipulasi database oleh banyak pengguna.
Secara spesifik DBMS mengelola:
Menangani representasi logis dari data.
Menangani akses kedata oleh banyak pengguna.
Menerapkan pengamanan dan kontrol database.
PERTEMUAN 10
Rekayasa Software Client/Server
Struktur sistem C/S
Dalam struktur C/S komputer yang berada di atas komputer lain disebut server dan komputer-komputer pada level di bawahnya disebut client. Client meminta (request) layanan yang disediakan oleh server. Pada kenyataannya ada beberapa jenis implementasi struktur C/S:
File server : client minta record tertentu dari file, dan server mengirimkan record-record ini ke client lewat jaringan
Database server : client mengirim SQL (structured Query Language) ke server lewat jaringan. Server melakukan proses, mendapatkan informasi, dan kemudian mengirimkan hasi ke client
Transaction server: Client kirim request yang meminta remote procedure di server. Remote procedure ini berupa satu set SQL statement (atau bisa juga suatu fungsi). Transaksi terjadi saat hasil permintaan dikerjakan oleh remote procedure dan kemudian hasilnya dikirimkan kembali ke client.
Groupware server : server menyediakan berbagai aplikasi yang memungkinkan komunikasi antar client (dan pengguna yang memakainya) dengan menggunakan teks, image, bulletin boards, video, dan cara lain.
Gambar 1 memberi gambaran server dan client yang terhubung dalam suatu jaringan dan beberapa layanan yang disediakan server berdasar jenis implementasi struktur C/S di atas.
PERTEMUAN 11
1.
PERTEMUAN 12
1.
PERTEMUAN 13
1.
PERTEMUAN 14
1.