1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

31
19 Agustus 2015 Konsep Dasar Rekayasa Perangkat Lunak

description

sdadadas

Transcript of 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Page 1: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

19 Agustus 2015

Konsep Dasar Rekayasa Perangkat Lunak

Page 2: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Sekumpulan baris kode yang ditulis menurut

aturan bahasa pemrograman tertentu, disimpan

dan dijalankan pada arsitektur perangkat keras

untuk menjalankan fungsi fungsi tertentu.‐

Apa itu Perangkat Lunak?

Page 3: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

• Instruksi• Atau program komputer yang ketika dieksekusi akan

memberi fungsi dan hasil yang diinginkan.

• Struktur data• Yang memungkinkan program memanipulasi informasi

• Dokumen• Yang menggambarkan operasi dan penggunaan program.

Apa itu Perangkat Lunak?

Page 4: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Sistem Operasi

Sistem Tertanam

Perangkat Lunak Aplikasi: Bisnis, ilmiah, lini produk

Aplikasi Web

Aplikasi Mobile

Utility

Kecerdasan Buatan

Jenis Perangkat Lunak

Page 5: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

PL dikembangkan bukan diproduksi: Kualitas PL tidak terlihat secara fisik, harga dapat ditentukan konsumen

PL tidak mengalami ke ausan: PL tidak dipengaruhi ‐lingkungan: debu, cuaca, goncangan; PL tdk memilki suku cadang

PL dapat digunakan kembali (reusable): Komponen PL dapat digunakan berulang ulang meskipun dengan ‐platform berbeda

Karakteristik Perangkat Lunak

Page 6: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Perangkat lunak telah diselesaikan dan diserahkan (delivered) tetapi tidak pernah digunakan (47%).

Pemakai (user) sudah membayar untuk perangkat lunak tetapi tidak pernah jadi dan diserahkan (29,7%).

Perangkat lunak digunakan sebagaimana mestinya (2%).

Masalah dalam Perangkat Lunak

Page 7: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Bagaimana memenuhi kebutuhan pelanggan terhadap perangkat lunak?

Bagaimana membuat harga PL lebih terjangkau?

Bagaimana merancangan sebuah PL yang baik?

Bagaimana dapat membuat PL secara cepat sesuai jadwal?

Bagaimana membuat perangkat lunak yang dpt diandalkan?

Bagaimana perangkat lunak tetap dapat dirawat/dipelihara?

Tantangan Perangkat Lunak

Page 8: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Ada banyak buku membahas mengenai perangkat lunak, bukankah itu cukup untuk memandu developer membuat perangkat lunak?

Apakah disadari keberadaannya, apa dpt dijangkau, apakah isi tsb cukup lengkap mengatasi persoalan yg dihadapi, apa isi buku up to date dengan permasalahan?

Mitos Perangkat Lunak: Manager

Page 9: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Ketika jadwal deadline sudah dekat menambah jumlah developer akan mempercepat waktu pengerjaan perangkat lunak?

Menambahkan orang ke dalam proyek perangkat lunak tidak serta merta mempercepat waktu penyelesaian ‐proyek karena pendatang baru harus beradaptasi dan perlu diajari sehingga memerlukan waktu tambahan

Mitos Perangkat Lunak: Manager

Page 10: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Menyatakan tujuan umum cukup untuk memulai membuat program?

Pernyataan tujuan harus bersifat definitive tdk boleh ambigu diperlukan untuk memulai membuat program

Mitos Perangkat Lunak: Pelanggan

Page 11: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Kebutuhan perangkat lunak terus berubah dan itu merupakan hal yang mudah karena perangkat lunak bersifat fleksibel?

Perangkat lunak memang bisa berubah setiap saat akan tetapi hal tersebut membutuhkan biaya lebih besar, ketika perubahan baru didefinisikan saat program sudah memasuki tahap konstruksi ketimbang pada tahap perancangan

Mitos Perangkat Lunak: Pelanggan

Page 12: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Begitu selesai menuliskan kode program berarti program sudah selesai?

Kenyataan 60 80% proses perangkat lunak ‐dikerjakan ketika produk sudah diserahkan ke pelanggan

Mitos Perangkat Lunak: Developer

Page 13: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Sampai program selesai dibuat, tidak ada cara untuk menjalankanya/mengujinya?

Pengujian sudah dapat dilakukan sejak awal program dibuat maupun saat program dibuat

Mitos Perangkat Lunak: Developer

Page 14: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Satu satunya goal adalah membuat ‐program aplikasi berjalan?

Program/aplikasi bukan satu satunya ‐tujuan. Di samping itu terdapat model, perencanaan, dokumentasi yang terkadang justru lebih penting

Mitos Perangkat Lunak: Developer

Page 15: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Ilmu yang mempelajari tehnik

pembuatan software yang baik

dengan pendekatan tehnik

(Engineering approach)

Rekayasa Perangkat Lunak?

Page 16: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Metodologi / prinsip prinsip untuk ‐mengembangkan perangkat lunak

yang handal, efisien, tepat waktu

sesuai kebutuhan pelanggan

Rekayasa Perangkat Lunak?

Page 17: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

1. Fase Definisi (What)

Merupakan fase indentifikasi informasi yang akan diproses.

2. Fase Pengembangan (How)

Berfokus pada bagaimana pengembangan perangkat lunak dilakukan ?

3. Fase Pemeliharaan (Change).

Berhubungan dengan koreksi kesalahan dan penyesuaian yang dibutuhkan.

Empat tipe perubahan dalam fase pemeliharaan adalah Koreksi, Adaptasi, Perkembangan dan Pencegahan

Fase dalam Rekayasa Perangkat Lunak

Page 18: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

1. PL telah menyatu dengan kehidupan sehari hari, banyak ‐suara yang harus didengar, beda pelanggan berbeda kebutuhan, sehingga memahami masalah harus didahulukan sebelum solusi dibuat.

2. Kebutuhan PL telah berkembang pesat ke dalam bentuk‐bentuk yang lebih rumit, lebih canggih, sehingga kompleksitas ini menuntut perancangan sebagai kegiatan yang penting dilakukan

Langkah-langkah dalam Rekayasa Perangkat Lunak?

Page 19: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

3. Individu mapun organisasi organisasi semakin ‐mengandalkan PL untuk menunjang keputusan taktis maupun strategis, PL yang gagal berdampak buruk terhadap individu atau organisasi tersebut oleh karena itu PL harus dapat diandalkan setiap saat.

4. Seiring dengan kemajuan teknologi, bertambahnya pengguna maka tuntutan untuk beradaptasi dan peningkatan mutu bertambah pula, maka PL harus bersifat dapat dirawat/diperbarui.

Langkah-langkah dalam Rekayasa Perangkat Lunak?

Page 20: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

1. Pahami Permasalahannya: siapa yang terkait dgn

masalah, fitur apa yg dibutuhkan, dapatkah masalah

dianalisis dan dikategorikan.

2. Rancang Solusinya: Pernahkan Anda atau anggota tim

menghadapi masalah yang serupa, dapatkah model

perancangan diajukan.

Solusi Praktis

Page 21: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

3. Laksanakan Rancangannya: Pernahkah kode program

yang dibuat/algoritma diulas, apakah kode program

dapat dilacak melalui rancangannya.

4. Periksa Hasilnya: Mungkinkah untuk menguji solusi

yang diajukan, apakah solusi sudah menghasilkan

informasi yang dinginkan pelanggan.

Solusi Praktis

Page 22: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

3. Laksanakan Rancangannya: Pernahkah kode program

yang dibuat/algoritma telah diulas? Apakah kode

program dapat dilacakmelalui rancangannya?

4. Periksa Hasilnya: Mungkinkah untuk menguji solusi

yang diajukan? Apakah solusi sudahmenghasilkan

informasi yang dinginkan pelanggan?

Solusi Praktis

Page 23: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Masalahnya adalah kompleksitas Banyak dibutuhkan sumber-sumber, tetapi kuncinya adalah

ukuran (size) : UNIX berisi 4 juta lines of code. Windows 2000 berisi 108 lines of code yang dikerjakan oleh Tim dengan

anggota 1400 orang.

Soft. Engineering adalah bagaimana mengelola kompleksitas tersebut dan dapat bekerja dalam

satu Team Work

Mengapa perlu RPL?

Page 24: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Bagaimana bekerja dalam suatu proyek skala besar, kompleks & melibatkan banyak orang ?

1. Spesifikasi Kebutuhan (requirement specification)

2. Analisis (analysis)

3. Perancangan (design)

4. Implementasi & Pengujian (implementastion & testing)

5. Perawatan & Up-grade (maintenance & upgrade)

Tahapan Pengembangan RPL

Page 25: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Evolusi Perangkat Lunak

Page 26: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Tahun-tahun Pertama• Batch Orientation

Suatu orientasi di mana proses dilakukan setelah data dikumpulkan dalam satuan waktu tertentu, atau proses dilakukan setelah data terkumpul, lawan dari batch adalah ONLINE atau Interactive Process. Keuntungan dari Interactive adalah mendapatkan data yang selalu up to date.

• Limited distribution

Suatu penyebaran software yang terbatas pada perusahaan-perusahaan tertentu.

• Custom software

Software yang dikembangkan berdasarkan keinginan perusahaan-perusahaan tertentu.

Page 27: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Era KeduaMulti user

Suatu sistem di mana satu komputer digunakan oleh beberapa user pada saat yang sama.

Real Time

Suatu sistem yang dapat mengumpulkan, menganalisa dan mentransformasikan data dari berbagai sumber, mengontrol proses dan menghasilkan output dalam mili second.

Page 28: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Era KeduaDatabase

Perkembangan yang pesat dari alat penyimpan data yang OnLine menyebabkan muncul generasi pertama DBMS (Database Management System).

Product Software

Adalah software yang dikembangkan untuk dijual kepada masyarakat luas.

Page 29: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Era Ketiga• Distributed system

Suatu sistem yang tidak hanya dipusatkan pada komputer induk (Host computer), daerah atau bidang lainnya yang juga memiliki komputer yang ukurannya lebih kecil dari komputer induk. Lawan dari distributed system adalah Centralized System.

• Embedded Intelegence

Suatu product yang diberi tambahan “Intellegence” dan biasanya ditambahkan mikroprocessor yang mutakhir. Contohnya adalah automobil, robot, peralatan diagnostic serum darah.

Page 30: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Era Ketiga• Low Cost Hardware

Harga hardware yang semakin rendah, ini dimungkinkan karena munculnya Personal Computer.

• Consumer Impact

Adanya perkembangan komputer yang murah menyebabkan banyaknya software yang dikembangkan, software ini memberi dampak yang besar terhadap masyarakat.

Page 31: 1 - Konsep Dasar Rekayasa Perangkat Lunak (1)

Era Keempat• Expert system

Suatu penerapan A.I. (Artificial Intellegence) pada bidang-bidang tertentu, misalnya bidang kedokteran, komunikasi, dll.

• AI Machine

Suatu mesin yang dapat meniru kerja dari sebagian otak manusia. Misalnya mesin robot, komputer catur.

• Parallel Architecture

Arsitektur komputer yang memungkinkan proses kerja LAN paralel, yang dimungkinkan adanya prosesor berbeda dalam satu komputer