Teknik Informatika S1
Software Process Model 1. Linear Sequential Model • 1. Waterfall Model • 2. V Model • 3. RAD Model
Rekayasa Perangkat Lunak
2. Prototyping Model
Software Process
3. Evolutionary Model • • • •
1. Incremental Model 2. Spiral Model 3. Component Assembly Model 4. Concurrent Development Model
4. Formal Method 5. Unified Process 6. 4GT Model 7. Agile Methods (ex: XP)
1. Waterfall Model Sebuah
1. Waterfall Model
pendekatan pengembangan perangkat lunak
yang sistematik dan sekuensial.
Disebut juga „Classic Life Cycle‟. Paradigma
yang sudah lama sekali, tetapi masih
banyak yang memakai karena dianggap masih sesuai dengan keadaan sekarang.
Roger S, Pressman
1. Waterfall Model
Ian Sommerville
1. Waterfall Model
Alan Dennis
1
Karakteristik Waterfall Model 1.
Kelebihan Waterfall Model
Setiap tahap menghasilkan dokumen di akhir
1.
Menghasilkan mature process pada setiap tahapnya
tahapnya
2.
Mudah untuk diaplikasikan pada sebuah proyek
2.
Tidak ada overlapping pada setiap tahapnya
3.
Menghasilkan sistem yang terstruktur dengan baik
3.
Setiap tahapan akan punya pengaruh besar pada
4.
Memiliki tingkat visibilitas yang tinggi (setiap
hasil di tahap berikutnya
4.
tahap mempunyai dokumen yang jelas)
Memerlukan biaya besar jika melakukan rework
Kekurangan Waterfall Model 1.
Ketidak fleksibelan antar tahapan
2.
Sulit
dalam
merespon
perubahan
Modified Waterfall Model
(M.Kochanski)
Sashimi kebutuhan
customer
3.
Model ini hanya cocok jika: a. Kebutuhan customer sudah sangat jelas b. Perubahan kebutuhan dibatasi
Modified Waterfall Model Waterfall with Spiral Introduction
(M.Kochanski)
Modified Waterfall Model
(M.Kochanski)
Waterfall with Subprojects
2
V model
Rapid Application Development (RAD) RAD = Rapid Application Development Adaptasi dari waterfall model yang: menekankan
siklus pengembangan perangkat lunak
yang sangat pendek;
menggunakan
pendekatan
konstruksi
berbasis
komponen.
Menciptakan
sistem fungsional yang utuh dalam
waktu 60-90 hari.
Rapid Application Development (RAD)
Business Modelling
team #3 business modeling
team #2
Memodelkan fungsi-fungsi bisnis untuk menjawab pertanyaan-
data modeling
business modeling
team #1
pertanyaan:
process modeling
data modeling
business modeling
application generation
process modeling
data modeling
Rapid Application Development (RAD)
Informasi testing & turnover
application generation
process modeling
memprosesnya? testing & turnover
application generation
apa yang mengendalikan proses bisnis ? Informasi
apa yang dimunculkan? Ke mana infomasi itu pergi? Siapa yang
testing & turnover 60 - 90 hari
Data Modelling Aliran informasi yang didefinisikan pada fase business modelling ditransformasikan ke dalam serangkaian obyek data.
Rapid Application Development (RAD)
Prototyping Model
Process Modelling Mentransformasikan
obyek
data pada suatu fungsi yang
menghasilkan aliran informasi yang dibutuhkan.
Membantu
software
engineer
untuk
mendapatkan
kebutuhan berupa feedback cepat dari customer
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
Prototyping Model
Prototyping Model 4. User ingin cepat selesai
Dipakai jika:
user tidak sabar menunggu
1. Sistem mempunyai resiko tinggi
prototipe segera memperlihatkan bentuk kerja sistem
tidak jelas permasalahannya
5. Masa pakai singkat
2. Lebih fokus pada perancangan dialog user komputer
sistem hanya dipakai beberapa kali saja
(Sistem dengan User)
6. Ingin menunjukkan inovasi
bagaimana membuat dialog yang baik, ramah, mudah ?
pengembang dapat menunjukkan kecanggihan
3. Sistem diminati oleh banyak pemakai
7. Kebutuhan berubah-ubah
mencari kesepakatan (dasar untuk menyamakan
user sulit menjelaskan kebutuhan
persepsi)
Prototyping Model
Type of Prototyping 1. Evolutionary prototyping 2. Throw-away prototyping
22
Evolutionary Prototyping
Throw-away Prototyping System Programming
Prototype Requirements
Prototype Requirements
Prototype Programming
System Testing
Prototype Programming
Reviews Reviews Validates?
Release
Validates?
Reviews
Validates?
23
Release
24
4
Prototyping Speciality
Prototyping Speciality
• Frekuensi komunikasi user – developer meningkat
• Pengembangan lebih cepat
• pengembang akan selalu meminta pendapat user
• program bisa langsung dibuat • user melihat perkembangan tahap demi tahap
• Membantu analis dalam
• menentukan kebutuhan user yang sebenarnya
• Implementasi mudah
• meminimalkan salah persepsi
• user sudah mengenal perangkat lunak yang dikembangkan • user tidak akan merasa asing
• Peran user meningkat
• evaluasi oleh user berkali-kali
• sejak awal user sudah merasa memiliki
• user bisa memberikan masukan setiap saat
25
Prototyping Weakness
Prototyping Weakness
• User sibuk
• User berharap terlalu banyak
• user & pengembang harus sama-sama memiliki komitmen
• keseringan evaluasi & komunikasi membuat user
menyediakan waktu untuk bertemu.
menjadi berubah keinginan dan tidak pasti dengan kebutuhan.
• User sulit melakukan evaluasi
• bentuk
prototipe
sering
26
berubah,
disesuaikan
dengan
kebutuhan user.
• Prototipe bekerja tidak efisien • User ingin cepat selesai
• lebih mementingkan keberhasilan.
• bentuk program sudah terlihat sejak awal. • user merasa tidak akan lama lagi selesai.
27
28
• pengembang sering mengabaikan dokumentasi.
Evolutionary Model Incremental Model
Incremental
Evolutionary Model Incremental Model
Model merupakan gabungan antara
model linier sekuensial dan prototyping.
Setiap
linier sekuen menghasilkan produk yang
deliveriables.
Increment
pertama merupakan produk inti (core),
yang mengandung persyaratan/kebutuhan dasar.
Penambahan
dilakukan pada increment-increment
berikutnya.
5
Evolutionary Process Model
Evolutionary Process Model
2. Spiral Model
2. Spiral Model
Digunakan software engineer skala besar. Growing of software menjadi ide dari model proses ini
Evolutionary process (pengembangan bertingkat) Menggabungkan keunggulan prototyping dan waterfall Memungkinkan
dikembangkannya perangkat lunak secara
bertahap (incremental) dan cepat.
Terbagi atas 6 tahapan: * customer communication * planning * risk analysis * engineering * construction & release * customer evaluation
Evolutionary Process Model
Evolutionary Process Model
2. Spiral Model
3. Component Assembly Model
Planning Integration and test plan
Risk Analysis
development plan
menentukan tujuan, alternatif, batasan sistem dan budget
analisa resiko berdasarkan evaluasi user analisa resiko berdasarkan kebutuhan awal
development plan Requirements
prototipe awal
Customer Communication
identify candidate components
look up components in library
construct n- th iteration of system
extract components if available
put new components in library
build components if unavailable
Engineering prototipe tingkat berikutnya
Project Entry Point
produk-jadi Customer Evaluation
engineering
Engineering, contruction & release
customer evaluation
entry point
Customer communication
risk analysis Construction & Release
Evolutionary Process Model 4. Conccurent Model Model proses yang memungkinkan perubahan keadaan
planning
Evolutionary Process Model 4. Conccurent Model none Analysis activity
dari under development ke awaiting change (berhenti sementara) ketika terjadi perubahan kebutuhan
Under development A waiting changes
Under review Under revision
baselined
done
6
Evolutionary Process Model 4. Conccurent Model
Aktivitas
sistem dan komponen yang berlangsung secara
simultan dan dapat dimodelkan dengan menggunakan pendekatan orientasi keadaan;
Aplikasi klien/server khusus yang diimplementasikan dengan banyak komponen yang masing-masing bisa dirancang dan direalisasikan secara konkuren.
UNIFIED PROCESS Model
proses yang menggabungkan beberap konsep
unggulan dari model proses lainnya.
Penekanan pada model proses ini, yaitu: 1. Komunikasi dengan customer secara intens (streamlined)
Formal Method Mencakup
sekumpulan aktivitas yang membawa kepada
spesifikasi matematis perangkat lunak komputer;
Memungkinkan
software engineer untuk mengkhususkan,
mengembangkan, dan mem-verifikasi sistem berbasis komputer dengan menggunakan notasi matematis yang tepat;
Variasi
dari pendekatan ini disebut clean-room software
engineering.
Fourth Generation Techniques (4GT) Terkait dengan penggunaan tools. Pengembang
software mendefinisikan karakteristik
software secara 'high level'; tool secara otomatis akan membangkitkan kode.
2. Arsitektur yang reusable dan terbuka pada perubahan kebutuhan 3. Alur proses yang iterative atau incremental
Fourth Generation Techniques (4GT) 4GT
Fourth Generation Techniques (4GT)
mempercepat proses pengembangan perangkat requirements gathering
lunak.
Proses perancangan dan dokumentasi baik. Masih
design strategy
dipertanyakan beberapa pihak: efisiensi kode
yang dihasilkan, kemudahan (relatif).
implementation using 4GL
testing
4GL/ Fourth generation language
7
AGILE METHOD
AGILE METHOD
Model proses yang menekankan pada fast delivery dari setiap poin aktivitas dalam rangka memperpendek jangka waktu proyek pembangunan perangkat lunak.
AGILE METHOD Just a few rules that are easy to learn and follow Streamline the SDLC * Eliminate much of the modeling and documentation * Emphasize simple, iterative application development
Examples include: * Extreme Programming (XP)
AGILE METHOD (Extreme Programming) “Core Values” of XP 1.
Communication – All to All
2.
Simplicity – refactoring
3.
Feedback – Embrace Change
4.
Courage – Quality First, test and efficient coding
* Scrum * Dynamic Systems Development Model (DSDM)
AGILE METHOD (Extreme Programming) 1.
User Stories about system do
2.
Code small program using defined standards
*
Naming conventions
*
Coding practices
3.
User Feedback
4.
Repeat
AGILE METHOD (Extreme Programming)
8
TERIMA KASIH
9