©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 1
PendahuluanRekayasa Perangkat Lunak
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 2
Perangkat Lunak
Merupakan program-program komputer dan dokumentasi yang berkaitan,Produk perangkat lunak dibuat untuk pelanggan tertentu ataupun untuk pasar umumProduk perangkat lunak tersebut: • Generik – dibuat untuk dijual ke suatu kumpulan
pengguna yang berbeda• Bespoke (custom) – dibuat untuk suatu pengguna
tunggal sesuai dengan spesifikasinya.
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 3
Rekayasa Perangkat Lunak
adalah suatu disiplin rekayasa yang berkonsentrasi terhadap seluruh aspek produksiperangkat lunak.mengadopsi pendekatan yang sistematis danterorganisir terhadap pekerjaannya danmenggunakan tool yang sesuai serta teknik yang ditentukan berdasarkan masalah yang akandipecahkan, kendala pengembangan dansumber daya yang tersedia
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 4
Sekumpulan aktifitas yang memiliki tujuan untukpengembangan ataupun evolusi perangkat lunak.Aktifitas generic dalam semua proses perangkat lunakadalah:• 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
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 5
Model Proses Perangkat LunakSuatu representasi proses perangkat lunak yang disederhanakan, dipresentasikan dari perspektif khususContoh perspektif proses:• Perspektif Alur-kerja (workflow) - barisan kegiatan• Perspektif Alur Data (Data flow) – alur informasi• Perspektif Peran/Aksi – siapa melakukan apa.
Model proses Generik:• Waterfall (Air terjun)• Pengembangan secara evolusi• Transformasi formal• Model Spiral• Integrasi daru komponen yang digunakan kembali
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 6
Biaya Rekayasa Perangkat LunakSekitar 60% untuk biaya pengembangan, 40% biaya pengujian. Untuk perangkat lunak berbasispengguna (custom), biaya evolusi biasanyamelebihi 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.
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 7
Metode Rekayasa Perangkat LunakPendekatan terstruktur pengembangan PL termasuk model sistem, notasi, perancangandan petunjuk pemrosesan,Deskripsi Model deskripsi pemodelan dengan grafikAturan batasan yang digunakan pada model sistemRekomendasi saran dalam membentukperancangan yang baikPetunjuk proses aktifitas yang harus diikuti
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 8
Atribut Perangkat Lunak Yang Baik
PL seharusnya memberikan pengguna kebutuhan fungsionalitas dan unjuk kerja yang dapat :Maintanability• PL harus dapat memenuhi perubahan kebutuhan
Dependability• PL harus dapat dipercaya
Efisiensi• PL harus efisien dalam penggunaan sumber daya
Usability• PL harus dapat digunakan sesuai dengan yang direncanakan
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 9
Proses Perangkat LunakSuatu proses model adalah suatu representasiabstrak/ringkasan suatu model. Proses model menampilkan suatu penjelasan suatu proses daribeberapa perspektif tertentuProses PL merupakan aktifitas yang salingterkait (koheren) untuk menspesifikasikan, merancang, mengimplementasi dan mengujisistem perangkat lunak.
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 10
Model Proses PL yang Generic
Model Air terjun (Water fall)• Memisahkan dan membedakan antara spesifikasi
dan pengembanganPengembangan yang berevolusi• Spesifikasi dan pengembangan saling bergantian
Pengembangan sistem Formal• Menggunakan suatu model sistem matematika yang
ditransformasikan ke implementasi,Pengembangan berbasis Re-use (penggunaanulang)• Sistem dibangun dari komponen yang sudah ada.
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 11
Model Air Terjun (Water Fall)
Requirementsdefinition
System andsoftware design
Implementationand unit testing
Integration andsystem testing
Operation andmaintenance
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 12
Fase Model Air Terjun
Analisis Kebutuhan dan pendefinisiannyaPerancangan sistem dan Perangkat LunakImplementasi dan unit pengujianIntegrasi dan pengujian sistemPengoperasian dan perawatanProses kembali ke state sebelumnya untukmengantisipasi perubahan setelah prosesmenuju ke suatu state di bawahnya adalahsangat sulit.
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 13
Masalah Pada Model Air Terjun
Partisi projek ke stages yang berbeda tidakfleksibelHal ini mengakibatkan sulitnya untukmerespon perubahan kebutuhanpenggunaOleh sebab itu model ini hanya cocokdigunakan apabila kebutuhan penggunasudah dimengerti dengan baik
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 14
Pengembangan yang berevolusi(Evolutionary Development)
Pengembangan yang berdasarkan penyidikan• Tujuannya untuk mengaktifkan pengguna dan
memperolah model final berasal dari initial spesifikasi awal. Seharusnya diawali dengankebutuhan yang sudah dimengerti,
Throw-away prototyping• Tujuannya adalah untuk memahami kebutuhan
sistem. Biasanya diawali dengan pemahamankebutuhan yang minim.
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 15
Evolutionary Development
ValidationFinal
version
DevelopmentIntermediate
versions
SpecificationInitial
version
Outlinedescription
Concurrentactivities
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 16
Evolutionary DevelopmentPermasalahan dalam model pengembangan yang berevolusi:• Kekurangan visibilitas 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).
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 17
Pendekatan Pengembangan Sistem Formal
Berbasiskan pada transformasi spesifikasi secara matematik melalui representasi yang berbeda untuk suatu program yang dapat dieksekusi,Trasformasi menyatakan spesifikasi programMenggunakan pendekatan ‘Cleanroom’ untukpengembangan PL.
Requirementsdefinition
Formalspecification
Formaltransformation
Integration andsystem testing
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 18
Penggunaan Metode Formal
Metode ini mempunyai keterbatasan dalampemakaiannyaKeunggulannya adalah mengurangi jumlahkesalahan pada sistem sehingga penggunaanutamanya adalah pada sistem yang kritisHal itu menjadi efektif dari segi biaya
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 19
Pengembangan Metode Formal
Permasalahan dalam model pengembanganmetode formal:• Memerlukan keahlian khusus dan pelatihan untuk
mengaplikasikannya• Sulit menentukan beberapa aspek dari suatu sistem seperti
user interface
Pemakaian model pengembangan metodeformal• Memerlukan tingkat kerahasian dan keamanan yang tinggi
sebelum digunakan
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 20
Pengembangan Menggunakan Konsep Re-use (Penggunaan Ulang)
Berdasarkan pada sistem yang telah tergabung darisejumlah komponen yang ada atau sistem COTS (Commercial-off-the-shelf) Langkah-langkah Proses• Analisis komponen• Kebutuhan perubahan• System design dengan penggunaan ulang• Pengembangan dan Development dan penggabungan
Pendekatan ini menjadi penting tetapi tetap sajamempunyai keterbatasan dalam penggunaannya
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 21
Pengembangan Menggunakan Konsep Re-use (Penggunaan Ulang)
Requirementsspecification
Componentanalysis
Developmentand integration
System designwith reuse
Requirementsmodification
Systemvalidation
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 22
Proses dengan metode Iterasi
Model Iterasi dapat digunakan pada setiapmodel proses genericTerdapat dua pendekatan:• Pengembangan Incremental• Model Spiral
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 23
Model Pengembangan Incremental
Pengembangan sistem berdasarkan model sistem yang dipecah sehingga model pengembangannya secara increament/bertahapKebutuhan pengguna diprioritaskan dan prioritastertinggi dimasukkan dalam awal incrementSetelah pengembangan suatu increment dimulai, kebutuhan dibekukan dulu hingga increment berikutnya dimulai
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 24
Model Pengembangan Incremental
Validateincrement
Develop systemincrement
Design systemarchitecture
Integrateincrement
Validatesystem
Define outline requirements
Assign requirements to increments
System incomplete
Finalsystem
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 25
Keuntungan Model PengembanganIncremental
Nilai penggunan dapat ditentukan pada setiapincreament sehingga fungsionalitas sistem disediakanlebih awal,Increment awal berupa prototype untuk membantumemahami kebutuhan pada increment berikutnya,Memiliki risiko lebih rendah terhadap keseluruhanpengembagan sistem,Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji.
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 26
Model Pengembangan Spiral
Proses direpresentasikan sebagai model spiral (bukan berupa barisan aktifitas yang dapatditrack mundur)Setiap loop dalam model spiral menyatakan fase prosesTidak terdapat fase tertentu seperti spesifikasi atau perancangan, tetapi loop dalam spiral ditentukan pada apa yang dibutuhkan
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 27
Model Pengembangan Spiral
Riskanalysis
Riskanalysis
Riskanalysis
Riskanalysis Proto-
type 1
Prototype 2
Prototype 3Opera-tionalprotoype
Concept ofOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Productdesign Detailed
design
CodeUnit test
IntegrationtestAcceptance
testService Develop, verifynext-level product
Evaluate alternativesidentify, resolve risks
Determine objectivesalternatives and
constraints
Plan next phase
Integrationand test plan
Developmentplan
Requirements planLife-cycle plan
REVIEW
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 28
Sektor-Sektor Pada Model Spiral
Menentukan Tujuan• Mengidentifikasikan spesifikasi tujuan setiap fase
Menilai Resiko dan Pengurangannya• Resiko dinial dan aktifitas ditempatkan untuk
mengurangi resiko kunciPengembangan dan validasi• Suatu model pengembangan sistem dipilih dari
model genericPerencanaan• Project di review dan fase spiral berikutnya
direncanakan
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 29
Spesifikasi Perangkat Lunak
Proses untuk menentukan pelayanan (service) apa yang dibutuhkan dan kendala-kendala pengoperasian sistem serta pengembangannya,Proses Rekayasa Kebutuhan• Studi Kelayakan• Analisis kebutuhan• Spesifikasi Kebutuhan• Validasi spesifikasi
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 30
Proses Rekayasa Kebutuhan
Feasibilitystudy
Requirementselicitation and
analysisRequirementsspecification
Requirementsvalidation
Feasibilityreport
Systemmodels
User and systemrequirements
Requirementsdocument
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 31
Aktifitas Dalam Perancangan
Perancangan ArsitekturSpesifikasi AbstrakPerancangan InterfacePerancangan KomponenPerancangan Struktur DataPerancangan Algoritma
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 32
Proses Perancangan Perangkat Lunak
Architecturaldesign
Abstractspecification
Interfacedesign
Componentdesign
Datastructuredesign
Algorithmdesign
Systemarchitecture
Softwarespecification
Interfacespecification
Componentspecification
Datastructure
specification
Algorithmspecification
Requirementsspecification
Design activities
Design products
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 33
Metode Perancangan
Pendekatan sistematis untuk merancangperangkat lunakPerancangan biasanya didokumentasikan dengan model grafikBeberapa model yang dapat digunakan:• Model data flow • Model relasi atribut entitas• Model terstruktur• Model object
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 34
Pemrograman dan Debug
Menerjemahkan perancangan ke dalam pemrograman dan menghilangkan error dari programPemrograman adalah aktifitas personal – tidakterdapat model program genericPemrogram melakukan beberapa program testing untuk menemukan fault dalam program dan menghilangkan fault tersebut dalam prosesdebug.
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 35
Proses Debugging /Penulusuran
Locateerror
Designerror repair
Repairerror
Re-testprogram
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 36
Validasi Perangkat Lunak
Verifikasi dan validasi bertujuan menunjukkanbahwa sistem sesuai dengan spesifikasinya danyang diinginkan penggunaMelibatkan proses pengujian dan review sistemPengujian sistem melibatkan eksekusi sistemdengan menggunakan kasus uji coba yang ditentukan dari spesifikasi data sebenarnya yang akan diproses oleh sistem.
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 37
Proses Pengujian
Sub-systemtesting
Moduletesting
Unittesting
Systemtesting
Acceptancetesting
Componenttesting
Integration testing Usertesting
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 38
Langkah-Langkah Pengujian PerangkatLunak
Unit Testing• Pengujian Komponen-komponen secara individu
Modul Testing• Pengujian terhadap komponen yang saling berhubungan,
Sub-system Testing• Pengujian terhadap module-module sistem yang saling
berhubungan. Fokus pada pengujian interface.System Testing• Pengujian keseluruhan sistem,
Acceptance Testing• Pengujian yang dilakukan oleh pengguna untuk melihat apakah
sistem sudah dapat diterima.
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 39
Fase-Fase Pengujian
Requirementsspecification
Systemspecification
Systemdesign
Detaileddesign
Module andunit codeand tess
Sub-systemintegrationtest plan
Systemintegrationtest plan
Acceptancetest plan
Service Acceptancetest
Systemintegration test
Sub-systemintegration test
©Brahmantyo 2005 Rekayasa Perangkat Lunak-Pendahuluan Slide 40
Evolusi Perangkat Lunak
Perangkat lunak pada dasarnya sangat fleksibeldan mudah berubahKarena adanya perubahan kebutuhan melaluiperubahan proses bisnis dan teknologi, makaperangkat lunak yang mendukung kegiatanbisnis tersebut juga mengalamai perubahanWalaupun demikian diharapkan perubahanproses bisnis tersebut berdampak padaperubahan yang sedikit terhadap perangkatlunak (re-engineering).