3. proses software- model
TRANSCRIPT
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 1/25
Rekayasa Perangkat Lunak
1
Proses Software
Arna Fariza
PENS-ITS
Rekayasa Perangkat Lunak
2
Proses Software
Sekumpulan aktifitas yang saling
terkait untuk spesifikasi, desain,
implementasi dan testing sistem
software
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 2/25
Rekayasa Perangkat Lunak
3
Tujuan
Memperkenalkan model proses software Menggambarkan beberapa model proses dan
kapan digunakan
Menggambarkan outline model proses untuk
rekayasa kebutuhan, pengembangan software,
testing dan evolusi
Mengenalkan teknologi CASE untuk mendukung
aktifitas proses software
Rekayasa Perangkat Lunak
4
Topik Model proses software
Iterasi proses
Spesifikasi software
Desain dan implementasi software
Validasi software
Evolusi software
Automated process support
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 3/25
Rekayasa Perangkat Lunak
5
Proses Software
Sekumpulan aktifitas terstruktur yangdibutuhkan untuk mengembangkan sistem
software
o Spesifikasi
o Desain
o Validasi
o Evolusi
Model proses software adalah representasi
abstrak dari proses. Merupakan gambaran dari
proses dari beberapa perspektif tertentu
Rekayasa Perangkat Lunak
6
Model Proses Software Generik Model waterfall
o Membagi dan membedakan fase spesifikasi dan
pengembangan
Pengembangan Evolusioner
o Spesifikasi dan pengembangan terpisah
Pengembangan sistem Formal
o Model sistem matematis yang secara formal
diterjemahkan ke dalam implementasi Pengembangan Reuse-based
o Sistem dibangun dari komponen yang sudah ada
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 4/25
Rekayasa Perangkat Lunak
7
Model Waterfall
Definisi
kebutuhan
Implementasi
dan testing unit
Desain sistem
dan software
Integrasi dan
testing sistem
Operasi dan
maintenance
Rekayasa Perangkat Lunak
8
Fase model Waterfall Analisa dan definisi kebutuhan
Desain sistem dan software
Implementasi dan unit testing
Integrasi dan testing sistem
Operasi dan maintenance
Kekurangan dari model waterfall adalah
kesulitan untuk mengakomodasi perubahan
setelah proses berjalan
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 5/25
Rekayasa Perangkat Lunak
9
Permasalahan Model Waterfall
Tidak fleksibel dalam pembagian proyek kedalam tingkat yang berbeda
Sulit untuk merespon perubahan kebutuhan
konsumen
Sehingga model ini hanya cocok jika kebutuhan
sudah dimengerti dengan baik
Rekayasa Perangkat Lunak
10
Pengembangan Evolusioner Pengembangan Exploratory
o Obyektif : bekerja dengan konsumen dan
melibatkan sistem akhir dari spesifikasi skema
inisial. Dimulai dengan kebutuhan yang
dimengerti dengan baik
Throw-away prototyping
o Obyektif : mengerti kebutuhan sistem. Dimulai
dengan kebutuhan yang tidak dimengerti dengan
baik
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 6/25
Rekayasa Perangkat Lunak
11
Pengembangan Evolusioner
Versi inisial
Versimenengah
Versi akhir
Aktifitas yangberjalan
Deskripsioutline
Spesifikasi
Pengembangan
Validasi
Rekayasa Perangkat Lunak
12
Pengembangan Evolusioner Permasalahan
o Tidak ada visibilitas proses
o Sistem biasanya tidak terstruktur dengan baik
o Kemampuan khusus (misalnya bahasa untuk
prototipe cepat) kemungkinan diperlukan
Aplikasi
o Untuk sistem interaktif berukuran kecil atau
medium
o Untuk bagian dari sistem besar (misalnya user
interface)
o Untuk sistem dengan daur hidup pendek
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 7/25
Rekayasa Perangkat Lunak
13
Pengembangan Sistem Formal
Berbasis transformasi dari spesifikasimatematis melalui representasi yang berbeda
untuk program yg dapat dieksekusi
Transformasi adalah ‘pemelihara kebenaran’
sehingga dapat menunjukkan program sesuai
spesifikasinya
Merupakan pendekatan ‘Cleanroom’ untuk
pengembangan software
Rekayasa Perangkat Lunak
14
Pengembangan Sistem Formal
Definisi
kebutuhan
Spesifikasi
formal
Transformasi
formal
Integrasi dan
testing sistem
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 8/25
Rekayasa Perangkat Lunak
15
Transformasi Formal
Transformasi Formal
Pembuktian kebenaran
transformasi
R2 R3
P2 P3 P4
T1 T2 T3 T4
R1
P1
Spesifikasiformal
EksekusiProgram
Rekayasa Perangkat Lunak
16
Pengembangan Sistem Formal
Permasalahan
o Perlu kemampuan dan training khusus untuk
mengaplikasikan teknik ini
o Secara formal sulit untuk menentukan beberapa
aspek dari sistem seperti antarmuka user
Aplikasi
o Sistem kritis terutama dimana keselamatan dan
keamanan harus dibuat sebelum sistem beroperasi
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 9/25
Rekayasa Perangkat Lunak
17
Pengembangan Reuse-oriented
Berbasis systematic reuse dimana sistemdiintegrasikan dalam komponen yang sudahada atau sistem COTS (Commercial-off-the-shelf)
Level Proseso Analisa komponen
o Modifikasi kebutuhan
o Desain sistem dengan reuse
o Pengembangan dan integrasi
Pendekatan ini menjadi lebih penting tetapimasih terbatas penggunaannya
Rekayasa Perangkat Lunak
18
Pengembangan Reuse-oriented
Spesifikasikebutuhan
Analisakomponen
Modifikasikebutuhan
Desain sistemdengan reuse
Pengembangandan integrasi
Validasi sistem
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 10/25
Rekayasa Perangkat Lunak
19
Iterasi Proses
Kebutuhan sistem SELALU berkembang selamaproyek berlangsung sehingga iterasi proses
dimana level sebelumnya dilakukan rework
merupakan bagian dari proses untuk sistem
yang besar
Iterasi dapat diaplikasikan untuk semua model
proses generik
2 pendekatan :
o Pengembangan incremental
o Pengembangan spiral
Rekayasa Perangkat Lunak
20
Pengembangan Incremental
Pelepasan sistem tidak dalam bentuk pelepasan
tunggal, tetapi pengembangan dan pelepasan
dibagi ke dalam ‘increment’ dimana setiap
‘increment’ melepaskan bagian dari fungsional yang
dibutuhkan
Kebutuhan user diprioritaskan dan kebutuhan
prioritas tertinggi dimasukkan dalam ‘increment’
awal
Bila pengembangan ‘increment’ dimulai, kebutuhandibekukan lebih dahulu dan setelah itu kebutuhan
untuk ‘increment’ selanjutnya dapat dilanjutkan
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 11/25
Rekayasa Perangkat Lunak
21
Incremental development
System incomplete
Sistemfinal
Mendefinisikankebutuhan outline
Incrementkebutuhan
Desain arsitektursistem
MengembangkanIncrement sistem
Validasiincrement
Integrasiincrement
Validasisistem
Rekayasa Perangkat Lunak
22
Keuntungan Pengembanan
Incremental
Nilai konsumen dapat diserahkan pada setiap
‘increment’ sehingga fungsional sistem
tersediah lebih dahulu
‘increment’ awal berfungsi sebagai prototype
untuk membantu memperoleh kebutuhan
‘increment’ selanjutnya
Resiko lebih rendah dari keseluruhan kegagalan
proyek
Layanan sistem prioritas tertinggi cenderung
menerima testing terbanyak
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 12/25
Rekayasa Perangkat Lunak
23
Pemrograman Extreme
Pendekatan baru untuk pengembanganberbasis pengembangan dan pelepasan
fungsional ‘increment’ yang sangat kecil
Mempercayakan perbaikan konstan,
keterlibatan user dalam tim pengembang dan
pemrograman
Rekayasa Perangkat Lunak
24
Pengembangan Spiral
Proses direpresentasikan sebagai spiral bukan
sebagai urutan aktivitas dengan melihat sistem
sebelumnya (backtracking)
Setiap loop dalam spiral merepresentasikan
fase dalam proses
Tidak ada fase yang tetap seperti spesifikasi
atau desain- loop dalam spiral dipilih
tergantung pada apa yang dibutuhkan Resiko ditaksir secara eksplisit dan
penyelesaian sepanjang proses
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 13/25
Rekayasa Perangkat Lunak
25
Model Spiral model pada Proses
Software
-
Concepto f Operation
Menentukan alternatifdan batasan obyektif
Evaluasi identifikasialternative, pemecahan
resiko
Perencanaan faseberikutnya
Mengembangkan,verifikasi produk level
berikutnya
Analisaresiko
Analisaresiko
Analisaresiko
Analisaresiko
REVIEWPrototype 1
Prototype 2Prototype 3
Prototype
operasional
Simulasi, model, benchmark
Desaindetail
Kode
TesUnitTes
IntegrasiTes
penerimaanServis
DesainProduk
DesainV&V
Kebutuhan
S/W
Validasikebutuhan
RencanaPengembangan
Integrasi dantest plan
Rencana kebutuhan danrencana daur hidup
Rekayasa Perangkat Lunak
26
Sektor Model Spiral
Setting Obyektif
o Obyektif khusus untuk fase diidentifikasi
Penaksiran dan pengurangan resiko
o Resiko ditaksir dan aktifitas didigunakan untuk
mengurangi resiko
Pengembangan dan Validasi
o Model pengembangan untuk sistem dipilih yang
berupa model generik Perencanaan
o Proyek direview dan fase berikutnya dari spiral
direncanakan
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 14/25
Rekayasa Perangkat Lunak
27
Spesifikasi Software
Dari proses yang sudah berjalan ditentukanlayanan apa yang dibutuhkan dan batasan
operasi dan pengembangan sistem
Proses rekayasa kebutuhan
o Studi kelayakan
o Perolehan dan analisa kebutuhan
o Spesifikasi kebutuhan
o Validasi kebutuhan
Rekayasa Perangkat Lunak
28
Proses Rekayasa Kebutuhan
Studikelayakan
Mendapatkandan analisakebutuhan
Spesifikasikebutuhan
Validasikebutuhan
Laporankelayakan
Model sistem
Kebutuhan
sistem dan user
Dokumenkebutuhan
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 15/25
Rekayasa Perangkat Lunak
29
Implementasi dan Desain Software
Proses mengubah spesifikasi sistem menjadisistem yang dijalankan
Desain software
o Mendesain struktur software yang didapatkan dari
spesifikasi
Implementasi
o Mengubah struktur software ke dalam program
yang dieksekusi
Aktifitas desain dan implementasi saling
berhubungan dan mungkin terpisah
Rekayasa Perangkat Lunak
30
Aktifitas Proses Desain
Desain arsitektur
Spesifikasi abstrak
Desain antar muka
Desain komponen
Desain struktur data
Desain algoritma
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 16/25
Rekayasa Perangkat Lunak
31
Proses Desain Software
Aktifitas desain
Produk desain
Spesifikasikebutuhan
Desainarsitektur
Spesifikasiabstrak
Desainantar muka
Desainkomponen
Desainstruktur
data
Desainalgoritma
Arsitektursistem
Spesifikasisoftware
Spesifikasiantar muka
Spesifikasikomponen
Spesifikasistruktur
data
Spesifikasialgoritma
Rekayasa Perangkat Lunak
32
Metode Desain
Pendekatan sistematis untuk pengembangan
desain software
Desain biasanya terdokumentasi sebagai
kumpulan model grafis
Model yang mungkin
o Model data-flow
o Model entity-relation-attribute
o Model strukturalo Model obyek
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 17/25
Rekayasa Perangkat Lunak
33
Pemrograman dan Debugging
Mengubah desain ke dalam program danmenghilangkan error dari program
Pemrograman adalah aktifitas personal – tidak
ada proses pemrograman generik
Programmer membawa beberapa program
testing untuk menemukan kegagalan dalam
program dan menghilangkan kegagalan dalam
proses debugging
Rekayasa Perangkat Lunak
34
Proses Debugging
Mencarierror
Desainperbaikan
error
Perbaikanerror
Re-testprogram
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 18/25
Rekayasa Perangkat Lunak
35
Validasi Software
Verifikasi dan validasi bertujuan untukmenunjukkan bahwa sistem sesuai
spesifikasinya dan sesuai kebutuhan konsumen
Melibatkan pengecekan dan review proses dan
testing sistem
Testing sistem melibatkan eksekusi sistem
dengan test case yang diambil dari spesifikasi
data riil untuk diproses oleh sistem
Rekayasa Perangkat Lunak
36
Proses Testing
Testing
komponen
Testing
integrasi Testing
user
Testingunit
Testingmodul
Testingsub sistem
Testingsistem
Testingpenerimaan
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 19/25
Rekayasa Perangkat Lunak
37
Tingkat Testing
Testing Unito Dilakukan tes pada komponen individu
Testing Modul
o Dilakukan tes pada kumpulan komponan yang
berhubungan
Testing sub-system
o Modul diintegrasikan ke dalam sub sistem dan dilakukan
tes. Fokus pada testing antar muka
Testing sistem
o Testing pada keseluruhan sistem. Terting terhadap
properti penting
Testing Penerimaan
o Testing dengan data konsumen untuk memeriksa apakah
dapat diterima
Rekayasa Perangkat Lunak
38
Fase Testing
Spesifikasikebutuhan
Spesifikasisistem
Desainsistem
Desaindetail
Kode dantes moduldan unit
ServisTes integrasisub sistem
Tes integrasisistem
Tespenerimaan
Perencanaantes penerimaan
Perencanaantes integrasi
sistem
Perencanaantes integrasisub sistem
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 20/25
Rekayasa Perangkat Lunak
39
Evolusi Software
Software bersifat fleksibel dan dapat berubah Perubahan kebutuhan karena perubahan
lingkungan bisnis, software yang mendukung
bisnis juga harus terlibat dan berubah
Meskipun terdapat batas antara pengembangan
dan evolusi (pemeliharaan), peningkatan yang
tidak berhubungan menyebabkan sistem sedikit
demi sedikit menjadi sistem baru.
Rekayasa Perangkat Lunak
40
Evolusi Sistem
Sistem yangsudah ada
Sistem
baru
Modifikasisistem
Menawarkanperubahan sistem
Menaksir sistemyang sudah ada
Menentukankebutuhan sistem
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 21/25
Rekayasa Perangkat Lunak
41
Pendukung Proses Otomasi (CASE)
Computer-aided software engineering (CASE)adalah software untuk mendukung proses
pengembangan dan evolusi
Aktifitas otomasi
o Editor grafis untuk pengembangan model sistem
o Data dictionary untuk mengatur desain entity
o Graphical UI builder untuk konstruksi antar muka
user
o Debugger untuk menemukan kegagalan program
o Translator otomatis untuk membangkitkan versibaru dari program
Rekayasa Perangkat Lunak
42
Teknologi CASE
Teknologi Case memudahkan perbaikan
signifikan dalam proses software merkipun
bukan perbaikan penting sesuai perkiraan
o Rekayasa software membutuhkan pemikiran
kreatif – hal ini tidak dapat diotomasi
o Rekayasa software adalah aktifitas tim dan untuk
proyek besar, banyak waktu dihabiskan untuk
interaksi tim. Teknologi CASE tidak mendukung
hal ini
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 22/25
Rekayasa Perangkat Lunak
43
Klasifikasi CASE
Klasifikasi membantu mengerti perbedaan tipetool CASE dan dukungan untuk aktifitas proses
Perspektif Fungsional
o Tool diklasifikasi berdasarkan fungsi tertentu
Perspektif Proses
o Tool diklasifikasi berdasarkan aktifitas proses yang
didukung
Perspektif Integrasi
o Tool diklasifikasi berdasarkan organisasi ke dalam
unit integrasi
Rekayasa Perangkat Lunak
44
Klasifikasi Functional Tool
Tool type Examples
Planning tools PERT tools, estimation tools,
spreadsheets
Editing tools Text editors, diagram editors, word
processors
Change management tools Requirements traceability tools, change
control systems
Configuration management tools Version management systems, system
building tools
Prototyping tools Very high-level languages,
user interface generators
Method-support tools Design editors, data dict ionar ies, code
generators
Language-processing tools Compilers, interpretersProgram analysis tools Cross reference generators, static
analysers, dynamic analysers
Testing tools Test data generators, file comparators
Debugging tools Interactive debugging systems
Documentation tools Page layout programs, image editors
Re-engineering tools Cross-reference systems, program re-
structuring systems
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 23/25
Rekayasa Perangkat Lunak
45Klasifikasi berbasis aktifitas
Reengineering tools
Testing tools
Debugging tools
Program analysis tools
Language-processingtools
Method support tools
Prototyping tools
Configurationmanagement tools
Change management tools
Documentation tools
Editing tools
Planning tools
Specification Design Implementation Verification
andValidation
Rekayasa Perangkat Lunak
46
Integrasi CASE
Tool
o Mendukung task proses individu seperti
pemeriksaan konsistensi desain, text editing dll
Workbench
o Mendukung fase proses seperti spesifikasi atau
desain. Biasanya melibatkan sejumlah tool
integrasi
Lingkungan
o Mendukung semua atau bagian substansi dari
keseluruhan proses software. Biasanya melibatkan
beberapa workbench terintegrasi
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 24/25
Rekayasa Perangkat Lunak
47
Tool, workbench, lingkungan
Teknologi
CASE
LingkunganWorkbenchTools
Editor Compiler PembandingFile
Lingkungan
terintegrasi
Lingkungan proses
terpusati
TestingPemrogramanAnalisis
dan desain
Workbench
multi-method
Workbench
single-method
Workbench
general-purpose
Workbench
special language
Rekayasa Perangkat Lunak
48
Summary
Proses software adalah aktivitas yang terjadi
dalam memproduksi dan menghasilkan sistem
software. Direpresentasikan dalam model
proses software
Aktifitas umum adalah spesifikasi, desain dan
implementasi, validasi dan evolusi
Model proses generik menggambarkan
organisasi dari proses software Model proses iteratif menggambarkan proses
software sebagai siklus aktifitas
5/10/2018 3. Proses Software- Model - slidepdf.com
http://slidepdf.com/reader/full/3-proses-software-model 25/25
Rekayasa Perangkat Lunak
49
Summary
Rekayasa kebutuhan adalah prosesmengembangkan spesifikasi software
Proses desain dan implementasi mengubah
spesifikasi ke program eksekusi
Validasi melibatkan pemeriksaan bahwa sistem
sesuai dengan spesifikasi dan keperluan user
Evolusi menyangkut modifikasi sistem setelah
digunakan
Teknologi CASE mendukung aktifitas prosessoftware