Rekayasa Perangkat Lunak
KONSEP
DAN PERANGKAT LUNAK SEBAGAI PROSES (Pertemuan Ke 2)
Tujuan
-
Untuk
mengenalkan model-model proses perangkat lunak.
-
Untuk
menjelaskan 3 model proses generik perangkat lunak dan kapan menggunakannya.
-
Untuk
menjelaskan garis beras model-model untuk rekayasa kebutuhan, pengembangan
perangkat lunak, testing , dan evolusi.
Proses
Perangkat Lunak
-
Sekumpulan
aktivitas terstruktur yang dibutuhkan untuk membangun sistem perangkat lunak
-
Spesifikasi
(Specification);
-
Desain
(Design);
-
Validasi
(Validation);
-
Evolusi
(Evolution).
-
Proses
perangkat lunak merupakan suatu representasi abstrak daris suatu proses. Yaitu
suatu penjelasan dari suatu proses dari prespektif tertentu.
3 Model
Generik Perangkat Lunak
-
Model
waterfall
o
Fase-fase
spesifikasi dan pengembangan berbeda dan terpisah.
-
Evolutionary
development
o
Spesifikasi,
pengembangan, dan validasi interleaved.
-
Component-based
software engineering
o
Sistem
dirancang dari komponen-komponen yang ada.
Waterfall
model
Fase pada Model Waterfall
-
Analisis
dan definisi kebutuhan (Requirements
analysis and definition)
-
Desain
sistem dan perangkat lunak (System and software design)
-
Implementasi
dan pengujian unit (Implementation and unit testing)
-
Integrasi
dan pengujian sistem (Integration and system testing)
-
Operasi
dan pemeliharaan (Operation and maintenance)
-
Kekurangan
dari model waterfall adalah sulit mengakomodasi perubahan setelah proses yang
sedang berlangsung. Satu fase harus lengkap (selesai) sebelum bergerak ke fase
berikutnya.
Masalah pada Model Waterfall
-
Ketidakfleksibelan
tahapannya membuat sulit untuk merespon perubahan kebutuhan customer.
-
Bagaimanapun,
model ini hanya sesuai ketika kebutuhan mudah dipahami dan kemungkinan
perubahannya jelas selama proses desain.
-
Sedikit
sistem bisnis yang mempunyai kebutuhan yang stabil.
-
Model
waterfall paling sering digunakan untuk proyek rekayasa sistem yang besar
dimana sistem dibangun pada tempat yang berbeda.
Evolutionary development
-
Exploratory
development
•
Sasarannya
adalah untuk bekerja dengan customer dan untuk mengembangkan final sistem
dari garis besar spesifikasi awal.
Seharusnya dimulai dari kebutuhan yang jelas dan menambah fitur baru
sebagaimana yang diberikan oleh customer.
•
Rapid
Application Development (RAD)
-
Throw-away
prototyping
•
Sasarannya
adalah untuk memahami kebutuhan sistem. Seharusnya dimulai dengan kebutuhan
yang kurang jelas ke kebutuhan yang sudah jelas.
Evolutionary development
Evolutionary
development
-
Problems
• Lack of process visibility
• Systems are often poorly structured
• Special skills (e.g. in languages
for rapid prototyping) may be required
-
Applicability
• For small or medium-size interactive
systems
• For parts of large systems (e.g. the
user interface)
• For short-lifetime systems
Component-based
software engineering
-
Didasarkan
pada penggunaan kembali yang sistematis dimana sistem diintegrasikan dari
komponen yang ada atau sistem COTS (Commercial-off-the-shelf).
-
Tingkatan
process
• Analisis komponen (Component
analysis);
• Modifikasi kebutuhan (Requirements
modification);
• Desain sistem dengan reuse (System
design with reuse);
• Pengembangan dan Integrasi
(Development and integration).
Reuse-oriented
development
Aktivitas
Proses
-
Spesifikasi
Perangkat Lunak
-
Desain
dan Implementasi
-
Validasi
Perangkat Lunak
-
Evolusi
Perangkat Lunak
Spesifikasi
Perangkat Lunak
-
Proses
pembuatan layanan yang dibutuhkan dan batasan-batasan pada operasi dan
pengembangan sistem.
-
Proses
rekayasa kebutuhan
• Studi kelayakan (Feasibility study);
• Analisis dan mendata kebutuhan
(Requirements elicitation and analysis);
• Spesifikasi kebutuhan (Requirements
specification);
• Validasi kebutuhan (Requirements
validation).
The
requirements engineering process
Desain dan
Implementasi Perangkat Lunak
-
Proses
konversi spesifikasi sistem ke sistem yang siap dijalankan.
-
Desain
perangkat lunak
• Desain struktur perangkat lunak yang
sesuai dengan spesifikasinya;
-
Implementasi
• Menterjemahkan strukturnya dalam
suatu program yang executable;
-
The
activities of design and implementation are closely related and may be
inter-leaved
Aktivitas
Proses Desain
-
Desain
arsitektur (architectural design)
-
Rangkuman
spesifikasi (Abstract specification)
-
Desain
antarmuka (Interface design)
-
Desain
komponen (Component design)
-
Desain
struktur data (Data structure design)
-
Desain
algoritma (Algorithm design)
The
software design process
Metode
Terstruktur
-
Pendekatan
sistematis untuk membangun suatu desain perangkat lunak.
-
Desain
biasanya didokumentasikan sebagai kumpulan model grafis.
-
Model-model
yang ada:
• Object model;
• Sequence model;
• State transition model;
• Structural model;
• Data-flow model.
Programming
dan debugging
-
Penterjemahan
suatu desain ke suatu program dan penghilangan error dari program.
-
Programming
merupakan aktivitas personal – tidak terdapat proses pemrograman generik.
-
Programmer
menggunakan pengujian program untuk menemukan kesalahan dalam program dan
menghilangkan kesalahan tersebut dalam proses debugging.
The
debugging process
Validasi
Perangkat Lunak
-
Verifikasi
dan validasi (V & V) dimaksudkan untuk menunjukkan bahwa sistem sesuai
dengan spesifikasinya dan sesuai dengan kebutuhan customer sistem.
-
Meliputi
proses pengecekan dan pemeriksaan dan pengujian sistem.
-
System
testing involves executing the system with test cases that are derived from the
specification of the real data to be processed by the system
The testing
process
Tingkatan
Pengujian
-
Component
or unit testing
• Komponen secara individual diuji
secara terpisah;
• Component is may be functions or
objects or coherent groupings of these entities.
-
System
testing
• Testing of the system as a whole.
Testing of emergent properties is particularly important.
-
Acceptance
testing
• Testing with customer data to check
that the system meets the customer’s needs.
Testing
phases
Software
evolution
-
Software
is inherently flexible and can change.
-
As
requirements change through changing business circumstances, the software that
supports the business must also evolve and change.
-
Although
there has been a demarcation between development and evolution (maintenance)
this is increasingly irrelevant as fewer and fewer systems are completely new.
System
evolution
Key points
-
Proses
perangkat lunak merupakan aktivitas yang meliputi memproduksi dan mengembangkan
suatu sistem perangkat lunak. They are represented in a software process model
-
Aktivitas
umumnya adalah spesifikasi, desain dan implementasi, validasi dan evolusi.
-
Model
proses generik menjelaskan organisasi proses perangkat lunak. Contoh model
waterfall, evolutionary development dan component-based software engineering.
Key points
-
Rekayasa
kebutuhan merupakan proses pengembangan spesifikasi perangkat lunak.
-
Proses
implementasi dan desain menterjemahkan spesifikasi tersebut ke suatu program
yang executable.
-
Validasi
meliputi pengecekan apakah sistem telah sesuai dengan spesifikasinya dan
kebutuhan user.
-
Evolusi
fokus pada pemodifikasian sistem setelah digunakan.