Anda di halaman 1dari 38

REKAYASA PERANGKAT

LUNAK

Dadang Hamdani, M.Kom.


Fakultas Ilmu Komputer UNIKU

1
Merupakan program-program komputer dan dokumentasi
yang berkaitan, Produk perangkat lunak dibuat untuk
pelanggan tertentu ataupun untuk pasar umum.
Produk perangkat lunak tersebut:
* Generik – dibuat untuk dijual ke suatu kumpulan pengguna
yang berbeda
* Bespoke (custom) – dibuat untuk suatu pengguna tunggal
sesuai dengan spesifikasinya.

Perangkat Lunak

2
Rekayasa Perangkat Lunak

*adalah suatu disiplin rekayasa yang berkonsentrasi


terhadap seluruh aspek produksi perangkat lunak.
*mengadopsi pendekatan yang sistematis dan
terorganisir terhadap pekerjaannya dan
menggunakan tool yang sesuai serta teknik yang
ditentukan berdasarkan masalah yang akan
dipecahkan, kendala pengembangan dan sumber
daya yang tersedia

3
Sekumpulan aktifitas yang memiliki tujuan untuk
pengembangan ataupun evolusi perangkat lunak.
Aktivitas umum dalam semua proses perangkat lunak adalah:
*Spesifikasi – apa yang harus dilakukan oleh perangkat lunak
dan batasan/kendala pengembangannya
*Pengembangan – proses memproduksi sistem perangkat
lunak
*Validasi – pengujian perangkat lunak terhadap keinginan
pengguna
*Evolusi – perubahan perangkat lunak berdasarkan
perubahan keinginan.

Proses Perangkat Lunak


4
Model Proses Perangkat Lunak
Suatu representasi proses perangkat lunak yang
disederhanakan, dipresentasikan dari perspektif
khusus
Contoh perspektif proses:
*Perspektif Alur-kerja (workflow) - barisan
kegiatan
*Perspektif Alur Data (Data flow) – alur informasi
*Perspektif Peran/Aksi – siapa, melakukan apa

5
Model proses Generik:

*Waterfall (Air terjun)


*Pengembangan secara evolusi
*Transformasi formal
*Model Spiral
*Integrasi dari komponen yang reusable

6
Biaya rekayasa perangkat lunak
*Sekitar 60% untuk biaya pengembangan, 40%
biaya pengujian. Untuk perangkat lunak
berbasis pengguna (custom), biaya evolusi
biasanya melebihi biaya pengembangan.
*Biaya beragam tergantung pada tipe sistem
yang akan dikembangkan dan kebutuhan
sistem seperti unjuk kerja dan kehandalan
sistem,
*Distribusi biaya bergantung pada model
pengembangan yang digunakan.

7
Metode Rekayasa Perangkat Lunak
Pendekatan terstruktur pengembangan PL
termasuk model sistem, notasi, perancangan dan
petunjuk pemrosesan,
Deskripsi Model: deskripsi pemodelan dengan
grafik,
Aturan: Batasan yang digunakan pada model
sistem
Rekomendasi: nasihat bentuk perancangan yang
baik,
Petunjuk proses: Aktivitas yang harus diikuti

8
Atribut Perangkat Lunak yang baik:

PL seharusnya memberikan pengguna kebutuhan


fungsionalitas dan unjuk kerja yang dapat di
rawat, berguna,
*Maintanability (Dapat Dirawat), yaitu PL harus
dapat memenuhi perubahan kebutuhan
*Dependability, yaitu PL harus dapat dipercaya
*Efisiensi, yaitu PL harus efisien dalam
penggunaan resource
*Usability, yaitu PL harus dapat digunakan sesuai
dengan yang direncanakan
9
*Suatu proses model adalah suatu representasi
abstrak suatu model. Proses model menampilkan
suatu deskripsi suatu proses dari beberapa
perspektif tertentu,
* Proses PL merupakan aktifitas yang saling
terkait (koheren) untuk menspesifikasikan,
merancang, implementasi dan pengujian sistem
perangkat lunak.

Proses Perangkat Lunak


10
Model Proses PL yang Generic
*Model Air terjun (Water fall)
Memisahkan dan membedakan antara spesifikasi dan
pengembangan
*Pengembangan yang berevolusi
Spesifikasi dan pengembangan saling bergantian
*Pengembangan sistem Formal
Menggunakan suatu model sistem matematika yang
ditransformasikan ke implementasi,
*Pengembangan berbasis Re-use (penggunaan ulang)
Sistem dibangun dari komponen yang sudah ada.

11
Requirements
definition

System and
software design

Implementation
and unit testing

Integr ation and
system testing

Operation and
maintenance

Model Air Terjun


(Water Fall)
12
Fase Model Air Terjun
*Analisis Kebutuhan dan pendefinisiannya
*Perancangan sistem dan Perangkat Lunak
*Implementasi dan unit testing
*Integrasi dan pengujian sistem
*Pengoperasian dan perawatan
*Proses kembali ke state sebelumnya untuk
mengantisipasi perubahan setelah proses menuju
ke suatu state di bawahnya adalah sangat sulit.

13
Masalah pada Model Air Terjun:
*Partisi projek ke stages yang berbeda tidak
fleksibel.
*Hal ini mengakibatkan sulitnya untuk merespon
perubahan kebutuhan pengguna
*Oleh sebab itu model ini hanya cocok digunakan
apabila kebutuhan pengguna sudah dimengerti
dengan baik,

14
Komunikasi Perencanaan Pemodelan Penyerahan
Permulaan proyek Membuat Analisis
Konstruksi sistem/PL
Teknik untuk Penulisan kode2
prakiraan2 Perancangan
mendapatkan penjadwalan,
program ke
Pengujian
spesifikasi pelacakan pelanggan/p
kebutuhan
pengguna engguna
Pengiriman
dukungan terhadap
pengguna
Umpan balik

15
Pengembangan yang berevolusi
(Evolutionary Development)
*Pengembangan yang berdasarkan penyidikan
Tujuannya untuk mengaktifkan pengguna dan
memperolah model final berasal dari initial
spesifikasi awal. Seharusnya diawali dengan
kebutuhan yang sudah dimengerti,
*Throw-away prototyping
Tujuannya adalah untuk memahami kebutuhan
sistem. Biasanya diawali dengan pemahaman
kebutuhan yang minim.

16
Concurrent
activities

Initial
Specification
version

Outline Intermediate
Development
description versions

Final
Validation
version

17
Permasalahan dalam model pengembangan yang berevolusi:
*Kekurangan kejelasan proses
*Model sistem biasanya tidak terstruktur
*Membutuhkan kemampuan khusus (mis.: bahasa pemrograman
untuk rapid prototyping).
 
Pemakaian model pengembangan yang berevolusi
*Untuk sistem interaktif yang kecil atau menengah
*Untuk salah satu bagian dari sistem yang besar (mis. User
Interface)
*Untuk sistem yang digunakan tidak terlalu lama (short lifetime).

18
Pendekatan pengembangan
sistem Formal
*Berbasiskan pada transformasi spesifikasi secara
matematik melalui representasi yang berbeda
untuk suatu program yang dapat dieksekusi,
*Trasformasi menyatakan spesifikasi program
*Menggunakan pendekatan ‘Cleanroom’ untuk
pengembangan PL.

Requirements Formal Formal Integration and


definition specification transformation system testing

19
Requirements Component Requirements System design
specification analysis modification with reuse

Development System
and integration validation

Pengembangan menggunakan konsep


Re-use (Penggunaan Ulang)

20
Model Pengembangan Incremental
*Pengembangan sistem berdasarkan model sistem yang
dipecah sehingga model pengembangannya secara
increament/bertahap
*Kebutuhan pengguna diprioritaskan dan prioritas tertinggi
dimasukkan dalam awal increment
*Setelah pengembangan suatu increment dimulai, kebutuhan
dibekukan dulu hingga increment berikutnya dimulai
Define outline Assign requirements Design system
 requirements       to increments architecture

Develop system Valida te Integrate Valida te


increment increment increment system
Final
system
System incomplete21
Keuntungan
 

*Nilai penggunaan dapat ditentukan pada setiap


increament sehingga fungsionalitas sistem
disediakan lebih awal,
*Increment awal berupa prototype untuk
membantu memahami kebutuhan pada increment
berikutnya,
*Memiliki risiko lebih rendah terhadap keseluruhan
pengembagan sistem,
*Prioritas tertinggi pd pelayanan sistem adalah yang
paling diuji.

22
Model Pengembangan Spiral

*Proses direpresentasikan sebagai model spiral


(bukan berupa barisan aktvitas yang dapat ditrack
mundur)
*Setiap loop dalam model spiral menyatakan fase
proses,
*Tidak terdapat fase tertentu seperti spesifikasi
atau perancangan, tetapi loop dalam spiral
ditentukan pada apa yang dibutuhkan

23
Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera­
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analysis Proto­
type 1
Requirements plan Simulations, models, benchmarks
Life­cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next­level product

24
*Rapid Aplication Development (RAD)
adalah model proses perkembangan
perangkat lunak sekuensial linear
yang menekankan siklus
perkembangan yang sangat pendek.
*Model ini cocok digunakan untuk
pengembangan perangkat lunak yang
terdiri dari beberapa modul

Model RAD

25
Team # n
Mo d e lin g
business modeling
data modeling
process modeling

Co n st ru ct io n
component reuse
Team # 2 automatic code
Communication generation
testing
Modeling
business modeling
dat a modeling
process modeling

Planning
Construction Deployment
Team # 1 component reuse
int egrat ion
aut omat ic code
generat ion delivery
Modeling t est ing feedback
business modeling
dat a modeling
process modeling

Construction
component reuse
aut omat ic code
generat ion
t est ing

60 - 90 days

26
Model Prototype
*Model ini dimulai dengan pengumpulan kebutuhan
*Pelanggan dan pengembang bertemu dan mendefinisikan obyektif
keseluruhan dari perangkat lunak, mengidentifikasi segala
kebutuhan yang diketahui

Quick plan

Communication

Modeling
Quick design

Deployment
Delivery
& Feedback Construction
of
prototype

27
Model Rational Unified Process
(RUP)

28
* Inception
Pada tahapan ini dianalisa ruang lingkup bisnis dan batasan
proyek
* Elaboration
Tujuan fase ini adalah menganalisa masalah utama, menyusun
pondasi arsitektur, membangun rencana project, dan
menghilangkan resiko terburuk yang akan dialami project
* Construction
Di fase ini semua component dan feature aplikasi dibangun dan
disatukan ke dalam product serta akan diuji
* Transition
Tujuannya yaitu untuk mentransisikan/menyerahkan
fungsionalitas sistem lengkap ke pengguna dan juga
menyerahkan rilis produk.

29
Proses untuk menentukan pelayanan (servis) apa
yang dibutuhkan dan kendala-kendala
pengoperasian sistem serta pengembangannya,
Proses Rekayasa Kebutuhan
*Studi Kelayakan
*Analisis kebutuhan
*Spesifikasi Kebutuhan
*Validasi spesifikasi

Spesifikasi Perangkat Lunak


30
Feasibility Requirements
study elicitation and
analysis
Requir ements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements

Requirements
document

Proses Rekayasa Kebutuhan


31
Aktifitas dalam Perancangan:
*Perancangan Arsitektur PL
*Spesifikasi Abstrak
*Perancangan Interface
*Perancangan Komponen
*Perancangan Struktur Data
*Perancangan Algoritma
Requirements
specification

Design activities

Architectural Interface Component Data Algorithm


Abstract
design design design structure design
specification
design

Software Data
System Interface Component Algorithm
specification structure
architecture specification specification specification
32 specification

Design products
Pemrograman dan Debug
*Translasi perancangan ke dalam pemrograman dan
menghilangkan error dari program
*Pemrograman adalah aktifitas personal – tidak
terdapat model program generic
*Pemrogram melakukan beberapa program testing
untuk menemukan fault dalam program dan
menghilangkan fault tersebut dalam proses debug.

Locate Design Repair Re­test


error error repair error program

33
Contoh Kasus
Sebuah toko serba ada ingin membuat aplikasi penjualan untuk
mempermudah aktivitas keseharian dari toko tersebut, data yang
ingin diolah oleh toko tersebut yaitu :
1. Data suplier
2. Data Barang
3. Data Penjualan
4. Data keuntungan/Laba penjualan
Dengan melihat permasalahan di atas, tentukan
a. Model proses pengembangan PL yang tepat
b. Buatkan langkah-langkah sesuai dengan model pengembangan PL
tersebut
Penyelesaian :
1. Permasalahan pada toko tersebut yaitu proses penjualan barang dari
mulai pengiriman sampai pada perhitungan laba toko, dengan
prosedur yang jelas
34
2. Pada kasus tersebut lebih tepat menggunakan model proses waterfall dengan
tahapan sebagai berikut :
a. Requirments and definitions
Pada tahapan ini ditentukan kebutuhan atau keinginan dari user yaitu :
- Pengelolaan Data suplier
- Pengelolaan Data barang
- Pengelolaan Data penjualan
- Pengelolaan Data keuntungan/laba
b. System and software design
Dengan melihat permasalahan tersebut maka perancangan sistem dapat
dilakukan dengan cara :
- Pembuatan Diagram Konteks
- Pembuatan DFD Level 0
- Pembuatan DFD Level 1
- Pembuatan ERD
- Pembuatan Rancangan Tabel

35
c. Implementation and unit testing
Dengan melihat perkembangan PL dimasa yang akan datang, maka
sebaiknya menggunakan bahasa pemrograman yang berbasis web
sehingga nantinya mudah dikembangkan, adapun kebutuhannya :
- Bahasa pemrograman menggunakan PHP
- Basis data menggunakan My SQL
- Web server menggunakan Apache
d. Integration and system testing
untuk instalasi software, dibutuhkan hardware sebagai berikut :
- 1 unit PC server
- 1 unit PC untuk kasir
- 1 unit PC untuk bagian gudang
e. Operation and maintenance
Proses pemeliharaan dilakukan pada waktu maksimal 1 tahun, dan
menjadi tanggungjawab pengembang software.

36
Tugas :
*Sebuah perusahaan ingin membuat software untuk
mempermudah dalam operasional dari perusahaan
tersebut, software yang dibuat meliputi : Modul
Kepegawaian, Modul Keuangan, Modul Administrasi Surat,
Modul Inventaris Barang dan Modul Penggajian.
* Tentukan model proses pengembangan PL yang tepat dan
kemukakan alasannya
* Jelaskan tahapan pengembangan PL pada perusahaan tersebut
sesuai dengan metodologi yang anda gunakan.

Catatan :
Dikumpulkan hari ini, paling lambat jam 12.00 WIB

37
Terima Kasih

38