perangcangan perangkat lunakagungsr.staff.gunadarma.ac.id/downloads/files/71660/...rekayasa...
TRANSCRIPT
PerangcanganPerangkatLunak
Perangkat Lunak
Merupakan program-programkomputer dan dokumentasi yangberkaitan,produk perangkat lunakdibuat untuk pelanggan tertentuataupun untuk pasar umum
Merupakan program-programkomputer dan dokumentasi yangberkaitan,produk perangkat lunakdibuat untuk pelanggan tertentuataupun untuk pasar umum
Produk perangkat lunak tersebut:
Generik – dibuat untuk dijual kesuatu kumpulan pengguna yangberbeda .Bespoke (custom) – dibuat untuksuatu pengguna tunggal sesuaidengan spesifikasinya.
Generik – dibuat untuk dijual kesuatu kumpulan pengguna yangberbeda .Bespoke (custom) – dibuat untuksuatu pengguna tunggal sesuaidengan spesifikasinya.
Rekayasa Perangkat Lunak:adalah suatu disiplin rekayasa yang berkonsentrasiterhadap seluruh aspek produksi perangkat lunak.
mengadopsi pendekatan yang sistematis danterorganisir terhadap pekerjaannya danmenggunakan tool yang sesuai serta teknik yangditentukan berdasarkan masalah yang akandipecahkan, kendala pengembangan dan sumberdaya yang tersedia
adalah suatu disiplin rekayasa yang berkonsentrasiterhadap seluruh aspek produksi perangkat lunak.
mengadopsi pendekatan yang sistematis danterorganisir terhadap pekerjaannya danmenggunakan tool yang sesuai serta teknik yangditentukan berdasarkan masalah yang akandipecahkan, kendala pengembangan dan sumberdaya yang tersedia
Proses Perangkat LunakSekumpulan aktifitas yang memilikitujuan untuk pengembangan ataupunevolusi perangkat lunak.
Aktifitas generic dalam semua proses perangkatlunak adalah:
Spesifikasi – apa yang harus dilakukan oleh perangkat lunak danbatasan/kendala pengembangannyaPengembangan – proses memproduksi sistem perangkat lunakValidasi – pengujian perangkat lunak terhadap keinginanpenggunakEvolusi – perubahan perangkat lunak berdasarkan perubahankeinginan.
Sekumpulan aktifitas yang memilikitujuan untuk pengembangan ataupunevolusi perangkat lunak.
Aktifitas generic dalam semua proses perangkatlunak adalah:
Spesifikasi – apa yang harus dilakukan oleh perangkat lunak danbatasan/kendala pengembangannyaPengembangan – proses memproduksi sistem perangkat lunakValidasi – pengujian perangkat lunak terhadap keinginanpenggunakEvolusi – perubahan perangkat lunak berdasarkan perubahankeinginan.
Model Proses Perangkat Lunak
Suatu representasi proses perangkat lunakyang disederhanakan, dipresentasikan darperspektif khusus
Contoh perspektif proses:Perspektif Alur-kerja (workflow) - barisankegiatanPerspektif Alur Data (Data flow) – alur informasiPerspektif Peran/Aksi – siapa melakukan apa.
Suatu representasi proses perangkat lunakyang disederhanakan, dipresentasikan darperspektif khusus
Contoh perspektif proses:Perspektif Alur-kerja (workflow) - barisankegiatanPerspektif Alur Data (Data flow) – alur informasiPerspektif Peran/Aksi – siapa melakukan apa.
Model proses Generik:
Waterfall (Air terjun)Pengembangan secara evolusiTransformasi formalModel SpiralIntegrasi daru komponen yang reusable
Waterfall (Air terjun)Pengembangan secara evolusiTransformasi formalModel SpiralIntegrasi daru komponen yang reusable
Biaya rekayasa perangkat lunak
Sekitar 60% untuk biaya pengembangan,40% biaya pengujian. Untuk perangkat lunakberbasis pengguna (custom), biaya evolusibiasanya melebihi biaya pengembangan.Biaya beragam tergantung pada tipe sistemyang akan dikembangkan dan kebutuhansistem seperti unjuk kerja dan kehandalansistem,Distribusi biaya bergantung pada modelpengembangan yang digunakan.
Sekitar 60% untuk biaya pengembangan,40% biaya pengujian. Untuk perangkat lunakberbasis pengguna (custom), biaya evolusibiasanya melebihi biaya pengembangan.Biaya beragam tergantung pada tipe sistemyang akan dikembangkan dan kebutuhansistem seperti unjuk kerja dan kehandalansistem,Distribusi biaya bergantung pada modelpengembangan yang digunakan.
Metode Rekayasa Perangkat Lunak
Pendekatan terstruktur pengembangan PLtermasuk model sistem, notasi, perancangandan petunjuk pemrosesan,Deskripsi Model: deskripsi pemodelandengan grafik,Aturan: Batasan yang digunakan pada modelsistemRekomendasi: nasihat bentuk perancanganyang baik,Petunjuk proses: Aktifitas yang harus diikuti,
Pendekatan terstruktur pengembangan PLtermasuk model sistem, notasi, perancangandan petunjuk pemrosesan,Deskripsi Model: deskripsi pemodelandengan grafik,Aturan: Batasan yang digunakan pada modelsistemRekomendasi: nasihat bentuk perancanganyang baik,Petunjuk proses: Aktifitas yang harus diikuti,
Atribut Perangkat Lunak yang baik:
PL seharusnya memberikan penggunakebutuhan fungsionalitas dan unjuk kerja yangdapat di rawat dan berguna.
Maintanability (Dapat Dirawat): PL harus dapatmemenuhi perubahan kebutuhanDependability: PL harus dapat dipercayaEfisiensi: PL harus efisien dalam penggunaanresourceUsability:PL harus dapat digunakan sesuaidengan yang direncanakan
PL seharusnya memberikan penggunakebutuhan fungsionalitas dan unjuk kerja yangdapat di rawat dan berguna.
Maintanability (Dapat Dirawat): PL harus dapatmemenuhi perubahan kebutuhanDependability: PL harus dapat dipercayaEfisiensi: PL harus efisien dalam penggunaanresourceUsability:PL harus dapat digunakan sesuaidengan yang direncanakan
Proses Perangkat Lunak
Suatu proses model adalah suaturepresentasi abstrak suatu model. Prosesmodel menampilkan suatu deskripsi suatuproses dari beberapa perspektif tertentu,
Proses PL merupakan aktifitas yang salingterkait (koheren) untuk menspesifikasikan,merancang, implementasi dan pengujiansistem perangkat lunak.
Suatu proses model adalah suaturepresentasi abstrak suatu model. Prosesmodel menampilkan suatu deskripsi suatuproses dari beberapa perspektif tertentu,
Proses PL merupakan aktifitas yang salingterkait (koheren) untuk menspesifikasikan,merancang, implementasi dan pengujiansistem perangkat lunak.
Model Proses PL yang Generic
Model Air terjun (Water fall)Memisahkan dan membedakan antara spesifikasi danpengembangan
Pengembangan yang berevolusiSpesifikasi dan pengembangan saling bergantian
Pengembangan sistem FormalMenggunakan suatu model sistem matematika yangditransformasikan ke implementasi,
Pengembangan berbasis Re-use (penggunaanulang)
Sistem dibangun dari komponen yang sudah ada.
Model Air terjun (Water fall)Memisahkan dan membedakan antara spesifikasi danpengembangan
Pengembangan yang berevolusiSpesifikasi dan pengembangan saling bergantian
Pengembangan sistem FormalMenggunakan suatu model sistem matematika yangditransformasikan ke implementasi,
Pengembangan berbasis Re-use (penggunaanulang)
Sistem dibangun dari komponen yang sudah ada.
Model Air Terjun (Water Fall)Requirements
definition
System andsoftware design
Implementationand unit testing
Integr ation andsystem testing
Operation andmaintenance
Requirementsdefinition
System andsoftware design
Implementationand unit testing
Integr ation andsystem testing
Operation andmaintenance
Proses kembali ke state sebelumnya untuk mengantisipasi perubahansetelah proses menuju ke suatu state di bawahnya adalah sangat sulit.
Fase Model Air Terjun
Analisis Kebutuhan danpendefinisiannyaPerancangan sistem dan PerangkatLunakImplementasi dan unit testingIntegrasi dan pengujian sistemPengoperasian dan perawatan
Analisis Kebutuhan danpendefinisiannyaPerancangan sistem dan PerangkatLunakImplementasi dan unit testingIntegrasi dan pengujian sistemPengoperasian dan perawatan
Partisi projek ke stages yang berbedatidak fleksibel.Hali ini mengakibatkan sulitnya untukmerespon perubahan kebutuhanpenggunaOleh sebab itu model ini hanya cocokdigunakan apabila kebutuhan penggunasudah dimengerti dengan baik,
Masalah pada Model Air Terjun:
Partisi projek ke stages yang berbedatidak fleksibel.Hali ini mengakibatkan sulitnya untukmerespon perubahan kebutuhanpenggunaOleh sebab itu model ini hanya cocokdigunakan apabila kebutuhan penggunasudah dimengerti dengan baik,
Pengembangan yang berevolusi(Evolutionary Development)
Pengembangan yang berdasarkan penyidikanTujuannya untuk mengaktifkan pengguna danmemperolah model final berasal dari initialspesifikasi awal. Seharusnya diawali dengankebutuhan yang sudah dimengerti,
Throw-away prototypingTujuannya adalah untuk memahami kebutuhansistem. Biasanya diawali dengan pemahamankebutuhan yang minim.
Pengembangan yang berdasarkan penyidikanTujuannya untuk mengaktifkan pengguna danmemperolah model final berasal dari initialspesifikasi awal. Seharusnya diawali dengankebutuhan yang sudah dimengerti,
Throw-away prototypingTujuannya adalah untuk memahami kebutuhansistem. Biasanya diawali dengan pemahamankebutuhan yang minim.
Evolutionary Development
Validation Finalversion
Development Intermediateversions
Specification Initialversion
Outlinedescription
Concurrentactivities
Validation Finalversion
Development Intermediateversions
Specification Initialversion
Outlinedescription
Concurrentactivities
Evolutionary Development
Permasalahan dalam model pengembangan yangberevolusi:
Kekurangan visibilitas prosesModel sistem biasanya tidak terstrukturMembutuhkan kemampuan khusus (mis.: bahasa pemrogramanuntuk rapid prototyping).
Pemakaian model pengembangan yang berevolusiUntuk sistem interaktif yang kecil atau menengahUntuk salah satu bagian dari sistem yang besar (mis. UserInterface)Untuk sistem yang digunakan tidak terlalu lama (short lifetime).
Permasalahan dalam model pengembangan yangberevolusi:
Kekurangan visibilitas prosesModel sistem biasanya tidak terstrukturMembutuhkan kemampuan khusus (mis.: bahasa pemrogramanuntuk rapid prototyping).
Pemakaian model pengembangan yang berevolusiUntuk sistem interaktif yang kecil atau menengahUntuk salah satu bagian dari sistem yang besar (mis. UserInterface)Untuk sistem yang digunakan tidak terlalu lama (short lifetime).
Pendekatan pengembangan sistemFormal
Berbasiskan pada transformasispesifikasi secara matematik melaluirepresentasi yang berbeda untuk suatuprogram yang dapat dieksekusi,Trasformasi menyatakan spesifikasiprogramMenggunakan pendekatan ‘Cleanroom’untuk pengembangan PL.
Berbasiskan pada transformasispesifikasi secara matematik melaluirepresentasi yang berbeda untuk suatuprogram yang dapat dieksekusi,Trasformasi menyatakan spesifikasiprogramMenggunakan pendekatan ‘Cleanroom’untuk pengembangan PL.
Pendekatan pengembangan sistemFormal
Requirementsdefinition
Formalspecification
Formaltransformation
Integrationandsystemtesting
Requirementsdefinition
Formalspecification
Formaltransformation
Integrationandsystemtesting
Pengembangan menggunakan konsepRe-use (Penggunaan Ulang)
Requirementsspecification
Componentanalysis
Developmentand integration
System designwith reuse
Requirementsmodification
Systemvalidation
Requirementsspecification
Componentanalysis
Developmentand integration
System designwith reuse
Requirementsmodification
Systemvalidation
Proses dengan metode Iterasi
Model Iterasi dapat digunakan pada setiapmodel proses generic. Terdapat duapendekatan:
Pengembangan IncrementalModel Spiral
Model Iterasi dapat digunakan pada setiapmodel proses generic. Terdapat duapendekatan:
Pengembangan IncrementalModel Spiral
Model Pengembangan Incremental
Pengembangan sistem berdasarkan modelsistem yang dipecah sehingga modelpengembangannya secara increament /bertahapKebutuhan pengguna diprioritaskan danpriritas tertinggi dimasukkan dalam awalincrementSetelah pengembangan suatu incrementdimulai, kebutuhan dibekukan dulu hinggaincrement berikutnya dimulai
Pengembangan sistem berdasarkan modelsistem yang dipecah sehingga modelpengembangannya secara increament /bertahapKebutuhan pengguna diprioritaskan danpriritas tertinggi dimasukkan dalam awalincrementSetelah pengembangan suatu incrementdimulai, kebutuhan dibekukan dulu hinggaincrement berikutnya dimulai
Model Pengembangan Incremental
Valida teincrement
Develop systemincrement
Design systemarchitecture
Integrateincrement
Valida tesystem
Define outlinerequirements
Assign requirementsto increments
System incomplete
Finalsystem
KeuntunganNilai penggunan dapat ditentukan pada setiap increamentsehingga fungsionalitas sistem disediakan lebih awal,Increment awal berupa prototype untuk membantu memahamikebutuhan pada increment berikutnya,Memiliki risiko lebih rendah terhadap keseluruhan pengembagansistem,Prioritas tertinggi pd pelayanan sistem adalah yang paling diuji.
Valida teincrement
Develop systemincrement
Design systemarchitecture
Integrateincrement
Valida tesystem
Define outlinerequirements
Assign requirementsto increments
System incomplete
Finalsystem
Model Pengembangan Spiral
Proses direpresentasikan sebagai modelspiral (bukan berupa barisan aktfitas yangdapat ditrack mundur)Setiap loop dalam model spiral menyatakanfase proses,Tidak terdapat fase tertentu sepertispesifikasi atau perancangan, tetapi loopdalam spiral ditentukan pada apa yangdibutuhkan,
Proses direpresentasikan sebagai modelspiral (bukan berupa barisan aktfitas yangdapat ditrack mundur)Setiap loop dalam model spiral menyatakanfase proses,Tidak terdapat fase tertentu sepertispesifikasi atau perancangan, tetapi loopdalam spiral ditentukan pada apa yangdibutuhkan,
Model Pengembangan Spiral
Riskanalys is
Riskanalys is
Riskanalys is
Riskanalysis Proto-
ty pe 1
Prototyp e 2Prototyp e 3
Opera-tionalprotoyp e
Concept o fOperation
Simulations, models, b en ch marks
S/Wrequi rements
Requi rementvalid ation
DesignV&V
Prod uctdesign Detailed
design
CodeUni t tes t
Integr ationtestAccep tance
testServ ice Develop, v erifynext -level p rod uct
Ev aluate altern ativesid en tify, resolve risk s
Determine ob jectiv esalternatives and
cons traints
Plan next p hase
Integrationand test p lan
Develop mentplan
Requi rements planLife-cycle plan
REVIEW
Riskanalys is
Riskanalys is
Riskanalys is
Riskanalysis Proto-
ty pe 1
Prototyp e 2Prototyp e 3
Opera-tionalprotoyp e
Concept o fOperation
Simulations, models, b en ch marks
S/Wrequi rements
Requi rementvalid ation
DesignV&V
Prod uctdesign Detailed
design
CodeUni t tes t
Integr ationtestAccep tance
testServ ice Develop, v erifynext -level p rod uct
Ev aluate altern ativesid en tify, resolve risk s
Determine ob jectiv esalternatives and
cons traints
Plan next p hase
Integrationand test p lan
Develop mentplan
Requi rements planLife-cycle plan
REVIEW
Sektor pada model Spiral
Menentukan TujuanMengidentifikasikan spesifikasi tujuan setiap fase
Menilai Resiko dan PengurangannyaResiko dinial dan aktifitas ditempatkan untukmengurangi resiko kunci
Pengembangan dan validasiSuatu model pengembangan sistem dipilih darimodel generic
PerencanaanProject di review dan fase spiral berikutnyadirencanakan
Menentukan TujuanMengidentifikasikan spesifikasi tujuan setiap fase
Menilai Resiko dan PengurangannyaResiko dinial dan aktifitas ditempatkan untukmengurangi resiko kunci
Pengembangan dan validasiSuatu model pengembangan sistem dipilih darimodel generic
PerencanaanProject di review dan fase spiral berikutnyadirencanakan
Spesifikasi Perangkat Lunak
Proses untuk menentukan pelayanan (servis)apa yang dibutuhkan dan kendala-kendalapengoperasian sistem serta pengembangannya
Proses Rekayasa Kebutuhan:Studi KelayakanAnalisis kebutuhanSpesifikasi KebutuhanValidasi spesifikasi
Proses untuk menentukan pelayanan (servis)apa yang dibutuhkan dan kendala-kendalapengoperasian sistem serta pengembangannya
Proses Rekayasa Kebutuhan:Studi KelayakanAnalisis kebutuhanSpesifikasi KebutuhanValidasi spesifikasi
Proses Rekayasa Kebutuhan:
Feasibilitystudy
Requirementselicitation and
analysisRequirementsspecification
Requirementsvalidation
Feasibilityreport
Systemmodels
User and systemrequirements
Requirementsdocument
Feasibilitystudy
Requirementselicitation and
analysisRequirementsspecification
Requirementsvalidation
Feasibilityreport
Systemmodels
User and systemrequirements
Requirementsdocument
Aktifitas dalam Perancangan:
Perancangan ArsitekturSpesifikasi AbstrakPerancangan InterfacePerancangan KomponenPerancangan Struktur DataPerancangan Algoritma
Perancangan ArsitekturSpesifikasi AbstrakPerancangan InterfacePerancangan KomponenPerancangan Struktur DataPerancangan Algoritma
Aktifitas dalam Perancangan:
Architecturaldesign
Abstractspecification
Interfacedesign
Componentdesign
Datastructuredesign
Algorithmdesign
Systemarchitecture
Softwarespecification
Interfacespecification
Componentspecification
Datastructure
specification
Algorithmspecification
Requirementsspecification
Design activities
Design products
Architecturaldesign
Abstractspecification
Interfacedesign
Componentdesign
Datastructuredesign
Algorithmdesign
Systemarchitecture
Softwarespecification
Interfacespecification
Componentspecification
Datastructure
specification
Algorithmspecification
Requirementsspecification
Design activities
Design products
Metode Perancangan
Pendekatan sistematis untuk merancangperangkat lunakPerancangan biasanya didokumentasikandengan model grafikBeberapa model yang dapat digunakan:
Data Flow ModelModel relasi atribut entitasModel terstrukturModel Object
Pendekatan sistematis untuk merancangperangkat lunakPerancangan biasanya didokumentasikandengan model grafikBeberapa model yang dapat digunakan:
Data Flow ModelModel relasi atribut entitasModel terstrukturModel Object
Pemrograman dan Debug
Translasi perancangan ke dalampemrograman dan menghilangkan error dariprogramPemrograman adalah aktifitas personal –tidak terdapat model program genericPemrogram melakukan beberapa programtesting untuk menemukan fault dalamprogram dan menghilangkan fault tersebutdalam proses debug.
Translasi perancangan ke dalampemrograman dan menghilangkan error dariprogramPemrograman adalah aktifitas personal –tidak terdapat model program genericPemrogram melakukan beberapa programtesting untuk menemukan fault dalamprogram dan menghilangkan fault tersebutdalam proses debug.
Pemrograman dan Debug
Locateerror
Designerror repair
Repairerror
Re-testprogram
Locateerror
Designerror repair
Repairerror
Re-testprogram
Validasi Perangkat Lunak
Verifikasi dan validasi bertujuan menunjukkan bahwasistem sesuai dengan spesifikasinya dan yangdiinginkan penggunaMelibatkan proses pengujian dan review sistemPengujian sistem melibatkan eksekusi sistem denganmenggunakan kasus tes yang ditentukan darispesifikasi data real yang akan diproses oleh sistem.
S u b - s ys te mt es t in g
M o d u let e s t i n g
U n i tt e s t i n g
S y s t e mt es t i n g
A c c e p ta n c et es t i n g
C o m p o n e n tt e s t i n g
I n t e g r a t io n t e s t in g U s e rt e s t i n g
Verifikasi dan validasi bertujuan menunjukkan bahwasistem sesuai dengan spesifikasinya dan yangdiinginkan penggunaMelibatkan proses pengujian dan review sistemPengujian sistem melibatkan eksekusi sistem denganmenggunakan kasus tes yang ditentukan darispesifikasi data real yang akan diproses oleh sistem.
Stage Pengujian Perangkat Lunak
Unit Testing: Pengujian Komponen-komponen secaraindividuModul Testing: Pengujian terhadap komponen yangsaling berhubungan,Sub-system Testing: Pengujian terhadap module-module sistem yang saling berhubungan. Fokus padapengujian interface.System Testing: Pengujian keseluruhan sistem,Acceptance Testing: Pengujian yang dilakukan olehpengguna untuk melihat apakah sistem sudah dapatditerima.
Unit Testing: Pengujian Komponen-komponen secaraindividuModul Testing: Pengujian terhadap komponen yangsaling berhubungan,Sub-system Testing: Pengujian terhadap module-module sistem yang saling berhubungan. Fokus padapengujian interface.System Testing: Pengujian keseluruhan sistem,Acceptance Testing: Pengujian yang dilakukan olehpengguna untuk melihat apakah sistem sudah dapatditerima.
Stage Pengujian Perangkat Lunak
Requirementsspecification
Systemspecification
Systemdesign
Detaileddesign
Moduleandunitcodeand tess
Sub-systemintegrationtest plan
Systemintegrationtest plan
Acceptancetest plan
Service Acceptancetest
Systemintegrationtest
Sub-systemintegrationtest
Requirementsspecification
Systemspecification
Systemdesign
Detaileddesign
Moduleandunitcodeand tess
Sub-systemintegrationtest plan
Systemintegrationtest plan
Acceptancetest plan
Service Acceptancetest
Systemintegrationtest
Sub-systemintegrationtest