REKAYASA
PERANGKAT
LUNAK STMIK DHARMAPALA RIAU
I. INTRODUCTION
TO SOFTWARE
ENGINEERING
Computer science sekarang ini tidak cukup lengkap untuk bertindak sebagai
tiang penyokong software engineering.
What is the difference between software
engineering and system engineering?
Upper-Case
Lower-Case
Confidentiality (Kerahasiaan)
Engineer seharusnya menghormati kerahasiaan dari
klien mereka tanpa tergantung dengan ya atau
tidaknya suatu persetujuan kerahasiaan formal
ditandatangani.
Competence (Kemampuan)
Engineer mestinya tidak salah menggambarkan
tingkatan kemampuannya. Mereka mestinya tidak
dengan sadar menerima pekerjaan yang di luar
kemampuannya.
Issues of professional responsibility
(lanjutan)
Intellectual property rights (Hak milik intelektual)
Engineers harus sadar akan hukum lokal yang
mengatur penggunaan dari properti intelektual
seperti hak paten, hak cipta, dll. Mereka
harus seksama untuk memastikan bahwa
intelektual properti klien harus dilindungi.
Computer misuse (Penyalahgunaan Komputer)
Software engineers mestinya tidak menggunakan
kecakapan teknis mereka untuk menyalahgunakan
komputer orang lain. Penyalahgunaan komputer
dari yang relatif sepele (misal untuk bermain
game) sampai yang serius (pemberian virus).
***
2 The
Software
Product
2.1 The Evolving Role of Software
1st Era
2st 3st 4st
• Batch Era
• Multiuser • Era
Distributed • Era desk-top
Powerful
orientation • Real-time systems systems
• Limited • Database • • Object-oriented
technologies
distribution • Product Embedded • Expert systems
• Custom software ‘intelligence’ • Artificial neural
software • Low networks
cost • Parallel
hardware computing
• Network
computers
kematian
Tingkat segera
kegagalan usang
Waktu
Failure Curve for Software
(idealized)
Tingkat
kegagalan
pada tingkat yang sama
sampai usang
Waktu
Actual Failure Curve for Software
laju kegagalan
meningkat sehubungan
dengan efek sampingan
Tingkat
kegagalan
perubah
an
kurva
kurva
aktual
ideal
Waktu
2.5 Software Components
Tools
Methods
Process
Quality
3.2 A Generic View of
Software Engineering
Engineering meliputi kegiatan analisis, desain, konstruksi,
verifikasi, dan manajemen kesatuan teknik atau sosial.
Pertanyaan-pertanyaan yang harus dimunculkan dan
dijawab:
Apa masalah yang akan dipecahkan?
Karakteristik
entitas yang manakah yang dipakai untuk
menyelesaikan masalah tersebut?
Bagaimanakah entitas (dan pemecahan) tersebut diadakan?
Bagaimanakah entitas tersebut dibangun?
Correction (Koreksi)
membetulkan cacat atau kerusakan
Adaptation (Adaptasi)
modifikasi perangkat lunak karena perubahan kebutuhan fungsional
original (CPU, OS, aturan bisnis, karakteristik produk eksternal, dll)
Enhancement (Perkembangan)
memperluas perangkat lunak sehingga melampaui kebutuhan fungsi
originalnya
Prevention (Pencegahan)
pencegahan sebagai antisipasi perubahan karena usia perangkat lunak
3.5 Umbrella
Activities
Software project tracking and control
Formal technical reviews
Software quality assurance
Software configuration management
Document preparation and production
Reusability management
Measurement
Risk management
3.6 Software Development Stages
Umbrella Activities
3.7.1 Five Process Maturity Levels (SEI=Software
Engineering Institute)
Level 1: Initial
Software process yang ditandai seperti ad hoc dan chaotic
(kesemrawutan).
Level 2: Repeatable
Tracking / penelusuran masalah biaya, jadwal, dan fungsionalitas proyek-
proyek terdahulu.
Level 3: Defined
Pendokumentasian, standarisasi, dan pengintegrasian software proses
pada perangkat lunak organisasi besar.
Level 4: Managed
Pengukuan detail dan kualitas produksi perangkat lunak.
Level 5: Optimizing
Penambahan proses melalui umpan balik kuantitatif, gagasan inovatif
pengujian, dan teknologi.
3.8. Software Process Models
System/Information
Engineering
Requirement
s
definition
System and
software design
Implementatio
n and unit
testing
Integr ation
and system
testing
Operation
and
maintenance
Modified Waterfall Model (M.Kochanski)
ACCEPTAN CE
TESTING
SY ST E M
DE S I G N
SYSTEM
Verify design
T E ST IN G
P R O GR A M UNI T & I N TE -
D ES I G N G R AT I O N T E S T I N G
CODING
3.8.1.3 RAD Model
t e a m # 3
b u s in e s s
m o d e lin g
t e a m # 2
d at a
m o d e lin g
business
t e a m # 1 m o d e lin g process
m o d e lin g
data
b u s in e s s m o d e lin g a p p lic a tio n
generation
m o d e lin g
process testing
data &
m o d e lin g m o d e lin g tu rn o v e r
a p p lic a tio n
generation
proces s
m o d e lin g testing
&
a p p lic a tio n tu rn o v e r
g e n e ra tio n
testing
&
tu rn o v e r
6 0 - 9 0 hari
RAD Model Phases
Business Modelling
Memodelkan fungsi-fungsi bisnis untuk menjawab
pertanyaan- pertanyaan:
Informasi apa yang mengendalikan proses bisnis ? Informasi apa yang
dimunculkan? Ke mana infomasi itu pergi? Siapa yang memprosesnya?
Data Modelling
Aliran informasi yang didefinisikan pada fase business modelling
ditransformasikan ke dalam serangkaian obyek data.
Process Modelling
Mentransformasikan obyek data pada suatu fungsi yang
menghasilkan aliran
informasi yang dibutuhkan.
Application Generation
Mengkonstruksi perangkat lunak dengan memakai komponen yang ada (bila
memungkinkan) atau menciptakan komponen yang dapat dipakai lagi.
Testing and Turnover
Menguji komponen baru.
3.8.2 Prototyping Model
Dipakai jika:
Sistem mempunyai resiko tinggi
tidak jelas permasalahannya
Lebih fokus pada perancangan dialog user - komputer
bagaimana membuat dialog yang baik, ramah,
mudah ?
Sistem diminati oleh banyak pemakai
mencari kesepakatan (dasar untuk menyamakan
persepsi)
User ingin cepat selesai
user tidak sabar menunggu
prototipe segera memperlihatkan bentuk kerja
sistem
Masa pakai singkat
sistem hanya dipakai beberapa kali saja
Ingin menunjukkan inovasi
pengembang dapat menunjukkan kecanggihan
Kebutuhan berubah-ubah
Types of Prototyping
Evolutionary prototyping
Dimulai dari model, kemudian dikembangkan dan akhirnya dipakai.
Throw-away prototyping
Hanya dikembangkan sebagai model untuk mencari blue-print.
Evolutionary Prototyping
Prototype
Requirements
Prototype
Programming
Reviews
Validates?
Release
Throw-away prototyping
Prototype System
Requirements Programming
System
Prototype Testing
Programming
Validates?
Reviews
Reviews
Validates?
Release
Prototyping Speciality
User sibuk
user & pengembang harus sama-sama memiliki komitmen
menyediakan waktu untuk bertemu.
User sulit melakukan evaluasi
bentuk prototipe sering berubah, disesuaikan
dengan kebutuhan
user.
User ingin cepat selesai
bentuk program sudah terlihat sejak awal.
user merasa tidak akan lama lagi selesai.
pengembang sering mengabaikan dokumentasi.
User berharap terlalu banyak
keseringan evaluasi & komunikasi membuat user menjadi
berubah keinginan dan tidak pasti dengan kebutuhan.
Prototipe bekerja tidak efisien
lebih mementingkan keberhasilan.
3.8.3 Evolutionary Model
3.8.3.1 Incremental Model
system/information
engineering
delivery of
analysis design code test
1st increment
delivery of
increment 2 analysis design code test
2nd increment
delivery of
increment 3 analysis design code test
3rd increment
delivery of
increment 4 analysis design code test
4th increment
3.8.3.2 Spiral Model
prototipe tingkat
berikutnya
Project
Entry Point produk-jadi
Customer
Evaluation Construction
& Release
3.8.3.3 Component Assembly
Model
identify candidate
components
build components if
unavailable
Engnniegeriinngeering,
e
planning
3.8.3.4 Concurrent Development Model
none
Analysis activity
Under
development
A waiting Under
changes review
Under
revision
baselined
done
Konkurensi Tercapai dengan Cara:
design strategy
implementation
using 4GL
testing
***
4. Konsep Manajemen Proyek
1.
P
4.1 Peop erangkat
le
Para Pemain (Stakeholder)
Lunak
2.
3.
Pemimpin Tim
Tim Perangkat Lunak
4. Tiga Organisasi Tim (Mantei)
5. Faktor-faktor dalam Perencanaan Struktur Tim RPL (Mantei)
6. Pengaruh Karakteristik Proyek pada Struktur Tim
7. Masalah Koordinasi dan Komunikasi
8. Teknik Koordinasi Proyek (Kraul dan Streeter)
2. Problem
1. Ruang Lingkup Masalah
2. Dekomposisi Masalah
3. Proses
1. Menggabungkan Masalah dan Proses
2. Dekomposisi Proses
3. Contoh Dekomposisi (simple project)
69
4. Contoh Dekomposisi (complex project)
Konsep Manajemen Proyek
Perangkat Lunak
Manajemen Proyek Perangkat Lunak merupakan
suatu aktivitas pelindung (umbrella activity)
untuk mengelola proyek perangkat lunak, yang
difokuskan pada 3P: People (manusia); Problem
(masalah) dan Process (proses)
People:semua orang yang terlibat dalam proyek
perangkat lunak
Problem: menentukan ruang lingkup dan batasan
proyek
perangkat lunak sekaligus teknik pemecahannya.
Process:
kerangka kerja yang komprehensif dalam
70 pembangunan perangkat lunak
4.1 People
74
4.1.5 Faktor-faktor dalam Perencanaan
Struktur Tim RPL (Mantei)
Tingkat kesulitan masalah
Besarnya program (dalam LOC atau FP)
Team lifetime
Tingkat modularitas program
Kualitas dan reliabilitas program
Batas waktu pengembangan
Tingkat sosialisasi (sosiabilitas) proyek
75
4.1.6 Pengaruh Karakteristik Proyek
pada Struktur
Te a m type: D D C D C C
Tim Difficulty
high x
low x x
Size
large x x
small x
Te a m lifetime
short x x
long x
Modularity
high x x
low x
Reliability
high x x
low x
Delivery date
strict x
lax x x
Sociability
high x
low x x
76
4.1.7 Masalah Koordinasi dan Komunikasi
77
4.1.8 Teknik Koordinasi Proyek
(Kraul dan Streeter)
Pendekatan impersonal, formal.
Dokumen, memo teknis, milestone proyek, schedule, error
tracking report, dll
Prosedur interpersonal, formal.
Difokuskan pada jaminan kualitas kegiatan, diantaranya
inspeksi desain dan kode.
Prosedur interpersonal, informal.
Group meeting untuk bertukar informasi dan problem
solving, requirement gathering dan pengembangan staff.
Komunikasi elektronik.
E-mail, E-BB, web sites, video conference.
Jaringan interpersonal.
78
Diskusi informal dengan orang di luar proyek.
4.2 Problem
Manajer proyek perangkat lunak berhadapan
dengan dilema awal proyek, yaitu menentukan
perkiraan kuantitatif dan rencana organisasi
tetapi informasi yang akurat belum tersedia.
Requirement analysis yang lengkap dibutuhkan
untuk melakukan estimasi, tetapi memerlukan
waktu yang lama dan kadang-kadang
kebutuhan berubah-ubah pada saat proyek
berjalan.
Solusi: definisikan scope (ruang lingkup) dengan
benar dan segera.
79
4.2.1 Ruang Lingkup Masalah
dibatasi oleh:
Context
Bagaimana perangkat lunak yang dibangun dapat
memenuhi sebuah sistem, produk, atau konteks
bisnis yang lebih besar, serta apa batasan yang
ditentukan sebagai hasil dari konteks tersebut?
Information Objectives
Obyek data pelanggan apa yang dihasilkan sebagai
output dari perangkat lunak, dan obyek data apa
yang diperlukan sebagai input?
Function dan performance
80
Fungsi apa yang dilakukan oleh perangkat lunak
untuk mentransformasi input data menjadi output?
4.2.2 Dekomposisi Masalah
Dekomposisi masalah disebut juga partitioning (pembagian), merupakan
aktivitas yang mendudukkan inti dari analisis kebutuhan perangkat
lunak.
Dekomposisi dilakukan dalam 2 area:
Fungsionalitas yang harus dihasilkan
Proses yang akan dipakai untuk menghasilkan sesuatu
Manusia cenderung melakukan dekomposisi jika menghadapi masalah
yang kompleks
81
4.3 Proses
Fase-fase generik dan menandai proses perangkat lunak: definisi,
pembangunan, dan pemeliharaan
Fase generik dijalankan menggunakan salah satu model rekayasa
perangkat lunak.
Project manager harus memilih model rekayasa yang paling tepat
berdasarkan karakteristik masalah, tim, dan kriteria proyek.
82
4.3.1 Menggabungkan Masalah dan
Proses
Tahap awal project planning dimulai dengan penggabungan
problem dan process.
Setiap fungsi yang akan direkayasa harus melampaui
sejumlah aktivitas yang sudah ditentukan
Misal organisasi mengadopsi kerangka aktivitas sbb:
Customer communication – membangun komunikasi yang efektif
antara pengembang dan pelanggan
Planning – menentukan sumber daya, ketepatan waktu, dan
informasi proyek yang lain
Risk analysis – menentukan resiko-resiko manajemen dan teknis
Engineering – membangun aplikasi perangkat lunak
Construction and release – membangun, menguji, menginstal,
dan memberikan dukungan kepada pemakai (dokumen dan
pelatihan)
83
Customer evaluation – umpan balik pelanggan
86
4.3.4 Contoh Dekomposisi
(complex project)
Mengkaji kebutuhan customer
Merencanakan dan menjadwal sebuah pertemuan formal dengan
customer
Melakukan penelitian untuk menentukan pemecahan yang
diusulkan
Mempersiapkan dokumen kerja serta agenda untuk pertemuan
formal
Mengadakan pertemuan
Secara bersama-sama mengembangkan spesifikasi detail yang
merefleksikan data, fungsi, dan karakteristik yang berhubungan
dengan perilaku perangkat lunak
Mengkaji setiap spesifikasi detail tersebut untuk upaya perbaikan,
konsistensi, dan mengurangi ambiguitas
Mencantumkan spesifikasi detail ke dalam sebuah dokumen ruang
lingkup
Mengkaji dokumen ruang lingkup dengan semua pendapat yang
ada.
Memodifikasi dokumen ruang lingkup sesuai dengan kebutuhan.
87
***
5. Proses Perangkat Lunak dan Metrik Proyek
1. Domain Metrik
1. Tujuan Umum Pengukuran
2. Determinan Kualitas dan Efektivitas Perangkat Lunak
2. Pengukuran Perangkat Lunak
1. Size-Oriented Metrics
2. Function-Oriented Metrics
1. Function Points
2. Penghitungan Metrik Function Points
3. Feature Points
4. Penentuan Kompleksitas Transformasi Function Points
3. Penyatuan Pendekatan Metrik yang Berbeda
4. Kualitas Perangkat Lunak
1. Faktor yang Mempengaruhi Kualitas
2. Faktor yang Mempengaruhi Kualitas (Gilb)
5.5 Penyatuan Metrik-metrik dlm Proses Perangkat Lunak 88
Proses Perangkat Lunak dan Metrik Proyek
B u d it io
tic
ct e e r
Co
ara tom
si n n s
ris
n
es
Ch Cu s
s
Process
People Technology
Development
92
Environment
5.2 Pengukuran Perangkat Lunak
93
5.2.1 Size-Oriented Metrics
Normalisasikualitas dan produktivitas dengan
mengukur besar-kecilnya (LOC/KLOC)
perangkat lunak, sehingga diperoleh:
Error per KLOC
Defect (cacat) per KLOC
Rupiah (Rp) per LOC
Halaman dokumentasi per KLOC
.. .. .. .. .. .. .. ..
95
Kontroversi Size-Oriented Metrics
Domain Informasi:
Jumlah input dari user: jumlah user input yang
dibutuhkan aplikasi
Jumlah output untuk user: jumlah semua keluaran
baik laporan maupun kesalahan (ke printer/layar)
Jumlah input inquiry: masukan on-line yang
mengakibatkan keluaran on-line
Jumlah file
Jumlah interface eksternal: semua interface
yang
dibaca oleh mesin untuk memindahkan informasi ke
sistem lain.
98
5.2.2.2 Penghitungan Metrik Function
Point Weighting Factor
s measurement parameter count simple averagecomplex
number of files x 7 10 15 =
Untuk menghitung Fi, pertanyaan-pertanyaan di bawah ini dijawab dengan memberi nilai antara 0 s/d
5
Apakah sistem akan dijalankan pada lingkungan yang sudah ada yang sudah terpakai secara penuh?
Apakah pemasukan data ‘on-line’ terjadi pada transaksi input thd layar atau operasi ganda?
Apakah sistem dirancang untuk dapat diinstall pada berbagai organisasi yang berbeda?
Apakah aplikasi dirancang untuk memberikan fasilitas perubahan dan kemudahan pemakaian bagi user ?
100
5.2.2.3 Feature Points
Seperti function point dengan penambahan
karakteristik perangkat lunak lain: algorithma.
Boeing telah mengembangkan function point
extension untuk sistem-sistem real time yang
disebut 3D function point.
Untuk menghitung 3D function point hubungan
berikut dipakai
Index = I + O + Q + F + E + T + R
Keterangan : I = input O = output
Q = inquiry, F = internal data structure
E = external file, T = transformation,
101
R = transition.
5.2.2.4 Penentuan Kompleksitas
Transformasi Function Points
Semantic
Statements
1-5 6 - 10 11 +
Processing
Steps
102
Perhitungan 3D function point index
103
5.3 Penyatuan Pendekatan
Metrik yang Berbeda
Banyaknya LOC yang dibutuhkan untuk membangun 1
FP
104
5.4 Kualitas Perangkat Lunak
5.4.1 Faktor yang Mempengaruhi Kualitas
McCall dan Cavano mendefinisikan satu set quality factors yang merupakan
tahap awal untuk mengembangkan metrik untuk pengukuran kualitas
perangkat lunak:
product operation (using it),
product revision (changing it), dan
product transition
(porting it). (dibahas di Bab
Matriks Teknis PL)
105
5.4.2 Faktor yang Mempengaruhi Kualitas
(Gilb)
Correctness: perangkat lunak bekerja dengan baik & benar ( correctness =
kesalahan / kloc )
106
5.5 Penyatuan Metrik-metrik dalam
Proses Perangkat Lunak
software
engineering
process
software data
project collection measures
data
collection metrics
software
product data
collection indicators
107
***
6. Perenc. Proyek Perangkat Lunak (Software
Project Planning)
1. Observasi pada Estimasi
2. Tujuan Perencanaan Proyek
3. Ruang Lingkup Perangkat Lunak
1. Rangkaian Pertanyaan SW Scope
2. Contoh Scoping
1. Penjelasan Gambar
2. Dekomposisi Pernyataan
4. Sumber Daya
1. Sumber Daya Manusia
3. Environmental Resources
1. Software Sizing
2. Problem-based Estimation
109
6.1 Observasi pada Estimasi
111
6.3. Ruang Lingkup Perangkat Lunak
(Software Scope)
Fungsi (functions)
Kinerja (perfomance)
Batasan(constraints)
Antarmuka (interface)
Keandalan (reliability)
112
6.3.1. Rangkaian Pertanyaan SW Scope
Lingkup PL yang akan dibuat ditentukan melalui
pertemuan-pertemuan antara customer dengan
developer
Untuk menjembatani jurang komunikasi antara
customer dengan developer, Gause & Weinberg
mengusulkan 3 rangkaian pertanyaan berikut:
Rangkaian pertanyaan pertama adalah sekumpulan
pertanyaan bebas konteks yang memusatkan pada
customer, sasaran keseluruhan PL yang dibuat,
dan keuntungan yang akan diperoleh.
Rangkaian pertanyaan kedua adalah sekumpulan
pertanyaan yang memungkinkan analis mendapatkan
pemahaman yang lebih baik atas problem, dan
customer dapat menyuarakan persepsinya atas suatu
113
pertanyaan
solusi. yang memusatkan pada efektivitas
dari pertemuan itu sendiri (disebut meta-
Rangkaian pertanyaan ketiga adalah pertanyaan-
questions).
6.3.1.1 Contoh Rangkaian Pertanyaan Pertama
114
6.3.1.2 Contoh Rangkaian Pertanyaan Kedua
116
6.3.2. Contoh Scoping
conveyor line
motion
2
4
bar code
shunt
SORTING
117
STATION 5
control
connection
6.3.2.1 Penjelasan Gambar
Conveyor Line Sorting System (CLSS) menyortir box-box
yang bergerak pada ban berjalan.
Setiap box diidentifikasi dengan bar code yang
menyatakan nomor part.
Box-box tersebut akan disortir ke dalam 6 wadah
berdasarkan nomor part.
Box-box tersebut melewati stasiun sortir yang berisi
pembaca bar code dan sebuah PC (Personal Computer).
PC di stasiun sortir dihubungkan dengan mekanisme
langsiran (shunt) yang akan menyortir box-box tersebut
ke dalam wadah-wadah yang sesuai.
Box-box tersebut lewat dengan urutan yang acak dan
berjarak sama.
PL CLSS menerima informasi masukan dari pembaca bar
ban berjalan.
118
People
Reusable Software
Components
Hardware/Softwar
e Tools
123
6.4.1 Sumber Daya Manusia
124
6.4.2 Reusable Software Resources
126
6.5. Estimasi Proyek Perangkat Lunak
(Software project estimation)
Ada 2 teknik dalam melakukan estimasi proyek perangkat lunak, yaitu:
Decomposition Techniques
Empirical Estimation Models
127
6.5.1. Teknik Dekomposisi
(Decomposition techniques)
Dekomposisi masalah : memecah-mecah masalah yang
kompleks menjadi serangkaian masalah yang lebih kecil.
Ketelitian estimasi proyek PL diprediksi pada sejumlah
hal:
(1) derajat ketepatan estimasi ukuran produk yang
akan
dibuat,
(2) kemampuan menterjemahkan ukuran terestimasi
tersebut ke dalam beban kerja, waktu kalender, dan
rupiah,
(3) derajat rencana proyek yang mencerminkan
kemampuan tim software, dan
128
(4) kestabilan persyaratan-persyaratan produk dan
lingkungan yang mendukung upaya software
6.5.1.1 Software Sizing
129
6.5.1.2 Problem-based Estimation
Data LOC dan FP dipakai dalam dua hal selama estimasi proyek PL:
(1) sebagai suatu estimation variable yang dipakai untuk “memberi
ukuran” pada setiap elemen PL yang akan dibuat, dan
(2) sebagai baseline metrics yang dikumpulkan dari proyek terdahulu
dan dipakai bersama-sama dengan estimation variable untuk
menghitung proyeksi biaya dan beban kerja.
130
6.5.1.2 Problem-based Estimation
(lanj)
Tanpa memandang variabel estimasi yang dipakai, project planner mulai
dengan mengestimasi rentang nilai untuk setiap fungsi atau nilai domain
informasi.
Dengan menggunakan data historis atau intuisi, ditentukan ukuran nilai
yang optimistik (sopt), rata-rata (sm), dan yang pesimistik (spess).
Kemudian dihitung nilai yang diharapkan (three-point atau expected
value) sbb.
EV = (sopt + 4 sm + spess)/6
131
6.5.1.3 Contoh Estimasi Berbasis-LOC
Rekayasa : Software CAD yang dapat menerima
data geometrik 2-D dan 3-D dari seorang engineer.
Engineer akan berinteraksi dan mengkontrol
sistem CAD tersebut melalui user interface yang
akan mencerminkan karakteristik perancangan
interface human-machine yang baik.
Semua data geometrik dan informasi pendukung
lainnya akan disimpan dalam suatu basis data
CAD.
Modul-modul analisis - design akan dibuat untuk
menghasilkan keluaran yang akan memperagakan
(display) pada berbagai graphics devices.
Software akan dirancang guna mengontrol dan
berinteraksi dengan devices periferal yang
132
6.5.1.3 Contoh Estimasi Berbasis-LOC
(lanj)
133
6.5.1.3 Contoh Estimasi Berbasis-LOC
(lanj)
Function Estimated LOC
number of inputs 20 24 30 24 4 96
number of outputs 12 15 22 16 5 80
number of inquiries 16 22 28 22 4 88
number of files 4 4 5 4 10 40
number of external interfaces 2 2 3 2 7 14
count-total 318
135
6.5.1.4 Contoh Estimasi Berbasis FP(lanj)
F a c t o r V a l u e
B a c k u p a n d r e c o v e r y 4
D a t a c o m m u n i c a t i o n 2
D i s t r i b u t e d 0
p r o c e s s i n g 4
P e r f o r m a n c e critical 3
E x i s t i n g o p e r a t i o n e n v i r o n m e n t 4
O n - l i n e d a t a e n t r y 5
I n p u t t r a n s a c t i o n o v e r m u l t i p l e 3
s c r e e n s 5
M a s t e r files u p d a t e d o n - l i n e 5
I n f o r m a t i o n d o m a i n v a l u e s c o m p l e x 4
i n t e r n a l p r o c e s s i n g c o m p l e x 3
C o d e d e s i g n e d f o r r e u s e 5
C o n v e r s i o n / i n s t a l l a t i o n i n d e s i g n 5
M u l t i p l e i n s t a l l a t i o n s 1 .1 7
A p p l i c a t i o n d e s i g n e d f o r c h a n g e
C o m p l e x i t y=a c
d jo uus nt m
t -e tn ot tf aa cl t ox r [ 0 , 6 5 + 0 , 0 1 x F ]
F P e s t i m a t e d
i
136 = 3 7 2
F P e s t i m a t e d
6.5.1.5 Contoh Estimasi Berbasis Proses
137
c
u pl r
st a i
COMMON PROCESS o n s e ng i n e e r in g
ni k
FRAMEWORK m
n
er
ACTIVITIES g
a
co
n
m a
m l
un y
ic s
ati i
on s
138
6.5.2 Empirical Estimation Models
E A B (ev)C
dengan A , B, dan C adalah konstanta yang diturunkan
secara empirik
E a d a l a h eff ort d a l a m o r a n g b u l a n
ev adalah variabel estimasi (dalam L O C atau FP)
139
6.5.2.1 Beberapa Model Estimasi
LOC-Oriented
Walston-Felix model
E 5,2 (KLOC ) 0,91
Bailey-Basili model
E 5,5 0,73 (KLOC )1,16 Boehm simple model
E = abKLOCbb
D = cbEdb
141
dengan E adalah effort (usaha) dalam orang-bulan dan D
adalah waktu pengembangan dalam bulan kronologis.
Dengan mengambil nilai pada Untuk menghitung durasi proyek:
contoh CAD, maka biaya per- D = 2,5 E0,35
person: E = 2,5 (95)0,35
E = 2,4 (KLOC)1,05 E = 12,3 month
E = 2,4 (33,2)1,05
E = 95 person-
month Jumlah orang
yang disetujui:
• Organic – proyek perangkat lunak yanEg =sedEe/rDha=na9d5an/1re2la,3tif
142 =ke~ci8l
• p e r so n
Model 2. Intermediate COCOMO Model
E = aiKLOCbi x EAF
Software Project ai bi
organic 3,2 1,05
semi-detached 3,0 1,12
embedded 2,8 1,20
• Organic – proyek perangkat lunak yang sederhana dan relatif
kecil
• Semi-detached – proyek perangkat lunak menengah
• Embedded – proyek perangkat lunak yang kompleks
seperti PL penerbangan
144
Model 3. Advanced COCOMO
Model
Menghubungkan semua karakteristik model
intermediate dengan penilaian terhadap pengaruh
pengendali biaya pada setiap langkah (analisis,
perancangan, pemrograman, dll) dari proses rekayasa
perangkat lunak.
145
6.5.2.3 Persamaan Perangkat Lunak
Persamaa PL : model multivariasi yang mengasumsikan
distribusi khusus effort sepanjang hidup proyek
pengembangan perangkat lunak.
Dihasilkan (estimasi) dari data produktivitas 4000 proyek
perangkat lunak yang sejaman.
Didefinisikan sbb:
E = [LOC x B0,333/P]3 x (1/t4)
keterangan :
E= effort dalam person-month atau person-year t
= durasi proyek dalam bulan atau tahun
B = faktor skill khusus (pertumbuhan skill). Untuk
program kecil
(KLOC=5 sampai 15) B=0,16; untuk program lebih besar dari 70
KLOC, B=0,39
P = parameter produktivitas
146 tmin
=8,14(LOC/P)
Waktu pengembangan
0,43 minimum didefinisikan:
***
7. PENGELOLAAN RISIKO
148
Dalam konteks rekayasa perangkat lunak :
• risiko apa saja yang dapat menyebabkan proyek PL
serba salah?
151
Dalam menganalisis risiko, adalah sangat
penting untuk mengkuantifikasi tingkat
ketidakpastian dan tingkat kerugian yang
ditimbulkan oleh masing-masing risiko.
152
7.2.1 Kategori Risiko
risiko proyek : potensi muncul dari
pembiayaan, jadwal, personal, sumber daya,
pelanggan, persyaratan, kompleksitas,
ukuran, dan ketidakpastian struktural.
risiko teknis : yang disebabkan oleh
ambiguitas, spesifikasi, ketidakpastian teknik,
keusangan teknik, dan teknologi yang
leading edge.
risiko bisnis : risiko pasar, risiko strategi,
pemasaran, risiko manajemen, dan risiko
153
biaya.
7.2.2 Kategori Risiko Menurut R. Charette
160
7.4. Proyeksi Risiko
Proyeksi risiko, atau disebut juga estimasi risiko, mencoba
untuk menentukan peringkat setiap risiko berdasarkan dua
hal;
• Kemungkinan atau probabilitas bahwa risiko tersebut
nyata ada,
• Akibat (konsekuensi) pada problem-problem yang
terkait pada risiko tersebut bila benar terjadi.
7.4.1 Kegiatan Proyeksi Risiko
7.4.2 Pembuatan Tabel
161
Risiko
7.4.3 Penilaian Risiko
7.4.1 Kegiatan Proyeksi Risiko
• Menetapkan suatu skala yang mencerminkan
kemungkinan yang dibayangkan pada suatu
risiko,
• Melukiskan akibat-akibat dari risiko tsb.
• Mengestimasi dampak risiko pada proyek dan
produk, dan
• Mencatat akurasi keseluruhan dari proyeksi
risiko tsb sehingga tidak akan terjadi salah
pengertian.
162 Untuk memudahkan digunakan tabel berikut.
7.4.2 Pembuatan Tabel
Risiko
Teknik sederhana untuk proyeksi risiko adalah
dengan Tabel Risiko (lihat tabel).
Setelah semua risiko yang mungkin (terpikirkan)
serta probabilitas kemunculannya dan tingkat
dampaknya, tertuliskan semua, tahap selanjutnya
adalah mengurutkan berdasarkan resultan
probabilitas dan dampak (merupakan kegiatan
penentuan prioritas).
Tahap selanjutnya adalah menentukan cut-off
line.
163
RMMM
60%
70%
Cut-off
80%
80%
60%
PS : Product Size
BU : Business Risk
CU : Customer Risk
TE : Technology Risk
DE : Development
ST : Staff Risk
Risk
164
Risiko-risiko di atas garis cut-off harus ditangani
dengan seksama.
Risiko-risiko di bawah garis cut-off dievaluasi
kembali untuk menentukan prioritas tahap kedua.
Penggerak-penggerak risiko (bukan dampaknya)
dapat dinilai berdasarkan skala probabilitas
kualitatif dengan nilai-nilai: impossible,
improbable, probable, dan frequent.
165
Pengaruh Probabilitas dan Dampak
impact
Risiko thd Perhatian Manajemen
Faktor risiko
dengan
pengaruh tinggi
tetapi
probabilitas
rendah, tidak
boleh
menyerap high
sebagian besar
perhatian management
manajemen. concern
very low
0
1.0
166
probability of
occurrence
7.4.3 Penilaian Risiko
Tingkat referen resiko adalah tingkat degradasi
kinerja, pembengkakan biaya, kesulitan
dukungan, dan melesetnya jadual atau
kombinasinya yang menyebabkan proyek
diterminasi.
Tingkat referen resiko ini memiliki nilai tunggal
yang disebut referent point yang merupakan titik
impas untuk meneruskan atau menghentikan
proyek sama-sama dapat diterima. Titik-titik ini
kemudian dibuat prediksinya (lihat gambar). Bila
167
suatu kombinasi resiko jadwal dan biaya jatuh
pada daerah kurva yang tertutup akan
Proyeksi melesetnya jadwal Titik referen (nilai biaya,nilai waktu)
168
Proyeksi membengkaknya jadwal
7.5. Pengurangan (Mitigation), Monitoring, dan
Manajemen Risiko (RMMM)
Semua kegiatan analisis risiko mempunyai satu
tujuan tunggal : membantu tim proyek dalam
pengembangan suatu strategi untuk menghadapi
risiko.
Strategi yang efektif harus mempertimbangkan 3 isu
berikut:
• menghindari risiko (risk avoidance),
• monitoring risiko (risk monitoring),
• manajemen risiko dan perencanaan kemungkinan
(risk management & contingency planning).
169
7.5.1 Menghindari Risiko (risk avoidance)
Bila tim PL mengadopsi cara proaktif, maka
penghindaran risiko selalu merupakan strategi yang
terbaik.
Hal ini dicapai dengan mengembangkan rencana untuk
mengurangi/menghindari risiko (risk mitigation).
Misal : pergantian staf (turnover) yang tinggi
merupakan salah satu risiko proyek (ri),
yang digambarkan dalam bentuk triplet
sbb :
[ri, li, xi]
170
dan pengaruhpada
Berdasarkan (xi ) dari
data risiko tersebut
historis diprediksi
dan intuisi,
pada biaya dan jadwal proyek.
kritis kemungkinan (li)
Untuk mengurangi risiko ini, manajemen proyek
harus mengembangkan suatu strategi untuk
mengurangi turnover. Langkah-langkah yang
mungkin diambil adalah sbb.
1. Adakan pertemuan dengan staf untuk menentukan
sebab-sebab turnover (misal kondisi kerja yang
jelek, gaji rendah, pasar tenaga kerja yang
kompetitif).
2. Ambil tindakan untuk mengurangi sebab-sebab
tersebut sebelum proyek mulai.
3. Begitu proyek mulai, misalkan turnover akan terjadi,
maka kembangkan teknik-teknik untuk menjamin
171 kontinuitas bila seseorang meninggalkan
pekerjaannya.
4. Organisir tim proyek sehingga informasi
mengenai setiap kegiatan pengembangan
tersebar luas.
5. Tentukan standar dokumentasi dan tetapkan
mekanisme untuk memastikan bahwa dokumen-
dokumen tersebut dibuat dengan tepat.
6. Laksanakan kajian antarteman terhadap semua
pekerjaan tersebut sehingga lebih dari satu
orang yang terbiasa dengan pekerjaan itu.
7. Tentukan backup anggota staf pada setiap
teknologi kritis.
172
7.5.2 Monitoring Risiko (risk monitoring)
Sebagaimana proyek bergerak maju, kegiatan risk monitoring mulai.
Manajer proyek memantau faktor-faktor yang dapat memberikan
indikasi apakah risiko kemungkinan menjadi nyata atau kurang nyata?
Dalam contoh staff turnover, faktor-faktor berikut harus dipantau.
• Perilaku umum dari anggota tim berdasarkan pada tekanan-
tekanan proyek.
• Derajat kesatuan tim (kekompakan).
• Hubungan interpersonal di antara anggota tim.
• Masalah-masalah potensial yang berkaitan dengan
kompensasi dan keuntungan.
• Ketersediaan (availability) pekerjaan-pekerjaan di dalam
173
perusahaan tersebut dan di luar.
7.5.3 Manajemen Risiko dan Perencanaan Kemungkinan
176
8. PROJECT SCHEDULING &
TRACKING
1. Konsep Dasar
1. Penyebab Keterlambatan Proyek PL
2. Prinsip-prinsip Dasar
2. Hubungan Manusia dan Kerja
1. Contoh
2. Distribusi Effort
3. Penentuan Rangkaian Tugas Proyek PL
1. Rangkaian Tugas (Task Set)
2. Beberapa Tipe Proyek
3. Tingkat Kesulitan
4. Penentuan Kriteria Adaptasi
5. Penghitungan Nilai Task Set Selector
6. Contoh Perhitungan TSS
7. Contoh Perhitungan TSS utk Proyek Pengembangan Aplikasi
Baru
8. Memilih Task-task Rekayasa PL
9. Contoh task-task utama rekayasa perangkat lunak
4. Rincian Task-task Utama
5. Penentuan Task Network
6. Penjadwalan
8.1 Konsep Dasar
8.1.1 Penyebab Keterlambatan Proyek PL
• Batas penyerahan yang tidak realistis yang ditetapkan oleh
seseorang di luar grup rekayasa PL dan memaksakannya
pada manajer dan praktisi dalam grup tsb.
• Perubahan kebutuhan pelanggan yang tidak tercermin
dalam jadwal.
• Memandang rendah jumlah sumber daya yang akan
diperlukan untuk mengerjakan pekerjaan tsb.
• Resiko-resiko yang dapat diprediksi dan/atau resiko-resiko
yang tidak dapat diprediksi yang belum dipertimbangkan
ketika proyek dimulai.
• Kesulitan-kesulitan teknis yang belum dapat diramalkan
• Kesulitan-kesulitan manusia yang tidak dapat
diprediksi sebelumnya.
• Miskomunikasi di antara staf proyek yang
mengakibatkan keterlambatan.
• Ketidakmampuan manajer proyek untuk mengetahui
bahwa proyek tidak mengikuti jadwal dan tidak
melakukan tindakan yang dapat mengatasi masalah
tsb.
Batas waktu yang agresif (tidak realistik) adalah sebuah
kenyataan. Seringkali batas waktu tersebut ditetapkan
berdasarkan alasan-alasan yang disetujui oleh orang
yang menetapkan batas waktu tersebut, tetapi
seharusnya juga disetujui oleh orang yang
mengerjakannya.
8.1.2 Prinsip-prinsip Dasar
Realitas RPL : ada ratusan tugas kecil yang harus
dikerjakan untuk mencapai tujuan yang lebih besar.
Tugas manajer proyek : menentukan tugas-tugas proyek,
mengindentifikasi tugas-tugas yang kritis, dan menelusuri
kemajuannya untuk memastikan bahwa penundaan dapat
direorganisasi setiap hari.
Solusi : manajer harus mempunyai jadwal yang telah
ditetapkan dengan derajat resolusi yang memungkinkan
manajer memonitor kemajuan dan mengontrol proyek
tersebut.
Penjadwalan proyek PL : suatu kegiatan mendistribusikan
beban kerja terestimasi sepanjang durasi proyek yang telah
direncanakan dengan mengalokasikan beban kerja pada
tugas-tugas rekayasa PL. Prinsip-prinsip dasarnya sbb
Prinsip-prinsip Dasar
1. Compartmentalization (pembagian). Proyek harus
dibagi-bagi ke dalam sejumlah tugas dan aktivitas yang
dapat ditangani. Untuk melakukan ini, baik produk
maupun proses harus didekomposisi.
• Proyek-proyek reengineering.
8.3.3 Tingkat Kesulitan
Degree of rigor (tingkat kesulitan) adalah suatu
fungsi dari berbagai karakteristik proyek.
Terdapat 4 degree of
rigor. o casual,
o structured,
o strict,
o quick reaction.
Manajer proyek harus mengembangkan suatu cara yang
sistematis untuk pemilihan degree of rigor yang sesuai
untuk suatu proyek.
Untuk memenuhi hal tersebut, kriteria adaptasi
proyek didefinisikan dan nilai task set selector
dihitung, sbb.
8.3.4 Penentuan Kriteria Adaptasi
Kriteria adaptasi dipakai untuk menentukan degree of rigor
bagi proses PL yang akan dipakai pada proyek.
Sebelas kriteria adaptasi (grade 1-5) untuk proyek PL:
• ukuran proyek,
• jumlah user,
• kekritisan misi yang diemban,
• umur (lamanya) aplikasi tersebut akan dipakai,
• kestabilan dalam persyaratan,
• kemudahan komunikasi customer/developer,
• kemapanan (maturity) teknologi yang dipakai,
• kendala-kendala pada kinerja,
• karakteristik embedded/nonembedded,
• project staffing, dan
• reengineering factors.
Masing-masing kriteria adaptasi diberi grade
antara 1 s/d 5. Grade1 merepresentasikan suatu
proyek yang membutuhkan subset yang kecil pada
task-task proses dan persyaratan-persyaratan
metodologi dan dokumentasi adalah minimal.
New Application
Development Projects
Application
Enhancement Projects
Application
Maintenance
Reengineering
Preliminary concept
planning Technology risk
assessment
Plannin
g
Project
Definitio Engineerin
n g/
Concept scoping Constructi
on Proof of concept
Customer reaction
Releas
Customer e
Evaluati
Concept implementation
on
8.4 Rincian Task-task Utama
Task-task utama dapat dipakai untuk menentukan
jadwal makroskopik bagi suatu proyek.
Jadwal makroskopik tersebut harus dirinci lagi untuk
menghasilkan jadwal proyek terinci.
Rincian tersebut dapat dimulai dengan
mendekomposisi task-task utama ke dalam set-set
subtask.
Contoh task refinement untuk proyek pengembangan
konsep: concept scoping task, dengan
menggunakan process design language.
Tugas I.1 Penentuan Ruang Lingkup Konsep
1. Mengindentifikasi kebutuhan, keuntungan,
dan pelanggan potensial
2. Menentukan kejadian output/kontrol dan input
yang
diharapkan, yang mengendalikan aplikasi
Memulai Tugas I.1.2
1. Mengkaji deskripsi kebutuhan yang
ditulis
2. Memperoleh daftar output/input yang
tampak pada dokumen
dst ..........
8.5 Penentuan Task Network
Task-task dan subtask-subtask mempunyai saling
ketergantungan berdasarkan pada urutan
pengerjaannya.
Selain itu bila lebih dari satu orang bekerja pada
proyek tersebut, ada kemungkinan task-task
dikerjakan secara paralel, task konkuren ini harus
dikoordinasikan.
Task network adalah representasi grafis dari aliran
task untuk suatu proyek.
Contoh Task Network
I.3a I.5a
Tech. Rsik Concept
Asses Impl
sment eme
nt
I.6
I.1 I.2 I.3b I.4 I.5b Integr
Custo
Concep Concept Tech. Rsik Proof of Conce ate
mer
t pt a,b,
Reacto
i
scopn ig pa
l nnn
ig Assessment Concept Implem c
n
ent
I.3c I.5c
Tech. Rsik Conce
pt
Assessment Implem
8.6 Penjadwalan
Penjadwalan proyek PL tidak berbeda dengan
penjadwalan multitask engineering effort lainnya.
Dalam kontek proses PL, istilah defect dan fault adalah sinonim.
Keduanya menyatakan secara tidak langsung suatu problem kualitas
yang ditemukan setelah PL dirilis kepada end users.
Sasaran utama dari FTR adalah menemukan errors selagi proses
PL berjalan sehingga tidak menjadi defect setelah PL dirilis.
Keuntungan sesungguhnya dari FTR adalah menemukan error
sedini mungkin sehingga error tsb tidak menjalar ke langkah
berikutnya dalam proses PL.
Sejumlah studi menunjukkan bahwa kegiatan desain mengintrodusir
error antara 50% dan 65% dari seluruh error (dan pada akhirnya,
seluruh defect) selama proses PL.
FTR telah menunjukkan bahwa sampai 75% efektif dalam
menemukan cacat-cacat desain.
Dengan mendeteksi dan menghapus sejumlah besar persentase error,
proses review secara subtansial mengurangi biaya pada langkah-
langkah selanjutnya dalam phase-phase pengembangan dan
maintenance.
9.6 Kajian Teknik Formal
(Formal Technical
Review)
FTR adalah aktivitas jaminan kualitas perangkat
lunak yang dilakukan oleh perekayasa perangkat
lunak.
Tujuan FTR adalah:
menemukan error dalam fungsi, logika, atau
implementasinya dalam berbagai representasi
perangkat lunak;
memverifikasi bahwa perangkat lunak yang direview
memenuhi syarat;
memastikan bahwa perangkat lunak tersebut telah
direpresentasikan sesuai dengan standard yang telah
ditentukan sebelumnya;
untuk mencapai perangkat lunak yang dikembangkan
dengan cara yang seragam;
membuat proyek lebih mudah dikelola.
9.7 Review
9.7.1 Review Meeting
Review meeting (pertemuan kajian) adalah
pertemuan tim review produk kerja perangkat lunak
yang terdiri dari 3 sampai 5 orang guna mengkaji dan
mengevaluasi perangkat lunak yang telah dihasilkan.
Diakhir review, tim harus memutuskan apakah:
menerima hasil kerja tersebut tanpa modifikasi lebih
lanjut.
menolak hasil kerja tersebut karena adanya kesalahan
yang fatal, atau
menerima hasil kerja tersebut secara sementara
(error2 kecil telah ditemukan dan harus dikoreksi;
tetapi tidak perlu direview lagi).
9.7.2 Laporan Review
Ada 2 dokumen yg dihasilkan dalam review meeting
yaitu daftar masalah review (review issues list) dan
laporan rangkuman review (review summary report).
Review summary report memuat jawab dari 3
pertanyaan berikut:
(1) apa yg telah direview,
(2) siapa yg telah mereviewnya, dan
(3) apa yang telah ditemukan & apa
kesimpulannya.
Review issues list berisi hal2 yang berguna
dlm:
(4) mengidentifikasi area problem, dan
(5) bertindak sebagai action item checklist
9.7.3 Pedoman Review
***
10. SOFTWARE CONFIGURATION MANAGEMENT
1. Pendahuluan
1. Perubahan
2. Tujuan SCM
3. Software Maintenance vs Software Configuration
Management
4. Informasi dan Perubahan
2. Software Configuration Management
1. Sumber Dasar Perubahan
2. Baseline
3. SCI Baseline dan Database Proyek
10.3 Software Configuration Item (SCI)
4. SCM Process
1. Tanggung Jawab SCM
2. Pertanyaan Seputar SCM
3. Tugas SCM
5. Identifikasi Objek dalam SC
1. Tipe Objek
2. Keunikan Objek
3. Hubungan Antar-Objek
4. Evolusi Objek
6. Kontrol Versi (Version Control)
1. Versi PL
2. Komponen
3. Varian
4. Hub Objek Konfigurasi, Komponen, Varian, dan Versi
7. Kontrol Perubahan
1. Proses Kontrol Perubahan
2. Kontrol Akses & Sinkronisasi
8. Audit Konfigurasi
1. Proses Audit Konfigurasi
2. Pertanyaan dalam Proses Audit Konfigurasi
3. Pelaporan Status Konfigurasi (Status Accounting)
10.9 Software Configuration Management (SCM) Standards
10.1.
Pendahuluan
10.1.1 Perubahan
Perubahan adalah hal yang tidak dapat dihindarkan ketika
perangkat lunak komputer sedang dibuat.
Perubahan2 tersebut meningkatkan tingkat kebingungan
di antara para software engineer yang berkerja pada
proyek tersebut.
Kebingungan muncul bila perubahan2 tersebut tidak
dianalisis sebelum perubahan tersebut dilaksanakan;
dicatat sebelum diimplementasi, dilaporkan kepada yang
ingin mengetahui, atau dikontrol dengan suatu cara
yang akan meningkatkan kualitas & mengurangi error.
Software configuration management (SCM) adalah
kegiatan payung (umbrella activities) yang dilaksanakan
selama proses perangkat lunak.
10.1.2 Tujuan
SCM
Karena perubahan dapat terjadi kapan saja, maka
kegiatan SCM dibuat untuk;
1) mengidentifikasi perubahan,
2) mengontrol perubahan,
3) mengimplementasikan perubahan dengan benar,
dan
4) melaporkan perubahan kepada pihak-pihak yang
mempunyai kepentingan.
10.1.3 Software Maintenance vs Software Configuration
Management
Penting untuk dibedakan dengan jelas antara
software maintenance dan software configuration
management.
Software Maintenance adalah serangkaian aktivitas
rekayasa perangkat lunak yang terjadi setelah
perangkat lunak diserahkan ke pelanggan dan telah
dioperasikan.
Software configuration management adalah
serangkaian kegiatan tracking & control yang dimulai
ketika suatu proyek perangkat lunak dimulai dan
berakhir ketika perangkat lunak sudah tidak
beroperasi lagi.
10.1.4 Informasi dan
Perubahan
Keluaran dari proses perangkat lunak adalah informasi yang
dapat dibagi ke dalam 3 kategori utama;
1) program komputer (baik dalam bentuk source code
maupun executable),
2) dokumen2 yang menjelaskan program komputer tersebut
(yang ditargetkan baik untuk technical practitioners
maupun users), dan
3) data (yang diisikan dalam program atau dikeluarkan dari
program).
Item2 yang terdiri dari semua informasi yang dihasilkan
sebagai bagian dari proses perangkat lunak secara kolektif
disebut Software Configuration Items (SCI).
Selama proses - rekayasa SCI berkembang dengan pesat.
System specification menghasilkan sebuah software project
plan dan software requirements specification (juga dokumen2
yang terkait dengan hardware), yang secara berurutan akan
menghasilkan dokumen2 untuk menciptakan suatu hirarki
informasi.
Perubahan masuk ke dalam proses rekayasa. Perubahan
dapat terjadi kapan saja, untuk suatu alasan. Ini sesuai dengan
Hukum 1 system engineering [BER80] yang menyatakan:
“Tidak masalah dimana anda berada dalam siklus kehidupan
sistem, sistem akan berubah, dan keinginan untuk
mengubahnya akan selalu ada selama siklus hidup tersebut”.
10.2. Software Configuration
Management
10.2.1 Sumber Dasar Perubahan
Terdapat 4 sumber dasar perubahan.
Bisnis baru atau kondisi pasar yang mendiktekan perubahan2 dalam
produk atau aturan2 bisnis.
Keinginan pelanggan baru yang meminta modifikasi data yang
dihasilkan oleh sistem informasi; fungsionalitas yang diberikan oleh
produk, atau layanan yang diberikan oleh suatu sistem berbasis
komputer.
Reorganisasi dan/atau perampingan bisnis yang menyebabkan perubahan
prioritas proyek atau struktur tim rekayasa perangkat lunak.
Kendala2 anggaran atau jadwal yang menyebabkan redefinisi sistem atau
produk.
SCM adalah sekumpulan kegiatan yang telah dikembangkan
untuk menangani perubahan2 selama siklus hidup dari perangkat
lunak komputer.
SCM dapat dipandang sebagai kegiatan SQA yang dipakai
selama proses perangkat lunak.
10.2.2
Baseline
Perubahan adalah kenyataan hidup dalam pengembangan perangkat
lunak. Pelanggan ingin memodifikasi persyaratan2. Pengembang
ingin memodifikasi metode2 teknis. Manager ingin memodifikasi cara
pendekatan proyek.
Baseline adalah sebuah konsep SCM yang membantu dalam kontrol
perubahan2 tanpa secara serius menghalangi perubahan2 yang dapat
dijustifikasi.
IEEE mendifinisikan baseline sebagai:
Suatu spesifikasi atau produk yang telah direview secara formal
dan disetujui bersama, yang selanjutnya berfungsi sebagai dasar
bagi pengembangan lebih lanjut, serta dapat diubah hanya melalui
prosedur2 kontrol perubahan formal.
Dalam konteks rekayasa perangkat lunak, baseline adalah milestone
dalam rekayasa perangkat lunak yang ditandai dengan penyampaian
(delivery) SCI dan persetujuan (approval) SCI tersebut yang
diperoleh lewat suatu FTR.
Baseline
system engineering
System Specification
requirements analysis
software design
Design Specification
coding
Source Code
testing
Test Plans/Procedures/Data
release
Operational System
10.2.3 SCI Baseline dan Database
Proyek
modified
Project
SCIs database
approved
Software Formal
engineering SCIs technical SCIs
tasks reviews
stored
SCIs
Perlu
extracted
modifikasi?
SCM
controls
SCIs
Jalur modifikasi
10.3 Software Configuration Item
(SCI)
SCI merupakan informasi yang diciptakan sebagai bagian dari
proses rekayasa perangkat lunak.
SCI berikut menjadi target bagi teknik2 CM dan membentuk
sekumpulan baseline.
1. System Specification
2. Software Project Plan
3. Software Requirement Specification
a. Graphical analysis model
b. Process specifications
c. Prototype(s)
d. Mathematical specification
4. Preliminary User Manual
5. Design Specification
a. Data design description
b. Architectural design description
c. Modul design descriptions
d. Interface design descriptions
e. Object description
Software Configuration Item (lanj)
6. Source Code Listing
7. Test Specification
a. Test plan & procedure
b. Test cases & recorded results
8. Operation & Installation Manuals
9. Executable Program
a. Module executable code
b. Linked modules
10. Database Description
a. Schema & file structure
b. Initial content
11. As-built User Manual
12. Maintenance
Documents
a. Software problem
reports
b. Maintenance requests
c. Engineering change
orders
10.4. SCM
Process
10.4.1 Tanggung Jawab SCM
SCM adalah sebuah elemen penting dari SQA
Tanggung jawab utamanya adalah mengontrol
perubahan.
SCM juga bertanggung jawab untuk :
mengidentifikasi individual SCI & berbagai versi
perangkat lunak,
meng-audit software configuration untuk
memastikan
bahwa dia telah dikembangkan dengan
benar, dan
melaporkan semua perubahan yang telah dilakukan
pada konfigurasi tersebut.
10.4.2 Pertanyaan Seputar
SCM
Diskusi mengenai SCM memperkenalkan sekumpulan pertanyaan
kompleks sebagai berikut.
Bagaimana suatu organisasi mengidentifikasi dan menangani
berbagai versi yang ada dari sebuah program (dan
dokumentasinya) dalam suatu cara yang akan
memungkinkan perubahan ditampung secara efisien?
Bagaimana suatu organisasi mengontrol perubahan sebelum
dan setelah perangkat lunak dirilis ke pelanggan?
Siapa yang mempunyai tanggung jawab (otoritas)
untuk approving (menyetujui) & prioritizing
(memprioritaskan) perubahan?
Bagaimana kita yakin bahwa perubahan2 tersebut telah dilakukan
dengan benar?
Mekanisme apa yang dipakai untuk memberitahu yang lain
bahwa perubahan telah dilakukan?
10.4.3 Tugas
SCM
Pertanyaan2 tersebut membawa kepada definisi 5 tugas
(task) SCM :
identifikasi,
kontrol versi,
kontrol perubahan,
auditing konfigurasi, dan
pelaporan.
10.5 Identifikasi Objek dalam
SC
10.5.1 Tipe Objek
Untuk mengontrol & menangani SCI2, masing2 item harus
diberi nama berbeda dan kemudian diorganisir dengan
menggunakan metode berorientasi objek.
Dua tipe objek dapat diidentifikasi: basic objects (obyek
dasar) & aggregate objects (kumpulan obyek).
Sebuah basic object adalah sebuah “unit of text” yang
telah diciptakan oleh seorang software engineer
pada saat (selama) analisis, design, coding, atau
testing.
Sebuah aggregate object adalah sekumpulan basic object
dan aggregate objects lainnya.
10.5.2 Keunikan
Objek
Setiap object mempunyai sekumpulan fitur yang berbeda
yang mengidentifikasikannya secara unik;
sebuah nama (object name),
suatu deskripsi (object description),
suatu daftar sumber daya (resources list) dan
suatu realisasi (realization)
10.5.2 Keunikan Objek
(lanj)
Object name adalah sebuah string karakter yang
mengidentifikasi object secara tidak samar.
Object description adalah sebuah list item2 data yang
mengidentifikasi:
tipe SCI (misal dokumen, program, data) yang
direpresentasikan oleh object;
suatu project identifier; dan informasi perubahan
dan/atau versi.
Resources adalah entitas yang disediakan,
diproses,
diacu atau sebaliknya diperlukan oleh object.
Realisasi adalah sebuah pointer pada “unit of text” untuk
suatu basic object dan null untuk suatu aggregate object.
10.5.3 Hubungan Antar-
Objek
Configuration object identification juga harus
mempertimbangkan hubungan yang ada antara “named
objects”
Sebuah object dapat diidentifikasi sebagai <part-of> suatu
aggregate
object.
Hubungan <part-of> menentukan sebuah hirarki object2.
Hubungan di antara object2 dalam suatu hirarki objek tidak hanya
sepanjang direct path dari hirarchical tree, tetapi dalam beberapa
hal, object2 diinterrelasikan melewati cabang2 dari object hirarchy.
Interrelationships antara configuration objects dapat
direpresentasikan dengan sebuah module interconection
language (MIL).
MIL menggambarkan interdependencies di antara configuration
objects dan memungkinkan suatu versi dari suatu sistem
dikonstruksi secara otomatis.
Gambar : Configuration Objects
Data Model
Design specification
data design
architectural design
module design
interface design
Module N
interface description
algorithm description
PDL
Test specification
test plan
test procedure
Source code
test cases
10.5.4 Evolusi
Objek
Skema identifikasi untuk objek2 perangkat lunak harus
mengenali bahwa objek2 berevolusi selama proses
perangkat lunak.
Sebelum suatu objek dijadikan baseline, dia boleh
berubah berkali-kali, dan bahkan setelah suatu baseline
ditetapkan, perubahan2 mungkin cukup sering.
Dimungkinkan untuk menciptakan sebuah evolution graph
untuk suatu object. Evolution graph menggambarkan
sejarah perubahan dari object (lihat gbr).
Dimungkinkan juga perubahan2 dapat dilakukan pada
sembarang versi, tetapi tidak perlu pada semua versi.
Grafik
Evolusi
obj obj
1.3 1.4
obj obj obj
2.0 2.1
obj obj
1.1.1 1.1.2
10.6 Kontrol Versi (Version
Control)
Clemm[CLE89] menggambarkan version control dalam
konteks SCM sbb:
Configuration management mengijinkan seorang user
untuk menentukan konfigurasi alternatif dari sistem
software melalui pemilihan versi2 yang sesuai. Hal ini
didukung oleh atribut2 yang terkait dengan masing2 versi
software, dan kemudian juga mengijinkan suatu
konfigurasi ditentukan (dan dikonstruksi) dengan
menggambarkan serangkaian atribut yang diinginkan.
10.6.1 Versi
PL
Atribut2 yang dikemukakan di atas dapat sesederhana
seperti hanya sebuah nomor versi tertentu yang terkait
pada masing2 objek atau sekompleks seperti suatu string
dari variable boolean (switches) yang menunjukkan tipe
tertentu dari perubahan2 fungsional yang telah dilakukan
pada sistem.
Salah satu representasi dari versi2 yang berlainan dari
suatu sistem adalah evolution graph (lihat gbr).
Masing2 node pada graph tersebut adalah sebuah
aggregate object, yaitu satu versi lengkap (utuh) dari
perangkat lunak.
10.6.2
Komponen
Masing2 versi perangkat lunak adalah sekumpulan SCI
(source code, dokumen2, data) dan setiap versi dapat
terdiri dari variant2 yang berbeda.
Untuk melukiskan konsep ini, pikirkan sebuah versi dari
sebuah program sederhana yang tersusun dari
komponen2 1, 2, 3, 4, dan 5 (lihat gbr).
Komponen 4 hanya dipakai bila software
diimplementasikan dengan menggunakan display warna.
Komponen 5 diimplementasikan bila tampilan yang
dipakai monochrome.
Oleh karena itu, dua variant dari versi tersebut dapat
ditentukan: (1) komponen2 1, 2, 3, dan 4; (2) komponen2
1, 2, 3, dan 5.
Grafik Evolusi Revisi Perangkat Lunak
obj obj
1.3 1.4
obj obj obj
2.0 2.1
obj obj
1.1.1 1.1.2
1
2 3
variants
4 5
components
10.6.3
Varian
Untuk membangun varian yang sesuai dari suatu versi
tertentu dari suatu program, masing2 komponen dapat
diberikan suatu “attribute-tuple”, yaitu sebuah lis dari fitur2
yang akan menentukan suatu komponen tertentu harus
dipakai bila suatu varian tertentu dari suatu versi
perangkat lunak dibuat.
Satu atau lebih atribut diberikan untuk masing2 varian.
Sebagai contoh, suatu atribut ‘color’ dapat dipakai untuk
menentukan komponen yang harus disertakan bila
color display yang harus didukung.
Cara lain untuk mengkonseptualisir hubungan antara
komponen, varian2, dan versi2 (revisi2) adalah
merepresentasikannya sebagai “object pool”
variants
components
versions
object
10.6.4 Hub Objek Konfigurasi, Komponen, Varian, dan
Versi
Hubungan antara configuration object dan komponen2,
varian2, dan versi2 dapat direpresentasikan sebagai
sebuah ruang tiga dimensi.
Sebuah versi dapat dipilih dari beberapa varian yang ada
(sb vertikal) yang terdiri dari beberapa komponen.
Sebuah komponen tersusun dari sekumpulan objek2 pada
tingkat level revisi yang sama.
Sebuah varian adalah sekumpulan objek2 yang berbeda
pada tingkat revisi yang sama, dan oleh karena itu berada
berdampingan secara paralel dengan variant2 lain.
Sebuah versi baru ditentukan bila perubahan2 besar
(utama) dilakukan pada satu atau lebih object.
10.7 Kontrol
Perubahan
Untuk proyek pengembangan perangkat lunak yang
besar, perubahan yang tidak terkontrol membawa pada
kekacauan (chaos).
Change control menggabungkan prosedur manusia dan
tool otomatis guna memberikan sebuah mekanisme untuk
mengontrol perubahan.
Suatu change request di submit dan dievaluasi untuk
menilai manfaat teknisnya, efek samping yang potensial,
dampak keseluruhan pada configuration objects dan
fungsi2 sistem lainnya.
10.7.1 Proses Kontrol
Perubahan
Hasil dari evaluasi tersebut dipresentasikan sebagai sebuah Change
Report yang dipakai oleh Change Control Authority (CCA), yaitu
seseorang atau grup yang membuat keputusan akhir terhadap
status dan prioritas dari perubahan tersebut.
Sebuah Engineering Change Order (ECO) dibuat untuk
setiap perubahan yang telah disetujui.
ECO menjelaskan perubahan2 yang harus dibuat, kendala2
yang
harus diperhatikan, dan kriteria2 untuk review & audit.
Objek yang akan diubah di’checked out’ dari basis data
proyek, dilakukan perubahan, dan kegiatan2 SQA yang
bersesuaian dilaksanakan.
Objek tersebut kemudian di’checked-in’ ke basis data dan
mekanisme version control yang sesuai dipakai untuk menciptakan
versi berikutnya dari perangkat lunak tersebut.
Proses check-in dan check-out mengimplementasikan dua elemen
penting dari kontrol perubahan, yaitu access control &
10.7.2 Kontrol Akses & Sinkronisasi
check-in
configuration object
(modified version)
configuration object
(baseline version)
unlock
audit info
ownership
info
software access project
database
engineer control
lock
configuration object
(extracted version) configuration object
(baseline version)
check-out
10.8 Audit
Konfigurasi
Identifikasi, kontrol versi, dan kontrol perubahan
membantu pengembang perangkat lunak untuk
mempertahankan aturan, bila tidak akan mendatangkan
situasi yang chaotic & fluid.
Walaupun demikian, bahkan mekanisme kontrol yang
berhasil mentrack perubahan hanya sampai ECO
dibangkitkan.
Bagaimana kita dapat menjamin bahwa perubahan
tersebut telah diimplementasikan dengan benar?
Jawabnya adalah dua hal: (1) FTR, dan (2) software
configuration audit.
10.8.1 Proses Audit
Konfigurasi
FTR memusatkan pada ketepatan (correctness) teknis
dari configuration object yang telah dimodifikasi.
Para reviewer menilai SCI tersebut untuk menentukan
konsistensi terhadap SCI2 lain, penghilangan, dan
potensial side effects. FTR harus dilaksanakan untuk
semua perubahan termasuk yang paling sepele.
Software configuration audit melengkapi
(menyempurnakan) FTR dengan penilaian suatu
configuration object untuk karakteristik2 yang pada
umumnya tidak dipertimbangkan selama review.
10.8.2 Pertanyaan dalam Proses Audit
Konfigurasi
Audit tersebut menanyakan dan menjawab pertanyaan2
berikut:
1. Apakah perubahan yang ditentukan dalam ECO telah
dilakukan? Apakah suatu modifikasi tambahan telah
disertakan?
2. Apakah FTR telah dilakukan untuk menilai ketepatan teknis?
3. Apakah standard2 software engineering telah diikuti dengan
benar?
4. Apakah perubahan tersebut telah ditandai dalam SCI?
Apakah tanggal perubahan dan orang yang membuat
perubahan telah dicatat? Apakah atribut2 configuration object
mencerminkan perubahan tersebut?
5. Apakah prosedur2 SCM untuk pencatatan perubahan, perekaman,
dan pelaporan telah diikuti?
6. Apakah semua SCI yang terkait telah diupdate dengan benar?
10.8.3 Pelaporan Status Konfigurasi (Status
Accounting)
Setiap kali suatu SCI diberi identifikasi baru atau
diupdate, sebuah Configuration Status Reporting CSR
entry dibuat.
Setiap kali suatu perubahan disetujui oleh CCA (yaitu,
suatu ECO dikeluarkan), sebuah entry CSR dibuat.
Setiap kali suatu configuration audit dilakukan, hasil2nya
dilaporkan sebagai bagian dari task CSR.
Output dari CSR dapat diletakkan dalam basis data on-
line shg pengembang perangkat lunak atau pengelola
(maintainers) dapat mengakses informasi perubahan
dengan keyword category.
10.9 SCM
Standards
Beberapa standard SCM awal, seperti MIL-STD-483,
DOD-STD-480A, dan MIL-STD-1521A, memusatkan
pada software yang dikembangkan untuk aplikasi
militer.
Standar ANSI/IEEE yang lebih baru, seperti
ANSI/IEEE Std. No. 828 - 1983, Std. No. 1042 - 1987,
dan Std. No. 1028 - 1988, dapat dipakai untuk
software komersial dan direkomendasikan baik untuk
organisasi2 rekayasa perangkat lunak besar & kecil.
***
III. METODE
KONVENSIONAL
domain interes
Pandangan Domain
elemen sistem
Pandangan Elemen
Pandangan Detail
11.2 Rekayasa Informasi
Tujuan dari rekayasa informasi (information engineering) adalah
untuk
menentukan arsitektur yang memungkinkan suatu organisasi
/bisnis (selanjutnya disebut bisnis saja) menggunakan informasi
secara efektif,
membuat suatu rencana menyeluruh guna
mengimplementasi arsitektur-arsitektur tersebut.
Tiga arsitektur yang harus dianalisis dan dirancang dalam
konteks
dan tujuan bisnis:
Arsitektur data
memberikan kerangka kerja untuk kebutuhan informasi dan bisnis atau fungsi
bisnis. Blok bangunan dari arsitektur ini adalah objek data yang digunakan
oleh suatu basisdata dan ditransformasikan untuk memberikan informasi yang
melayani kebutuhan bisnis.
Arsitektur aplikasi
melingkupi elemen-elemen dari suatu sistem yang mentransformasi objek ke
dalam arsitektur data untuk keperluan bisnis.
Infrastruktur teknologi
Untuk memodelkan arsitektur sistem, ditetapkan hirarki
aktivitas rekayasa informasi, mulai dari World View,
Domain View, Element View hingga Detail View.
WV dicapai melalui information strategy planning (ISP),
dengan memandang bisnis keseluruhan sebagai sebuah entitas
dan memisahkan domain bisnis yang penting untuk
perusahaan
/ institusi keseluruhan
Pandangan domain yang dikaitkan dengan IE disebut
analisis area bisnis/ Business Area Analysis (BAA)
BAA adalah pengindentifikasian data lengkap dan persyaratan
fungsi (dalam bentuk proses) dari area bisnis yang dipilih, yang
diindentifikasi selama ISP, dan memastikan interaksi mereka
(dalam bentuk matriks)
BAA mendefinisikan objek-objek data, hubungan
11.2.1 Hirarki Rekayasa Informasi
Perusahaan Perencanaan
Strategi Informasi
(World View)
area bisnis
persyaratan
pemrosesan
Desain Sistem
Sistem Informasi
Bisnis
(Pandangan
Elemen)
Perekaya
Perangkat
Konstruksi dan Lunak
Integrasi
(Pandangan
Detail)
11.2.2 Analisis Area
Bisnis
Gambaran analisis area bisnis adalah sbb.
Objek : Pelanggan
Atribut :
nama
nama perusahaan objek :
perusahaan
klasifikasi pekerjaan dan otoritas
pembelian
alamat bisnis dan informasi kontak
pembelian sebelumnya
status kontak status kontak terakhir
tanggal kontak terakhir rekaman
kontak tanggal kontak selanjutnya
sifat kontak yang disepakati
Atribut nama perusahaan dimodifikasi
untuk menunjuk objek lain yang disebut
‘perusahaan’ yang dapat berisi informasi
tambahan mengenai besar perusahaan,
kebutuhan pembelian, nama kontak yang lain, dsb., yang berguna dalam domain
penjualan.
11.2.4 Pemodelan Proses
Kegiatan pada suatu area bisnis mencakup serangkaian fungsi bisnis, yang diuraikan ke dalam proses
bisnis yang lebih rinci.
Mengkonfir-
masikan Info
pesanan
Memberi
Informasi Menyiapkan
produk Pesanan
pengiriman
Membangun
Memberi
Kontak
pelanggan
Evaluasi
Tindak
produk
lanjut ke
pelanggan
Membangun
Deskripsi Memberi
Kontak
produk Format pelanggan
Evaluasi
konfigurasi Tindak
produk ketersediaan lanjut ke
Deskripsi Info pesanan pelanggan
Produk terevaluasi
Pemenuhan
Pemenuhan pesanan
pesanan
Rekayasa Informasi merupakan suatu pendekatan Rekayasa Sistem yang digunakan untuk
menentukan arsitektur yang memungkinkan organisasi /bisnis menggunakan informasi scr efektif.
11.3 Rekayasa Sistem
Rekayasa Sistem merupakan suatu aktivitas pemecahan masalah yang
dihadapi sistem.
Data produk, fungsi, dan perilaku sistem harus ditemukan, dianalisis,
dan dialokasikan ke dalam komponen-komponen rekayasa.
Perekayasa sistem harus memperjelas dan membatasi persyaratan
sistem dengan mengidentifikasi ruang lingkup fungsi dan kinerja yang
diinginkan.
Rekayasa Sistem diawali dengan analisis sistem untuk membentuk
model arsitektur sistem dan spesifikasi sistem.
11.3.1 Aktivitas-aktivitas dalam Analisis Sistem
Fungsi proses
Pemrosesan dan kontrol Pemrosesan
input output
Operator
Stasiun
sorting
Operator
Stasiun
sorting
***
12. KONSEP DAN
PRINSIP
ANALISIS
1. Analisis Persyaratan
2. Prinsip-Prinsip Analisis
3. Area Kerja Analisis
1. Identifikasi dan Perumusan Masalah
2. Evaluasi dan Sintesis
3. Pemodelan Analisis
4. Spesifikasi
5. Kajian
12.1 Analisis Persyaratan
Analisis persyaratan adalah sebuah tugas rekayasa perangkat lunak yang menjembatani
jurang antara alokasi perangkat lunak tingkat sistem dan desain perangkat lunak.
Analisis persyaratan memungkinkan perekayasa sistem menentukan fungsi dan kinerja
perangkat lunak, menunjukkan interface perangkat lunak dengan elemen-elemen sistem
yang lain, dan membangun batasan yang harus dipenuhi oleh perangkat lunak.
Analisis
Persyaratan PL
Elemen2
Perangkat lain
Lunak Desain
PL
Analisis
Persyaratan PL REKAYAS
A SISTEM
12.2 Prinsip-Prinsip
Analisis
1. Prinsip Operasional
Domain informasi dari suatu masalah harus dipahami
Fungsi-fungsi yang akan dilakukan oleh perangkat lunak harus didefinisikan
Perilaku perangkat lunak harus direpresentasikan
Model-model yang menggambarkan informasi, fungsi dan tingkah laku sistem harus dipecah-pecah
secara hirarki
Proses analisis harus bergerak dari informasi dasar ke detail implementasi
2. Prinsip Panduan untuk rekayasa persyaratan
Memahami masalah sebelum membuat model analisis
Mengembangkan prototipe, sehingga pemakai memahami bagaimana interaksi manusia dan
komputer
Merekam asal dan alasan untuk setiap persyaratan
Menggunakan pandangan persyaratan bertingkat
Memprioritaskan persyaratan
Mengurangi ambiguitas
12.3 Area Kerja
Analisis
Analisis persyaratan memberikan model-model yang akan
diterjemahkan ke dalam data, arsitektur, interface, dan desain
prosedural kepada perancang perangkat lunak.
Analisis persyaratan perangkat lunak dapat dibagi menjadi lima area
kerja:
1) Identifikasi dan Perumusan Masalah
3) Pemodelan
4) Spesifikasi
5) Kajian
12.3.1 Identifikasi dan Perumusan Masalah
Identifikasi bisa diawali dengan mempelajari spesifikasi sistem dan atau
rencana proyek perangkat lunak. Contohnya :
Pemasok besar suku cadang kendaraan bermotor membutuhkan sistem
kontrol inventaris. Analis merumuskan masalah yang berhubungan
dengan sistem manual yang ada sbb.
Ketidakmampuan untuk dengan cepat memperoleh status suatu
komponen.
Dua atau tiga hari berkali-kali memperbarui suatu file kartu.
Pemesanan kembali secara bertingkat kepada penjual yang sama karena
tidak ada cara untuk menghubungkan para penjual dengan komponen, dsb.
12.3.2 Evaluasi dan Sintesis
Dalam melakukan analisis, fokus utama analis adalah pada ‘apa’? bukan
‘bagaimana?’.
Data apakah yang diproduksi dan dikonsumsi, batasan apakah yang dipakai?
Selama aktivitas sintesis, evaluasi, dan solusi analis menciptakan model-
model sistem untuk memahami aliran data dan kontrol, operasi behavioral
dan pemrosesan fungsional, serta muatan informasi.
Model tersebut berfungsi sebagai dasar bagi desain perangkat lunak dan untuk
membuat spesifikasi perangkat lunak.
Spesifikasi lengkap belum bisa didapatkan pada tahap ini, pendekatan
alternatif pada analisis persyaratan adalah prototyping.
12.3.3 Pemodelan Analisis
Struktur Model Analisis
DD : mendeskripsikan
semua objek data yang
dikonsumsi PL
ERD : menggambarkan
hub antarobjek data
DFD : merepresentasikan
transformasi data dan Entity Data
fungsi-fungsi tranformasi Relationship Flow
Diagram Diagram
STD : (ERD)
Data (DFD)
menunjukkan perilaku Dictionary
sistem akibat
(DD)
kejadian eksternal
PSPEC : mendeskripsi State
setiap fungsi / Transition
proses pada DFD Diagram
(STD)
CSPEC : deskripsi aspek
kontrol PL
Pemodelan Data
Nama
Alamat
Umur
Lisensi Mengemudi
Nomor
memiliki
Merk
Model
Nomor ID
Tipe
Warna
Representasi Tabular Objek Data
Atribut
Atribut
pengidentifikasi deskriptif
referensial
Entity Data
Relationship Flow Desain
Diagram Diagram
(ERD)
Prosedural
Data (DFD)
Dictionary Desain
(DD) Interface
State
Transition Desain Arsitektur
Diagram
(STD)
Desain Data
13.2 Desain Data
Desain data adalah tahapan pemilihan representasi logis
dari objek data yang telah teridentifikasi dalam Analisis
Persyaratan dan Spesifikasi. Prinsip2nya :
Prinsip2 analisis sistem yang diterapkan pada fungsi dan
perilaku PL juga perlu diterapkan pada data.
Semua struktur data dan operasinya harus
teridentifikasi.
Kamus data harus dibangun untuk merepresentasikan
hub
antarobjek data dan batasan2nya.
Keputusan desain data tingkat rendah harus dilakukan di akhir
proses desain data.
Konsep information hiding (penyembunyian informasi suatu
modul agar tidak diakses oleh modul lain yang tidak
berkepentingan) dan perangkaian sangat penting bagi
kualitas PL.
Pustaka struktur data dan operasi yang berguna
harus dikembangkan agar dapat digunakan kembali.
13.3. Desain Arsitektur PL
Arsitektur merupakan struktur hirarkhi dari komponen program (modul),
interaksinya, dan struktur data yang digunakan. Terdapat bbrp model
desain arsitektur :
Konsep ini mrpk pertumbuhan langsung dari modularitas, konsep abstraksi PL,
dan Information Hiding. Independensi diukur melalui Kohesi dan Kopling.
Kohesi
Modul yang kohesif seharusnya hanya melakukan satu hal saja (kohesi tinggi =
fungsional <> koinsidental).
Kopling
Sehubungan dengan perangkaian dengan modul lain, maka modul yang baik
seharusnya memiliki hubungan yang sederhana (kopling rendah)
13.3.2 Proses Desain Arsitektur
Guna menyusun struktur program aliran transformasi dari DFD ini dipetakan
dengan langkah pengkajian thd Context DFD, penentuan pusat transformasi,
pemfaktoran dan penyaringan, dan pemetaan. Contohnya sbb.
Contoh Pemetaan Penjualan
Transformasi
Mengkonfir-
masikan Info
pesanan
Memberi
Informasi Menyiapkan
produk Pesanan
pengiriman
Membangun
Memberi
Kontak
pelanggan
Evaluasi
Tindak
produk
lanjut ke
pelanggan
13.3.2.1 Pemetaan Transaksi
Aliran transaksi ditandai dengan pergerakan data sepanjang jalur masuk yang
mengkonversikan informasi dunia eksternal ke dalam suatu transaksi.
Transaksi ini akan menimbulkan jalur aksi. Pusat aliran informasi tempat
banyak jalur aksi berasal disebut pusat transaksi.
d a c1
q
p
q r s
r
s p
13.4 Desain Interface
2. Eksternal : merupakan interface untuk entitas eksternal (tidak termasuk manusia), misalnya
sensor pada PL Safehome.
Geografi layar dioptimalkan shg tidak ada jendela yang ‘hilang’ / sulit ditemukan
Konsisten
Jangan meminta aktivitas manual (perhitungan, tanggal, waktu, dsb) bila dapat dilakukan
oleh PL
13.5 Desain Prosedural
Spesifikasi prosedural ditetapkan setelah desain data, arsitektur, dan interface selesai guna
penyusunan algoritma PL.
***
14.
PENGUJIAN
1.
PERANGKAT
Dasar-dasar Pengujian
2. LUNAK
Teknik Pengujian
3. Strategi Pengujian dan V&V
14.1 Dasar-dasar Pengujian
Metrik Kualitas PL
Maitainabilty Portability
Flexibility Reusability
Interoperability
TESTABILITY
Revisi Transis
Produ i
k Produk
Operasi
Produk
COMPONENT
TESTING
INTEGRATIO
N USER
TESTING TESTING
1. Component Testing
Pengujian terhadap komponen sistem, seringkali menggunakan teknik pengujian
White-Box.
a. Unit Testing
• pengujian tahap awal
• pengujian komponen secara terpisah
• unit-unit terkecil diuji : function, procedure, subprogram, dll
b. Module Testing (modul memadukan beberapa komponen)
• menguji interaksi antarunit
• menguji perilaku modul
2. Integration Testing
Top-Down, Bottom-Up, dan
Pengujian Regresi
an
b.
•
•
3. User Testing
Black-Box.
a.
14.3.2 Perencanaan Pengujian
and Test
Use
***