Rekayasa
Perangkat Lunak
Pengenalan RPL
01
Ilmu Komputer Teknik Informatika 87011 Tim Dosen
Abstrak Kompetensi
Modul ini menjelaskan macam dari Mampu memahami kontrak perkuliahan
perangkat lunak dengan komponen- dan pengertian RPL.
komponennya. Aplikasi yang dihasilkan
dengan perangkat lunak.
1. Perbedaan PL & Ilmu Komputer
Perbedaan perangkat lunak dengan ilmu komputer. Ilmu komputer seringkali
didiskripsikan sebagai suatu studi sistematis pada proses-proses algoritma yang
menjelaskan dan mentransformasikan informasi seperti halnya di sini adalah teori,
analisis, disain, efisiensi, penerapan dan aplikasinya. Sedangkan perangkat lunak
merupakan data elektronik yang disimpan sedemikian rupa oleh komputer itu sendiri,
data yang disimpan ini dapat berupa program atau instruksi yang akan dijalankan oleh
perintah, maupun catatan-catatan yang diperlukan oleh komputer untuk menjalankan
perintah yang dijalankannya. Jadi perangkat lunak itu dapat berupa program atau
prosedur. Perbedaan antara RPL dengan ilmu komputer adalah intinya, ilmu komputer
berhubungan dengan teori dan metode yang mendasari sistem komputer dan
perangkat lunak, sedangkan RPL berhubungan dengan praktek dalam
memproduksi perangkat lunak.
Pendahuluan
Model proses canggih apa yang telah diusulkan untuk rekayasa perangkat lunak ?
Definisi
Suatu proses evolusi dan pemanfaatan alat dan teknik untuk pengembangan
software.
- Membuat suatu desain aplikasi yang ada dilingkungan tugas atau pekerjaan.
Analisis
&
Desain
1/3
Dipengaruhi oleh :
VII. PORTABILITAS
- Kemampuan transfer perangkat lunak dari suatu jenis komputer ke lainnya dengan
biaya usaha minimum
VIII. PERAWATAN
o Compilers
o Editors
o Telecommunication Processors
3. Business Software
o Payroll (penggajian)
o Inventory (Persediaan)
o System Simulation
5. Embedded Software
o Fungsi – fungsi digital pada mobil : Fuel Control, Dashboard Displays, Breaking
Systems
o Word Processing
o Spread Sheets
o Computer Graphics
o Database Management
o Thasram Proving
o Game Playing
XI. METODE :
Metode adalah cara bagaimana kita secara teknis menyediakan pembangunan software,
yang terdiri dari :
4. Arsitektur program
5. Algoritma Prosedur
6. Pengkodean
7. Testing
8. Pemeliharaan
XIII. PROSEDUR :
Gambar the classic cycle (waterfall model) dapat dilihat pada halaman berikut :
Coding (5)
Integration (6)
Implementation (7)
2. SA dan Users
3. SA
4. SA
5. Programmers, Testers
8. Maintenance staf
1. Rekayasa sistem
3. Rancangan (design)
i. Struktur data
4. Pengkodean (coding)
5. Testing
6. Pemeliharaan (maintenance)
XVII. Prototyping
a. Pengulangan pernyataan bahwa biaya perangkat lunak lebih mahal dari pada
perangkat keras.
Rekayasa
Perangkat Lunak
Konsep Dasar RPL
02
Ilmu Komputer Informatika 87011 Diky Firdaus, S.Kom., MM.
Abstrak Kompetensi
Modul ini menjelaskan mengenai arti Mampu memahami konsep dasar RPL.
dan definisi dari Perangkat Lunak,
jenis-jenis Perangkat Lunak dan
pentingnya RPL.
1. Tujuan Rekayasa Perangkat Lunak
A. Menghasilkan sebuah perangkat lunak yang berkualitas. Yang dimaksud dengan
berkualitas dapat dilihat dari tiga sisi, sisi sponsor (individu atau organisasi yang
telah mengeluarkan biaya dalam pembangunan perangkat lunak), sisi pemakai
(siapapun yang menggunakan perangkat lunak tersebut), sisi maintainer / modifier
(yang memelihara dan memodifikasi perangkat lunak tersebut). Untuk lebih
jelasnya lihat gambar 2.1.
Sisi Sponsor :
Tujuan utama sponsor adalah menghasilkan dan atau menghemat uang. Sponsor
ingin menggunakan perangkat lunak tersebut untuk meningkatkan produktivitas
organisasi. Sponsor mengharapkan untuk dapat menghasilkan sebuah layanan
dengan biaya yang rendah tetapi masuk akal. Karena itu sistem yang dibuat harus
handal, fleksibel dan efisien. Selain itu biaya dari pemeliharaan, modifikasi dan
peningkatan dari sistem tersebut harus serendah mungkin.
Sisi Pemakai :
Bagi pemakai perangkat lunak adalah alat untuk membantu menyelesaikan tugas-
tugasnya. Karena itu perangkat lunak harus menyediakan fungsi-fungsi yang
dibutuhkan oleh pemakai. Perangkat lunak juga harus handal dan efisien,
perangkat lunak harus dapat menghasilkan output yang konsisten. Selain itu
pemakai harus merasa perangkat lunak yang dibuat mudah untuk dipelajari, mudah
digunakan dan mudah untuk diingat.
Sisi Maintainer/modifier :
Yang diinginkan oleh maintainer/modifier adalah perangkat lunak tersebut memiliki
sangat sedikit error pada saat penginstallan pertama (catatan : sangat kecil
kemungkinannya untuk menghasilkan perangkat lunak yang 100 % bebas dari
bug). Selain itu perangkat lunak tersebut harus terdokumentasi dengan baik.
Source code juga harus mudah dibaca, terstruktur dan dirancang dengan baik dan
bersifat modular.
• Pemakai (user) sudah membayar untuk perangkat lunak tetapi tidak pernah
jadi dan diserahkan (29,7%).
1980 an belum dikenal peranannya, bahkan menjadi bahan tertawaan. Hal ini
disebabkan karena pada awal diciptakan, kecepatan perangkat lunak masih sangat
lambat, sehingga masih “kalah” jika dibandingkan dengan kecepatan pengolahan
angka dengan menggunakan kalkulator ataupun sempoa.
Peran Perangkat Lunak computer mengalami perubahan penting dan dramatis selama
paruh abad ke 20 seperti unjuk kerja perangkat keras, perubahan-perubahan besar dalam
arsitektur computer, pertambahan yang pesat pada memori dan kapasitas penyimpanan,
serta variasi pilihan input dan output yang luas
Era ke empat :
User semakin jauh dari computer individual dan pemrograman
Menuju kepada pengaruh kolektif dari computer dan perangkat lunak
Mesin desktop yang kuat
Sistem operasi lebih canggih
Tersedianya jaringan local dan global
Arsitektur perhitungan berubah cepat dari lingkungan mainframe terpusat ke
lingkungan client/server yang desentralisasi
Rangkuman perkembangan yang terjadi, secara ringkas, terlihat dalam tabel sbb :
Tahun-tahun Awal Era Kedua Era Ketiga Era Keempat
usang
Tingkat Kematian
Kegagalan segera
waktu
Tingkat
kegagalan Pada tingkat yang sama
sampai usang
waktu
Gambar 1.3. Kurva Kegagalan pada perangkat lunak
Rekayasa
Perangkat Lunak
Siklus Hidup dan Proses
Perangkat Lunak
03
Ilmu Komputer Informatika 87011 Tim Dosen
Abstrak Kompetensi
Modul ini menjelaskan mengenai Mampu memahami Siklus Hidup
Siklus Hidup Perangkat Lunak. Perangkat Lunak. Mampu menjelaskan
macam dari Siklus Hidup PL.
1. PANDANGAN UMUM TENTANG RPL
Rekayasa merupakan :
Analisis
Desain
Konstruksi
Verifikasi
Manajemen Kesatuan Teknik (atau sosial)
“Dari IEEE ( IEEE Std 1016 – 1998 Recommended Practice for Software Design
Description ) Dari standar IEEE 1016, ditekankan bahwa siklus hidup adalah segala
sesuatu yang lebih berdasar kepada urutan waktu dibandingkan proses yang terjadi.
Proses perangkat lunak ialah kegiatan yang tercakup dalam upaya memproduksi
dan mengembangkan sistem perangkat lunak. Proses disajikan dalam model proses
perangkat lunak. Kegiatannya secara umum terdiri dari penetapan spesifikasi, desain
dan implementasi, validasi dan evolusi. Rekayasa kebutuhan (requirement
engineering) adalah proses pengembangan spesifikasi perangkat lunak. Proses
disain dan implementasi mengubah spesifikasi untuk sebuah sistem Bahwa siklus
hidup perangkat lunak merupakan urutan hidup sebuah perangkat lunak berdasarkan
perkembangan perangkat lunak yang ditentukan oleh pengembang perangkat lunak
itu sendiri.
Definisi Proses
Analisis dan defenisi persyaratan. Pelayanan, batasan, dan tujuan sistem ditentukan
melalui konsultasi dengan user sistem. Perancangan sistem dan perangkat lunak.
Proses perancangan sistem membagi persyaratan dalam sistem perangkat keras
atau perangkat lunak. Kegiatan ini menentukan arsitektur sistem secara keseluruhan.
Implementasi dan pengujian unit. Pada tahap ini, perancangan perangkat lunak
direalisasikan sebagai serangkaian program atau unit program.
Integrasi dan pengujian sistem. Unit program atau program individual diintegrasikan dan diuji
sebagai sistem yang lengkap untuk menjamin bahwa persyaratan sistem
Kesimpulannya:
Bahwa sebuah proses perangkat lunak merupakan sekumpulan aktifitas maupun
metode yang digunakan pengembang perangkat lunak.
Waterfall sendiri memiliki definisi bahwa sebuah proses hidup perangkat lunak memiliki
proses yang linier dan sequensial.
Rekayasa
Perangkat Lunak
Perencanaan Proyek
Perangkat Lunak
04
Ilmu Komputer Informatika 87011 Tim Dosen
Abstrak Kompetensi
Modul ini menjelaskan mengenai Mampu menentukan tujuan
Perencanaan Proyek Perangkat Lunak. perencanaan proyek, ruang lingkup
proyek PL, sumber daya yang
dibutuhkan, dan estimasi proyek
perangkat lunak.
“Tujuan perencanaan proyek perangkat lunak adalah untuk menyediakan sebuah kerangka
kerja yang memungkinkan manajer membuat estimasi yang dapat dipertanggungjawabkan
mengenai sumber daya, biaya dan jadwal”. (Roger S. Pressman, 2002)
“Proses manajemen proyek perangkat lunak dimulai dengan serangkaian aktivitas yang
secara kolektif disebut project planing, yang pertama dari aktivitas ini adalah estimasi
(perkiraan).” (Roger Pressman, 2002).
Pendahuluan Perencanaan Proyek adalah langkah awal, sumber daya, biaya dan
jadwal yang dibutuhkan untuk menyelesaikan proyek. PPP adalah dokumen internal,
tidak perlu ditunjukkan ke user, terutama user luar.
Kunci berbagai rencana adalah memecah kegiatan yang diperlukan ke dalam sebuah
bagian yang lebih kecil lagi. Rincian struktur kerja (WBS) diawali dengan menyusun
komponen-komponen utama proyek. Hal ini merupakan Level 1 dari WBS (Level 0 adalah
judul proyek).
Analisa Resiko
Analisis resiko sangat penting dalam manajemen proyek perangkat lunak. Beberapa
hal yang harus diperhatikan berkaitan dengan resiko adalah :
• Masa yang akan datang : resiko apa yang mempengaruhi trend
(kecenderungan) proyek perangkat lunak
• Perubahan : Bagaimana perkembangan dunia mempengaruhi keawetan dan
kesuksesan perangkat lunak
• Pilihan : metode apa yang dipakai, berapa orang diperlukan, seberapa tinggi
kualitas perangkat lunak dan sebagainya
• Identifikasi Resiko
Penelusuran dan pengendalian dilakukan setelah ada penjadwalan yang pasti, yaitu
memeriksa apakah tugas telah dilaksanakan sesuai dengan jadwal.
Rekayasa
Perangkat Lunak
Analisis Kebutuhan Perangkat
Lunak
05
Ilmu Komputer Informatika 87011 Tim Dosen
Abstrak Kompetensi
Modul ini menjelaskan mengenai Mampu mengetahui tentang analisa
Analisis Kebutuhan Perangkat Lunak. kebutuhan PL, teknik komunikasi dan
prinsip-prinsip analisis, pembuatan
model prototype PL.
Pandangan umum tentang Rekayasa erangkat Lunak, merupakan :
Analisis
Desain
Konstruksi
Verifikasi
Manajemen Kesatuan Teknik (atau sosial)
Usaha yang berhubungan dengan RPL dapat dikatagorikan menjadi 3 fase umum :
a. Fase Definisi (definition phase)
Berfokus pada “apa” (what). Pengembang harus mampu mengidentifikasi :
Apa yang akan diproses
Fungsi dan unjuk kerja apa yang dibutuhkan
Tingkah laku system seperti apa yang diharapkan
Interface apa yang akan dibangun
Batasan desain apa yang ada
Kriteria validasi apa yang dibutuhkan untuk mendefinisikan system yang
sukses
b. Fase Pengembangan (development phase)
Berfokus pada “bagaimana” (how). Selama masa pengembangan :
Teknisi harus mendefinisikan bagaimana data dikonstruksikan
Seorang manajer yang gagal melakukan komunikasi dengan pelanggan yang
komprehensif di awal evolusi sebuah proyek, beresiko membangun pemecahan
yang elegan untuk masalah-masalah yang salah.
Akhirnya manajer yang tidak begitu memperhatikan proses, beresiko
menyisipkan metode teknik yang cakap serta piranti ke dalam sebuah ruang
hampa.
c. Fase Solusi (Decision Making)
Menurut arti kamus, kebutuhan adalah sesuatu yang diminta, sesuatu yang dibutuhkan.
Sedangkan menurut IEEE (The Institute of Electrical and Electronics Engineers)
kebutuhan adalah :
• Kondisi atau kemampuan yang diperlukan pemakai untuk menyelesaikan suatu
persoalan, atau untuk mencapai sebuah objek.
• Kondisi atau kemampuan yang harus dipenuhi oleh sistem, dalam arti memenuhi
kontrak, standar, spesifikasi atau dokumen formal lain yang diinginkan.
b. Munculnya ide untuk membuat sebuah perangkat lunak baru (sebagai sebuah
kemajuan).
2. Non-behavioral
Mendefinisikan atribut sistem yang terkait untuk membentuk pekerjaan
tersebut. Termasuk deskripsi lengkap tentang efisiensi, keamanan (security),
rehability maintenability (bagaimana perawatan untuk sistem), dan portability
(bisa dipindahkan dari satu perangkat keras ke perangkat keras lainnya).
• Jika tidak dapat dideteksi, kesalahan baru kelihatan setelah produk selesai
dibuat.
2. Sintesis
Mengubah kebutuhan yang belum terstruktur menjadi model atau gambar dengan
memanfaatkan teknik dan metodeanalisis tertentu.
3. Metode Analisis
Metode atau teknik untuk melakukan analisis kebutuhan perangkat lunak
dikelompokkan berdasarkan pendekatan yang diambil pada saat melakukan aktivitas
tersebut.
Berorientasi Aliran Data (Data Flow Oriented atau Functional Oriented) dengan
teknik top down atau bottom up.
Rekayasa
Perangkat
Lunak
Spesifikasi Kebutuhan
Perangkat Lunak
06
Abstrak Kompetensi
Modul ini menjelaskan mengenai Mampu memahami SRS.
Spesifikasi Kebutuhan Perangkat
Lunak.
Pada proses kegiatan analisi system perencanaan Proyek (Project Planning) merupakan
awal dari serangkaian aktivitas secara kolektif dari sebuah proses Manajemen Proyek
Perangkat Lunak
Yang pertama dalam proses perencanaan ini adalah Estimation (perkiraan)
Bertujuan untuk melihat kondisi umum ke depan
Siap menerima kondisi yang berada dalam tingkat ketidak pastian.
Estimasi menjadi dasar bagian semua aktivitas perencanaan proyek yang lain, dan
Perencanaan proyek memberikan sebuah peta jalan bagi suksesnya Rekayasa
Perangkat Lunak
Untuk mendapatkan data kita perlu melakukan beberapa kegiatan (Perancangan Sistem
Informasi, Tata Sutabri, 2005);
1. Observasi
2. Interview
3. Kuisioner
4. Korespondensi
1. Fungsi
Menjelaskan fungsi dari perangkat lunak (digunakan untuk apa keperluan apa),
sifat lunak dan datanya.
2. Non-Fungsi
a. Dependability
i. reliability
ii. maintainbility
iii. security
iv. integrity
b. Ergonomic
c. Performance
d. Contraint
Jika salah (incorrect), artinya spesifikasi yang ditulis adalah bukan yang
diinginkan.
2. Tepat (precise)
1. Pemakai (user)
2. Client
4. Software engineer
Yang bekerja setelah kebutuhan perangkat lunak dibuat (bekerja sama dengan
sistem engineer berdasarkan SRS)
5. Programmer
7. Maintenance group
Memantau dan merawat performansi sistem perangkat lunak yang dibuat selama
pelaksanaan dan pada saat modifikasi muncul (80% dari pekerjaan).
8. Technical Support
Rekayasa
Perangkat Lunak
Penjadwalan dan Penelusuran
Proyek PL
Fakultas Program Studi TatapMuka Kode MK DisusunOleh
07
Ilmu Komputer Informatika Kode MK? Tim Dosen
Abstract Kompetensi
Menjelaskan mengenai tahapan Mahasiswa memahami proses
penjadwalan membangun perangkat menyusun jadwal membangun
lunak perangkat lunak
PENJADUALAN DAN PENELUSURAN PROYEK
(PROJECT SCHEDULING and TRACKING)
PRINSIP PENJADUALAN
Sejumlah prinsip dasar yang bisa menuntun penjadualan proyek perangkat lunak adalah :
PEMBAGIAN : proyek harus dibagi-bagi kedalam sejumlah tugas dan aktivitas yang
dapat dikendalikan
SALING KETERGANTUNGAN : Saling ketergantungan dari setiap tugas dan aktivitas
yang dibagi-bagi harus ditentukan
ALOKASI WAKTU : Setiap tugas yang akan dijadualkan harus dialokasikan dalam
sejumlah satuan kerja
VALIDASI KERJA : Setiap proyek memiliki sejumlah staf tertentu. Pada saat alokasi
waktu dilakukan, manajer proyek harus memastikan bahwa tidak akan ada kelebihan
alokasi jumlah manusia pada suatu saat tertentu.
Example (2)
With 2 months remaining, 2 additional people are added
Therefore, the number of communication path: 6!/(2!4!) = 15
productivity of 2 new staffs = 2 * (5000/12 month) * 2 month = 1680 LOC
So,
team productivity: 20,000 + 1680 – 250*15 less than 18,500 LOC/year
I.5a
I.3a
Concept
Tech. Risk
Implement.
Assessment
I.3c I.5c
Tech. Risk Concept
Assessment Implement.
PENJADUALAN
Metode PERT (Program Evaluation and Review Technique) & CPM (Critical Path
Method)
PERT & CPM digunakan untuk :
1. Determine critical path
2. Establish most likely time estimates for individual task
3. Calculate “boundary times” that define a time “window” for particular task
Task, terkadang disebut Work Breakdown Structure (WBS)
(akan dibahas lengkap pada mata kuliah manajemen proyek perangkat lunak)
Rekayasa
Perangkat Lunak
JAMINAN KUALITAS PERANGKAT LUNAK
(SOFTWARE QUALITY ASSURANCE)
08
Ilmu Komputer Informatika Tim Dosen
Abstract Kompetensi
Diisidengan abstract Mahasiswa mampu memahami quality
anserance yang harus diwujudkan
untuk meningkatkan kualitas
PERTEMUAN-8
Pendekatan rekayasa perangkat lunak yang digambarkan bekerja kearah tujuan tunggal :
menghasilkan perangkat lunak berkualitas tinggi.
Apa sebenarnya kualitas perangkat lunak itu ?
Menurut Philip Crosby, kualitas perangkat lunak : …… masalah manajemen kualitas
bukanlah suatu hal yang tidak diketahui. Masalahnya adalah apa yang mereka pikir
mereka tahu………
Banyak pengembang perangkat lunak terus percaya bahwa kualitas perangkat lunak
merupakan sesuatu yang mulai anda khawatirkan setelah kode-kode dilahirkan. Tidak
ada yang dapat melebihi suatu kebenaran.
Jaminan kualitas perangkat lunak (Software Quality Assurance [SQA]) adalah aktivitas
pelindung yang diaplikasikan pada seluruh proses perangkat lunak.
SQA meliputi :
1. Pendekatan manajemen kualitas
2. Teknologi rekayasa perangkat lunak yang efektif
3. Kajian teknik formal yang diaplikasikan pada keseluruhan proses perangkat lunak
4. Strategi pengujian multitiered (deret bertingkat)
5. Kontrol dokumentasi perangkat lunak dan perubahan yang dibuat untuknya
6. Prosedur untuk menjamin kesesuaian dengan standar pengembangan perangkat
lunak
7. Mekanisme pengukuran dan pelaporan
PENDAHULUAN
Bila ada salju yang jatuh, maka tidak aka nada dua butir salju yang sama. Adalah sangat
sulit untuk membayangkan bahwa butiran-butiran salju itu berbeda bentuk sama satu
lain. Belum lagi bahwa setiap butir memiliki struktur yang unik. Untuk mengamati
perbedaan diantara dua butir salju , kita harus mengamati butiran-butiran itu secara lebih
dekat. Mungkin kita dapat melakukannya dengan menggunakan kaca pembesar.
Kenyataannya, semakin dekat kita melihat, semakin besar perbedaan yang dapat kita
amati.
Kontrol variasi merupakan inti dari control kualitas. Pemanufaktur ingin meminimalkan
variasi antara produk yang mereka buat, bahkan dalam hal yang kecil sekalipun, seperti
menduplikasi disket. Kita ingin meminimalkan variasi diantara pasangan disket yang
identik. Hal ini tentu bukan masalah, menduplikasi disket merupakan operasi produksi
yang sangat mudah, dan kita dapat menjamin bahwa duplikat perangkat lunak yang tepat
selalu dapat dibuat.
Mesin duplikasi disket dapat benar-benar menggunakan dan berjalan dalam batas
toleransi, sehingga pada proses yang sederhana sekalipun, seperti duplikas, masalah
sehubungan dengan variasi diantara sampel dapat terjadi.
KUALITAS
American Heritage Dictionary mendefinisikan kata kualitas sebagai “sebuah karakteristik
atau atribut dari sesuatu”. Sebagai atribut dari sesuatu, kualitas mengacu kepada
Karakteristik yang dapat diukur- sesuatu yang dapat dibandingkan dengan standar yang
sudah diketahui, seperti panjang, warna, sifat kelistrikan, kelunakan dan sebagainya.
Tetapi perangkat lunak, yang sebagian besar merupakan entitas intelektual, lebih
menantang untuk di karakterisasi dari pada objek fisik.
KONSEP KUALITAS
general objective: reduce the “variation between samples” ... but how does this
apply to software?
quality control: a series of inspections, reviews, tests
quality assurance: analysis, auditing and reporting activities
cost of quality
appraisal costs
failure costs
external failure costs
TUGAS MAHASISWA ;
CARI DAN KUMPULKAN KLIPING DARI KORAN, MAJALAH ATAUPUN INTERNET
MASING-MASING 5 (LIMA) CONTOH UNTUK SETIAP BIAYA KUALITAS TSB DI ATAS.
SQA
Definisi
proses dan
standar
Kaji ulang
Analisa
bidang
dan
teknis
Pelaporan
Rencana
Pengukuran Uji coba
dan Kaji
ulang
AKTIVITAS SQA
Software engineers address quality by
applying solid technical methods & measures,
conducting formal technical reviews, and
performing well-planned testing
SQA group assists the software team in achieving a high quality product by
addressing
quality assurance planning,
oversight,
record keeping,
analysis, &
reporting
BATASAN
Between 3 and 5 people
Advance preparation should occur but should require no more than 2 hours of
work for each person
Duration of review meeting should be less than 2 hours
MEMIMPIN KAJIAN
1. Be prepare – evaluate product before the review
2. Review the product, not the producer
3. Keep your tone mild, ask questions instead of making accusations
4. Stick to the review agenda
5. Raise issues, don’t resolve them
6. Avoid discussion of style, stick to technical correctness
7. Schedule reviews as project tasks
8. Record and report all review results
PANDUAN REVIEW
1. Review the product, not the producer
2. Set an agenda and maintain it
3. Limit debate and rebuttal
4. Enunciate the problem areas, but don’t attempt to solve every problem noted
5. Take written notes
6. Limit the number of participants and insists upon advance preparation
7. Develop a checklist for each product that is likely to be reviewed
STATISTIK SQA
KUMPULKAN INFORMASI
PRODUK & TENTANG SEMUA KERUSAKAN
PROSES TEMUKAN PENYEBAB DARI
KERUSAKAN
PINDAH UNTUK MENYEDIAKAN
SECARA PASTI UNTUK
KEPERLUAN PROSES
PENGUKURAN
PEMAHAMAN BAGAIMANA
MENINGKATKAN KUALITAS
ISO 9000
PERENCANAAN SQA
Provides road map for instituting software quality assurance
The plan serves as template for SQA activities
Contents:
initial section – purpose and scope
management section – organizational structure
documentation section – project documents, models, technical documents,
user documents
test section
tools & methods, SCM, contract, records maintenance, training, risk
Rekayasa
Perangkat Lunak
MANAJEMEN KONFIGURASI PERANGKAT LUNAK
(SOFTWARE CONFIGURATION MANAGEMENT = SCM)
09
Ilmu Komputer Informatika Tim Dosen
Abstract Kompetensi
Diisidengan abstract Menjelaskan bahwa membangun
perangkat lunak harus mengetahui
kebutuhan-kebutuhan informasi yang di
hasilkan dari P/L tersebut
PERTEMUAN-9
HUKUM PERTAMA
Changes in Business
Requirement
Changes in Technical
Requirement
Changes in User OTHER
Requirement DOCUMENT
DATA
TEST
PROGRAM DOCUMENT
Proses
Output dari proses P/L DATA
SCM
Identifikasi
REKAYASA PERANGKAT LUNAK
Pengwasan Versi
ALAT BANTU
Pengawasan Perubahan
METODE Auditing
PROGRAM Pelaporan
DASAR-DASAR TQM Konstruksi
d
BASE LINES
Baseline adalah sebuah konsep manajemen konfigurasi perangkat lunak yang
membantu kita mengontrol perubahan tanpa harus secara serius menggangu
perubahan yang dapat dibenarkan, mendefinisikan baseline sebagai :
Obj.
1.3
Obj.
2.0
Obj.
1.1.1
Obj.
1.1.2
Pengembang mengevaluasi
Membuat perubahan
Access Control: governs which software engineers have the authority to access and
Permintaan
perubahan Rencana
SQA
SCIs
Laporan
Permintaan perubahan
ECOs
SCIs perubahan
STATUS AKUNTING
PELAPORAN
Rekayasa
Perangkat Lunak
Rekayasa Sistem
10
Ilmu Komputer Informatika Tim Dosen
Abstract Kompetensi
Mejelaskan prinsip analisis perangkatm Menjelaskan proses dan unsusr-unsur
lunak dalam mengembangkan atau
membangun sebuah sistem
REKAYASA SISTEM
(SYSTEM ENGINEERING)
Machiavelli pernah berkata “Tidak ada yang lebih sukar dilakukan, lebih membahayakan
untuk dilakukan atau lebih tidak pasti dalam keberhasilannya, daripada memimpin didalam
pembukaan order yang baru”.
Rekayasa Perangkat Lunak terjadi :
sebagai konsekuensi dari suatu proses yang disebut rekayasa system.
Rekayasa sistem berfokus pada :
variasi elemen-elemen, analisa, rancangan dan mengelola elemen-elemen tersebut
kedalam sistem yang dapat berbentuk produk, layanan (service) atau teknologi untuk
transformasi informasi atau control
Proses rekayasa system :
disebut rekayasa informasi bila konteks kerja rekayasa berfokus pada perusahaan
bisnis.
pada saat produk akan dibuat, proses ini disebut rekayasa produk.
Baik rekayasa informasi maupun rekayasa produk :
cenderung untuk membawa orde kepada pengembangan sistem berbasis komputer.
Untuk mencapai tujuan tersebut, system berbasis computer menggunakan berbagai elemen
system :
Perangkat lunak. Program computer, struktur data dan dokumen yang berhubungan
yang berfungsi untuk mempengaruhi metode logis, prosedur dan control yang
dibutuhkan.
Perangkat keras. Perangkat elektronik yang memberikan kemampuan perhitungan
dan perangkat elektromekanik (misalnya sensor, rotor, pompa) yang memberikan
fungsi dunia eksternal
Satu karakteristik sistem berbasis komputer yang rumit adalah bahwa elemen yang berisi
satu system juga dapat mewakili satu elemen makro dari suatu system yang sangat besar.
Elemen Makro adalah :
Suatu system berbasis computer yang merupakan bagian dari system berbasis computer
yang lebih besar lagi, seperti contoh gambar 10.1 dibawah ini yaitu otomatisasi pabrik yang
pada dasarnya merupakan hirarki system
Domain interes
Pandangan
Domain
Elemen Sistem
Pandangan
elemen
Pandangan Detail
PEMODELAN SISTEM
Untuk membangun sebuah model system, perekayasa harus mempertimbangkan sejumlah
faktor pembatasan yaitu :
a. Asumsi : yang mengurangi jumlah permutasi dan variasi yang mungkin sehingga
memungkinkan sebuah model mencerminkan masalah dengan cara yang dapat
dipertanggung jawabkan.
b. Penyederhanaan : yang memungkinkan model diciptakan dengan waktu yang tepat
c. Pembatasan : yang membantu membatasi system
Arsitektur data :
Memberikan kerangka kerja untuk kebutuhan informasi dari bisnis atau fungsi bisnis. Blok
bangunan individual dari arsitektur tersebut merupakan objek data yang digunakan oleh
suatu database dan ditransformasikan untuk memberikan informasi yang melayani
kebutuhan bisnis.
Arsitektur aplikasi :
Melingkupi elemen-elemen dari suatu system yang mentransformasikan objek ke dalam
arsitektur data untuk keperluan bisnis. Dalam konteks buku ini, kita menganggap bahwa
arsitektur aplikasi sebagai system program (perangkat lunak) yang melakukan transformasi
tersebut.
Arsitektur teknologi :
Sebagai dasar bagi dan arsitektur aplikasi. Infrastruktur menyangkut perangkat keras dan
perangkat lunak yang digunakan untuk mendukung aplikasi dan data yang mencakup
computer dan jaringan computer, hubungan telekomunikasi, teknologi penyimpangan dan
arsitektur (seperti client / server) yang telah dirancang untuk mengimplementasikan teknologi
tersebut.
HIRARKI BPE
Ada 4 hirarki dalam BPE yaitu :
a. Perencanaan Strategi Informasi (Information Strategy Planning = ISP) yang
bertanggung jawab menyiapkan :
Penentuan Tujuan Strategis
Identifikasi aturan-aturan bisnis dan factor-faktor sukses
Model perusahaan
b. Analisis Area Bisnis (Business Area Analysis = BAA) yang bertugas menyiapkan :
Model pelayanan dan proses
Hubungan proses dan data
c. Rekayasa Aplikasi yang bertugas menyiapkan :
Rekayasa perangkat lunak
Pemodelan aplikasi / modul yang ditujukana dan dibatasi oleh ISP
d. Konstruksi dan Pengiriman (delivery) yang bertugas menyiapkan :
Penggunaan CASE dan Ujicoba
Persyaratan pemrosesan
Konstruksi dan P
Integrasi L
(pandangan detail)
REKAYASA PRODUK
Tujuan Rekayasa Produk adalah untuk menerjemahkan keinginan pelanggan dengan serang
kaian kemampuan yang terbatas kedalam produk yang sedang bekerja, seperti yang terlihat
pada gambar 10.4 berikut.
ANALISIS SISTEM
Analisis system dilakukan dengan sasaran sebagai berikut :
1. Mengidentifikasi kebutuhan pelanggan
2. Mengevaluasi konsep system untuk feasibilitas
3. Melakukan analisis teknis dan ekonomis
4. Mengalokasikan fungsi-fungsi untuk perangkat keras, perangkat lunak, manusia,
database dan elemen system yang lain
5. Membuat batasan biaya dan jadual
STUDI KELAYAKAN
Selama rekayasa produk, kita perlu mengkonsentrasikan perhatian pada empat area utama
yaitu :
1. Kelayakan ekonomis
2. Kelayakan teknis
3. Kelayakan legal
4. Alternatif
Namun demikian, pertimbangan yang biasanya dihubungkan dengan kelayakan teknis
meliputi :
Resiko Pengembangan : apakah elemen system dirancang dengan baik sehingga
fungsi dan kinerja yang perlu dapat dicapai dalam batasan yang ditentukan selama
analisis.
Keberadaan sumber daya : Apakah staf terlatih dapat diperoleh untuk
mengembangkan elemen system yang dibicarakan
Teknologi : sudahkan teknologi yang relevan dikembangkan ke suatu keadaan yang
dapat mendukung system
Rekayasa
Perangkat Lunak
Rekayasa Sistem
11
Ilmu Komputer Informatika Tim Dosen
Abstract Kompetensi
Mejelaskan prinsip analisis perangkatm Menjelaskan proses dan unsusr-unsur
lunak dalam mengembangkan atau
membangun sebuah sistem
PEMAHAMAN
Pemahaman lengkap mengenai persyaratan perangkat lunak sangat penting bagi
keberhasilan usaha pengembangan perangkat lunak. Tidak peduli bagaimana perangkat
lunak dirancang atau dikodekan, program yang dianalisis dan ditentukan secara tidak baik
akan mengecewakan pemakainya dan akan membawa kegagalan bagi pengembangnya.
Ruang lingkup perangkat lunak secara mendasar dikembangkan oleh perekayasa system
dan diperbaiki selama perencanaan proyek perangkat lunak dan diperbaiki secara detail
(rinci).
Rekayasa
sistem
Analisis
Persyaratan
Perangkat
Lunak
Desain
Perangkat
Lunak
Gambar 11.1 Analisis dan kesenjangan antara rekayasa system dan desain perangkat lunak
Analisis persyaratan perangkat lunak dapat dibagi menjadi 5 (lima) area kerja yaitu :
1. Pengenalan masalah
Mempelajari spesifikasi system (bila ada) dan rencana proyek perangkat lunak dalam
suatu konteks system dan mengkaji ruang lingkup perangkat lunak dalam suatu
konteks system dan mengkaji ruang lingkup perangkat lunak yang telah digunakan
untuk memunculkan estimasi perencanaan
2. Evaluasi dan sintesis
Membatasi semua objek data yang dapat diobservasi secara eksternal
Mengevaluasi aliran dan muatan informasi
Mendefinisikan dan menguraikan semua fungsi perangkat lunak
Memahami tingkah laku perangkat lunak dalam konteks kejadian yang
mempengaruhi system
Membangun karakteristik interface system
Menemukan batasan desain tambahan
3. Pemodelan
Menyiapkan system dalam ukuran yang kecil-kecil sebelum penerapan dengan
system yang sebenarnya
TEKNIK KOMUNIKASI
Merupakan permulaan yang (selalu) perlu dilakukan agar seorang pelanggan
memiliki masalah yang dapat dipertanggung jawabkan melalui pemecahan
berbasis komputer
Agar pengembang dapat merespon permintaan bantuan (help) dari pelanggan
Biasanya jalan komunikasi ke pemahaman penuh dengan “lobang-lobang”
MENGAWALI PROSES
Untuk menjembatani jurang / lobang-lobang komunikasi antara pelanggan dan
pengembang, sekaligus untuk memulai proses komunikasi, perlu dilakukan
pertemuan pendahuluan atau wawancara
Harus dimulai dengan pertanyaan-pertanyaan yang bebas konteks :
o Siapa dibalik permintaan untuk pekerjaan ini ?
o Siapa yang akan menggunakan pemecahan ini ?
o Apa keuntungan ekonomi dari pemecahan yang berhasil ?
o Apakah ada sumber lain untuk pemecahan yang anda inginkan ?
Dilanjutkan dengan pertanyaan agar seorang analis mendapat pemahaman yang
lebih baik akan mengenai masalah dari pelanggan
o Bagaimana anda akan menandai output yang baik ?
o Masalah apa yang akan diselesaikan oleh pemecahan ini ?
o Dapatkah anda memperlihatkan kepada saya (atau menjelaskan) lingku
ngan dimana pemecahan tersebut akan digunakan ?
o Apakah masalah atau batasan kinerja yang khusus yang akan mempenga
ruhi cara pemecahan tersebut didekati ?
PANDUAN FAST
J. Wood dan D. Silver menyarankan beberapa panduan umum FAST yang dapat digunakan
yaitu :
Peserta harus menghadiri semua rapat
Semua peserta adalah sama
Persiapan harus sama pentingnya dengan rapat yang sebenarnya
Semua dokumen sebelum rapat harus dikaji ulang
Lokasi rapat diluar ruangan terkadang diperlukan
Tentukan agenda dan jangan sampai mengalami perubahan
Jangan sampai terbawa dalam hal-hal teknis yang terlalu rinci
Membangun
prototipe
Membuat
model
analisa
MODEL ANALISA :
MODEL DATA
MODEL FUNGSIONAL
BEHAVIORAL MODEL
RANGKUMAN
Analisis persyaratan adalah langkah teknis pertama pada proses rekayasa
perangkat lunak
Analisis harus berfokus pada domain informasi, fungsional dan tingkah laku
dari masalah
Rekayasa
Perangkat Lunak
PEMODELAN ANALISIS
(ANALYSIS MODELLING)
12
Ilmu Komputer Informatika Tim Dosen
Abstract Kompetensi
Menggambarkan hasil analisis pada Mengupayakan mahasiswa mampu
sebuah model mengerti pemodelan serta
menggambarkan sistem
PEMODELAN ANALISIS
(ANALYSIS MODELLING)
PEMODELAN ANALISIS
Adalah model yang menggunakan kombinasi teks dan diagram untuk menggam
barkan kebutuhan data, fungsi dan kebiasaan yang mudah dimengerti dan
ditinjau.
Biasanya menggunakan metode :
1. Analisa terstruktur
2. Analisa Berorientasi Objek
Pada inti model ada Kamus Data (DD) – penyimpan yang berisi deskripsi dari semua objek
data yang dikonsumsi atau diproduksi oleh perangkat lunak.
STATEMENT OF SCOPE
Adalah deskripsi relatif dari sistem yang dibangun untuk
indicates data that are input, output and basic functionality
indicates conditional processing (at a high level)
implies certain constraints and limitations
Bentuk-bentuk objek
a. Eksternal entity (printer)
b. Benda (laporan, tampilan)
c. Kejadian
d. Peranan (manajer, supervisor)
e. Unit organisasi (divisi, kelompok)
f. Tempat (pabrik, bank)
g. Struktur (record pegawai)
NOTASI ERD
ada tiga bentuk relationship yang dapat terjadi antar entitas
Objek1 1 relationship
1 Objek2
relationship
Objek1 1 M Objek2
relationship
Objek1 M N Objek2
MEMBANGUN ERD
Contoh :
Program Studi Sistem Informasi dikepalai oleh seorang Ketua Program Studi yang
membina beberapa Dosen. Satu Dosen dapat mengajar satu atau lebih Mata Kuliah,
namun satu dosen tadi bisa saja mengajar lebih dari 1 kelas. 1 kelas diisi oleh banyak
Mahasiswa, dimana mahasiswa tsb bisa saja mengambil beberapa mata kuliah
1 1
Prog. Studi dikepalai Ka. ProDi
1 1
membina
M
M Dosen M
Memiliki
M M
mengampu
N
Mt. Kuliah mengajar
M
N
N
diambil Mahasiswa
N Kelas M N
menangani diisi oleh
SISTEM
INPUT BERBASIS OUTPUT
KOMPUTER
EKSTERNAL ENTITI
PROSES
ALIRAN DATA
DATA STORE
EKSTERNAL ENTITI
Adalah penghasil atau pengguna data
Data harus selalu berasal dari suatu / beberapa tempat
Dan harus selalu dikirim / disampaikan ke tempat lain
Objek yang tertulis didalamnya harus kata benda
Bila diwakili oleh departemen / orang, harus memperlihatkan jabatan (Direktur,
Kepala Gudang, Pelanggan, dsb)
DATA FLOW
Data flows menunjukkan arah mengalirnya data / informasi melalui system dan data
apa yang dibawa
Sebagai penunjuk dari mana data tsb berasal dan ke arah mana data / data yang
telah diolah (informasi) nya dituju
Nama aliran data HARUS KATA BENDA
TIDAK BOLEH menggunakan kata-kata DATA atau INFORMASI
DATA STORE
Sebagai tempat penyimpanan data yang akan digunakan untuk keperluan
selanjutnya
Nama harus sesuai content
Eksternal
Entiti Data1
DATA STORE-1
Jadual test
0 Syarat Kelulusan
Lembar Jawaban SISFO
PENERIMAAN
Hasil Test MHS BARU
1.0
Jadual test Entry
Calon
Mhs
C_MHS
2.0
Buat
Jadual
Test
Lembar Jawaban
3.0
Koreksi
Hasil Test Lembar
Jawaban
4.0
Entry
FPU
M_MHS
5.0
PIMPINAN Daftar Mhs Baru Cetak
UNIVERSITAS Daftar
Mhs Baru
Rekayasa
Perangkat Lunak
Konsep Dan Prinsip Desain
13
Ilmu Komputer Informatika Tim Dosen
Abstract Kompetensi
Menjelaskan proses dan unsusr-unsur
dalam mengembangkan atau
membangun sebuah sistem
KONSEP DAN PRINSIP DESAIN
(DESIGN CONCEPTS AND PRINCIPLES)
interface
Data Dictionary
design
architectural
State-Transition design
Diagram
data
Control Specification (CSPEC) design
Spesifikasi
Prototipe
Rancangan
PRINSIP-PRINSIP RANCANGAN
o The design process should not suffer from ‘tunnel vision.’ harus ada pendekatan-
pendekatan alternative dan menilai masing-masing pendekatan berdasarkan
persyaratan masalah.
o The design should be traceable to the analysis model.
o The design should not reinvent (menciptakan kembali) the wheel. tidak boleh
berulang
o The design should “minimize the intellectual distance”(meminimalkan kesenjangan
intelektual) [DAV95] between the software and the problem as it exists in the real
world.
o The design should exhibit uniformity (memperlihatkan kesatuan) and integration.
o The design should be structured to accommodate change. (terstruktur untuk
mengakomodasi perubahan)
o The design should be structured to degrade gently, even when aberrant
(menyimpang dari kebiasaan) data, events, or operating conditions are encountered.
o Design is not coding, coding is not design.
o The design should be assessed (diperkirakan / ditaksir) for quality as it is being
created, not after the fact.
o The design should be reviewed to minimize conceptual (semantic) errors.
GAMBARAN PROSEDURAL
Open :
LANGKAH-LANGKAH
Open
UKURAN MODUL
Ada 2 sudut pandang terhadap hal ini :
MODULE
FUNGSIONAL INDEPENDEN
ARSITEKTUR
“The overall structure of the software and the ways in which that structure provides
conceptual integrity for a system.” (struktur keseluruhan perangkat lunak dan cara dimana
struktur memberikan integrasi konseptual bagi suatu system) [SHA95a]
Structural properties. This aspect of the architectural design representation defines the
components of a system (e.g., modules, objects, filters) and the manner in which those
components are packaged and interact with one another. For example, objects are packaged
to encapsulate both data and the processing that manipulates the data and interact via the
invocation of methods .
Extra-functional properties. The architectural design description should address how the
design architecture achieves requirements for performance, capacity, reliability, security,
adaptability, and other system characteristics.
Families of related systems. The architectural design should draw upon repeatable patterns
that are commonly encountered in the design of families of similar systems. In essence, the
design should have the ability to reuse architectural building blocks (polanya dapat diulangi
yang umumnya ditentukan dalam desain dari keluarga system yang sama)
HIRARKI KONTROL
o Represents the organization of program components & implies a hierarchy of control
(merepresentasikan organisasi komponen program dan mengimplikasikan suatu
hirarki control)
o Tapi tidak merepresentasikan (Does not represent) :
Procedural aspect of SW such as sequence, order, repetition (aspek prosedur
dari perangkat lunak seperti urutan proses, kejadian / urutan dari suatu
keputusan dan pengulangan operasi)
Applicability to all architectural styles
REPRESENTASI – SEPERTI DIAGRAM POHON
a b c
depth
d e k l m
f g h n o p q
Fan-In
i j r
Width
PEMBAGIAN STRUKTUR
o Pembagian secara Horizontal
o Pembagian secara Vertical (factoring)
STRUKTUR DATA
o A representation of the logical relationship among individual elements of data
INFORMATION HIDING
Algoritma
Controlled
Interface Struktur Data
Rincian dari interface eksternal
Kebijakan alokasi sumber daya
Clients “Rahasia”
DESIGN HEURISTICS
o Reduce coupling, improve cohesion
o Minimize fan-out, strive for fan-in
o Keep the scope of effect within the scope of control
o Evaluate module interface to reduce complexity and redundancy and improve
consistency
o Function is predictable, but not overly restrictive
o Strive for “controlled entry” modules by avoiding “pathological connection”
Rancangan tingkat
komponen
Perawatan
Rancangan antarmuka
Implementasi
Rancangan data
DOKUMENTASI RANCANGAN
o Scope of design effort, yang mencakup :
Sasaran system
Persyaratan utama perangkat lunak
Batasan-batasan dan pembatasan desain
o Data design, yang mencakup :
Objek data dan struktur data resultan
Struktur file dan database
Struktur file eksternal
a. Struktur logis
b. Deskripsi record logis
c. Metode akses
Data global
File dan referensi lintas data
Rekayasa
Perangkat Lunak
Pemeliharaan Perangkat
Lunak
14
Ilmu Komputer Informatika Tim Dosen
Abstract Kompetensi
Pertemuan 14 Rekayasa Perangkat Setelah mempelajari pertemuan ini
Lunak Konsep dan Teknik mahasiswa akan dapat memahami
Pemeliharaan Perangkat Lunak. Konsep dan Teknik Pemeliharaan
Perangkat Lunak.
Meskipun bug ini hanya gangguan kecil, tetapi kadang-2 bisa berakibat fatal terhadap
sistem, sehingga harus diantisipasi sedini mungkin, oleh karena itu proses ini termasuk dlm
tahap pemeliharan sistem.
Perangkat lunak aplikasi mungkin terstruktur mungkin pula tidak, atau mungkin
didokumentasikan mungkin pula tidak. Beberapa perangkat lunak yang tidak terstruktur dan
tidak didokumentasikan mungkin hampir tidak dapat dipelihara.
Jika perangkat lunak C atau COBOL berisi dokumentasi internal yang jelas dan lengkap,
seorang programmer pemeliharaan pemula atau pemakai dapat memahami apa yang
sedang dikerjakannya. Lagipula C dan COBOL adalah bahasa Universal yang umumnya
diketahui oleh sejumlah besar orang. Dengan demikian penggantian programmer
pemeliharaan tidak begitu berdampak negatif pada kemampuan perusahaan untuk
memelihara program C atau COBOL lama.
2. Rancangan Moduler.
Programmer pemeliharaan dapat mengganti modul program jauh lebih mudah daripada jika
ia berurusan dengan keseluruhan program.
4. Dokumentasi Standar.
Diperlukan sistem, pemakai, perangkat lunak dan dokumentasi operasi yang standar
sehingga semua informasi yang diperlukan untuk beroperasi dan pemeliharaan aplikasi
khusus akan tersedia.
5. Kontrol Sentral.
Semua program, dokumentasi, dan data tes seharusnya diinstal dalam penyimpanan pusat
dari sistem CASE (Computer-Aided Software Engineering atau Computer-Assisted Software
Engineering).