pemrograman
Memiliki sintaks yang jelas
Memiliki semantik yang jelas
Semantic (arti) dari setiap statement program
jelas.
Precedence operator dlm expresi mudah
dimengerti
Modular dan Information hiding
Model Integrasi sub-modul yang dapat di-link oleh
beberapa sub-modul lain secara independent
Setiap sub-modul yg di-link tsb menjadikan suatu
model abstraksi utk information
HARJANTO SUTEDJO - ATA
hiding
2008/2009 1
Prinsip pemilihan bahasa
pemrograman (cont.)
Abstraksi
Tersedia fasilitas untuk mendefinisikan tipe data
baru sbg abstraksi data, maupun abstraksi
algoritma.
Orthogonal
Hanya ada satu cara dalam mengekspresikan
suatu action, tidak bergantung tehadap komponen
lain (tipe data composite dan return function
sesuai tipe data yg diinginkan)
Portability
Dapat diinstal proses kompilasi pada beberapa
jenis mesin dan OS.SUTEDJO - ATA
HARJANTO
2008/2009 2
Prinsip pemilihan bahasa
pemrograman (cont.)
Structure
Control flow
Name scope (bagaimana menggunakan referensi
variable) -> pointer
Typing (static, dynamic)
Compiler dapat mendeteksi error melalui
check yang konsisten. Kesalah yg umum
seperti pemberian nama alias untuk suatu
variable -> tidak konsisten; type-checking;
Efisiensi
Warning untuk variable yg tidak
HARJANTO SUTEDJO - ATA
digunakan tp
sudah dideklarasikan2008/2009 3
(cont.) Prinsip pemilihan
Bahasa Pemrograman
Seragam dalam penggunaan statement
Dapat mengantisipasi kondisi exception
Mampu menangani proses yg
concurrent (bersamaan) -> multithread,
parallel processing
nominal Proposed
Customer
path M. R.’s
Help desk
Approved
M. R.’s
Modified source
& documentation
HARJANTO SUTEDJO - ATA
MR:Maintenance Request 2008/2009 8
A Typical Maintenance Flow
Marketing
nominal Written
path MR’s
Proposed
Customer Maintenance
manager M. R.’s
Help desk
Approved
M. R.’s
a. Input
•Maintenance Request (MR) (Permintaan Perawatan)
d. Output
•MR yang valid
e. Selected quality
factors •Kejelasan MR
•Tingkat kebenaran MR (mis., type)
•Mempelajari fisibilitas MR
b. Process •Investigasi dampak MR
•Analisa detail pekerjaan yang akan dilakukan yg berhubungan dg MR
•Menyempurnakan deskripsi MR
•Laporan fisibilitas
•Laporan detail analisis, termasuk dampak yang mungkin terjadi
d. Output •Requirement yg ter-update
•List modifikasi awal
•Rencana Implementation Perubahan
•Strategi Test
e. Selected quality
factors •Comprehensibility of the analysis
•Revised … •Updated …
…modification list
d. Output …design baseline
…detailed analysis
…implementation plan …test plans
•Effort in person-hours
f. Selected metrics •Elapsed time
HARJANTO SUTEDJO - ATA
•Number of applications of the change
2008/2009 15
IEEE 1219-1992
Maintenance phase 4: Implementation
•Inspect code
c. Control •Verify
CM control of new code
Traceability of new code
•Updated …
d. Output …software
…unit test reports
…user documents
•Flexibility
e. Selected quality •Traceability
factors •Comprehensibility
•Maintainability
•Reliability
•Lines of code
f. Selected metrics HARJANTO SUTEDJO - ATA
•Error rate
2008/2009 16
Pendekatan Maintenance
Filosofi Maintenance:
Orang lain yg bertanggung jawab dlm maintenance (bukan pengembang)
maintenance menjadi tantangan dlm reverse engineering
Tim pengembang membuat suatu long term komitmen untuk merawat
sistem.
Proses maintenance Basili:
Quick-fix model
Perubahan pd code semudah mungkin
Degradasi struktur software menurun secara cepat
Iterative enhancement model
Perubahan berdasarkan analisis sistem
Berusaha utk mengontrol kompleksitas dan merancang perawatan dgn
baik
Full-reuse model
Memulai dengan requirements utk sistem baru, sedapat mungkin
melakukan reengineering sistem yg ada.
Memerlukan suatu budaya reuse yg mature agar sukses dlm
reengineering HARJANTO SUTEDJOterjadinya
(meminimumkan - ATA perubahan-perubahan).
2008/2009 17
Kualitas Maintenance
Metrics Maintenance:
Number of lines of code under maintenance
Person-months to perform various maintenance
tasks
Defect count
b) Informational fan-in/fan-out
– Mempertimbangkan jml parameter yang dikirim ditambah
pengaksesan ke struktur data yg di share.
complexity = length x (fan-in x fan-out)2
sudah tervalidasi pd sistem Unix
merupakan prediktor effort yg diperlukan untuk
implementasi
HARJANTO SUTEDJO - ATA
2008/2009 27
Software Maturity Index
SMI = [MT - (Fa + Fc + Fd)]/ MT
Program structure:
D1 = 1 jika arsitektur dikembangkan menggunakan metode yg
berbeda
D1 = 0 selain itu
Subsystem independence: D2 = 1 - (S2/S1)
Subsystems not dependent on prior processing: D3 = 1 - (S3/S1)
Database size: D4 = 1 - (S5/S4)
Database compartmentalization: D5 = 1 - (S6/S4)
HARJANTO SUTEDJO - ATA
Subsystem entrance/exit 2008/2009
characteristic: D6 = 1 - (S7/S1) 29
DSQI
S1 = jumlah subsystem yang didefinisikan dalam arsitektur program
S2 = jumlah subsystem dimana correct function tergantung pd sumber
data input atau yang menghasilkan data digunakan di tempat lain.
S3 = jumlah subsystem dimana correct function tergantung pada prses
sebelumnya
S4 = jumlah item database (termasuk data objects dan semua atribut-
atribut yang mendefinisikan obyek)
S5 = jumlah total item database unique
S6 = jumlah segmen database segments (record yg berbeda atau
individual objects)
S7 = jumlah subsystem dengan jalur masuk dan keluar tunggal
Level 2 – Repeatable
Focus pd pengembangan praktik kerja dasar; mengutamakan perkrutan, pertumbuhan dan
pengembangan staff; training utk meningkatkan skill “gaps”; evaluasi kinerja.
Level 3 – Defined
Focus pada penggabungan praktik kerja ke bisnis organisasi; strategic plan untuk
melokasikan dan mengembangkan kebutuhan talent; melokasikan dan
mengembangkan kebutuhan talent; adanya kompensasi terhadap skills-based
Level 4 – Managed
Focus pd peningkatan kompetensi pd critical skills; mentoring; team-building;
quantitative competence goals; evaluation thd kefektifan work practices
Level 5 – Optimizing
Focus pd peningkatan kemampuan team dan individual penggunaan best practices
HARJANTO SUTEDJO - ATA
2008/2009 36
SQA — The Bottom Line
Suatu organisasi harus memiliki manual kualitas
manual yaitu dokumentasi prosedur quality
assurance
Setiap proyek harus memiliki quality plan yaitu himpunan
quality attributes yang dianggap penting