Title: Software Engineering Chapter 4
1Software Processes
- Software Engineering Chapter 4
2Tujuan
- Mengenalkan models software proses
- Menjelaskan 3 proses model yang umum
- Menjelaskan proses outline untuk rekayasa
kebutuhan, pengembangan software, testing dan
evolusi - Mengenalkan CASE technology sebagai pendukung
aktifitas software process
3Topics covered
- Model proses software
- Proses iterasi
- Aktifitas proses
- Computer-aided software engineering
4The software process
- Aktivitas yang terstruktur yang dibutuhkan untuk
mengembangkan sebuah sistme software - Spesifikasi
- Design
- Validasi
- Evolusi
5Model proses software yang umum
- The waterfall model
- Memisahkan fase spesifikasi dan pengembangan
- Pengembangan evolusioner
- Spesifikasi, pengembangan dan validasi saling
bersisipan - Component-based software engineering
- Sistem dibangun dari komponen yang sudah ada
- Banyak sekali varian dari model seperti
pengembangan formal yang mirip dengan waterfall
tapi spesifikasi terdiri dari beberapa langkah
spesifikasi yang lebih formal.
6Waterfall model
7Fase waterfall model
- Analisa kebutuhan dan definisi
- Desain software dan sistem
- Implementasi dan unit testing
- Integrasi dan sistem testing
- Operation dan maintenance
- Permasalahan kesulitan untuk mengakomodasi
perubahan ketia proses berjalan, fase harus
diselesaikan satu persatu
8Waterfall model problems
- Pembagian yang tidak fleksibel dari sebuah
project ke beberapa tahap, membuat kita sulit
untuk mengakomodasi perubahan kebutuhan customer - Model ini hanya cocok ketika sebuah requirement
sudah dimengerti dengan baik dan perubahan hanya
terjadi sesekali selama proses desain - Cocok untuk sistem dengan business yang kecil dan
memiliki requirement yang stabil - Model waterfall sering digunakan untuk project
rekayasa sistem dimana sistem tersebut
dikembangkan di lokasi yang berbeda
9Pengembangan evolusioner
- Pengembangan secara eksplorasi
- Tujuannya adalah untuk bekerja dengan customer
dan mengembangkan final sistem. Harus dimulai
dengan pemahaman kebutuhan secara detail dan
menambahkan fitur baru yang diajukan pelanggan - Throw-away prototyping
- Tujuannya adalah untuk mengerti kebutuhan sistem
requirement. Dimulai dari pemahaman yang sedikit
tentang requirement untuk klarifikasi apa yang
dibutuhkan sebenarnya.
10Evolutionary development
11Pengembangan evolusioner
- Problems
- Sistem memiliki struktur yang jelek
- Special skills dibutuhkan
- Applicability
- Small or medium size (sistem interaktif)
- Menjadi bagian dari sebuah sistem yang besar (
misal user interface) - Sistem dengan lifetime yang pendek
12Component-based software engineering
- Berdasarkan penggunaan ulang yang sistematis
dimana sistem terintegrasi dengan komponen atau
sebuah COTS. - Tahapan proses
- Analisis komponen
- Modifikasi requreiemt
- Sistem design dengan penggunaan ulang
- Pengembangan dan integrasi
13Reuse-oriented development
14Proses iterasi
- Untuk kebanyakan sistem besar perlu digunakan
berbagai model pendekatan untuk berbagai bagian
sistem sehingga harus digunakan model hibrid. - Iterasi dapat diterapkan pada model proses
generic diatas. - Pendekatan relasi
- pengembangan incremental
- Pengembangan spiral
15Pengembangan inkremental
- Pelanggan mengidentifikasi secara garis besar
layanan (services) yang akan disediakan oleh
sistem.mereka mengidentifikasi layanan mana yang
paling penting dan mana yang paling tidak penting
- Layanan dengan prioritas tertinggi akan
dikirimkan kepada pelanggan. - Pada saat pengembangan, analisis persyaratan
selanjutnya untuk inkrement lainnya dapat
dilakukan, tetapi perubahan persyaratan untuk
inkremen yang sedang dikerjakan tidak dapat
diterima
16Incremental development
17Keuntungan penggunaan incremental
- Customer mendapatkan setiap inkremen, sehingga
fungsionalitas sistem dapat digunakan didapatkan
diawal - Pelanggan dapat memakai inkrement yang pertama
sebagai bentuk prototipe dan mendapatkan
pengalaman yang dapat menginformasikan pada
pengembangan inkrement selanjutnya - Resiko kecil dari kegagalan project secara total
18Extreme programming
- Pendekatan pengembangan berdasar pengembangan dan
pengiriman dari masing-masing fungisonalitas
terkecil - Bergantung pada improvisasi code, keterlibatan
user dalam team pengembang, dan pemrogramana
secara berpasangan
19Pengembangan spiral
- Proses direpresentasikan sebagai spiral
- Setiap loop pada spiral merepresentasikan fase
dalam setiap proses - Tidak ada fase tetap seperti spesifikasi atau
desain loops dalam spiral dipilih berdasar apa
yang dibutuhkan
20Spiral model of the software process
21Step Spiral model
- Penetapan tujuan
- Fase Identifikasi untuk penetapan tujuan yang
spesifik - Penilaian dan pengurangan resiko
- Resiko dinilai dan berbagai aktifitas dilakukan
untuk mengurangi resiko - Pengembangan dan validasi
- Pengembangan model untuk sistem dipilih dari
generic models - Planning
- Proyek ditinjau dan selanjutnya dibuat keputusan
apakah akan diteruskan dengan fase spiral
selanjutnya
22Aktifitas proses
- Spesifikasi perangkat lunak
- Desain software dan implemetasi
- Validasi software
- Evolusi software
23Spesifikasi software
- Proses menetapkan layanan apa yang dibutuhkan dan
mendesak pada operasi pengembangan sistem - Proses rekayasa requirement
- Studi kelayakan
- Elisitasi dan analisis persyaratan
- Spesifikasi persyaratan
- Validasi persyaratan
24The requirements engineering process
25Desain software dan implementasi
- Proses konversi spesifikasi sistem ke sistem yang
dapat di eksekusi - Perancangan software
- Merancang struktur software yang merealisasikan
spesifikasi - Implementation
- Menerjemahkan struktur ke sebuah executable
program - Aktifitas implementasi dan desain sangat dekat
dan sering sekali saling tumpang tindih
26Design process activities
- Desain arsitektural
- Spesifikasi abstract
- Interface desain
- Komponen desain
- Struktur data desain
- Desain algoritma
27The software design process
28Structured methods
- Pendekatan sistematis untuk mengembangkan desain
software - Desain biasanya di dokmentasikan dengan model
dalam bentuk grafis - Model yang memungkinkan
- Object model
- Sequence model
- State transition model
- Structural model
- Data-flow model.
29Programming and debugging
- Menerjemahkan dan desain ke sebuah program dan
menyingkirkan error dari sebuah program - Programming adalah aktifitas personal, tidak ada
proses programming yang generic - Programmer melakukan program testing untuk
menemukan kesalahan pada program dan membenahi
kesalahan ini dalam debugging proses
30The debugging process
31Software validation
- Verifikasi dan validasi (VV) untuk menunjukkan
sistem sudah sesuai dengan spesifikasi dan
memenuhi kebutuhan untuk customer - Cek dan review proses dan system testing
- Mengeksekusi / testing system dengan beberapa
test case yang diturunkan dari spesifikasi dengan
menggunakan data real untuk diproses ke sistem
32The testing process
33Tahapan testing
- Component or unit testing
- Masing-masing komponen di lakukan tes
- System testing
- Testing sistem secara keseluruhan. Testing
emergent properties. - Acceptance testing
- Testing dengan data customer untuk cek apakah
sistem memenuhi kebutuhan user
34Testing phases
35Software evolution
- Software diharapkan dapat berubah secara
fleksible - Apabila terdapat perubahan requirement karena
kondisi bisnis, software yang mendukung bisnis
tersebut juga harus berubah
36System evolution
37Computer-aided software engineering
- CASE adalah software untuk mendukung pengembangan
software dan proses evolusi - Activity automation
- Editor grafis untuk pengembangan system model
- Data dictionary untuk manage entities desain
- UI builder untuk pembuatan user interface
- Debuggers untuk mendukung pencarian kesalahan
38CASE classification
- Klasifikasi membantu kita untuk mengerti tipe
dari case tools dan dukungannya untuk aktifitas
proses - Functional perspective
- Tools yang digunakan untuk fungsi spesifik
- Process perspective
- Tools yang digunakan untuk mendukung aktifitas
proses - Integration perspective
- Tools yang digunakan untuk mengklasifikasikan
integrasi unit
39Functional tool classification
40Activity-based tool classification
41CASE integration
- Tools
- Mendukung proses/tugas individual seperti
konsistensi desain, editing text, dst - Workbenches
- Mendukung fase proses seperti spesifikasi atau
desain - Environments
- Mendukung semua bagian untuk proses software
42Tools, workbenches, environments
43Key points
- Software processes are the activities involved in
producing and evolving a software system. - Software process models are abstract
representations of these processes. - General activities are specification, design and
implementation, validation and evolution. - Generic process models describe the organisation
of software processes. Examples include the
waterfall model, evolutionary development and
component-based software engineering. - Iterative process models describe the software
process as a cycle of activities.
44Key points
- Requirements engineering is the process of
developing a software specification. - Design and implementation processes transform the
specification to an executable program. - Validation involves checking that the system
meets to its specification and user needs. - Evolution is concerned with modifying the system
after it is in use. - The Rational Unified Process is a generic process
model that separates activities from phases. - CASE technology supports software process
activities.