rekayasa perangkat lunak

advertisement
REKAYASA
PERANGKAT
LUNAK
Dosen :
Rinci Kembang Hapsari, S.Si,
M.Kom
 Penilaian
Kelas A :
Tugas 1 : 40%
(dikumpulkan mg ke 5)
 Quiz 1 : 30%
 UTS : 30%
------------------------------------- Tugas 2: 40%
 Quiz : 30%
 UAS : 30%

 Penilaian
Kelas B :
Tugas 1 : 50%
(dikumpulkan mg ke 5)
 Quiz 1 : 20%
 UTS : 30%
------------------------------------ Tugas 2: 50%
 Quiz 2: 20%
 UAS : 30%

Introduction to Software
Engineering


Evolusi Software
Tentang Software







Karakteristik software
Komponen Software
Aplikasi Software
Sejarah Software
Mengapa Software Engineering?
Apa yang dimaksud Software Engineering?
Siapa yang melakukan Softwrae Engineering?
Definisi Software (PL)
 PL
adalah sekelompok item atau objek
yang membentuk “konfigurasi” dimana di
dalamnya termasuk :
• instruksi/program
• dokumen
• struktur data ...
 PL
adalah Program-program komputer
beserta dokumentasinya, seperti
requirement, model desain dan user
manual.
 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
Evolution of Software (1)
 Kelompok

pertama, tahun 1950an, ciri-ciri :
Orientasi ke batch processing,
 proses
bertumpuk dimana pemrosesan
dilakukan jika sejumlah data telah dikumpulkan
dalam waktu yang telah ditentukan

Limited distributed,
 pemrosesan
data kebanyakan masih dilakukan
secara terpusat.

Custom software,
 perangkat
lunak yang dibuat untuk
dikembangkan dan dijual kepada satu USER
atau lebih
Evolution of Software (2)

Kelompok kedua, tahun 1960an, ciri-ciri :

Multi user,


Real Time


Suatu sistem yang dapat mengumpulkan,
menganalisa dan mentransformasikan data dari
berbagai sumber, mengontrol proses dan
menghasilkan output dalam mili second.
Database


Suatu sistem di mana satu program digunakan
oleh beberapa user pada saat yang sama
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.
Evolution of Software (3)

Kelompok ketiga, tahun 1980an, ciri-ciri :



Distributed system, komputer yang digunakan
dalam memproses data banyak dan mempunyai
fungsi masing-masing dan dapat saling
berkomunikasi
Biaya hardware murah dengan ditandai
perkembangan komputer micro
Kelompok ke 4, tahun 1990an, ciri-ciri:



Sistem pakar (Expert system)
Mesin Kecerdasan Buatan (Artificial Intellegence
Machine)
Komputer paralel
Karakteristik Software
 Software
adalah komponen sistem yang
logic (bukan fisik seperti elemen
bangunan atau komputer)
 Software dikembangkan bukan dibuat
oleh pabrik tertentu dan tidak masal
karena memerlukan perancangan yang
baik
 Software tidak akan pernah usang karena
selalu diperbaharui
 Kebanyakan software dibangun
berdasarkan kebutuhan.
Produk Software
 Produk
software dibuat untuk pelanggan
tertentu ataupun untuk pasar umum
 Produk software ada dua jenis :


Generik – dibuat untuk dijual ke suatu
kumpulan pengguna yang berbeda atau
pasar umum.
Bespoke (custom) – dibuat untuk suatu
pengguna tunggal sesuai dengan
spesifikasi yang diinginkan pengguna.
Aplikasi Software (1)

System Software




Real-time Software


Kumpulan dari beberapa progran yang dibuat untuk
memberikan service terhadap program lainnya pada
setiap level
Kumpulan program yang ditulis untuk menunjang
pemakai atau pembuatan suatu program
Contohnya : compiler, operating system
Program yang dapat digunakan untuk mengukur,
menganalisa, mengontrol pemasukan data dari
lingkungan luar sampai menghasilkan laporan yang
sesuai dengan keinginan.
Business Software

Program yang dapat mengakses, menganalisa dan
memproses informasi bisnis.
Aplikasi Software (2)

Engineering and Scientific Software



Software yang menggunakan algoritma
“number crunching” untuk membedakan
science dan aplikasi
Sistem simulasi, computer –aided design
Embedded Software


Software terletak pada read only memory dan
digunakan untuk mengontrol produk dan sistem
yang akan dikirimkan untuk konsumen dan
industrial markets
Software yang digunakan untuk mengontrol
proses pabrik dan disimpan dalam ROM
komputer
Aplikasi Software (3)
 Personal

Software yang digunakan dalam aplikasi
komputer mikro
 Artificial


Computer Software
Intellegence Software
Software yang digunakan dalam bidang
kecerdasan buatan dan metodenya
digunakan untuk memecahkan masalah
yang kompleks
Contohnya : expert system, pengenalan
pola, games
Aplikasi Software (4)
 Internet


Software
Program yang mensupport pengaksesan
internet
Contohnya : search engine, browser, ecommerce software, dll
 Software


Tools and CASE environment
Tools dan program yang dapat membantu
pembuatan aplikasi software dan sistem.
Contohnya : tset tools dan version control
tools.
Mengapa perlu SE? (1)
 Untuk
mendapatkan s/w yang benar dan
untuk membuat s/w menjadi benar
 s/w adalah sesuatu yang kompleks dalam
hal :




Domain Problem : Bussiness Rule
Data size : Digital or not digita;
Solution : Algorithm
Place or sites
Mengapa perlu SE? (2)
 S/w


harus benar (correct)
Berdasarkan Business Rule
Sejalan dengan segala sesuatu dan semua
pihak yang terkait
 Pembuatan
s/w harus dikelola dengan
baik untuk menjamin kebenarannya
(correctness)
Apa itu Software
Engineering (SE)
 Adalah
teknologi yang harus digunakan
oleh setiap orang yang akan
membangun software, dengan melalui
serangkaian proses menggunakan
sekumpulan metode dan alat bantu
(Tools).
<Pressman 1997>
Arti Software Engineering :

Ilmu yang mempelajari teknik pembuatan
software yang baik dengan pendekatan
teknis (Engineering approach)

Suatu disiplin rekayasa yang berkonsentrasi
terhadap seluruh aspek produksi perangkat
lunak.

Mengadopsi pendekatan yang sistematis dan
terorganisir dalam aktivitasnya dan
menggunakan tool dan teknik yang sesuai
yang ditentukan berdasarkan masalah yang
akan dipecahkan, kendala pengembangan
dan sumber daya yang tersedia
Krisis Software
 Adalah
sekumpulan masalah yang
ditemukan dalam pengembangan software
computer.
 Masalahnya
tidak hanya terbatas pada
software yang tidak berfungsi sebagaimana
mestinya, tetapi krisis software ini terdiri dari
masalah yang berhubungan dengan :



Bagaimana mengembangkan software
Bagaimana memelihara software yang ada,
yang berkembang dalam jumlah besar
Bagaimana mengimbangi permintaan
software yang makin besar.
Masalah Software
 Estimasi
jadwal dan biaya yang seringkali
tidak tepat
 Produktivitas
orang-orang
software(programmer) yang tidak dapat
mengimbangi permintaan kebutuhan
software
 Kualitas
software yang kurang baik.
Penyebab Masalah Software

Karakteristik software itu sendiri



Karakteristik software adalah software yang bersifat
logika dibandingkan fisik, oleh karena itu mengukur
software harus merupakan suatu kesatuan, tidak seperti
hardware.
Software yang bersifat tidak aus ini menyebabkan
kesalahan yang terjadi pada software. Umumnya
terjadi pada tahap pengembangan.
Manajer tingkat menengah dan tingkat atas yang
tidak mempunyai latar belakang software, seringkali
diberi tanggung jawab untuk mengembangkan
software.


Padahal tidak semua manajer itu dapat me-manage
semua proyek. Praktisnya : software programmer atau
software engineering mendapatkan latihan formal yang
sedikit dalam hal tehnik baru pengembangan software.
Kegagalan mereka yang bertanggung jawab dalam
pengembangan software
Mitos Software


Banyak permasalahan pada sebuah software
datang dari asumsi-asumsi yang kebenarannya
tidak dapat dipertanggungjawabkan
3 kelompok yang terkait dalam pengembangan
perangkat lunak

Management,


Customer (Pemakai),


Manajer pengembangan PL harus : mengatur
anggaran, menjaga jadwal dari kelambatan,
meningkatkan kualitas.
Yang menginginkan PL dikembangkan, diantaranya
rekan kerja, bagian lainnya (pemasaran, personalia,
bag. Pembukuan, ll)
Practitioner (Pengembang)

Yang mengembangkan PL, diantaranya Programmer
Mitos Dipihak Pemakai (1)

Mitos :


Tujuan sistem secara umum cukup untuk
membuat PL, Rincian belakangan saja saat
program dikembangkan
Kenyataan :

Rincian Kebutuhan sangat penting :
Fungsi
 Performance
 Antar-muka
 Batasan rancangan
 Kriteria validasi, dll


Hanya bisa diperoleh dengan komunikasi yang
intensif
Mitos Dipihak Pemakai (2)
 Mitos
:

Perangkat lunak bersifat flekibel

Perubahan kebutuhan mudah
diakomodasi oleh pengambang PL
 Kenyataan

:
Dampak sangat bergantung pada tahap
mana perubahan terjadi
Mitos Dipihak Pengembang

Mitos :


Program selesai, Pekerjaan selesai
Kenyataan :


Mitos :


Kualitas hanya bisa diketahui setelah program
berjalan (running)
Kenyataan :


50%-70% usaha dihabiskan setelah program
diserahkan ke user untuk pertama kalinya
Kualitas dapat dijaga sejak dikembangkan
Mitos:


Yang diserahkan ke user adalah program
Kenyataan:

Yang diserahkan adalah konfigurasi perangkat lunak
( program + dokumentasi)
Problem dalam Pengembangan
Software



Tingginya harga Software
Sangat bervariasi dalam penerapannya
Yang diinginkan adalah untuk meningkatkan
produktifitas.
 Semula
 Bisa
Program Sukses Bila :
dieksekusi
 Memberi
 Sekarang
 Bisa
jawaban yang diminta.
:
dieksekusi dengan cepat
 Memberi jawaban yang diminta
 Bisa dikembangkan
Why Software Engineering?(1)

Objectives

Mengidentifikasi masalah baru dan solusi dari
produk software

Mempelajari sistematik metode terbaru, prinsip,
pendekatan untuk sistem analisis, design,
implementasi, testing, maintenance

Menyediakan teknik kontrol terbaru, manage, dan
monitoring proses software

Membangun tools software terbari dan
environment untuk mendukung software
engineering
Why Software Engineering?(2)

Major Goals :

Untuk meningkatkan produktivitas dan kualitas

Untuk meningkatkan efektivitas dari kontrol
schedule software dan planning

Untuk mengurangi cost dan development proses

Untuk memenuhi keinginan dan requirements dari
customer

Untuk menangani konduksi dari proses software
engineering

Untuk mengingkatkan practice software
engineering

Untuk memberikan dukungan pada engineering
terhadap aktifitas yang sistematik dan lebih efisien
Download