2
Topik Bahasan
Pengertian Perangkat Lunak
Pengertian Software Engineering
Evolusi Perangkat Lunak / Software
Sifat Dan Karakteristik Software
Komponen Perangkat Lunak
Masalah Perangkat Lunak
3
Computer Science
4
Pengertian Perangkat Lunak
5
Software Engineering
6
Evolusi Perangkat Lunak
7
Sifat dan Karakteristik Software
Software merupakan elemen sistem logik dan bukan elemen
sistem fisik seperti hardware
Elemen itu tidak aus, tetapi bisa rusak.
Elemen software itu direkayasa atau dikembangkan dan
8
Komponen Perangkat Lunak
1. Bentuk Bahasa
2. Bentuk Translator
3. Bentuk Mesin
9
Masalah Perangkat Lunak
1. Estimasi jadwal dan biaya yang seringkali tidak tepat
2. Produktivitas orang-orang software(programmer) yang tidak
dapat mengimbangi permintaan kebutuhan software
3. Kualitas software yang kurang baik.
10
Solusi Masalah Perangkat Lunak
1. Memperoleh biaya software yang lebih rendah.
2. Menghasilkan Software berkinerja tinggi , handal dan tepat
waktu.
3. Menghasilkan Software yang dapat bekerja pada berbagai
platform.
4. Menghasilkan software dengan biaya perawatan rendah.
11
It’s Back To Software Engineering
Methodology Process !!!!!
12
Rekayasa Perangkat Lunak Yang Baik
Memiliki methodology yang cocok dan juga compatible
dengan perangkat lunak yang akan dibangun.
Mengikuti prinsip dari rekayasa perangkat lunak
13
Prinsip Rekayasa Perangkat Lunak
The Reason It all Exists
Keep It Simple
Maintain the vision
What You Produce Other Will Consume
Be Open To The Future
Plan Ahead For Reuse
Think Firts !!!!
14
NEXT ---- > Model dan Metode PPL
15
Sesi 2 Model Dan Metode PPL
TP501 – Pembangunan Perangkat Lunak
Eka Lia Febrianti, S.Kom, M.Kom.
Topik Bahasan
Waterfall Development Model
Prototype Development Model
Rapid Application Development
17
Waterfall Development Model
merupakan paradigma model pengembangan perangkat lunak
paling tua, dan paling banyak dipakai. Model ini mengusulkan
sebuah pendekatan perkembangan perangkat lunak yang
sistematik dan sekuensial yang dimulai pada tingkat dan
kemajuan sistem pada seluruh tahapan analisis, desain , kode,
pengujian, dan pemeliharaan.
18
Tahapan Model Waterfall
19
Waterfall – Analisa Kebutuhan
• Pada tahapan ini dilakukan pengumpulan kebutuhan dari
perangkat lunak yang akan dibangun, dimana kebutuhan itu
meliputi kebutuhan fungsional (Kebutuhan Bisnis) dan
Kebutuhan Non Functional (Performance , Scalability , Dan
Sutainability)
20
Waterfall – Desain
• Tahapan ini melihat bagaimana perangkat lunak akan dibangun dan
bagaimana sistem akan beroperasi dengan penekanan khusus pada
perangkat keras, perangkat lunak, infrastruktur jaringan dan antarmuka
pengguna. Tujuan utama tahap ini adalah menciptakan blueprint yang
akan memenuhi semua persyaratan yang ada pada analisa kebutuhan,
kemudian mengidentifikasi semua input, proses dan output yang
dibutuhkan dan juga untuk membantu menghindari kesalahpahaman
dengan melibatkan para pemangku kepentingan seperti manajer dan
pengguna.
• Ada Dua Jenis Design
1. Logical Design
2. Physical Design
21
Waterfall - Pengkodean
22
Waterfall - Pengujian
Setelah Proses Pengkodean selesai, dilanjutkan dengan proses
pengujian pada program perangkat lunak, baik Pengujian logika
internal, maupun Pengujian eksternal fungsional untuk
memeriksa segala kemungkinan terjadinya kesalahan dan
memeriksa apakah hasil dari pengembangan tersebut sesuai
dengan hasil yang diinginkan.
1. Unit Testing
2. Integration testing
3. Stress Testing
23
Waterfall - Implementasi
Tahap ini berkaitan erat dengan proses deployment program
yang telah diselesaikan dan diuji , proses deployment
dilakukan dengan memperhitungkan (Server , Jaringan ,
Storage). Pada Tahap Ini Juga terjadi proses instalasi
program yang telah dibuat.
25
Kekurangan Model Waterfall
Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga
perubahan yang terjadi dapat menyebabkan hasil yang sudah didapatkan tim
pengembang harus diubah kembali/iterasi sering menyebabkan masalah baru.
Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena
komitmen harus dilakukan pada tahap awal proses.
Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh
customer/pelanggan.
Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap per
tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap
sebelumnya sudah benar-benar selesai.
Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim
pengembang yang sedang membuat produk.
Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu
anggota tim proyek lainnya menuntaskan pekerjaannya.
26
Model Prototype
Dalam Model Prototype, prototype dari perangkat lunak yang
dihasilkan kemudian dipresentasikan kepada pelanggan, dan
pelanggan tersebut diberikan kesempatan untuk memberikan
masukan sehingga perangkat lunak yang dihasilkan nantinya
betul-betul sesuai dengan keinginan dan kebutuhan
pelanggan.
Perubahan dan presentasi prototype dapat dilakukan berkali-
27
Tahapan Model Prototype
28
Prototype – Initial Requirement
Pelanggan dan pengembang bersama-sama mendefinisikan
format seluruh perangkat lunak, mengidentifikasikan semua
kebutuhan, dan garis besar sistem yang akan dibuat.
29
Prototype - Prototyping
Membangun prototyping dengan membuat perancangan
sementara yang berfokus pada penyajian kepada pelanggan
(misalnya dengan membuat input dan format output)
30
Prototype - Evaluasi
Evaluasi ini dilakukan oleh pelanggan, apakah prototyping
yang sudah dibangun sudah sesuai dengan keinginan
pelanggan atau belum. Jika sudah sesuai, maka langkah
selanjutnya akan diambil. Namun jika tidak, prototyping
direvisi dengan mengulang langkah-langkah sebelumnya.
31
Protoype - Code
Pada tahapan ini prototype yang sudah disetujui / disepakati
diterjemahkan kedalam bahasa pemrograman yang sesuai
32
Prototype – Pengujian Sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang
siap pakai, kemudian dilakukan proses Pengujian. Pengujian
ini dilakukan dengan White Box, Black Box, Basis Path,
pengujian arsitektur, dll.
33
Prototype - Maintain
Perangkat lunak yang telah diuji dan diterima pelanggan siap
untuk digunakan. Dan di pelihara , untuk menjaga
sustainability dari program yang dibuat.
34
Kelebihan Model Prototype
Pelanggan berpartisipasi aktif dalam pengembangan sistem,
sehingga hasil produk pengembangan akan semakin mudah
disesuaikan dengan keinginan dan kebutuhan pelanggan.
Penentuan kebutuhan lebih mudah diwujudkan.
Mempersingkat waktu pengembangan produk perangkat lunak.
Adanya komunikasi yang baik antara pengembang dan pelanggan.
Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan
pelanggan.
Lebih menghemat waktu dalam pengembangan sistem.
Penerapan menjadi lebih mudah karena pelanggan mengetahui apa
yang diharapkannya.
35
Kekurangan Model Prototype
Proses analisis dan perancangan terlalu singkat.
Biasanya kurang fleksibel dalam mengahadapi perubahan.
Walaupun pemakai melihat berbagai perbaikan dari setiap
36
Rapid Application Development
Rapid Aplication Development (RAD) adalah sebuah model
proses pengembangan perangkat lunak sekuensial linier yang
menekankan siklus perkembangan yang sangat pendek (kira-
kira 60 sampai 90 hari). Model RAD ini merupakan sebuah
adaptasi “kecepatan tinggi” dari model sekuensial linier dimana
perkembangan cepat dicapai dengan menggunakan
pendekatan konstruksi berbasis komponen
37
TAHAPAN RAD
38
RAD – Business Modelling
Fase ini untuk mencari aliran informasi yang dapat menjawab
pertanyaan berikut:
39
RAD – Data Modelling
Selama tahap Pemodelan Data, semua informasi yang
dikumpulkan selama fase Modeling Bisnis dianalisis. Melalui
analisis, informasi dikelompokkan bersama menjadi
kelompok-kelompok berbeda yang dapat berguna bagi
perusahaan. Kualitas setiap kelompok informasi secara hati-
hati diperiksa dan diberi deskripsi yang akurat. Hubungan
antara kelompok-kelompok ini dan kegunaannya
sebagaimana didefinisikan dalam langkah Modeling Bisnis
juga ditetapkan selama fase ini.
40
RAD - Process Modeling
Aliran informasi yang didefinisikan di dalam fase data
modeling ditransformasikan untuk mencapai aliran informasi
yang perlu bagi implementasi sebuah fungsi bisnis.
Gambaran pemrosesan diciptakan untuk menambah,
memodifikasi, menghapus, atau mendapatkan kembali
sebuah objek data.
41
RAD - Application Generation
Selain menggunakan bahasa pemrograman generasi ketiga,
RAD juga memakai komponen program yang telah ada atau
menciptakan komponen yang bisa dipakai lagi. Ala-alat bantu
bisa dipakai untuk memfasilitasi konstruksi perangkat lunak.
42
RAD - Testing and Turnover
Karena proses RAD menekankan pada pemakaian kembali,
banyak komponen program telah diuji. Hal ini mengurangi
keseluruhan waktu pengujian. Tetapi komponen baru harus
diuji dan semua interface harus dilatih secara penuh.
43
Kelebihan RAD
Lebih efektif dari Pengembangan Model waterfall/sequential
linear dalam menghasilkan sistem yang memenuhi
kebutuhan langsung dari pelanggan.
Cocok untuk proyek yang memerlukan waktu yang singkat.
Model RAD mengikuti tahap pengembangan sistem seperti
44
Kekurangan RAD
Model RAD menuntut pengembangan dan pelanggan memiliki komitmen di
dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di
dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak
ada, proyek RAD akan gagal.
Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan
dengan teratur, pembangunan komponen penting pada RAD akan menjadi
sangat bermasalah.
RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang
tinggi.
Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah
proyek dalam skala besar.
Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat
kontrak baru antara pengembang dan pelanggan.
45
What Next
Agile Software Development
Evolutionary Software Process Models
46
Sesi 3 Model Dan Metode PPL
TP501 – Pembangunan Perangkat Lunak
Eka Lia Febrianti, M.Kom.
Topik Bahasan
Evolutionary Software Process Models
Agile Development Model
48
Evolutionary Software Process Models
Model Evolutionary Development bersifat iteratif (mengandung
perulangan). Hasil prosesnya berupa produk yang makin lama
makin lengkap sampai versi terlengkap dihasilkan sebagai
produk akhir dari proses. Model Evolutionary Development /
Evolutionary Software Process terbagi menjadi 2, yaitu :
1. Model Incremental
2. Model Spiral
49
Model Incremental
Model Incremental merupakan hasil kombinasi elemen-
elemen dari model waterfall yang diaplikasikan secara
berulang, atau bisa disebut gabungan dari Model linear
sekuensial (waterfall) dengan Model Prototype. Elemen-
elemen tersebut dikerjakan hingga menghasilkan produk
dengan spesifikasi tertentu kemudian proses dimulai dari
awal kembali hingga muncul hasil yang spesifikasinya lebih
lengkap dari sebelumnya dan tentunya memenuhi kebutuhan
pemakai.
50
Tahapan Model Incremental
51
Kelebihan Model Incremental
Personil bekerja optimal.
mampu mengakomodasi perubahan secara fleksibel, dengan
52
Kekurangan Model Incremental
Tidak cocok untuk proyek berukuran besar (lebih dari
200.000 baris coding).
Sulit untuk memetakan kebutuhan pemakai ke dalam
53
Model Spiral
Model ini mengadaptasi dua model perangkat lunak yang ada
yaitu model prototyping dengan pengulangannya dan model
waterfall dengan pengendalian dan sistematikanya. Model ini
dikenal dengan sebutan Spiral Boehm. Pengembang dalam
model ini memadupadankan beberapa model umum tersebut
untuk menghasilkan produk khusus atau untuk menjawab
persoalan-persoalan tertentu selama proses pengerjaan proyek.
54
Tahapan Model Spiral
55
Tahapan Model Spiral
Tahap Liason:pada tahap ini dibangun komunikasi yang baik dengan calon
pengguna/pemakai.
Tahap Planning (perencanaan):pada tahap ini ditentukan sumber-sumber
informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.
Tahap Analisis Resiko:mendefinisikan resiko, menentukan apa saja yang menjadi
resiko baik teknis maupun manajemen.
Tahap Rekayasa (engineering):pembuatan prototipe.
Tahap Konstruksi dan Pelepasan (release):pada tahap ini dilakukan
pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan
sokongan-sokongan tambahan untuk keberhasilan proyek.
Tahap Evaluasi:Pelanggan/pemakai/pengguna biasanya memberikan masukan
berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
56
Kelebihan Model Spiral
sangat mempertimbangkan resiko kemungkinan munculnya
kesalahan sehingga sangat dapat diandalkan untuk
pengembangan perangkat lunak skala besar. Pendekatan
model ini dilakukan melalui tahapan-tahapan yang sangat baik
dengan menggabungkan model waterfall ditambah dengan
pengulangan-pengulangan sehingga lebih realistis untuk
mencerminkan keadaan sebenarnya. Baik pengembang
maupun pemakai dapat cepat mengetahui letak kekurangan
dan kesalahan dari sistem karena proses-prosesnya dapat
diamati dengan baik..
57
Kekurangan Model Spiral
Waktu yang dibutuhkan untuk mengembangkan perangkat
lunak cukup panjang demikian juga biaya yang besar. Selain
itu, sangat tergantung kepada tenaga ahli yang dapat
memperkirakan resiko. Terdapat pula kesulitan untuk
mengontrol proses. Sampai saat ini, karena masih relatif baru,
belum ada bukti apakah metode ini cukup handal untuk
diterapkan.
58
Agile Software Development
Agile Development Methods adalah sekelompok metodologi
pengembangan perangkat lunak yang didasarkan pada prinsip-
prinsip yang sama atau pengembangan sistem jangka pendek
yang memerlukan adaptasi cepat dari pengembang terhadap
perubahan dalam bentuk apapun. Agile memiliki pengertian
bersifat cepat, ringan, bebas bergerak, dan waspada
59
Agile Alliance’s Manifesto
Interaksi dan personel lebih penting daripada proses dan alat, di dalam agile
interaksi antar anggota tim sangatlah penting, karena tanpa adanya interaksi yang
baik maka proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap,
saat melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi
dengan baik akan lebih berguna daripada dokumentasi yang lengkap.
Kolaborasi dengan klien lebih penting daripada negosiasi kontrak, salah satu ciri
dari agile adalah klien menjadi bagian dari tim pengembangan perangkat lunak.
Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak
sangatlah penting ketika menggunakan agile. Karena fungsi-fungsi dari perangkat
lunak yang dikembangkan harus terus menerus dibicarakan dan diimprovisasi
disesuaikan dengan keinginan klien.
Respon terhadap perubahan lebih penting daripada mengikuti rencana, agile
development methods berfokus terhadap kecepatan respon tim ketika klien
menginginkan perubahan saat proses pembuatan perangkat lunak.
60
Model Agile Development Method
Acceptance Test Driven Development (ATDD)
Agile Modeling
Adaptive Software Development (ASD)
Crystal Methods
Dynamic Systems Development Method (DSDM)
Scrum
Extreme Programming
Kanban
61
Tahap Utama Agile Development Method
62
Kelebihan Agile Development Methods
Proses Iterative dan Incremental
Requirement dapat berubah sewaktu-waktu
Pelacakan requirement dengan melihat Backlog produk
Keterlibatan user secara aktif
Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir
iterasi
Testing dilakukan setiap saat
63
Kekurangan Agile Development Method
Agile jarang dipraktekkan secara langsung
Interksi dengan customers yang berlebihan
Agile sulit diimplementasikan dalam proyek yang berskala
besar
Membutuhkan manajemen tim yang terlatih
Lemah dalam perencanaan arsitektur, 2 Scrum dan Extreme
Programming
Keterbatasan waktu dalam perencanaan Proyek
64
What Next
Software Quality
65
Sesi 4 Software Quality
TP501 – Pembangunan Perangkat Lunak
Eka Lia Febrianti, S.Kom.M.Kom.
Topik Bahasan
Apa Yang Dimaksud Dengan Software Quality
Kriteria Software Yang Berkualitas
Kualitas Software menurut Mc Call
67
Bagaimana Menilai Suatu Software ???
68
Software Quality
Software quality adalah pemenuhan terhadap kebutuhan
fungsional dan kinerja yang didokumentasikan secara eksplisit,
pengembangan standar yang didokumentasikan secara
eksplisit, dan sifat-sifat implisit yang diharapkan dari sebuah
software yang dibangun secara profesional
69
Kriteria Software Berkualitas
Memenuhi kebutuhan pemakai.
70
Mc Call Software Quality
McCall dan kawan-kawan pada tahun 1977 telah mengusulkan
suatu penggolongan faktor-faktor atau kriteria yang mempengaruhi
kualitas software. Pada dasarnya, McCall menitikberatkan faktor-
faktor tersebut menjadi tiga aspek penting, yaitu yang berhubungan
dengan:
Revision
Daya adaptasi atau penyesuaian software terhadap lingkungan
71
Product Operation
Sifat-sifat operasional suatu software berkaitan dengan hal-hal
yang harus diperhatikan oleh para perancang dan
pengembang yang secara teknis melakukan penciptaan
sebuah aplikasi. Hal-hal yang diukur di sini adalah yang
berhubungan dengan teknis analisa, perancangan, dan
konstruksi sebuah software.
72
Product Operation Lanjutan
Faktor-faktor McCall yang berkaitan dengan sifat-sifat operasional software
adalah:
73
Product Revision
74
Faktor-Faktor Product Revision
Faktor-faktor McCall yang berkaitan dengan kemampuan
software untuk menjalani perubahan adalah:
75
Product Transition
Setelah integritas software secara teknis telah diukur dengan
menggunakan faktor product operational dan secara
implementasi telah disesuaikan dengan faktor product revision,
faktor terakhir yang harus diperhatikan adalah faktor transisi –
yaitu bagaimana software tersebut dapat dijalankan pada
beberapa platform atau kerangka sistem yang beragam.
76
Faktor Product Transition
Faktor-faktor McCall yang berkaitan dengan tingkat adaptibilitas
software terhadap lingkungan baru:
77
Jadi ???
78
Kesimpulan
79
NEXT
Software Quality Assurance
80
Sesi 5 Software Quality Assurance
TP501 – Pembangunan Perangkat Lunak
Eka Lia Febrianti, S.Kom, M.Kom.
Topik Bahasan
Apa Itu Quality Management
Apa Yang Dimaksud Dengan Software Quality Assurance
ISO 9001
82
Quality Management
83
SQA
Software Quality Assurance adalah proses sistematis untuk
memeriksa apakah sebuah software telah dikembangkan
sesuai dengan kebutuhan yang telah ditentukan sebelumnya
atau tidak.
84
Element SQA
Software Quality Assurance - pembentukan jaringan prosedur dan
standar organisasi yang mengarah ke perangkat lunak berkualitas
tinggi
Software Quality Planning - pemilihan prosedur dan standar yang tepat
dari kerangka kerja ini dan adaptasi ini ke proyek perangkat lunak
tertentu
Software Quality Control - definisi dan pemberlakuan proses yang
memastikan bahwa prosedur dan standar kualitas proyek sedang
diikuti oleh tim pengembangan perangkat lunak
Software Quality Metrics - mengumpulkan dan menganalisis data
berkualitas untuk memprediksi dan mengontrol kualitas produk
perangkat lunak yang sedang dikembangkan
85
QA And QE ?
QA Tester memiliki tugas utama melaksanakan pengujian
terhadap perangkat atau emulator, membuat alur pengujian,
serta membuat laporan hasil pengujian. Sementara QA
Engineer (QE) biasanya bertugas untuk membuat porgram
pengujian otomatis, membuat laporan pengujian, memberikan
masukan atas aplikasi yang diuji, serta berkomunikasi dengan
pihak-pihak yang berkepentingan, seperti pengembang
UI/UX, back end atau product manager (PM).
86
Element I
Software Quality Assurance
87
Software Development Standard
88
Kenapa Harus Standar
Standar menyediakan enkapsulasi praktik terbaik, atau
setidaknya paling tepat.
Standar menyediakan kerangka kerja di mana proses
89
Standards should not be avoided. If they are too
extensive for the task at hand, then they should be
tailored !!!!!!.
90
Pendekatan SDS Sederhana
91
Element II
Software Quality Planning
92
Software Quality Plan
Tailoring - SQP harus memilih standar organisasi yang sesuai untuk produk
tertentu
Standarisasi - SQP harus menggunakan (panggilan keluar) hanya menyetujui
proses organisasi dan standar produk Jika standar baru diperlukan,
peningkatan kualitas harus dimulai
Elemen - elemen SQP biasanya didasarkan pada elemen-elemen model ISO-
9001 . SQP tidak ditulis untuk pengembang perangkat lunak. Ini ditulis untuk
SQE sebagai panduan untuk SQC dan bagi pelanggan untuk memantau
kegiatan pengembangan
Hal-hal seperti produksi perangkat lunak, rencana produk perangkat lunak dan
manajemen risiko harus didefinisikan dalam SDP, IP
Faktor Kualitas tidak boleh dikorbankan untuk mencapai efisiensi. Jangan
mengambil pekerjaan jika proses kualitas tidak dapat ditegakkan
93
Elemen III
Software Quality Control
94
Metode SQC
SQC melibatkan pengawasan proses pengembangan
perangkat lunak untuk memastikan bahwa prosedur dan STD
sedang diikuti. Kegiatan berikut merupakan SQC:
Quality Review
Testing
Quality Audits
95
Quality Review
Peer Review
Walkthrough
Desk Inspection
96
Test
Engineering Dry-run
SQE Dry-run
TFR
97
Quality Audits
SQE Audits
Independent Audit
98
Defect Detection
At Baseline Capture 0
System Requirements Analysis 0 79
E Preliminary Design 0 6 2 10
S
T Detailed Design 1 0 0 0 42
T
E Code 0 0 0 1 2 37
A
C Unit Test 0 0 0 0 0 0 0
G
T Software Integration 1 0 0 0 4 1 0 0
E
E Software Qualification Test 0 0 0 0 0 0 0 0 0
D System Integration 1 0 0 0 4 5 0 0 0
System Test 0 0 0 0 0 0 0 0
Post System Test 0 0 0 0 0 0 0 0 0
% De fe cts Originate d in This Phase That We re Contained By This Phase 93% 33% 91% 81% 86%
% De fects Originate d In This Phase Out Of All Defe cts 44% 2% 6% 27% 22% 0% 0% 0%
99
Element IV
Software Quality Matric
10
0
Metrics Collection
Software Measurement- proses menurunkan nilai numerik
untuk beberapa atribut produk perangkat lunak atau proses
perangkat lunak. Perbandingan nilai-nilai ini satu sama lain
dan dengan STD memungkinkan penarikan kesimpulan
tentang kualitas produk perangkat lunak atau prosesnya.
Metric Yang Digunakan Terdiri dari
1. Control Metric
2. Predictor Metric
10
1
The Process of Product Measurement
10
2
Predictor and Control Metrics
10
3
Software Product Metric
Ada dua kategori metrik produk perangkat lunak:
10
4
The Ilities
10
5
Contoh Software Metric
10
6
Lanjutan
10
7
ISO 9001
ISO 9001 adalah ketentuan standar yang diakui secara
internasional untuk sertifikasi Sistem Manajemen Mutu (SMM).
10
8
Manfaat ISO 9001
Menjamin kepuasan pelanggan terhadap produk/jasa yang dijual
Meningkatkan kepercayaan pelanggan terhadap perusahaan
Menanamkan rasa bangga bagi karyawan sehingga memotivasi
10
9
Prinsip ISO 9001
11
0
ISO 9001 Element
Quality System Requirements Software Quality Responsibilities
Management Responsibility Management Responsibility
Quality system Quality system
Contract review Contract review
Design Control Design Control
Document control Document control
Purchasing Purchasing
Purchaser supplied product -
Product identification and traceability Product identification and traceability
Process control Process control
Inspection and testing Inspection and testing
Inspection, measuring and test equipment -
Inspection and test status Inspection and test status
Control of non-conforming product -
Corrective action Corrective action
Handling, storage, preservation, packaging and shipping -
Quality records Quality records
Internal quality audits Internal quality audits
Training Training
Servicing -
Statistical techniques Statistical techniques
11
1
Next
Software Maintenance
11
2
Sesi 6 Software Maintenance
TP501 – Pembangunan Perangkat Lunak
Eka Lia Febrianti, S.Kom, M.Kom.
Topik Bahasan
Apa Yang Dimaksud Dengan Software Maintenance
Jenis-Jenis Software Maintenance
Masalah-Masalah Yang Terdapat Pada Maintenance
11
4
Software Maintenance
Perawatan perangkat lunak (software maintenance) adalah
aktivitas yang dimulai sejak perangkat lunak mulai digunakan
(after delivery) hingga akhirnya perangkat lunak tersebut tidak
dapat digunakan lagi (retired).
11
5
Kenapa Harus Maintenance
Market Conditions
Client Requirements
Host Modifications
11
6
Tujuan Software Maintenance
to correct
to improve
to adapt
to prevent.
11
7
Ada 4 Kategori Perawatan Perangkat Lunak Yaitu :
1. Corrective Maintenance
2. Adaptive Maintenance
3. Perfective Maintenance
4. Preventive Maintenance
11
8
Aktifitas Pemeliharaan
IEEE menyediakan kerangka aktifitas untuk pemeliharaan perangkat
lunak :
11
9
Kenapa Biaya Maintenance Kadang Lebih Tinggi Dibandingkan
Dengan Biaya Produksi !!!!!!
12
0
Software Lifecycle Cost
12
1
Maintenance Cost Factor
Structure of Software Program
Programming Language
Dependence on external environment
Staff reliability and availability
12
2
Stabilitas Tim
12
3
Tanggung Jawab Kontrak
Kontrak bagi pengembang dan pemelihara kebanyakan
terpisah atau diberikan kepada perusahaan yang berbeda dan
bahkan bukan pengembang sistem aslinya, akibatnya tidak ada
insentif bagi pengembang untuk membuat sistem yang mudah
untuk diubah.
12
4
Keahlian Staff
staff pemelihara kebanyakan tidak berpengalaman dalam hal
pemeliharaan software dan staff pemelihara sering diaangap
tidak memerlukan keahlian yang mendalam di bidang software.
12
5
Umur dan Struktur Program
Program yang sudah tua biasanya strukturnya sudah
terdegradasi oleh perkembangan jaman sehingga sangat sulih
dipahami oleh pemelihara.
12
6
Masalah – Masalah Yang Sering Ditemui
Kesulitan melakukan pelacakan evolusi software pd versi
sebelumnya,
Kesulitan pelacakan pada proses pengembangan software,
Sulit untuk mengerti program orang lain,
Tidak adanya dokumentasi yang baik,
Tidak adanya nara sumber,
Kebanyakan software dirancang tanpa adanya pemikiran
untuk diubah.
12
7
NEXT
12
8
Sesi 7 SMLC
TP501 – Pembangunan Perangkat Lunak
Eka Lia Febrianti, S.Kom, M.Kom.
Topik Bahasan
Apa Itu SMLC
Tahapan SMLC
13
0
Apa itu SMLC ?
Merupakan Siklus pemeliharaan perangkat lunak yang terdiri
dari beberapa tahapan dimana antara satu tahapan dengan
tahapan lainnya saling berhubungan . SMLC merupakan
bagian dari SDLC. SMLC terdapat pada bagian akhir dari
SDLC
13
1
Tahapan SMLC
Problem identification
Analysis
Design phase
Implementation
System test
Acceptance test
Delivery
13
2
Problem Identification
Pada fase ini, permintaan untuk modifikasi dalam perangkat
lunak diidentifikasi dan diberi nomor identifikasi. Setiap
Modifikasi Permintaan (MR) kemudian dinilai untuk
menentukan jenis aktivitas pemeliharaan (korektif, adaptif,
perfective, dan preventif). Setelah klasifikasi, masing-masing
MR diberi skala prioritas untuk menentukan urutan yang akan
diproses.
13
3
Tahapan Problem Identification
13
4
Problem Analysis
Dalam fase ini, kelayakan dan ruang lingkup setiap permintaan
modifikasi yang divalidasi ditentukan dan disiapkan untuk
menggabungkan perubahan dalam perangkat lunak. Atribut
input terdiri dari permintaan modifikasi yang divalidasi,
perkiraan awal sumber daya, dokumentasi proyek, dan
informasi repositori.
13
5
Design Phase
Pada fase ini, modifikasi yang dibuat dalam perangkat lunak
dirancang. Atribut input terdiri dari output yang dihasilkan oleh
fase analisis (analisis rinci), proyek dan dokumentasi sistem,
kode sumber perangkat lunak, dan basis data.
13
6
Implementation
Pada fase ini, modifikasi sebenarnya dalam kode perangkat
lunak dibuat, fitur baru yang mendukung spesifikasi perangkat
lunak yang sekarang ditambahkan, dan perangkat lunak yang
dimodifikasi diinstal. Atribut input terdiri dari kode sumber,
output dari fase desain, dan sistem yang dimodifikasi serta
dokumentasi proyek
13
7
Tahapan implementasi
13
8
System Test
Pada fase ini, pengujian regresi (sejenis pengujian sistem) dilakukan pada
sistem yang dimodifikasi untuk memastikan bahwa tidak ada kesalahan
baru dalam perangkat lunak sebagai akibat dari aktivitas pemeliharaan.
Atribut masukan terdiri dari dokumentasi perangkat lunak yang diperbarui,
laporan tinjauan persiapan tes, dan sistem yang diperbarui.
13
9
Tahapan System Test
14
0
Acceptance Test
14
1
Tahapan Acceptance Test
14
2
Delivery
Pada fase ini, sistem perangkat lunak yang dimodifikasi (atau
baru) dikirimkan ke pengguna. Selain itu, pengguna disediakan
dengan dokumentasi yang tepat yang terdiri dari manual dan file
bantuan yang menggambarkan pengoperasian perangkat lunak
bersama dengan spesifikasi perangkat kerasnya. Atribut masukan
terdiri dari versi sistem yang sepenuhnya diuji dan diterima.
14
3
Tahapan Delivery
14
4
Masalah – Masalah Yang Sering Ditemui
Kesulitan melakukan pelacakan evolusi software pd versi
sebelumnya,
Kesulitan pelacakan pada proses pengembangan software,
Sulit untuk mengerti program orang lain,
Tidak adanya dokumentasi yang baik,
Tidak adanya nara sumber,
Kebanyakan software dirancang tanpa adanya pemikiran
untuk diubah.
14
5
NEXT
SMLC
14
6
Sesi 8 Software Architecture
TP501 – Pembangunan Perangkat Lunak
Eka Lia Febrianti, S.Kom, M.Kom
Topik Bahasan
Arsitektur Perangkat Lunak
14
8
Arsitektur Perangkat Lunak
14
9
Arsitektur Perangkat Lunak (2)
Gambaran bagaimana elemen/komponen fungsional
perangkat lunak / software disusun, diorganisasi dan
distrukturkan sehingga:
15
0
Hubungan Software , Arsitektur , Dan
Infrastruktur
15
1
Jenis Arsitektur Perangkat Lunak
Data Centered Architectures
Data Flow Architecture
Call And Return Architecture
Layered Architecture
Event-Based, Implicit Invocation
Repositories
Table Driven Interpreters
Heterogeneous Architectures
15
2
Data Centered Architecture
15
3
Data Flow Architecture
15
4
Call and Return Architecture
15
5
Layered Architecture
15
6
Event-based Architecture
15
7
Repositories
15
8
Table Driven Interpreter
15
9
NEXT
16
0
Sesi 9 OOAD
TP501 – Pembangunan Perangkat Lunak
Eka Lia Febrianti, S.Kom, M.Kom.
Topik Bahasan
OOAD
UML
16
2
Object Ori[ented Analysis And Design
16
3
Konsep Dasar OOAD
Objek (object)
Kelas (class)
Asosiasi dan Agregasi
16
4
Tahapan OOAD
16
5
Kelebihan OOAD
OOAD lebih mudah digunakan dalam pembangunan sistem
Waktu pengembangan, level organisasi, ketangguhan,dan penggunaan
baik seperti kondisi pada dunia nyata dan keterkaitan dalam sistem. Hal
ini memudahkan dalam mehami desain
16
6
Kelebihan OOAD (2)
Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi
terhadap kebenaran software yang membantu untuk mengurangi resiko
pada pembangunan sistem yang kompleks
Encapsulation data dan method, memungkinkan penggunaan kembali pada
proyek lain, hal ini akan memperingan proses desain, pemrograman dan
reduksi harga.
OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan
memahami desain dan mengurangi resiko pelaksanaan proyek.
Dekomposisi obyek, memungkinkan seorang analis untuk memcah masalah
menjadi pecahan-pecahan masalah dan bagian-bagian yang dimanage
secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini
memungkinkan pembangunan software dengan cepat, sehingga dapat
segera masuk ke pasaran dan kompetitif. Sistem yang dihasilkan sangat
fleksibel dan mudah dalam memelihara
16
7
Kekurangan OOAD
Pada awal desain OOAD, sistem mungkin akan sangat simple.
Pada OOAD lebih fockus pada coding dibandingkan dengan SSAD.
Pada OOAD tidak menekankan pada kinerja team seperti pada
SSAD.
Pada OOAD tidak mudah untuk mendefinisikan class dan obyek
yang dibutuhkan sistem.
Sering kali pemrogramam berorientasi obyek digunakan untuk
melakukan anlisisis terhadap fungsional siste, sementara metode
OOAD tidak berbasis pada fungsional sistem.
16
8
Kekurangan OOAD (2)
OOAD merupakan jenis manajemen proyek yang tergolong
baru, yang berbeda dengan metode analisis dengan metode
terstruktur. Konsekuensinya adalah, team developer butuh
waktu yang lebih lama untuk berpindah ke OOAD, karena
mereka sudah menggunakan SSAD dalam waktu yang lama
Metodologi pengembangan sistem dengan OOAD
menggunakan konsep reuse. Reuse merupakan salah satu
keuntungan utama yang menjadi alasan digunakannya OOAD.
Namun demikian, tanpa prosedur yang emplisit terhadap reuse,
akan sangat sliit untuk menerapkan konsep ini pada skala besar
(Hantos, 2005).
16
9
UML
17
0
Tujuan atau fungsi dari penggunaan UML
Dapat memberikan bahasa permodelan visual kepada pengguna dari
berbagai macam pemerograman maupun proses rekayasa.
Dapat menyatukan praktek-praktek terbaik yang ada dalam
permodelan.
Dapat memberikan model yang siap untuk digunakan, merupakan
bahasa permodelan visual yang ekspresif untuk mengembangkan
sistem dan untuk saling menukar model secara mudah.
Dapat berguna sebagai blue print, sebab sangat lengkap dan detail
dalam perancangannya yang nantinya akan diketahui informasi yang
detail mengenai koding suatu program.
Dapat memodelkan sistem yang berkonsep berorientasi objek, jadi
tidak hanya digunakan untuk memodelkan perangkat lunak (software)
saja.
Dapat menciptakan suatu bahasa permodelan yang nantinya dapat
dipergunakan oleh manusia maupun oleh mesin. 17
1
Jenis – Jenis Diagram UML
17
2
USE CASE DIAGRAM
17
3
Contoh Use Case Diagram
17
4
Activity Diagram
17
5
Contoh Activity Diagram
17
6
Sequence Diagram
17
7
Contoh Sequence Diagram
17
8
Class Diagram
17
9
Contoh Class Diagram
18
0
Collaboration Diagram
18
1
Component Diagram
18
2
Contoh Component Diagram
18
3
Deployment Diagram
18
4
Contoh Deployment Diagram
18
5
NEXT
Software Security
18
6
Sesi 10 Software Security
TP501 – Pembangunan Perangkat Lunak
Eka Lia Febrianti, S.Kom, M.Kom.
Topik Bahasan
Software Security
18
8
18
9
Secure SDLC
19
0
Masalah
Kenapa masalah keamanan bukan prioritas dalam pembangunan
perangkat lunak
Penambahan biaya
Penambahan kebutuhan non-fungsional
Waktu yang makin panjang untuk implementasinya
Mengurangi Agilitas Dari Perangkat Lunak Yang Akan Dibangun
19
1
Contoh Kecil Security Pada Software
Users must authenticate? Is anonymous allowed?
Password
◦ Length? Strength?
◦ Aging? (History?)
◦ Failed attempts locked out? How many times? How to unlock?
◦ Must be shown with asterisks (*)
Concurrent access allowed?
Changes must be logged
Audit log must provide enough data for forensic
19
2
Statistik Vulneribilitas Perangkat Lunak
19
3
Dasar-Dasar Keamanan Perangkat Lunak
Confidentiality
Integrity
Availability
19
4
Confidentiality
Confidentiality atau kerahasian menyatakan bahwa data tidak dapat
diakses oleh orang yang tidak berhak.
19
6
Availability
19
7
Security Requirement
19
8
Secure Design
19
9
Prinsip Secure Design
Economy of mechanism
Fail-safe defaults
Akses menggunakan prinsip permission bukan exclusion.
Complete mediation.
Open design.
Separation of privilege.
Least privilage.
Least common mechanism.
Psychological acceptability.
20
0
Secure Coding
Kecerobohan pemrogram (programmer, coder) dapat
menghasilkan lubang keamanan yang seharusnya tidak ada
20
1
Kesalahan Programmer
Buffer Overflow
Exception
URL With Parameter
Without use of anti injection
OWASP TOP 10 List
CWE / SANS
20
2
Skenario Pengujian Untuk Security
Normal
Ekstrim
Abuse
Standard Data Set
Fuzzing
20
3
NEXT
Software Evaluation
20
4
Sesi 11 Software Evaluation
TP501 – Pembangunan Perangkat Lunak
Eka Lia Febrianti, S.Kom, M.Kom
Topik Bahasan
Software Evaluation
20
6
Apa Itu Software Evaluation
Evaluasi perangkat lunak adalah mendefinisikan seberapa
baik perangkat lunak teersebut dapat beroperasi pada
organisasi yang menerapkannya untuk memperbaiki prestasi
di masa mendatang.
20
7
Kenapa Perlu Evaluasi ????
20
8
Tujuan Evaluasi
Menilai kemampuan teknis Perangkat Lunak
Menilai pelaksanaan operasional Perangkat Lunak
Menilai pendayagunaan Perangkat Lunak
20
9
Pihak Yang Dapat Melakukan Evaluasi
Terhadap Sistem
Tim Audit khusus, yang dikumpulkan untuk maksud tersebut
yang diambil diantara para eksekutif organisasi yang
bersangkutan.
Tim audit intern, yang mengerjakan unit operasional.
Organisasi konsultasi di luar organisasi.
21
0
Evaluasi Yang Dapat Dilakukan
Evaluasi secara menyeluruh
Evaluasi sistem perangkat keras/ perangkat lunak
Evaluasi aplikasi
21
1
Proses evaluasi bukan hanya menitikberatkan pada penentuan
kelemahan dan keunggulan SIM saja, tetapi lebih dari itu adalah
pada usaha-usaha perbaikan yang perlu dilakukan !!!!!.
21
2
Evaluasi Fungsi Perangkat Lunak
Evaluasi sistem perangkat keras/perangkat lunak yang masih
berlaku.
Evaluasi sistem perangkat keras/perangkat lunak baru atau
pengganti.
Evaluasi aplikasi
Penghitungan manfaat secara kuantitatif dari aplikasi SIM.
Analisis biaya manfaat dari alternatif desain SIM.
21
3
Evaluasi Perangkat Keras/Perangkat Lunak
yang Masih Berlaku
Tujuan dari evaluasi perangkat keras atau perangkat lunak
yang masih berlaku yaitu untuk menentukan hal-hal berikut :
Apakah ada sumber daya baru yang diperlukan ??.
Apakah ada sumber daya perangkat keras/perangkat lunak
baru yang harus diganti ??
Apakah pengaturan kembali akan memperbaiki daya guna.
Apakah tambahan sumber daya akan memperbaiki
ketepatgunaan sistem.
21
4
Hasil Evaluasi
berkecepatan tinggi
Penambahan kapasitas memori utama
21
5
Evaluasi perangkat keras/perangkat
lunak baru atau pengganti
Studi kelayakan
Penyiapan spesifikasi dan penawaran
21
6
Evaluasi Perangkat Lunak
21
7
Manfaat Aplikasi
Nilai Suatu Aplikasi atau perangkat lunak dapat berupa :
1. Ekonomis
2. Non Ekonomis
21
8
NEXT
Software Migration
21
9
Sesi 11 System Migration
TP501 – Pembangunan Perangkat Lunak
Eka Lia Febrianti, S.Kom, M.Kom
Topik Bahasan
System Migration
22
1
Apa Itu Software Migration
Pemindahan perangkat lunak yang telah ada ke lingkungan
baru.
22
2
Kenapa Perlu Migrasi ???
22
3
Latar Belakang Migrasi
Lingkungan dimana perangkat lunak tersebut ditempatkan tidak
dapat lagi menyediakan resource yang maksimal untuk menunjang
runtime dari perangkat lunak tersebut.
Hardware Cycle Time
22
4
Proses Migrasi
Extract.
Transform
Load
22
5
Evaluasi Yang Dapat Dilakukan
Evaluasi secara menyeluruh
Evaluasi sistem perangkat keras/ perangkat lunak
Evaluasi aplikasi
22
6
Migrasi Nambah Biaya ?
22
7
Scope Migrasi
Migrasi Sistem.
Migrasi Data.
Migrasi Platform
22
8
Strategi Migrasi
Dilakukan secara bertahap dan parallel. Parallel disini
dalam arti aplikasi yang menggunakan sistem basis data
lama tetap dipertahankan sampai sistem pendukung basis
data baru dapat menjalankan operasionalnya dengan baik
Utilitas / mekanisme teknisnya dapat menggunakan :
22
9
Masalah Migrasi
Cost
Compability
Reliability
Security
Effort
23
0
NEXT
Back To Start
23
1