![Page 1: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/1.jpg)
Metodologi Pengembangan Perangkat Lunak
Karmilasari
1
M.K.: Perancangan Perangkat Lunak
![Page 2: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/2.jpg)
2
Apa itu software?
• Program komputer dan seluruh dokumen yang terkait di dalamnya
• Produk perangkat lunak dapat dikembangkan untuk :– pelanggan tertentu (custom)– dikembangkan untuk pasar umum (generik)
![Page 3: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/3.jpg)
3
Apa itu software engineering?
• Software engineering adalah suatu disiplin perekayasaan yang terkait dengan semua aspek produksi perangkat lunak
• Perekayasa perangkat lunak harus mengadopsi pendekatan yang sistematis dan terorganisir untuk pekerjaan mereka dengan menggunakan perkakas dan teknik tertentu tergantung pada masalah yang akan dipecahkan, kendala pengembangan dan sumber daya yang tersedia
![Page 4: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/4.jpg)
4
Apa itu software process?
• Satu set kegiatan yang tujuannya adalah pengembangan atau evolusi dari perangkat lunak
• Aktivitas umum software processes :– Specification - sistem apa yang harus
dikembangkan dan kendala pengembangannya– Development - produksi software system– Validation – pengecekan apakah software
tersebut sudah sesuai dengan keinginan customer– Evolution – perubahan software dalam merespon
perubahan permintaan
![Page 5: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/5.jpg)
5
Apa itu software process model?
• Sebuah representasi sederhana dari proses perangkat lunak, yang disajikan dari perspektif tertentu
• Contoh process perspectives– Workflow perspective – urutan aktivitas– Data-flow perspective – alur informasi– Role/action perspective – siapa mengerjakan apa
• Generic process models– Waterfall– Evolutionary development– Formal transformation– Integration from reusable components
![Page 6: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/6.jpg)
6
Apa itu metode software engineering?
• Pendekatan terstruktur untuk pengembangan perangkat lunak yang meliputi model sistem, notasi, aturan, saran desain dan petunjuk proses
• Model descriptions– Deskripsi dari model grafis yang harus diproduksi
• Rules– Batasan yang diterapkan pada model sistem
• Recommendations– Rekomendasi untuk mendapatkan desain yang bagus
• Process guidance– Arahan kegiatan
![Page 7: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/7.jpg)
7
Atribut yang Dibutuhkan untuk Mengembangkan Software yang baik?• Maintainability
– Perangkat lunak harus berkembang untuk memenuhi perubahan kebutuhan
• Dependability– Software harus dapat dipercaya
• Efficiency– Software tidak memboroskan sumber daya sistem
• Usability– Perangkat lunak harus dapat digunakan oleh
pengguna
![Page 8: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/8.jpg)
8
Apa tantangan utama yang dihadapi software engineering?
• Mengatasi sistem pewarisan, mengatasi keragaman yang meningkat dan mengatasi tuntutan untuk mengurangi waktu pengiriman
• Legacy systems– Lama, sistem yang berharga harus dijaga dan
diperbarui• Heterogeneity
– Sistem didistribusikan dan mencakup gabungan hardware dan software
• Delivery– Ada tekanan yang meningkat untuk pengiriman
lebih cepat dari perangkat lunak
![Page 9: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/9.jpg)
State of The Art Metodologi Pengembangan Perangkat Lunak
9
• 1920an, alat bantu flowchart sudah mulai dikenal• Metodologi pengembangan perangkat lunak mulai
dikenal sejak tahun 1960an sejak diperkenalkannya SDLC (System Development Life Cycle)
• 1970an : Pemrograman Terstruktur• 1980an : Metodologi Analisa dan Perancangan
Sistem Terstruktur (Structured System Analysis and Design Methodology / SSADM)
![Page 10: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/10.jpg)
State of The Art Metodologi Pengembangan Perangkat Lunak
10
¨1990an :¤Object Oriented Programming (OOP)¤Rapid Application Development (RAD)¤Scrum Development¤Team Software Process (dibangun oleh Watts Humphey)
¨2000an :¤Extreme Programming (1999)¤Rational Unified Process /RUP (1998)¤Agile Unified Process / AUP (2005)¤Integrated Methodology (QAIassist –IM) (2007)
![Page 11: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/11.jpg)
11
Software Process• Satu set kegiatan terstruktur yang dibutuhkan
untuk mengembangkan sistem perangkat lunak– Specification– Design– Validation– Evolution
• Sebuah model proses perangkat lunak adalah representasi abstrak dari suatu proses. Hal ini menyajikan gambaran tentang suatu proses dari beberapa perspektif tertentu
![Page 12: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/12.jpg)
12
Model Process Generic Software
• Waterfall model– Memisahkan dan membedakan fase spesifikasi
dan pengembangan• Evolutionary development
– Spesifikasi dan pengembangan interleave• Formal systems development
– Model sistem matematik ditransformasikan ke implementasi
• Reuse-based development– Sistem dirakit dari komponen yang ada
![Page 13: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/13.jpg)
13
Waterfall modelRequirements
definition
System andsoftware design
Implementationand unit testing
Integration andsystem testing
Operation andmaintenance
![Page 14: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/14.jpg)
14
Fase Waterfall model• Mendefinisikan dan Menganalisis kebutuhan• Perancangan System dan Software• Pengujian unit dan Implementasi• Pengujian Sistem dan Integrasi• Pengoperasian dan Pemeliharaan• Kelemahan dari model air terjun adalah
sulitnya mengakomodasi perubahan setelah proses sedang berlangsung
![Page 15: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/15.jpg)
15
Masalah Waterfall model
• Partisi yang tidak fleksibel dari proyek pada tahap yang berbeda
• Hal ini membuat sulit untuk merespon kebutuhan pelanggan yang berubah
• Oleh karena itu, model ini hanya sesuai ketika persyaratan dipahami dengan baik
![Page 16: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/16.jpg)
16
Evolutionary development
• Exploratory development – Penetapan tujuan dikerjakan bersama dengan
pelanggan, termasuk pengembangan sistemnya,dari awal hingga akhir. Dimulai dengan pemahaman kebutuhan yang baik.
• Throw-away prototyping– Tujuan adalah untuk memahami kebutuhan
sistem. Dimulai dengan pemahaman kebutuhan yang kurang
![Page 17: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/17.jpg)
17
Evolutionary development
Validation Finalversion
Development Intermediateversions
Specification Initialversion
Outlinedescription
Concurrentactivities
![Page 18: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/18.jpg)
18
Evolutionary development• Masalah
– Kurangnya visibilitas proses– Sistem ini sering kurang terstruktur– Keterampilan khusus (misalnya dalam bahasa
untuk rapid prototyping) mungkin diperlukan• Applicability
– Untuk sistem interaktif yang kecil atau menengah– Untuk bagian dari sistem yang besar (misalnya
user interface)– Untuk sistem yang berumur pendek
![Page 19: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/19.jpg)
19
Formal systems development
• Berdasarkan pada transformasi spesifikasi matematika melalui representasi yang berbeda untuk program dieksekusi
• Transformasi adalah ‘corectness-preserving' sehingga sangat mudah untuk menunjukkan bahwa program tersebut sesuai dengan spesifikasinya
• Embodied in the ‘Cleanroom’ approach to software development
![Page 20: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/20.jpg)
20
Penggunaan formal methods
• Metode formal telah membatasi penerapan praktis
• Manfaat utamanya adalah mengurangi jumlah kesalahan dalam sistem sehingga daerah utama mereka adalah penerapan sistem kritis
• Penggunaan metode formal memiliki biaya-efektif
![Page 21: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/21.jpg)
21
Formal systems development
Requirementsdefinition
Formalspecification
Formaltransformation
Integration andsystem testing
![Page 22: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/22.jpg)
22
Penggunaan formal specification
• Spesifikasi formal melibatkan investasi lebih banyak usaha dalam fase awal dari pengembangan perangkat lunak
• Hal ini mengurangi kesalahan persyaratan dalam hal analisis rinci persyaratan
• Ketidaklengkapan dan inkonsistensi dapat ditemukan dan diselesaikan
• Ketidaklengkapan dan inkonsistensi dapat ditemukan dan diselesaikan
![Page 23: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/23.jpg)
23
List specification
Head (Create) = Undefined exception (empty list)Head (Cons (L, v)) = if L = Create then v else Head (L)Length (Create) = 0Length (Cons (L, v)) = Length (L) + 1Tail (Create ) = CreateTail (Cons (L, v)) = if L = Create then Create else Cons (Tail (L), v)
sort Listimports INTEGER
Defines a list where elements are added at the end and remo vedfrom the front. The oper ations are Create , which br ings an empty listinto e xistence , Cons , which creates a ne w list with an added member ,Length, which e valuates the list siz e, Head, which e valuates the frontelement of the list, and Tail, which creates a list b y remo ving the head from itsinput list. Undefined represents an undefined value of type Elem.
Create → ListCons (List, Elem) → ListHead (List) → ElemLength (List) → IntegerTail (List) → List
LIST ( Elem )
![Page 24: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/24.jpg)
24
Formal transformations
R2Formalspecification R3 Executable
program
P2 P3 P4
T1 T2 T3 T4
Proofs of transformation correctness
Formal transformations
R1
P1
![Page 25: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/25.jpg)
25
Formal systems development
• Masalah– Butuh keterampilan khusus dan pelatihan
untuk menerapkan teknik ini– Secara resmi sulit untuk menentukan
beberapa aspek dari sistem seperti user interface
• Applicability– Sistem kritis terutama kasus keamanan harus
dilakukan sebelum sistem ini dimasukkan ke dalam operasi
![Page 26: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/26.jpg)
26
Reuse-oriented developmentComponent-based software engineering /
Rekayasa Perangkat Lunak Berbasis Komponen
• Berdasarkan penggunaan kembali / reuse sistem yang sistematis di mana sistem terintegrasi dari komponen yang ada or COTS (Commercial-off-the-shelf) systems.
• Tahapan proses– Analisis Komponen;– Modifikasi Kebutuhan;– Perancangan Sistem dengan penggunaan kembali / reuse yang sudah
ada;– Pengembangan dan integrasi.
• Pendekatan ini mengalami peningkatan sejalan dengan penggunaan komponen standar telah muncul.
![Page 27: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/27.jpg)
27
Reuse-oriented development
Requirementsspecification
Componentanalysis
Developmentand integration
System designwith reuse
Requirementsmodification
Systemvalidation
![Page 28: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/28.jpg)
28
Process iteration
• Kebutuah sistem selalu berkembang dalam proyek sehingga proses iterasi pada tahap-tahap awal selalu dikerjakan ulang bagian dari proses untuk sistem yang besar
• Iterasi dapat diterapkan pada salah satu model proses generik
• Pendekatan– Incremental development– Spiral development
![Page 29: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/29.jpg)
29
Incremental development• Sistem sebagai pengiriman tunggal, pengem-
bangan dan pengiriman dipecah menjadi bertahap dengan setiap kenaikan memberikan bagian dari fungsi yang diperlukan
• Kebutuhan pengguna diprioritaskan dan persyaratan prioritas tertinggi dimasukkan dalam awal increment
• Setelah pengembangan suatu increment dimulai, kebutuhan dibekukan meskipun persyaratan untuk kenaikan nantinya bisa terus berkembang
![Page 30: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/30.jpg)
30
Incremental development
Validateincrement
Develop systemincrement
Design systemarchitecture
Integrateincrement
Validatesystem
Define outline requirements
Assign requirements to increments
System incomplete
Finalsystem
![Page 31: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/31.jpg)
31
Manfaat Incremental development• Nilai pelanggan dapat disampaikan dengan
kenaikan masing-masing sehingga fungsionalitas sistem tersedia sebelumnya
• Increment awal bertindak sebagai prototipe untuk membantu mendapatkan persyaratan untuk kenaikan kemudian
• Menurunkan resiko kegagalan proyek secara keseluruhan
• Layanan sistem prioritas tertinggi cenderung menerima pengujian paling banyak
![Page 32: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/32.jpg)
32
Extreme programming
• Pendekatan baru untuk pengembangan berdasarkan pengembangan dan pengiriman bertahap sangat kecil dari fungsi yang ada
• Mengandalkan kode perbaikan konstan, keterlibatan user dalam tim pengembangan dan pemrograman berpasangan
![Page 33: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/33.jpg)
33
Spiral development
• Proses digambarkan sebagai spiral bukan sebagai urutan aktivitas dengan backtracking
• Setiap loop dalam spiral merupakan tahap dalam proses.
• Tidak ada fase tetap seperti spesifikasi atau desain - loop dalam spiral dipilih tergantung pada apa yang dibutuhkan.
• Risiko secara eksplisit dinilai dan diselesaikan selama proses.
![Page 34: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/34.jpg)
34
Software process : Spiral model
Riskanalysis
Riskanalys is
Riskanalys is
Riskanalysis Proto-
ty pe 1
Prototyp e 2Prototyp e 3
Opera-tionalprotoyp e
Concept ofOperation
Simulations, models, b ench marks
S/Wrequirements
Requirementvalid ation
DesignV&V
Productdesign Detailed
design
CodeUnit tes t
Integr ationtestAcceptance
testServ ice Develop, verifynext-level prod uct
Ev aluate alternativesid entify, resolve risks
Determine ob jectivesalternatives and
constraints
Plan next p hase
Integrationand test p lan
Developmentplan
Requirements planLife-cycle plan
REVIEW
![Page 35: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/35.jpg)
35
Spiral model sectors• Setting Tujuan
– Tujuan khusus untuk fase identifikasi• Penilaian dan Pengurangan Resiko
– Resiko dinilai dan kegiatan disiapkan untuk mengurangi resiko kunci
• Pengembangan dan Validasi– Sebuah model pengembangan untuk sistem terpilih yang
dapat menjadi salah satu model generik• Perencanaan
– Proyek terakhir di-review dan fase berikutnya dari spiral direncanakan
![Page 36: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/36.jpg)
Aktivitas Proses
• Spesifikasi Perangkat Lunak• Perancangan dan implementasi peranngkat
lunak• Validasi perangkat lunak• Evolusi perangkat lunak
36
![Page 37: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/37.jpg)
Spesifikasi Perangkat Lunak
• Proses dibangun dari layanan apa saja yang dibutuhkan dan batasan operasi dan pengembangan sistem
• Kebutuhan rekayasa proses– Studi kelayakan– Kebutuhan analisis– Kebutuhan spesifikasi;– Kebutuhan validasi.
37
![Page 38: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/38.jpg)
Kebutuhan Rekayasa Proses
Feasibilitystud y
Requir ementselicitation and
anal ysisRequir ementsspecification
Requir ementsvalidation
Feasibilityrepor t
Systemmodels
User and systemrequirements
Requir ementsdocument
38
![Page 39: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/39.jpg)
Perancangan dan Implementasi Perangkat Lunak
• Proses konversi spesifikasi sistem ke dalam eksekusi sistem.
• Perancangan perangkat lunak– Merancang struktur perangkat lunak yang
sesuai dengan spesifikasi• Implementasi perangkat lunak
– Translasi struktur ke dalam eksekusi program• Aktivitas perancangan dan implementasi
saling berelasi satu dengan yang lain.39
![Page 40: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/40.jpg)
Aktivitas Proses Perancangan
• Perancangan arsitektur• Spesifikasi Abstrak• Perancangan Pengantarmukaan• Perancangan Komponen• Perancangan Struktur Data• Perancangan Algoritma
40
![Page 41: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/41.jpg)
Proses Perancangan Perangkat Lunak
Architecturaldesign
Abstractspecification
Interfacedesign
Componentdesign
Datastructuredesign
Algorithmdesign
Systemarchitecture
Softwarespecification
Interfacespecification
Componentspecification
Datastructure
specification
Algorithmspecification
Requirementsspecification
Design activities
Design products
41
![Page 42: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/42.jpg)
Metode Terstruktur
• Pendekatan sistematis untuk membangun rancangan perangkat lunak
• Perancangan biasanya didokukentasikan dalam suatu set model grafis
• Model grafis yang digunakan :– Object model;– Sequence model;– State transition model;– Structural model;– Data-flow model. 42
![Page 43: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/43.jpg)
Pemrograman dan Debugging
• Translasi dari rancangan ke dalam program dan penanganan kesalahan dalam program
• Program merupakan aktivitas personal, dimana proses pemrograman tidak generik
• Pemrogram melakukan beberapa pengujian pada program untuk menemukan kesalahan dalam program dan melakukan proses perbaikan / debugging
43
![Page 44: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/44.jpg)
Proses Debugging /Penanganan Kesalahan
Locateerr or
Designerror repair
Repairerror
Re-testpr ogram
44
![Page 45: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/45.jpg)
Validasi Perangkat Lunak
• Verifikasi dan validasi (V & V) dimaksudkan untuk menunjukkan bahwa sistem sesuai dengan spesifikasi dan memenuhi persyaratan pelanggan sistem
• Terlibat dalam pemeriksaan, peninjauan dan proses dan pengujian sistem
• Pengujian sistem melibatkan eksekusi sistem dengan uji kasus yang berasal dari spesifikasi data sebenarnya yang akan diproses oleh sistem. 45
![Page 46: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/46.jpg)
Proses Uji Coba
Componenttesting
Systemtesting
Acceptancetesting
46
![Page 47: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/47.jpg)
Tahapan Uji Coba• Uji Coba Unit atau Komponen
– Komponen individual diuji secara independen– Komponen dapat berupa fungsi atau objek atau
kelompok koheren dari suatu entitas• Uji Coba Sistem
– Uji coba sistem secara keseluruhan. – Uji coba terhadap sifat-sifat yang muncul sangat
penting diperhatikan• Uji Coba Penerimaan
– Uji coba dengan data pelanggan untuk memeriksa apakah sistem menerima kebutuhan pelanggan
47
![Page 48: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/48.jpg)
Fase Uji Coba
Requir ementsspecifica tion
Systemspecifica tion
Systemdesign
Detaileddesign
Module andunit codeand test
Sub-systeminteg ration
test plan
Systeminteg rationtest plan
Acceptancetest plan
Service Acceptancetest
Systeminteg ration test
Sub-systeminteg ration test
48
![Page 49: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/49.jpg)
Evolusi Perangkat Lunak
• Perangkat lunak rentan terhadap perubahan. • Perubahan keadaan bisnis, biasanya membutuhkan
penyesuaian perangkat lunak yang mendukung perubahan tersebut.
• Terdapat garis batas yang tipis antara pengembangan dan evolusi (pemeliharaan) terkait dengan perubahan (walaupun sedikit) menjadi suatu sistem baru yang lebih sempurna (sesuai dengan kebutuhan terkini)
49
![Page 50: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/50.jpg)
Evolusi Sistem
Assess existingsystems
Define systemrequirements
Propose systemchanges
Modifysystems
Newsystem
Existingsystems
50
![Page 51: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/51.jpg)
Rational Unified Process (RUP)
• Suatu model proses modern diturunkan dari UML (Unified Modelling Languange) dan proses-proses yang terkait di dalamnya.
• Terdapat 3 perspektif – Perspektif Dinamik, yang menunjukkan fase dari
waktu ke waktu– Perspektif Statik, yang menunjukkan proses
aktivitas– Perspektif Praktis, yang menyarankan pemakaian
terbaik 51
![Page 52: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/52.jpg)
Mode Fase RUP
Phase iteration
Inception Elaboration Construction Transition
52
![Page 53: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/53.jpg)
Fase RUP• Inception / Permulaan
– Penetapan kasus bisnis untuk sistem.• Elaboration / Elaborasi-Perluasan
– Pengembangan dan pemahaman domain masalah dan arsitektur sistem
• Construction / Pembangunan– Perancangan sistem, pemrograman dan uji coba
• Transition / Transisi– Penyebarluasan sistem di lingkungan
operasional 53
![Page 54: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/54.jpg)
Praktek RUP Yang Baik
• Membangun perangkat lunak secara iteratif• Mengelola kebutuhan• Menggunakan arsiterktur berbasis
komponen• Perangkat lunak dengan model visual• Memverifikasi kualitas perangkat lunak• Pengendalian terhadapa perubahan
perangkat lunak54
![Page 55: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/55.jpg)
Aliran Kerja StatikWorkflow Description
Business modelling The business processes are modelled using business use cases.
Requirements Actors who interact with the system are identified and use cases aredeveloped to model the system requirements.
Analysis and design A design model is created and documented using architecturalmodels, component models, object models and sequence models.
Implementation The components in the system are implemented and structured intoimplementation sub-systems. Automatic code generation from designmodels helps accelerate this process.
Test Testing is an iterative process that is carried out in conjunction withimplementation. System testing follows the completion of theimplementation.
Deployment A product release is created, distributed to users and installed in theirworkplace.
Configuration andchange management
This supporting workflow managed changes to the system (seeChapter 29).
Project management This supporting workflow manages the system development (seeChapter 5).
Environment This workflow is concerned with making appropriate software toolsavailable to the software development team.
55
![Page 56: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/56.jpg)
Computer-Aided Software Engineering(CASE)
• Computer-aided software engineering (CASE) merupakan perangkat lunak yang mendukung pengembangan perangkat lunak dan proses evolusi
• Otomatisasi Aktivitas– Editor Grafis untuk pengembangan model sistem– Kamus data untuk mengelola perancangan entitas– GUI (Graphical User Interface) untuk membangun
pengantarmukaan pengguna– Debugger untuk mendukung pencarian kesalahan program– Translator otomatis untuk men-generate versi baru dari suatu
program
56
![Page 57: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/57.jpg)
Teknologi CASE
• Teknologi CASE telah membawa perbaikan yang signifikan dalam proses perangkat lunak.
• Namun demikian ada beberapa hal yang perlu dipetimbangkan dalam penggunaan CASE :– Rekayasa perangkat lunak membutuhkan
pemikiran kreatif – tidak selalu dapat diotomatisasi– Rekayasa perangkat lunak adalah kegiatan tim dan
untuk proyek-proyek besar, banyak waktu yang dihabiskan dalam interaksi tim. Teknologi CASE tidak benar-benar mendukung untuk hal tersebut57
![Page 58: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/58.jpg)
Klasifikasi CASE
• Klasifikasi membantu kita memahami perbedaan tipe perangkat pendukung (tools) CASE dalam mendukung proses aktivitas
• Perspektif Fungsional– Perangkat pendukung (tools) diklasifikasikan berdasarkan fungsi
spesifik• Perspektif Proses
– Perangkat pendukung (tools) diklasifikasikan berdasarkan aktivitas proses yang didukungnya
• Perspektif Integrasi– Perangkat pendukung (tools) diklasifikasikan berdasarkan organisasi
dan unit yang terintegrasi di dalamnya.
58
![Page 59: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/59.jpg)
Klasifikasi Perangkat Fungsional
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 dictionaries, code generators
Language-processing tools Compilers, interpreters
Program 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
59
![Page 60: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/60.jpg)
Klasifikasi Perangkat Berbasis Aktivitas
Specification Design Implementation Verificationand
Validation
Re-eng ineering tools
Testing tools
Debugg ing tools
Prog ram analysis tools
Language-processingtools
Method suppor t tools
Prototyping tools
Configurationmanagement tools
Change management tools
Documentation tools
Editing tools
Planning tools
60
![Page 61: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/61.jpg)
Integrasi CASE• Tools / Perangkat
– Dukungan proses tugas individual, seperti perancangan, pengecekan konsistensi, text editing dsb.
• Workbenches– Dukungan fase proses seperti spesifikasi atau perancangan.
Biasanya menggunakan sejumlah perangkat / tools yang terintegrasi
• Environments / Lingkungan– Dukungan terhadap semua atau sebagian besar dari proses
software secara keseluruhan. Biasanya termasuk terintegrasi beberapa workbenches.
61
![Page 62: Metodologi Pengembangan Perangkat Lunakkarmila.staff.gunadarma.ac.id/Downloads/files/31313/Model... · Apa itu software engineering? ... Metodologi Pengembangan Perangkat Lunak 9](https://reader030.vdocuments.mx/reader030/viewer/2022021509/5a8db8197f8b9af27f8c7e83/html5/thumbnails/62.jpg)
Tools, Workbenches, Environments
Single-methodworkbenches
Gener al-purposeworkbenches
Multi-methodworkbenches
Langua ge-specificworkbenches
Pro gramming TestingAnalysis anddesign
Integ rateden vironments
Process-centr eden vironments
Filecompar atorsCompilersEditors
EnvironmentsWor kbenchesTools
CASEtechnolo g y
62