Rekayasa Piranti Lunak (SL201)

Dari Widuri
Lompat ke: navigasi, cari

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.

READ MORE


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.

  1. Fase-fase dalam Waterfall Model menurut referensi Pressman:

READ MORE


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.

READ MORE


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.

READ MORE


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.

READ MORE



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:

  1. gampang dipelajari oleh pengguna yang pengalaman dalam menggunakan komputer cukup minim

  2. berpindah dari satu layar ke layar yang lain tanpa kehilangan informasi dimungkinkan

  3. 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 :

  1. Bagaimana cara mengakses datasecara langsung dlm jaringan.

  2. Bagaimana cara mengupdate dan menangani data di jaringan.

  3. Bagaimana cara menjaga kebersamaan dan ketetapan data.

  4. 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:

  1. Menangani representasi logis dari data.

  2. Menangani akses kedata oleh banyak pengguna.

  3. 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:

  1. File server : client minta record tertentu dari file, dan server mengirimkan record-record ini ke client lewat jaringan

  2. Database server : client mengirim SQL (structured Query Language) ke server lewat jaringan. Server melakukan proses, mendapatkan informasi, dan kemudian mengirimkan hasi ke client

  3. 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.

  4. 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

Rekayasa Web

Pengantar

Rekayasa web adalah proses yang diunakan untuk menciptakan aplikasi web yang berkualitas tinggi. Rekayasa web mengadaptasi rekayasa perangkat lunak dalam hal konsep dasar yang menekankan pada aktifitas teknis dan manajemen. Namun demikian adaptasi tidak secara utuh, tapi dengan perubahan dan penyesuaian.
Rekayasa web gabungan antara web publishing (suatu konsep yang berasal dari printed publishing) dan aktifitas rekayasa perangkat lunak. Dikatakan demikian karena desain sebuah aplikasi web menekankan pada desain grafis, desain informasi, teori hypertext, desain sistem dan pemrograman.

Ciri dan sifat WebApp (Web Application)
Aplikasi web berbeda dari software lain karena hal-hal dibawah ini:

  1. Network intensive. Sifat dasar dari WebApp (aplikasi web) adalah aplikasi ini ditujukan untuk berada di jaringan dan memenuhi kebutuhan komunitas yang berbeda.

  2. Content-Driven. Sebagian besar fungsi dari WebApp adalah untuk menyajikan informasi dalam bentuk teks, grafik, audio dan video ke end user.

  3. Continuous evolution. Selalu berkembang secara terus menerus.

  4. Document-oriented. Halaman-halaman situs yang statis akan tetap ada sekalipun sudah ada pemrograman web dengan java atau yang lain.


Selain itu WebApp memiliki karakteristik seperti berikut ini :

  1. Immediacy. Diperlukan segera untuk memenuhi ditayangkan, dipasarkan dalam waktu singkat.

  2. Security. Untuk melindungi isi yang sensitif dan menyediakan pengiriman data yang aman, keamanan suatu WebApp harus diterapkan pada seluruh infrastruktur yang mendukung WebApp dan termasuk dalam WebApp sendiri.

  3. Aesthetics. Daya tarik utama WebApp adalah tampilan dan keindahan. Jika WebApp digunakan untuk memasarkan suatu produk maka sisi aestetika harus diperhatikan sebagaimana sisi teknis.

    Faktor-faktor yang menentukan kualitas suatu web digambarkan pada gambar 1.


Gambar 1 :Faktor kualitas aplikasi web


PERTEMUAN 12

REVIEW RANCANGAN DETIL

  1. Internal walkthrough

  2. Structured walkthrough

  3. Inspeksi rancangan


KLASIFIKASI BAHASA

  1. Generasi Bahasa Program

  2. - generasi 1


    Kriteria ⇒


    Contoh ⇒


    - generasi 2


    Kriteria ⇒


    Contoh ⇒


    - generasi 3


    Kriteria ⇒


    Contoh ⇒


    - generasi 4


    Kriteria ⇒


    Contoh ⇒


  3. Karakteristik Bahasa Program

  4. - Segi Psikologi


    - Segi Teknis


  5. Evaluasi pemilihan Bahasa program


  6. Struktur Program


- Tipe data

TIPE DATA

¨ Pada dasarnya tipe data pada bahasa C ada 5, dan ditambah 4 tipe modifier yaitu :



PERTEMUAN 13

ANALISA DAN DESAIN (Lanjutan)

OUTLINE SYSTEM DESIGN( OSD)

Sasaran yang ingin dibahas :

  1. Membedakan antara “cara dan “apa” yang harus dikerjakan.

  2. Apa yang dimaksud dengan OSD.

Isi OSD :

B.1. Taxonomy perangkat keras

B.2. Alat taxonomy.

B.3. Taxonomy perangkat lunak.

Ad.B.1. → sebuah katalog komputer mengenai jenis, perangkat tambahan berikut perangkat lunaknya.

Ad.B.2. → sebuah katalog mengenai lingkungan pengembangan yang dibutuhkan untuk mengembangkan perangkat lunak yang tepat (programming support environment/PSE).

Ad.B.3. → sebuah katalog mengenai persyaratan kebutuhan yang tercerminpada spesifikasi fungsional.


PERTEMUAN 14

SOFTWARE MANAGEMENT (Lanjutan)


USAHA ESTIMASI DAN SKALA WAKTU.Sasaran yang ingin dicapai :
- Kualitas ekonomis keberhasilan penyelesaiaan tugas SE.

- Menyusun target yang mungkin harus dicapai.

- Mengurangi kesalahan yang terjadi pada saat proses pembuatan SE.

- Membuat perencanaan kegiatan yang lebih baik.

DEFINISI
Tahap definisi estimasi meliputi 3 bagian siklus hidup :

  1. Tahap spesifikasi dan feasibility
    - Spesifikasi fungsional dan outline system design (OSD).
    - Disebut sebagai ‘tahap 1’ siklus hidup.

  2. Aktivitas pengembangan software.
    - Termasuk validitas dan sertifikasi software.
    - Disebut sebagai ‘tahap 2’ siklus hidup

  3. Tahap perawatan software.
    - Dimulai sejak sistem dioperasikan dan berakhir saat sistem dicabut dari pengoperasian.
    - Disebut sebagai ‘tahap 3’ siklus hidup

Contributors

Admin, Yessi Frecilia